at89c518*8点阵的程序怎么写?
由于你还不怎么了解点阵,你的问法有点儿笼统啊,点阵有很多种,接法也可以有多种方法,再次给你一个最常用最经典的接法个程序,加仿真截图。(点阵上面显示4)
#include<reg51.h>
#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进行位定义。
2024-09-19 广告