标题:
单片机流水灯怎么和数码管一起工作
[打印本页]
作者:
chengdeshi
时间:
2018-1-6 08:08
标题:
单片机流水灯怎么和数码管一起工作
这样可以吗?
#include <reg51.h>
#include <intrins.h>
#define uchar unsigned char
#define uint unsigned int
#define leddata P0
sbit cs1=P3^0;sbit cs2=P3^1;sbit wr=P3^2;
uchar c=0,t=8;
uchar code ledcode[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
uchar buf[8];
void delay(uint i){while(i--);}
void display()
{
uchar i,j=0x7f;
for(i=0;i<8;i++)
{
cs1=0;cs2=1;
leddata=ledcode[buf[i]];wr=1;wr=0;
cs1=1;cs2=0;
leddata=j;wr=1;wr=0;
delay(100);
j=_cror_(j,1);
leddata=0xff;wr=1;wr=0;
}
}
void main()
{
//uchar t;
TMOD=0x01;
EA=TR0=ET0=1;
while(1){
buf[0]=t;
buf[1]=buf[2]=buf[3]=buf[4]=buf[5]=buf[6]=buf[7]=0xff;
display();
}
}
time0() interrupt 1
{
TL0=(65536-50000)%0X100;
TH0=(65536-50000)/0X100;
c++;
if(c>=20)
{
c=0;
if(t>0)t--;
delay(100);
P1=0x3f;
delay(50000);
P1=0xcf;
delay(50000);
P1=0xf3;
delay(50000);
P1=0xfc;
delay(50000);
P1=0xff;
}
}
复制代码
作者:
le51
时间:
2018-1-6 19:19
定时器中断
作者:
yzwzfyz
时间:
2018-1-6 20:55
流水灯与LED是一马事。你都将它们看作是一张张的小灯,就OK了。
流水也吧,扫描显示也吧。都是在不同的时段里,将不同的明暗信号输出到各个灯上而矣。
把显示分成若干个段,例出各个时段每个灯是明是暗的逻辑关系,问题就基本解决了。
作者:
admin
时间:
2018-1-7 18:01
参考:
http://www.51hei.com/bbs/dpj-85522-1.html
作者:
chengdeshi
时间:
2018-1-11 14:15
admin 发表于 2018-1-7 18:01
参考:http://www.51hei.com/bbs/dpj-85522-1.html
有简单点的吗?
作者:
zl2168
时间:
2018-1-11 18:38
先学理论,打基础,就不会有这么多问题了,本坛至少有50%的问题属于此类情况。
作者:
yesruhdtuj
时间:
2018-1-11 21:41
与LED是一马事。你都将它们看作是一张张的小灯,就OK了。 流水也吧,扫描显示也吧。都是在不同的时段里,将不同的明暗信号输出到各个灯上而矣。 把显示分成若干个段,例出各个时段每个灯是明是暗的逻辑关系,问题就基本解决了。
作者:
逗逗
时间:
2018-1-11 23:11
学单片机没有硬件,就等于白学
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1