单片机实验教案Word文档下载推荐.docx
《单片机实验教案Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《单片机实验教案Word文档下载推荐.docx(38页珍藏版)》请在冰豆网上搜索。
LJMPSTART
ORG0030H
START:
MOVDPTR,#2000H
MOVXA,@DPTR
ANLA,#0F0H
SWAPA
MOVDPTR,#2001H
MOVX@DPTR,A
MOVDPTR,#2000H
ANLA,0FH
MOVDPTR,#2002H
SJMP$
END
实验一
(2)循环结构程序设计
熟悉MCS-51指令系统,掌握程序设计方法。
编写并调试一个排序子程序,其功能为用冒泡法将内容RAM中几个单元字节无符号的正整数,按从小到大的次序重新排列。
三、程序框图
⑵对片内RAM地址50h~5AH进行不规则置数。
⑶在“P.”状态下键入0000,然后按“STEP”或“EXEC”进入实验项目的调试与运行。
在与PC联机状态下,编译、连接、下载PH51\se05.asm,用连续或单步方式运行程序。
⑵在连续运行状态下,应按“暂停图标”或实验箱上的“暂停按钮”,使系统无条件退出用户运行状态返回监控,然后再用相应的命令键观察与检查片内50~5Ah中内容是否按从小到大排列。
五、思考:
修改程序把50~5Ah中内容按从小到大排列。
LJMPSTART
ORG0030H
MOVR7,#09H
MOVR0,#50H
MOVR6,#00H;
清除标志
START1:
CLRC
MOVA,@R0
INCR0
SUBBA,@R0
JCLOOP1
MOVR6,#01H
DECR0
XCHA,@R0
DECR0
MOV@R0,A
INCR0
LOOP1:
DJNZR7,START1
CJNER6,#00H,START
实验一(3)选择结构程序设计
掌握汇编语言的编程。
编写程序,根据送入的数据转移运行。
⑵在20H中分次送入00、01、02、03。
⑶在“P.”状态下键入0A10,然后按“STEP”或“EXEC”进入实验项目的调试与运行。
在与PC联机状态下,编译、连接、下载PH51\se08.asm,用连续或单步方式运行程序。
(1)在单步运行时每走一步可观察其运行结果。
(2)在连续运行状态下,应按“暂停图标”或实验箱上的“暂停按钮”,使系统无条件退出用户运行状态返回监控,然后观察每次运行程序后,数码管上数字循环情况。
ORG0000H
LJMPSTART
ORG0030H
MOV20H,#00H
MOVA,20H
MOVB,#03H
MULAB
MOVDPTR,#TAB
JMP@A+DPTR
SJMP$
ORG3000H
TAB:
LJMPLOOPA
LJMPLOOPB
LJMPLOOPC
LOOPA:
MOVA,#01H
LOOPA1:
MOVP1,A
LCALLDELAY1S
RLA
LJMPLOOPA1
LOOPB:
MOVA,#03H
LOOPB1:
LJMPLOOPB1
LOOPC:
MOVA,#05H
LOOPC1:
LJMPLOOPC1
DELAY1S:
MOVR7,#10
DELAY1S3:
MOVR6,#200
DELAY1S2:
MOVR5,#250
DELAY1S1:
DJNZR5,DELAY1S1
DJNZR6,DELAY1S2
DJNZR7,DELAY1S3
RET
END
实验二中断实验
熟悉单片机中断概念及中断编程方法。
编写程序,从P3.3输入脉冲,记录输入脉冲个数,并用P1口外部链接的发光二极管显示技术结果。
二、参考程序
ORG0000H
LJMPSTART
ORG0013H
LJMPINT1_COUNT
MOVSP,#60H
MOVA,#00H
SETBIT1;
下降边沿触发方式
SETBEX1;
开启INT1中断
SETBEA
SJMP$
INT1_COUNT:
INCA
MOVP1,A
RETI
END
实验三LED显示实验
一、实验要求
利用实验系统提供的显示设备,动态显示一行数据。
二、实验目的
⑴了解数码管动态显示的原理;
⑵了解用总线方式控制数码管显示。
三、实验说明
本实验系统提供了8位七段码LED显示电路,学生只要按地址输出相应数据,就可以实现对显示器的控制。
四、程序框图
MOV50H,#8CH;
显示字符P.
MOV51H,#40H
MOV52H,#79H
MOV53H,#24H
MOV54H,#30H
MOV55H,#19H
MOV56H,#12H
MOV57H,#02H
LCALLDISPLAY
LJMPLOOP1
DISPLAY:
MOVP2,#0FH
MOVP0,50H
LCALLDELAY20MS
MOVP2,#1FH
MOVP0,51H
MOVP2,#2FH
MOVP0,52H
MOVP2,#3FH
MOVP0,53H
MOVP2,#4FH
MOVP0,54H
MOVP2,#5FH
MOVP0,55H
MOVP2,#6FH
MOVP0,56H
MOVP2,#7FH
MOVP0,57H
LJMPDISPLAY
DELAY20MS:
MOVR7,#20
DELAY1:
MOVR6,#100
DELAY2:
DJNZR6,DELAY2
DJNZR7,DELAY1
RET
DB40H,79H,24H,30H,19H,12H,02H;
0123456的字符码
DB78H,00H,10H,08H,03H,46H,21H,06H,0EH;
789ABCDEF的字符码
TAB1:
DB8CH;
P.的字符码
TAB2:
DB7FH;
空,不显示的字符
键盘电路实验
电路图:
程序:
;
用int1中断实现按键功能,键值存放在4fh单元中
通过P1口输出按键值,用发光二极管显示按键值
通过P2.4--P2.6和三八译码器输出八列按键扫描码
通过P2.0---P2.3读入按键的行值
行列值组合,就是按键的键值
LJMPkey_value
MOV4fH,#00h;
存放按键键值单元
MOVP1,#00H
MOVP2,#0FFH
setbex1
setbit1
setbea
KEY_SCAN:
LCALLDELAY5MS
LJMPKEY_SCAN
DELAY5MS:
MOVR7,#40
KEY_VALUE:
PUSHACC
PUSHPSW
MOVA,P2
MOV4FH,A
POPPSW
POPACC
LED和键盘综合实验
参考程序:
LJMPKEY_VALUE
MOV50H,#0CH;
MOV51H,#0CH
MOV52H,#7FH
MOV53H,#7FH
MOV54H,#7FH
MOV55H,#7FH
MOV56H,#7FH
MOV57H,#0CH