标题: 单片机控制8×8LED点阵屏显示数字的仿真+程序问题 但是hex可以 [打印本页]

作者: 卵都不会    时间: 2018-12-17 20:22
标题: 单片机控制8×8LED点阵屏显示数字的仿真+程序问题 但是hex可以
要求:用单片机的P0口外接74LS245作为控制8×8 LED点阵屏的行驱动,列选通由P1端口控制,程序运行时,8×8 LED点阵屏依次循环显示数字0~9。刷新时间由定时器T1的定时中断来完成。
二、设计方案:
方案1:74LS245驱动芯片加上单片机8255和8X8点阵进行设计。
优点:电路相对稳定,易实现实验方案
缺点:连接的线多,切要对74LS245进行了解,写程序麻烦
方案2:只用单片机8255和8X8点阵来设计,本次用这个
优点;简单,连线少,程序简单
缺点:电路没有方案1的稳定
三、理论设计
软件流图                       
开始
                                ↓
                          定时器1初始化
                                ↓
                              主循环←←←←↑
                                ↓       无↑ ↑
             定时中断函数→→有无中断→→ → ↑ ↑
                                ↓有         ↑
                                ↓           ↑
                          调用显示子函数     ↑
                                ↓→→→→→→↑
原理图;
时钟电路和复位电路;
显示电路;
主要程序段
显示部分;
signed char code tab[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};//给单片机端口赋值为低电平时灯亮
signed char code digittab[10][8]={{0x00,0x00,0x3e,0x41,0x41,0x41,0x3e,0x00},    //0
{0x00,0x00,0x00,0x00,0x21,0x7f,0x01,0x00},    //1
{0x00,0x00,0x27,0x45,0x45,0x45,0x39,0x00},    //2
{0x00,0x00,0x22,0x49,0x49,0x49,0x36,0x00},    //3
{0x00,0x00,0x0c,0x14,0x24,0x7f,0x04,0x00},    //4
{0x00,0x00,0x72,0x51,0x51,0x51,0x4e,0x00},    //5
{0x00,0x00,0x3e,0x49,0x49,0x49,0x26,0x00},    //6
{0x00,0x00,0x40,0x40,0x40,0x4f,0x70,0x00},    //7
{0x00,0x00,0x36,0x49,0x49,0x49,0x36,0x00},    //8
{0x00,0x00,0x32,0x49,0x49,0x49,0x3e,0x00}    //9
};
定时部分:
TMOD=0x10; //设置定时器1为工作方式1
TH1=(65536-3000)/256;
TL1=(65536-3000)%256;//定时600000us
TR1=1; //启动定时器1
ET1=1; //开启定时器1 中断

0.png (48.24 KB, 下载次数: 40)

0.png

0.png (11.96 KB, 下载次数: 47)

0.png

8×8 LED点阵屏显示数字的设计.zip

44.48 KB, 下载次数: 47

_c样本.7z

20.96 KB, 下载次数: 1


作者: zhang1314hong    时间: 2018-12-22 11:49
正在琢磨这个事,怎么使用数组,感谢分享!




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1