(整理)实验二P1口控制LED发光二极管.
控制P1口的8只LED每0.5s闪亮1次

单片机课程设计报告题目:控制P1口的8只LED每0.5s闪亮一次学生姓名:王张海陈启新学生学号: 1314050230 1314050203 年级: 13级专业:电气工程及其自动化班级:电气(2)班指导教师:徐峰机械与电气工程学院制2015年11月现当今,单片机的应用无处不在。
利用单片机控制灯具的实例也不胜枚举,可控制灯具的芯片也相当之多,而利用单片机控制灯具,达到人们预想效果的方法最为广泛。
它有功能多、价格优、外部电路简单的特点,深受单片机爱好者及灯具控制制造商的青昧,用80C51 单片机及少数外部电路控制LED灯光,使LED灯产生明暗效果,并在灯光达到最亮与最暗时伴随响亮的告警音。
通过硬件电路的制作以及软件程序的编制,使灯光的亮度与告警音配合得当。
LED又称为发光二极管,是一种新型光源,具有高效节能、绿色环保、使用寿命长等其他光源无法比拟的优点。
作为绿色照明光源产品,国家绿色照明推广使用的产品,代表着未来照明技术的发展方向。
本文介绍了以STC89C52为控制核心,利用PWM调光技术,通过调整PWM的周期、PWM的占空比从而控制电流,进而达到对LED进行光度亮暗的控制调节的效果,实现对LED灯的PWM调光控制。
关键词:单片机;LED灯;软件程序摘要........................................................................一目录........................................................................二前言........................................................................三1:制P1口8只LED灯每0.5秒闪亮一次原理图 (2)1.1原理图 (2)1.2原理图器件 (2)1.3原理图参数设置说明 (3)1.4 PCB板图 (4)2:制P1口8只LED灯每0.5秒闪亮一次程序 (5)2.1 程序 (5)2.2 程序原理详细介绍 (5)3:件流程图 (7)3.1流程图的优点 (7)3.2流程图采用的符号 (7)3.3软件流程图制作软件 (7)3.4流程图 (7)4:软件仿真 (9)4.1 Proteus仿真原理图 (9)参考文献 (11)单片机技术飞速发展,单片机的应用已经渗透到了国民经济的各个领域,处处影响着人们的生活,它的出现给现代工业测控领域带来了一次新的技术革命。
实验程序

单片机实验程序软件实验一1.分别编程实现两个16位无符号数相加,结果存放在40H41H中;两个16位的无符号数相减,结果存放在30H31H中。
两个16位无符号数相加,结果存放在30H31H中ORG 0000HLJMP MAINORG 0030HMAIN :MOV R3,#01H ;输入加数高八位MOV R4,#23H ;输入加数低八位MOV R5,#45H ;输入被加数高八位MOV R6,#67H ;输入被加数低八位MOV A,R4 ;将R4存入寄存器AADD A,R6 ;A与R6相加,结果存入AMOV 31H,A ;将低八位的和数存入31HMOV A,R3 ;将R3存入寄存器AADDC A,R5 ;A与R5相加,结果存入AMOV 30H,A ;将高八位的和数存入30HSJMP $END; 两个16位的无符号数相减,结果存放在30H31H中。
ORG 0000HLJMP MAINORG 0030HMAIN :MOV R3,#12H ;输入减数高八位MOV R4,#34H ;输入减数低八位MOV R5,#56H ;输入被减数高八位MOV R6,#78H ;输入被减数低八位MOV A,R4 ;将R4存入寄存器ACLR C ;C位清"0"SUBB A,R6 ;A与R6相减,结果存入AMOV 31H,A ;将低八位的差数存入31HMOV A,R3 ;将R3存入寄存器ASUBB A,R5 ;A与R5相减,结果存入AMOV 30H,A ;将高八位的差数存入30HSJMP $END2、编程实现X (X ≥40)Y= 2X (20<X<40)0(X≤20);实现X>=40时,Y=X;20<X<40时,Y=2X;X<20时,Y=0 X的值存放于R2中,Y的值存放于R3中ORG 0000HLJMP MAINORG 0030HMAIN:CMP40: CJNE R2,#40,NEXT0 ;X与40比较,结果由CY读出NEXT0: JNC BIGGER40 ;判断C的值,C为0时则X大于或者等于40,跳到BIGGER40JC CMP20 ;判断C的值,C不为0时则X小于40,跳到CMP20 CMP20: CJNE R2,#21,NEXT1 ;X与21比较,结果由CY读出NEXT1: JNC BIGGER20 ;判断C的值,C为0时则X大于或者等于21(即X大于20),跳到BIGGER20JC SMALLER20 ;判断C的值,C不为0时则X小于20,跳到SMALLER20BIGGER40: MOV A,R2 ;X>=40时,将X的值赋给存放Y的值的R3MOV R3,ASJMP $BIGGER20: MOV A,R2 ;20<X<40时,将X的值乘以2再赋给存放Y的R3MOV B,#02MUL ABMOV R3,ASJMP $SMALLER20:CLR A ;X<20时,将0赋给YMOV R3,ASJMP $软件实验二1、找出内RAM中从30H到50H中在最小值。
控制P1口的8只LED灯每0.5秒闪亮一次

单片机课程设计论文题目:控制P1口的8只LED灯每0.5秒闪亮一次系部电子信息工程学院专业通信工程学号姓名指导教师程亮亮2015年6月25日摘要现当今,单片机的应用无处不在。
利用单片机控制灯具的实例也不胜枚举,可控制灯具的芯片也相当之多,而利用单片机控制灯具,达到人们预想效果的方法最为广泛。
它有功能多、价格优、外部电路简单的特点,深受单片机爱好者及灯具控制制造商的青昧,用80C51 单片机及少数外部电路控制LED灯光,使LED灯产生明暗效果,并在灯光达到最亮与最暗时伴随响亮的告警音。
通过硬件电路的制作以及软件程序的编制,使灯光的亮度与告警音配合得当。
LED又称为发光二极管,是一种新型光源,具有高效节能、绿色环保、使用寿命长等其他光源无法比拟的优点。
作为绿色照明光源产品,国家绿色照明推广使用的产品,代表着未来照明技术的发展方向。
本文介绍了以STC89C52为控制核心,利用PWM调光技术,通过调整PWM的周期、PWM的占空比从而控制电流,进而达到对LED进行光度亮暗的控制调节的效果,实现对LED灯的PWM调光控制。
关键词:单片机;LED灯;软件程序AbstractNowadays, the application of single chip microcomputer. SCM is used to control the lamps and lanterns of examples are numerous, control the lamps and lanterns of chip is quite much, and using single chip computer control lamps and lanterns, achieve expected effect of the method is the most widely used. It has multi functions, excellent prices, the characteristics of the external circuit is simple, by the Qing Mei single-chip lovers and lamp control manufacturers, with 80C51 microcontroller and a few external circuit to control the LED light, LED lamp has the effect of light and shade, and the light to the brightest and darkest with loud alarm sound. Through the production of the hardware circuit and software program, the brightness of the lighting and sound alarm.LED is also known as light-emitting diode, is a new type of light source, with high efficiency, energy saving, environmental protection, long service life and other light source can not match the advantages. As a green light source products, national green lighting to promote the use of products, representing the development direction of future lighting technology. STC89C52 as control core, using PWM dimming technology, by adjusting the PWM cycle, PWM accounted for empty than to control electric current, thus achieving the photometric light and dark control and regulation of the effect of the LED, LED lamp dimming with PWM control is introduced in this paper.Key words: single chip microcomputer; LED; software program目录摘要 (Ⅱ)Abstract (Ⅲ)目录 (Ⅳ)前言 (1)1:制P1口8只LED灯每0.5秒闪亮一次原理图 (2)1.1原理图 (2)1.2原理图器件 (2)1.3原理图参数设置说明 (3)1.4 PCB板图 (4)2:制P1口8只LED灯每0.5秒闪亮一次程序 (5)2.1 程序 (5)2.2 程序原理详细介绍 (5)3:件流程图 (7)3.1流程图的优点 (7)3.2流程图采用的符号 (7)3.3软件流程图制作软件 (7)3.4流程图 (7)4:软件仿真 (9)4.1 Proteus仿真原理图 (9)参考文献 (11)前言:单片机技术飞速发展,单片机的应用已经渗透到了国民经济的各个领域,处处影响着人们的生活,它的出现给现代工业测控领域带来了一次新的技术革命。
实验二控制LED灯点亮实验(精)

实验二控制 LED 灯点亮实验一、实验目的1.. 进一步熟悉单片机编程和程序调试方法2. 学习 P1口的使用方法3. 学习延时子程序的编写和应用二、实验内容1.让实验板上的第 1、 3、 5、 7位置上的灯与第 2、 4、 6、 8位置上的灯交替闪烁。
2、设计出如下要求的流水灯程序。
变化要求:先从第 4个灯向左逐个点亮,接着从第 5个灯向右逐个点亮,然后, 从第 1个向右、第 8个向左同时开始的向内逐个点亮再从中间向两边逐个点亮的。
三、实验相关说明1、实验电路原理图100注意:在实验报告中,请画出实际运行你程序的电路的原理图2、 LED 灯控制。
从电路原理图可看到 ,当 P1 .0端口输出高电平,即 P1.0=1时 ,发光二极管 L1熄灭;当 P1 .0输出低电平即 P1 .0=0时, L 1亮;在汇编语言里可用 SETB P1.0指令使 P 1. 0端口输出高电平 ,用 CLR P1.0指令使 P1 .0 端口输出低电平, 从而控制 LED 的亮、灭。
注意:实验板是用哪个口连接了 LED 。
3.延时子程序的设计、应用单片机指令的执行时间很短,时间在微秒级,因此,如果我们想看灯闪烁, 那么就必须在用指令控制灯处于亮或灭的状态后, 保证那状态维持一段时间后再转换成另一状态。
如何做到维持一段时间呢?方法有很多, 其中最易实现的一种方法是:通过插入一段程序, 每条指令执行都需要 1个或若干个机器周期的时间。
因而执行完这段程序就过了一段时间, 通常把这称为延时。
延时程序一般采用单重或多重循环程序。
可以根据需要延时的时间来设计这段程序包含哪些指令、循环次数。
设计举例如下:若单片机晶振为 12MHz ,因此,则单片机的 1个机器周期为 1微秒,则下面这段循环程序中每条指令执行所需的机器周期数及其要花的时间列在下面。
机器周期微秒MOV R6,#20 2个机器周期 2D1: MOV R7,#248 2个机器周期 2×20DJNZ R7,$ 2个机器周期 2×248×20DJNZ R6,D1 2个机器周期 2×20=4010002 因此,上面的延时程序时间为10.002ms 。
实验二__P1口输入输出的实现(17)_2

实验二P1口输入、输出的实现一、实验目的1.复习单片机调试平台的使用方法,学习并巩固延时函数的编程方法;2.验证用P1口既作输入又作输出;3.学习用if - else 和switch (case ) 分支程序结构的编程方法。
二、实验设备电脑、THDPJ-2型单片机开发综合实验箱及连接线。
三、实验内容1.实验要求1)设计程序实现P1口作为输出功能,实现P1口控制的发光二极管按间隔为1秒和3秒的时间闪烁,修改延时子程序,观察现象并记录程序。
(时钟频率为12MHz)。
2)设计程序实现P1口既作输入又作输出,把P1.0和P1.1外接按键的状态通过P1.4和P1.5外接的LED发光二极管实时显示。
(流程图见图1)3)安排P1.0作为单键输入口,P1.6、P1.7接两个发光管L6、L7。
实现:当P1.0=0时,D6、D7亮。
当P1.0=1时,D6、D7以1秒的间隔闪烁。
(流程图见图2)4)安排P1.0、P1.1作为输入口,P1.4、P1.5 、D5、D6、D7 (流程图见图3、4)当P1.1=0 、P1.0=0时,D4亮、D5、D6、D7灭;当P1.1=0 、P1.0=1时,D5亮、D4、D6、D7灭;当P1.1=1 、P1.0=0时,D6亮、D4、D5、D7灭;当P1.1=1 、P1.0=1时,D7亮、D4、D5、D6灭。
2.软件流程图图 1 流程图图4 if- else 流程图图3 switch 流程图图2 流程图3. 参考电路图五、实验结果和数据分析实验报告要求:每个步骤有流程图,有程序,有观察到的现象。
最后有实验心得。
问题:1.说明P0口的操作方法。
2.说明LED的控制方法,LED是高电平控制还是低电平控制。
51单片机实验-实验二 P1口输入、输出实验

实验二 P1口输入、输出实验一、实验目的学习Pl口的使用方法。
学习延时子程序的编写和使用。
进一步熟悉星研Star16L仿真器系统的操作,和EL-Ⅱ型通用接口板实验电路结构,学习使用PROTEUS仿真软件实现单片机的虚拟仿真。
掌握虚拟仿真与实际系统仿真的有机衔接。
二、实验仪器和设备PC机、星研Star16L仿真器系统+仿真头PODPH51(DIP)、EL-Ⅱ型通用接口板实验电路,PROTEUS仿真软件。
三、实验内容1)P1口做输出口,经过74LS04反相器接八只发光二极管,编写程序,使发光二极管循环点亮。
2)(选作)P1口既做输入又做输出,在P1.0~P1.3口接四个平推开关,通过开关的不同位置向P1.0~P1.3输入不同的状态,然后利用输入指令读取所设开关状态,为验证输入结果的正确与否,将它们输出到P1.4~P1.7,经过74LS04反相器驱动发光二极管。
四、实验结果1)循环点亮八只发光二极管。
取P1.0口接出第一个二极管,以此类推,第八个接P1.7口。
Proteus 仿真图①循环左移,即从第一个二极管开始点亮到第八个二极管实验程序:ORG 0000HSTART:MOV R2,#8MOV A,#01H ;先让第一个发光二极管点亮LOOP: MOV P1,A ;从P1口输出到发光二极管LCALL DELAYRL A ;循环左移(从第一个发光二极管开始一直往下一个二极管)DJNZ R2,LOOP ;判断移动是否超过8位,未超过则继续循环LJMP START ;循环发光DELAY:MOV R5,#5 ;延时0.5秒子程序DEL1: MOV R6,#200DEL2: MOV R7,#126DEL3: DJNZ R7,DEL3DJNZ R6,DEL2DJNZ R5,DEL1RETEND仿真结果:发光二极管从D1开始发光,依次往下到D8,然后循环这一过程。
实验结果:发光二极管从第一个开始发光,依次往左到第八个,然后循环这一过程。
一个发光二极管的闪烁控制

MCU
9
第三步 编译 下载 调试
预处理命令--------函数说明-----------全局变量定义-----主函数------------
程序体
自定义函数--------局部变量定义--------程序体------
C51与标准C程序结构完全相同
① 程序由函数组成(一个主函数,或一个主函数 和若干自定义函数); ② 利用预处理命令对变量或函数进行集中定义或 说明; ③ 函数和变量都需遵循先定义后使用的基本原则; ④ 主函数中的所有语句执行完毕,则程序结束。
21
2.1.3 硬件工具之一:面包板
在面包板上观察电路的现象 是不是与设计的一致,以验 证电路图设计的正确性,这 在电子电路设计中经常用到。
欢迎访问“电路飞翔网”获取更多信息 《实例解读8051单片机完全学习与应用》 All you need to know about the 8051 microcontroller 编著:杨欣Yang X 张延强Zhang Y 主审:莱· 诺克斯Nokes L 王玉凤Wang Y 刘湘黔Liu X
19
2.1.1 综合素质
电子血压计,测量时将一个密封 的袖带套在上臂上,按下按钮启 动血压测量后,单片机控制气泵 工作,向袖带中打气从而增加其 中的压力。当压力达到 200mmHg左右时即停止打气并 缓慢放气,在气压下降的过程中, 压力传感器实时监测袖带中的压 力变化,通过ADC进行模数转换 后送给单片机分析,从而计算出 收缩压(高压)和舒张压(低 压)。
24
2.1.4 硬件工具之二:万用板和印刷电路板
电路原理图可生成印刷电路 板图。把印刷电路板图交给 电路板生产厂家就可以把印 刷电路板加工出来。电子产 品的电路板已经具备工作的 基本条件了。
实验二p3.3口控制p1口实验

工商学院 单片机实验
• 一、实验目的 • 1、掌握P1口和P3口的使用方 法; • 2、学习跳转指令的用法;
单片机实验
• 二、实验内容 • P3.3口作为输入口,外接脉冲 信号,P1口作为输出口,接八 只发光二极管。 • 要求:P3.3口每输入一个脉冲 信号, P1口控制的发光二极管 按照十六进制加一的方式点亮。
单片机实验
开始
三、程序流程
是
P3.3为高吗? 否 延时 是
P3.3真为高吗?
否 P3.3为低吗? 是
否
延时
是 P3.3真为低吗?
否 P1口按照十六进制加一顺序点亮
单片机实验
四、实验电路图
单片机实验
• • • • • •
五、接线 P1.0-P1.7接在八只发光二级管; P3.3口接开关; 六、相关知识介绍 1、P1口按照十六进制加一的顺序点亮; 2、JB和JNB分别代表什么意思,有何不同?
单片机实验
• 思考题: • 1、说出跳转和调用指令的区别是什么? 。 • 2、总结P3口的其它功能。
单片机实验
单片机实验
3、按键的去抖动
单片机实验
• 程序框架
ORG 0000H
START:
A1:
MOV A,#00H
JB P3.3,A1 LCALL DELAY JB P3.3,A1
A2: AY: END
….
单片机实验
重点
• • • • 编程重点 1、输入脉冲信号的判断 2、I/O在作为输入口的时候应注意什么? 3、跳转和调用的区别是什么?
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验二 P1口控制LED发光二极管一、实验目的1、进一步熟练Proteus及Keil软件的基本操作2、掌握8051单片机P1口的使用方法3、掌握LED发光二极管的原理及使用方法4、学习汇编程序的调试及仿真方法二、实验电路三、实验内容及步骤:要求:8个LED发光二极管循环左移显示(发光的移位),间隔时间为一秒。
1、使用Proteus画出电路原理图2、在Keil uVision中完成程序编辑、调试及编译,生成.HEX文件3、进行Protues与Keil uVision联动的相关设置:4、在Proteus中仿真运行。
四、思考1、将本实验的实验现象改为“不发光二极管循环移位”。
2、将本实验的实验现象改为“每隔0.5秒发光二极管循环移位”。
参考程序:ORG 0LJMP MAINORG 30H MAIN: MOV A,#0FEH LOOP: MOV P1,ALCALL DELAYRL ASJMP LOOP DELAY: MOV R7,#20H DELAY1:MOV R6,#200 DELAY2:MOV R5,#123DJNZ R5,$DJNZ R6,DELAY2DJNZ R7,DELAY1RETEND实验三数码管静态显示实验一、实验目的1、进一步熟悉51系列单片机2、了解8051单片机P0口的使用方法3、掌握共阴极数码管的原理及使用方法4、学习8051的编程、调试、编译、仿真。
二、实验电路图3 数码管静态显示电路原理图注:数码管要从元件库选择Optoelectronics类中的7SEG-COM-CAT-GRN。
三、要求及步骤:要求:在七段数码管上以递增方式循环显示数字0—9,间隔时间为一秒。
1、使用Proteus画出电路原理图2、在Keil uVision中完成程序编辑、调试及编译,生成.HEX文件3、进行Protues与Keil uVision联动的相关设置:4、在Proteus中仿真运行。
四、思考1、为什么要将P0口各引脚通过电阻R3-R9接到电源?2、如何在共阴数码管上循环显示十六进制数字0—F(不区分字母的大小写)?3、怎样修改程序使数字以递减方式循环显示?4、若用共阳极数码管应如何修改电路和程序,才能完成本实验的功能?参考程序:ORG 00HLJMP STARTORG 30HSTART: MOV DPTR,#TABLES1: MOV R4,#00HS2: MOV A,R4MOVC A,@A+DPTRMOV P0,ALCALL DELAYINC R4CJNE R4,#0AH,S2SJMP S1DELAY: MOV R5,#20 ;延时子程序D2: MOV R6,#200D1: MOV R7,#123DJNZ R7,$DJNZ R6,D1DJNZ R5,D2RETTABLE: DB 3FH,06H,5BH,4FH,66H ;段码表DB 6DH,7DH,07H,7FH,6FHEND实验四基本输入/输出实验一、实验目的1、进一步熟悉8051单片机并行I/O口的使用方法3、掌握并行I/O口输入/输出操作的方法4、学习8051的编程、调试、编译、仿真。
二、实验电路图4 并行I/O口基本输入/输出注:按钮要从元件库选择Switches & Relays类中的BUTTON。
三、要求及步骤:要求:在按钮动作的控制下,将十六进制数字0-F循环显示在数码管上(每按一次按钮,显示的数字加1)。
1、使用Proteus画出电路原理图2、在Keil uVision中完成程序编辑、调试及编译,生成.HEX文件3、进行Protues与Keil uVision联动的相关设置:4、在Proteus中仿真运行。
四、思考1、如何检测按钮是否按下?2、怎样修改程序,可以使数字0-F在按钮控制下,以递减方式循环显示?3、若在P0口接8个LED,如何实现每按一次按钮,点亮的LED左移一位(8个LED中只有一个点亮)?参考程序:ORG 00HLJMP STARTORG 30HSTART: MOV P1,#01HMOV DPTR,#TABLEMOV R4,#00HCLR AMOVC A,@A+DPTRMOV P0,ALOOP: MOV A,P1ANL A,#01HJZ LOOPLOOP1: MOV A,P1ANL A,#01HJNZ LOOP1INC R4MOV A,R4ANL A,#0FHMOVC A,@A+DPTRMOV P0,ASJMP LOOPTABLE: DB 3FH,06H,5BH,4FH,66H ;段码表DB 6DH,7DH,07H,7FH,6FHDB 77H,7CH,39H,5EH,79H,71H,76HEND实验五数据传送指令练习一、实验目的1、进一步掌握Keil软件的使用。
2、熟悉数据传送指令功能及使用。
二、实验内容1、输入数据传送指令并单步执行输入的指令;2、练习数据传送指令的基本应用。
三、实验步骤1、数据传送指令的功能1)输入如下程序:ORG 0030HMOV A,#0BBHMOV DPTR,#0070HMOVX @DPTR,AMOV R0,#70HMOV @R0,AMOV A,#0CCHXCHD A,@R0SJMP $END2)观察DPTR、A、R0、内部RAM70H和外部RAM70H单元中内容并填入表中第一空行。
3)单步执行完上述程序,重新观察上述寄存器和存储单元中内容并填入表中第二空行。
表1 程序执行前后有关寄存器和RAM单元内容对照表4)分析程序运行结果,并把分析结果和运行结果进行比较。
2、PUSH指令对堆栈的影响1)输入如下程序:ORG 0040HMOV A,#0AAHMOV PSW,#0CCHPUSH ACCPUSH PSWSJMP $END2)观察A、PSW、SP、07H、08H和09H单元中内容,并填入表表。
表2 PUSH指令对堆栈的影响3)单步执行上述程序,重新观察上述寄存器和堆栈区中内容填入表中。
4)分析程序运行结果,并把分析结果和实验结果进行比较,看两者是否相同。
3、编写把A、PSW、DPTR中内容入栈保护并恢复的程序,并验证。
4、编写将内RAM的30H、40H单元内容相互交换的程序,并验证。
5、编程实现交换外RAM 1050H、1060H单元的数据,并运行验证。
四、实验总结:1、堆栈操作的原则是什么?在程序设计中需要保护和恢复数据时应注意什么?2、对内RAM、外RAM及ROM进行数据传送的指令,分别可使用何种寻址方式?实验六算术及逻辑运算指令练习一、实验目的1、熟悉算术及逻辑运算类指令的功能。
2、掌握算术及逻辑运算类指令对标志位的影响。
3、掌握算术、逻辑运算指令的编程应用。
二、实验内容1、求两个16位无符号二进制数的和2、四位十进制数的加法3、算术、逻辑运算指令的基本应用三、实验步骤1、调试程序:求两个16位数的和设内RAM30H和32H开头的两个单元分别存放有两个16位无符号二进制数(低8位在30H 或32H单元,高8位在31H或33H单元),将和存放在30H单元开始的存储区。
ORG 0000HLJMP MAINORG 0030H MAIN: MOV A,30HADD A,32HMOV 30H,A MOV A,31H ADDC A,33H MOV 31H,A SJMP $END要求:选择几组数据测试该程序,如有错,将其改正。
2、编程:四位十进制数的加法:设内RAM中30H和32H开头的两个单元分别存放有两个四位十进制数的压缩BCD码(低8位在30H或32H单元,高8位在31H或33H单元),试编写程序求这两个十进制数的和,并将3、分别编写实现如下功能的程序并运行、验证。
(1)外RAM1000H~1020H单元中8位无符号二进制数求和,结果存放在内RAM30H单元开始的存储区。
(2)外RAM的1000H和2000H单元中分别放着一个8位无符号二进制数X和Y,计算3X+4Y,并将结果存入内RAM的30H单元和31H单元。
(低8位在30H单元)。
(3)将两位十进制数的压缩BCD码转换成ASCII码。
(源数据在内RAM 20H单元,结果存放在内RAM30H开始的两个单元,低字节在31H单元)(4)将内RAM 从30H开始的20个单元全部清零。
四、实验总结:1、算术加、减法指令如何影响PSW中的有关标志位?2、如何实现两个BCD数的减法?实验七汇编语言程序设计一、实验目的:1、练习常见的简单的分支、循环程序结构的设计方法。
2、练习常见的程序调试方法。
二、实验内容:1、编写程序,将内RAM的30H~40H单元存放的单字节数据传送到外RAM中以1000H为起始地址的存储区。
在内RAM的30H-40H随意输入数据,调试并运行程序,观察结果。
2、编写程序,查找外部RAM的1020H-1030H单元中是否有0AAH这个数,如果有,将内RAM的30H单元置为01H,否则将30H单元置为00H。
在外RAM中输入数据,运行程序,观察结果。
3、在内部RAM30-5FH单元存放着一组无符号数,编写程序查找出这些无符号数的最大值,将结果存放于60H单元。
在相关单元中输入一些数据,运行程序,观察实验结果。
4、内RAM从40H单元开始的10个单元中存放着单字节带符号数,编程分别统计出正、负数的个数,并存入50H、51H单元中。
三、实验要求:1、实验前充分预习,写出所需程序2、上机将程序调试正确,并分析程序运行结果四、实验报告要求:写出调试正确的程序。
五、思考题:1、汇编语言程序如何测试和调试?2、在子程序调用和返回指令执行时,PC值如何变化?实验八外部中断实验一、实验电路(如图3.3.45所示)图3.3.45 外部中断实验电路原理图二、实验目的1、熟悉51系列单片机2、了解AT89C51 P1口、P3口的使用方法3、了解键盘的原理及使用方法4、了解发光二极管的原理及使用方法5、掌握外部中断的原理及使用方法6、学习AT89C51的编程、仿真、调试、编译、芯片烧录。
对应文件INT.HEX三、实验器材1、单片机主板2、单片机扩展板3、连接导线若干四、实验注意事项1、单片机主板、单片机扩展板接+5V2、因J14为有极性排阻,故单片机扩展板一定要连GND和VCC,否则发光二极管不亮3、图中粗线部分为要求学生自己连线部分五、实验现象正常情况下8个LED发光二极管循环显示,延迟时间为1秒,当有按键按下即产生外部中断时,8个LED发光二极管全亮,延迟时间为2秒。
六、思考请同学们自己试一下外部中断0。
实验定时器中断一、实验电路(如图3.3.46所示)图3.3.46 定时器中断电路原理图二、实验目的1、熟悉51系列单片机2、了解AT89C51 P1口的使用方法3、掌握定时器、计数器的原理及使用方法4、学习AT89C51的编程、仿真、调试、编译、芯片烧录。