IO并行口直接驱动LED显示.docxVIP

  • 4
  • 0
  • 约2.08千字
  • 约 3页
  • 2022-07-03 发布于江苏
  • 举报
实验三、 I/O 并行口直接驱动 LED 显示 1. 实验任务 如图所示,利用 AT89S51 单片机的 P0 端口的 PO.O— P0.7 连接到一个共阴数码管的 a — h 的 笔段上,数码管的公共端接地。在数码管上循环显示 0 — 9 数字,时间间隔 0.2 秒。 2. 电路原理图 3.程序设计内容 (1. LED 数码显示原理 七段 LED 显示器内部由七个条形发光二极管和一个小圆点发光二极管组成, 根据各 管的极管的接线形式,可分成共阴极型和共阳极型。 LED 数码管的 g~a 七个发光二极管因加正电压而发亮,因加零电压而不以发 亮,不 同亮暗的组合就能形成不同的字形,这种组合称之为字形码,下面给 出共阴极的字形 码见表 2 “0 ” 3FH “ 8” 7FH “1 ” 06H “9” 6FH “2 ” 5BH “ A ” 77H “3 ” 4FH “ b” 7CH a A 66H “ C” 39H a ? 6DH a d 5EH “6 ” 7DH “ E” 79H 〈 7 ” 07H “ 卩 ” 71H (2. 由于显示的数字 0- 9 的字形码没有规律可循,只能采用查表的方式来完成 我们所需 的要求了。这样我们按着数字 码按顺序排好!建立的表格如下所示: 0-9 的顺序,把每个数字的笔段代 TABLE DB 3FH , 06H , 5BH , 4FH , 66H , 6DH , 7DH , 07H , 7FH, 6FH 4 ?程序框图 5. C 语言源程序 #include AT89X51.H #define Disport P0 unsigned char code Disbuff[]={0x3f,0x06,0x5b,0x4f,0x66, 0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71}; 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;dispcount16;dispcount++) { Disport=Disbuff[dispcount]; delay02s(); RP 胪 7* ■:TE X 1 ■ £ ■L ■ £ ■ L .N O 3 3 3 a ■ ~PO.O ■ ~ PO.1/AD1 PO.2/AD2 PO.3/MI3 PO^AD4 PO.5/AD5 PO.6/ADB PO.7/AD7 3 =P2 = P2O/AB P2.1/A9 P2.2/A1 D P2.3ZM 1 P2J/A1 2 P2 启 问 3 P2.6JIA1 4 P2.7/A15 P3.CWRXD P3im_ P32INTT P3.3INT1 P3.4JTT O L 再 2 2 26 Pf 1 J1 J 1 4

文档评论(0)

1亿VIP精品文档

相关文档