标题:
通过4个74HC573控制16个led,在摇晃的过程中显示字符,为什么显示的字符出现乱码
[打印本页]
作者:
小毛孩
时间:
2015-6-7 08:51
标题:
通过4个74HC573控制16个led,在摇晃的过程中显示字符,为什么显示的字符出现乱码
#include <reg52.h>
#define uint unsigned int
#define uchar unsigned char
sbit w1=P2^0;//位选
sbit w2=P2^1;//位选
sbit d5=P2^6;//段选
sbit d6=P2^7;//段选
uchar code ni[]={0xFF,0x7F,0xFE,0xFF,0xF9,0xFF,0xE0,0x00,0x1F,0xFF,0xFD,0xF7,0xFB,0xCF,0xE7,0x3F,
0x0F,0xFD,0xEF,0xFE,0xEC,0x01,0xEF,0xFF,0xEF,0x7F,0xEB,0x9F,0xE7,0xE7,0xFF,0xFF};/*你 */
uchar m;
void delay(uint z)
{ //延时
uchar x,y;
for(x=360;x>0;x--)
for(y=z;y>0;y--);
}
void init() //初始化
{
P2=0;
EA=1; //开总中断
EX0=1;//启动外部中断0
IT0=1;//下降沿触发
}
void display()
{
uchar i;
P2=0;
w1=1;//开位选
w2=1;//开位选
P0=0xff;//对所有的位选写入数据
w1=0; //关位选
w2=0;
delay(10);
d5=0;//开段选
d6=0;
d5=1;
d6=1;
for(i=0;i<16;i++)
{
P0=ni[i*2]; //段选写入数据
P0=ni[i*2+1];
delay(50);
}
d5=0;
d6=0;
}
void main()
{
init();
while(1)
{;}
} //外部中断
void start () interrupt 0
{
m=~m; //来回只点亮一次
if(m==0)
display();
}
作者:
lxa0
时间:
2015-6-7 11:19
上电路图~~~~~~~~~~~~~~~
作者:
digger63
时间:
2015-6-14 22:49
http://www.doyoung.net/works/SHOOK16/index.html
建议参考下杜洋的。
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1