标题:
单片机4位时钟8位小灯闪烁仿真与程序
[打印本页]
作者:
崔振男
时间:
2018-9-29 09:35
标题:
单片机4位时钟8位小灯闪烁仿真与程序
单片机同时实现4位时钟8位小灯闪烁的仿真原理图如下(proteus仿真工程文件可到本帖附件中下载)
0.png
(11.88 KB, 下载次数: 50)
下载附件
2018-9-29 17:38 上传
0.png
(14.05 KB, 下载次数: 45)
下载附件
2018-9-29 17:39 上传
单片机源程序如下:
#include<reg51.h>
#include<intrins.h>
#define uchar unsigned char
#define uint unsigned int
/*
sbit p20=P2^0;
sbit p21=P2^1;
sbit p22=P2^2;
sbit p23=P2^3;
*/
void Disp();
void Delay_ms(uint delay);
uchar code LED_Val[10] = {0xC0,0xF9,0xA4,0xb0,0x99,0x92,0x82,0xf8,0x80,0X98};//0-9
uchar data num[4];
uchar data led_point[4]={0xfe,0xfd,0xfb,0xf7};
uchar i,s,m,h,second,jjjj,HHHH,LED=0XFE;
uint ge,shi,bai,qian,display_number,bai1,shi1;
void Disp()
{
qian=display_number/1000 ;
bai1= display_number%1000 ;
bai=bai1/100;
shi1=bai1%100;
shi=shi1/10;
ge=shi1%10;
num[0] = ge;
num[1] = shi;
num[2] = bai;
num[3] =qian;
for(i=0;i<4;i++)
{
P1=LED_Val[num[i]];
P2=~led_point[i];
Delay_ms(2);
P1=0XFF;
P2=~0XFF;
}
}
//////////// /////////////////////////
void Delay_ms(uint delay)
{
uchar j;
while(delay--)
{
for(j=125;j>0;j--)
{;}
}
}
void chushihua()
{
TMOD=0x01;
TH0=-52500;
TL0=-52500;
ET0=1;
EA=1;
TR0=1;
}
void time_t0(void ) interrupt 1 using 1
{
TH0=-52500;
TL0=-52500;
//TH0=65534;
//TL0=65534;
second++;
if(second ==40)
{
jjjj++;
if(jjjj==7)
{
P3=LED;
LED=LED<<1;
HHHH++;
if(HHHH>8){LED=0XFE;HHHH=0;}
jjjj=0;
}
second=0;
s++;
if(s == 60)
{
m++;
s =0;
if(m==60)
{
m=0;
h++;
if(h==24)
{
h=0;
}
}
}
}
}
////////////////////////////////////////////////
void main()
{
chushihua();
//display_number=1234;
while(1)
{
display_number=h*100+m;
Disp();
}
}
复制代码
所有资料51hei提供下载:
4位时钟8位小灯闪烁.zip
(57.15 KB, 下载次数: 16)
2018-9-29 09:35 上传
点击文件名下载附件
下载积分: 黑币 -5
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1