单片机技术与应用实验指导书
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验一编译软件熟悉及编程指令练习
一、实验目的
熟悉单片机仿真开发软件Keil UV2的编程、编译、调试环境。
进一步熟悉MCS-51单片机指令系统。
二、实验仪器
微机一台
三、实验源程序
ORG 0030H
MOV A,#02H (A)=
MOV SP,#52H (SP)=
MOV 51H,#0FFH (51H)=
MOV 52H,#0FFH (52H)=
POP DPH (DPH)= (SP)=
POP DPL (DPH)= (SP)=
MOV DPTR, #4000H (DPTR)=
RL A (A)=
MOV B, A (B)=
MOVC A, @A+DPTR (A)=
PUSH Acc (SP)= (51H)=
MOV A, B (A)=
INC A (A)=
MOVC A,@A+DPTR (A)=
PUSH Acc (SP)= (52H)=
RET (PC)= (SP)=
ORG 4000H
DB 10H,80H,30H,50H,30H,50H
四、实验步骤
1. 打开WAVE软件,设置仿真器、仿真头、CPU及晶振频率,勾选使用Keil编译器,Keil软件模拟器,生成HEX文件。
2. 新建文件,输入实验程序,保存为*.ASM文件。
3. 汇编,浏览CODE 窗口的指令代码。
4. 调试,采用单步运行,观察CPU窗口和DATA窗口各SFR和RAM的变化,并将每步运行结果写入各指令的后面。
五、实验思考
1. PC、DPTR都用于提供地址,其区别是什么。
2.说明RET指令的功能。
实验二定时与中断
一、实验目的:
掌握定时/计数器、中断初始化程序的设计。
掌握使用定时/计数器的方式1、方式2的编程方法
掌握中断的编程方法。
二、实验设备
lab6000系列通用微控制器实验系统一台
微机一台
三、实验硬件电路:
四、实验程序设计
任务一:
使定时器T0 工作于定时工作方式1,编写产生2S的周期方波程序,使P1.0口的发光二极管循环闪亮。
任务二:
使定时器T0 工作于计数工作方式2,每按p3.4引脚上的开关6次,P1.0口的发光二极管循环闪亮。
五、思考题
1.定时器工作于方式1,方式2时其最大定时时间是多少(设单片机的晶振为6MHZ)
2.当执行完RETI指令,程序将返回何处运行?
六、参考程序
程序一
ORG 0000H;程序起始地址
LJMP MAIN;
ORG 000BH;T0中断入口地址
LJMP ITOP;中断入口地址
ORG 0030H
MAIN:MOV B,#10;循环次数
MOV TMOD,#01H;T0定时方式1
MOV TH0,#3CH;100ms初值高位 MOV TL0,#0B0H;100ms初值低位 SETB EA;开总中断
SETB ET0;开T0中断
SETB TR0;启动
LP: SJMP LP;循环等待中断ITOP: MOV TH0,#3CH 载入初值
MOV TL0,#0B0H
DJNZ B,LOOP,
DE0: CPL Pl.0;
MOV B,#10
CLR Pl.0
LOOP: RETI
程序二:
ORG 0000H;程序起始地址
LJMP MAIN;
ORG 000BH; T0中断入口地址
CPL P1.0;
RETI
ORG 0030H
MAIN: MOV TMOD,#06H;T0定时方式2
MOV TH0,#0FAH;置初值
MOV TL0,#0FAH;
SETB EA;开总中断
SETB ET0;开T0中断
SETB TR0;启动
LP:SJMP LP;循环等待中断。