要求:用单片机的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 中断
|