理类似,但要注意电路板上有两处用到74HC138译码的模块(还有一处是液晶显示模块),所以各个数码管的位地址不可与液晶显示屏的重复,即000和001不可用。还有,数码管通常配合键盘使用。注意以上几点,就很容易实现功能了。
主要程序如下:unsigned char Ledbuff[LEDs] = {0x00};
unsigned char Num =0;
sbit CS8255 = P3^5;
unsigned char shuma[LEDs] = //八段数码管
{
LED0, LED1, LED2, LED3, LED4, LED5, LED6, LED7
};
code unsigned char LEDMAP[] = //八段显示管键码
{
0x39, 0x5e, 0x79, 0x71,
0x7f, 0x6f, 0x77, 0x7c,
0x66, 0x6d, 0x7d, 0x07,
0x3f, 0x06, 0x5b, 0x4f
};
(3)点阵模块:点阵就我理解就是利用发光二极管的特性,结合一定的程序来实现字符显示的工具。其中从原理图可以看出8255的PA口控制点阵的行,单片机的P1口控制列。当某一行的PA口为高电平,某一列的P1口为低电平时,发光的二极管的位置就确定下来了。
主要程序是:code uchar H[] = {0X01,0X02,0X04,0X08,0X10,0X20,0X40,0X80};//
行
code uchar L[]={0xf7,0xf7,0x80,0xb6,0x80,0xf7,0xf7,0xf7};//
列
void dianzhen()
{
uchar i,k;
for(i=0;i<8;i++)
{
for(k=0;k<100;k++)