单片机实验报告
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
单⽚机实验报告
单⽚机实验报告
姓名学号
时间地点
实验题⽬软件开发环境和简单程序设计
⼀、实验⽬的
1. 学习I/O⼝的使⽤⽅法。
2. 学习延时⼦程序、查表程序的编写和使⽤。
⼆、实验主要仪器及环境
PC机、W A VE软件、仿真器+仿真头、实验板、电源等。
三、实验内容
1、P0⼝做输出⼝,接⼋只LED,编写程序,使LED循环点亮,间隔0.5秒。
2、P1.0--P1.7作输⼊⼝接拨动开关S0--S7;P0.0--P0.7作输出⼝,接发光⼆极管L1—L8,编写程序读取开关状态,将此状态在对应的发光⼆极管上显⽰出来,同时将开关编号(0—7)显⽰在LED数码管上
四、实验步骤
1、先编写好程序并通过伟福仿真软件调试。
2、将编好的程序通过仿真器掻到实验板上进⾏相应的实验。
五、实验程序流程框图、实验程序
1. ORG 0000H
AJMP MAIN
MAIN: MOV A,#01H;置初值
LOOP: MOV P0,A ;数据输出
RL A ;左移⼀位
ACALL DELAY
SJMP LOOP
DELAY:MOV R0,#10 ;延时0.5s
K1:MOV R1,#125
K2:MOV R2,#200
K3:DJNZ R2,K3
DJNZ R1,K2
DJNZ R0,K1
RET
P0⼝循环点灯框图
AJMP START
ORG 0030H
START: MOV DPTR,#TABLE
SETB P1
MOV P2,#00H
MAIN: MOV A,P1 ;读P1⼝值
CJNE A,#0FFH,LOOP;判断是否有输⼊
SJMP MAIN
LOOP: MOV P0,A
MOV R0,#00H
LOOP1:RRC A
JNC LOOP2
INC R0 ;计数
AJMP LOOP1
LOOP2:MOV A,R0
MOVC A,@A+DPTR ;查表
MOV P2,A ;P2⼝输出
AJMP MAIN
TABLE:DB 03FH 06H 5BH 4FH 66H 6DH 7DH 07H
P1⼝输⼊/输出框图
六、实验程序分析、讨论及测试
1、实验1欲改变LED循环的⽅向程序应如何修改?循环的时间间隔由什么决定?写出间隔时间为1秒的延时程序并说明计算⽅法。
答:(1)实验1如要改变LED的循环⽅向应把LOOP⼦程序中的RL A 指令改成RR A和MAIN: MOV A,#01H 改成MAIN: MOV
A,#80H。
(2)循环的时间间隔由延时⼦程序决定
(3)DEL:MOV R0,#20
DEL0:MOV R1,#200
DEL1:MOV R2,#125
DEL2:DJNZ R2,DEL2
DJNZ R1,DEL1
DJNZ R0,DEL0
2、结合实验板线路,说明如何调整LED的亮度。
答:通过调整其空⽐或扫描频率来调整LED的亮度。
3、MCS—51单⽚机I/O⼝的输⼊/输出逻辑电平是多少?其负载能⼒有多⼤?若⽤I/O⼝控制⼀个继电器(⼯作电压12V,⼯作电流100mA)电路该如何设计?答:(1)I/O⼝输出、输⼊的逻辑电平是0或1。
(2)2mA
(3)增加放⼤电路
六、程序测试报告:
实验1执⾏指令后,在硬件上看到LED灯从右到左循环亮起,间隔0.5秒左右。
实验2开关S0-S7先全部置于断开状态,然后在硬件开关上按下第i个键,对应的LED灯持续亮着,并会在数码管上显⽰数字i,注意每次改变不同开关的状态时,前⼀个按下的开关要置回断开状态。