数码管显示按键键号实验 单片机实验报告.docx

数码管显示按键键号实验 单片机实验报告.docx

数码管显示按键键号实验 一.实验目的 1.熟悉数码管的功能和使用。 2.熟悉延时子程序的编写和使用。 3.熟悉独立按键的使用和编程方法。 二.实验仪器 计算机、Keil编程环境、普中下载软件、单片机开发实验仪。 三.实验原理与内容 P0口做输出口,接一个共阳极数码管,要求循环显示。共阳极数码管字形表同上一实验。 独立按键为K1—K8 接P2口 。 四. 实验线路及原理 五. 注意事项 1.安装实验仪时,先接通讯串口线,再开电源开关。 2.实验过程中,在进行接插线操作时,必须先关闭电源。 六. 实验步骤 1、主机连线说明: JP10 单片机P0口(8位) JP3 共阳极数码管 JP11 单片机P2口(8位) JP5 8个独立按键 七. 实验步骤 1.打开Keil编程软件编写程序,并进行汇编产生HEX文件。 (1)流程图 (2)源程序 ORG?0000H????? LJMP?MAIN???;初始地址0000H跳转MAI程序 ORG?0030H?? MAIN:???MOV?SP,#60H??;赋值SP=60H MOV?A,P2??????;A=P2 CJNE?A,#0FFH,LP3?;a≠FFH跳转LP3 ????????LJMP?LP1??????;跳转LP1 LP2:????LCALL?DEY10??;调用DEY10延时子程序 ????????MOV?A,P2?????;赋值A=P2 CJNE?A,#0FFH,LP3?;A≠FFH时跳转LP3 LJMP?LP1?????;跳转LP1 LP3:????MOV?R3,#1???;R3=1 ????????MOV?R2,#8???;R2=8 LP4:????RRC?A???????;A带进位循环右移 ????????JNC?LP5??????;无进位跳转LP5 INC?R3???????;R3?加一 DJNZ?R2,LP4??;R2减一≠0跳转LP4 LJMP?LP1?????;跳转LP1 LP5:????MOV?A,P2?????;A=P2 ????????CJNE?A,#0FFH,LP5?;A≠FFH跳转 LCALL?DISPLAY?;调用 LP1:????LJMP?MAIN???;跳转 DISPLAY: ????????MOV?A,R3 MOV?DPTR,#500H?;将数组首地址赋给数据指针寄存器 MOVC?A,@A+DPTR?;根据R3的值取第几个数据 MOV?P0,A??;P0=A RET DEY10:?MOV?R6,#200 ???????MOV?R7,#0 DEY11:?DJNZ??R7,DEY11 ???????DJNZ??R6,DEY11??;执行??256×200次后返回调用处 RET ??? ??? ? ? dey1:?MOV?R5,#40 ??????DEYY1:LCALL?DEY10;调用延时子程序DEY10 ??DJNZ?R5,DEYY1?????;256×200×40 ??RET???????????????;返回调用处 ??ORG?500H????;数组从500H开始存储 TAB:??????DB????0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H DB??80H,90H,88H,83H,0C6H,0A1H,86H,8EH,0BFH END 2.点击普中下载软件,检查设置是否正确,然后下载到实验仪的单片机中。 3.运行程序看结果。反复修改和下载。 八.实验结果及总结 程序编写无误生成HEX文件,通过普中下载软件,将程序下载到实验仪的单片机中,8个独立按键随机按,可观察到数码显示管显示对应的按键数。 总结:通过这次数码管显示按键键号的实验完成,加深了数码管的使用方法和对操作过程熟悉,明白了数码管的基本原理,学会了共阴极和共阳极的不同,以及可以写出两种不同的显示码,还了解到了如何判断按键是否按下。

文档评论(0)

1亿VIP精品文档

相关文档