《I/O并行口直接驱动LED显示》由会员分享,可在线阅读,更多相关《I/O并行口直接驱动LED显示(5页珍藏版)》请在金锄头文库上搜索。
1、7 I/OI/O 并行口直接驱动并行口直接驱动 LEDLED 显示显示1.1. 实验任务实验任务 如图 13 所示,利用 AT89S51 单片机的 P0 端口的 P0.0P0.7 连接到一个共阴数 码管的 ah 的笔段上,数码管的公共端接地。在数码管上循环显示 09 数字, 时间间隔 0.2 秒。2.2. 电路原理图电路原理图 图 4.7.1 3.3. 系统板上硬件连线系统板上硬件连线 把“单片机系统”区域中的 P0.0/AD0P0.7/AD7 端口用 8 芯排线连接到“四路 静态数码显示模块”区域中的任一个数码管的 ah 端口上;要求:P0.0/AD0 与 a 相连,P0.1/AD1 与 b
2、 相连,P0.2/AD2 与 c 相连,P0.7/AD7 与 h 相 连。4.4. 程序设计内容程序设计内容 (1 LED 数码显示原理 七段 LED 显示器内部由七个条形发光二极管和一 个小圆点发光二极管组成,根据各管的极管的接 线形式,可分成共阴极型和共阳极型。 LED 数码管的 ga 七个发光二极管因加正电压而 发亮,因加零电压而不以发亮,不同亮暗的组合 就能形成不同的字形,这种组合称之为字形码, 下面给出共阴极的字形码见表 2 “0”3FH “8”7FH “1”06H “9”6FH “2”5BH “A”77H “3”4FH “b”7CH “4”66H “C”39H “5”6DH “d”
3、5EH “6”7DH “E”79H “7”07H “F”71H (2 由于显示的数字 09 的字形码没有规律可循,只能采用 查表的方式来完成我们所需的要求了。这样我们按着数字 09 的顺序,把每个数字的笔段代码按顺序排好!建立的 表格如下所示:TABLE DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH5 5程序框图程序框图 图 4.7.2 6 6 汇编源程序汇编源程序 ORG 0 START:MOV R1,#00H NEXT:MOV A,R1 MOV DPTR,#TABLE MOVC A,A+DPTR MOV P0,A LCALL DELAY INC R1
4、 CJNE R1,#10,NEXT LJMP START DELAY:MOV R5,#20 D2:MOV R6,#20 D1:MOV R7,#248 DJNZ R7,$ DJNZ R6,D1 DJNZ R5,D2 RET TABLE:DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH END 7 7 C C 语言源程序语言源程序 #include unsigned char code table=0x3f,0x06,0x5b,0x4f,0x66, 0x6d,0x7d,0x07,0x7f,0x6f; unsigned char dispcount; void delay02s(void) unsigned char i,j,k; for(i=20;i0;i-) for(j=20;j0;j-) for(k=248;k0;k-); void main(void) while(1) for(dispcount=0;dispcount10;dispcount+) P0=tabledispcount; delay02s();