数码管静态显示实验 单片机实验报告.docx

数码管静态显示实验 单片机实验报告.docx

数码管静态显示实验 实验目的 1.熟悉数码管的功能和使用。 2.熟悉延时子程序的编写和使用。 3.初步熟悉单片机软硬件设计方法。 二.实验仪器 计算机、Keil编程环境、普中下载软件、单片机开发实验仪。 三.实验原理与内容 P0口做输出口,接一个共阳极数码管,要求循环显示。共阳极数码管字形表 (0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F,-共17个字形码) 0C0H,0FCH,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H,88H,83H,0C6H,0A1H,86H,8EH,0BFH。 四. 实验线路及原理 五. 注意事项 安装实验仪时,先接通讯串口线,再开电源开关。 实验过程中,在进行接插线操作时,必须先关闭电源。 六. 实验步骤 1、主机连线说明: JP10 单片机P0口(8位) JP3 共阳极数码管 七. 实验步骤 打开Keil编程软件编写程序,并进行汇编产生HEX文件。 (1)流程图 (2)汇编源程序 ORG??00H LJMP??MAIN???;初始位置直接跳转MAIN主程序 START; ???MOV??R2,#0?;赋值R2=0 ???MOV??R5,#17;赋值R5=17 MAIN: ???MOV?DPTR,#TAB;将TAB地址传送给数据指针 ???MOV?A,R2????????;赋值累加器A=0 ???MOVC?A,@A+DPTR;将数组第A+1的数据赋值A ???MOV??P0,A??????;赋值P0数据的数据 ???INC???R2????????;R2加一 ???LCALL??DELAY??;调用延时子程序 ???DJNZ??R5,MAIN??;R5减一不为0跳转主程序MAIN ???JMP??START?????;跳转START RET DELAY:???MOV?R0,#5????;延时子程序 ?DL2:????MOV?R7,#200 ?DL1:????MOV?R6,#250 ?????????DJNZ?R6,$ ????????????????DJNZ?R7,DL1 ????????????????DJNZ?R0,DL2 TAB:DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H,88H,83H,0C6H,0A1H,86H,8EH, ?????????END C语言源程序 #include reg52.h #define uint unsigned int Uint table [ ]=(0xC0,0xF9, 0xA4, 0xB0, 0x99, 0x92, 0x82, 0xF8, 0x80, 0x90, 0x88, 0x83, 0xC6, 0xA1, 0x86, 0x8E, 0xBF) Void delay (int z) { int x,y; for (x=z;x0;x--) for (y=100;y0;i++) } Void main ( ) { int i ; While (1) { for (i=0;i17;i++) { P0=table [i]; delay (1000) //延时 } } } 点击普中下载软件,检查设置是否正确,然后下载到实验仪的单片机中。 运行程序看结果。反复修改和下载。 八.实验结果及总结 程序编译无误,生成hex文件通过普中下载软件,将程序下载到实验仪的单片机中,观察到单片机中数码管依次显示1,2,3,4,5,6,7,8,9,A,B,C,D,E,F。 总结:本次实验首先应测试静态数码管是共阴极还是共阳极,要注意区分这两种不同类型,为了显示数字与字符,必须对数字或字符进行编码。

文档评论(0)

1亿VIP精品文档

相关文档