at89c518*8点阵的程序怎么写?

2024年11月20日 04:46
有1个网友回答
网友(1):

由于你还不怎么了解点阵,你的问法有点儿笼统啊,点阵有很多种,接法也可以有多种方法,再次给你一个最常用最经典的接法个程序,加仿真截图。(点阵上面显示4)

#include

#define uint unsigned int

#define uchar unsigned char

sbit sh=P2^0;

sbit ds=P2^1;

sbit st=P2^2;

sbit hc=P1^3;

uchar code table[]={0x00,0x04,0x0C,0x14,0x24,0x7F,0x04,0x04}; 

void delay(uint x)

{

uchar t;

while(x--) for(t=0;t<120;t++);

}

void shift(uchar dat)

{

uchar i;

for(i=0;i<8;i++)

{

sh=0;

ds=dat&0x01;

sh=1;

dat>>=1;

}

st=0;

st=1;

}

void main()

{

uchar i;

while(1)

{

for(i=0;i<8;i++)

{

hc=1;

P1=0x00|i;

shift(table[i]);

hc=0;

delay(1);

}

}

}

译码器的实现:我们选用的是74ls138译码器,通过对74ls138芯片A,B,C和E2,E3的控制,就可以

控制译码器真确的的输出,去控制扫描点阵的8个输出引脚,E2,E3是低电平有效,低电平时有效的控制

点阵的现实,我们在每一次送数时,先打开译码器的E2,E3引脚,送完数之后再去打开这两个引脚,

具体的用法在主程序里面有所体现,在进行程序控制之前,先要对E2,E3进行位定义。