欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136
標題:
AT89C51單片機為核心的可調電子時鐘時鐘仿真+代碼
[打印本頁]
作者:
jojojojo
時間:
2018-11-22 19:27
標題:
AT89C51單片機為核心的可調電子時鐘時鐘仿真+代碼
AT89C51單片機為核心的可調電子時鐘時鐘,有原程序(附上注解)
仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)
0.png
(13.44 KB, 下載次數: 55)
下載附件
2018-11-23 03:14 上傳
單片機源程序如下:
#include<reg52.h>
#define uchar unsigned char
#define uint unsigned int
uchar code table[]=" HH:MM:ss! ";
uchar code table1[]="WWW.BAIDU.COM";
sbit E=P3^4; //液晶使能端
sbit RS=P3^5; //液晶數據命令選擇端
sbit dula=P2^6; //申明U1鎖存器的鎖存端
sbit wela=P2^7; //申明U2鎖存器的鎖存端
sbit s_add=P2^0;
sbit s_dec=P2^1;
sbit m_add=P2^2;
sbit m_dec=P2^3;
sbit h_add=P2^4;
sbit h_dec=P2^5;
sbit fun=P3^0;
sbit add=P3^1;
sbit dec=P3^2;
uchar num ,ssf;
int time=0;
char hh=12;
char mm=22;
char ss=33;
char funnum=0;
void delay(uint z)
{
while(z--);
}
void write_com(uchar com)
{
RS=0;
P0=com;
delay(5);
E=1;
delay(5);
E=0;
}
void write_data(uchar date)
{
RS=1;
P0=date;
delay(5);
E=1;
delay(5);
E=0;
}
void init()
{
dula=0;
wela=0;
E=0;
write_com(0x38);//設置16X2顯示,5X7點陣,8位數據接口
write_com(0x0c);//設置開顯示,不顯示光標
write_com(0x06);//寫一個字符后地址指針加1
write_com(0x01);//顯示清零,數據指針清零
}
void Timer0Init(void) //1毫秒@12.000MHz
{
TMOD &= 0xF0; //設置定時器模式
TMOD |= 0x01; //設置定時器模式
TL0 = 0x18; //設置定時初值
TH0 = 0xFC; //設置定時初值
TF0 = 0; //清除TF0標志
TR0 = 1; //定時器0開始計時
EA=1;
ET0=1;
}
void main()
{
init();
Timer0Init();
write_com(0x80);
for(num=0;num<11;num++)
{
write_data(table[num]);
delay(5);
}
write_com(0x80);
while(1)
{
if(ssf==1)
{ ssf=0;
write_com(0x80+3);
write_data((hh/10)+'0');
write_data((hh%10)+'0');
write_com(0x80+6);
write_data((mm/10)+'0');
write_data((mm%10)+'0');
write_com(0x80+9);
write_data((ss/10)+'0');
write_data((ss%10)+'0');
}
if (h_add==0)
{
ssf=1;
while(!h_add);
hh++;
if(hh==24) hh=0;
}
if (h_dec==0)
{ ssf=1;
while(!h_dec);
hh--;
if(hh==-1) hh=23;
}
if (m_add==0)
{
ssf=1;
while(!m_add);
mm++;
if(mm==60) mm=0;
}
if (m_dec==0)
{ ssf=1;
while(!m_dec);
mm--;
if(mm==-1) mm=59;
}
if (s_add==0)
{
ssf=1;
while(!s_add);
ss++;
if(ss==60) ss=0;
}
if (s_dec==0)
{ ssf=1;
while(!s_dec);
ss--;
if(ss==-1) ss=59;
}
if(fun==0)
{ while(!fun) ;
funnum++; EA=0;
if(funnum==4) {EA=1; funnum=0;}
}
if(funnum==1)
{if(add==0)
{ while(!add); hh++;if(hh==24)hh=0; ssf=1;}
if(dec==0)
{ while(!dec);
hh--;
if(hh==-1)hh=23;
ssf=1;
}
}
if(funnum==2)
{if(add==0)
{ while(!add); mm++;if(mm==60)mm=0; ssf=1; }
if(dec==0)
{ while(!dec); mm--;if(mm==-1)mm=59; ssf=1; }
}
if(funnum==3)
{if(add==0)
{ while(!add); ss++;if(ss==60)ss=0; ssf=1; }
if(dec==0)
{ while(!dec); ss--;if(ss==-1)ss=59; ssf=1; }
}
}
}
time0() interrupt 1
{
TL0 = 0x18; //設置定時初值
TH0 = 0xFC; //設置定時初值
time++;
if(time==1000)
{ time=0; ssf=1;
ss++;
if(ss==60)
{ ss=0;
mm++;
if(mm==60)
{ mm=0;
hh++;
if(hh==24)
{ hh=0;
}
}
}
}
}
復制代碼
0.png
(6.98 KB, 下載次數: 64)
下載附件
2018-11-23 03:14 上傳
所有資料51hei提供下載:
可調時鐘.rar
(14.12 KB, 下載次數: 57)
2018-11-22 19:27 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
作者:
847860930
時間:
2019-3-4 09:11
你好 這個功能能介紹下嗎
作者:
yz15955432587
時間:
2019-3-14 13:58
很好,收藏了
歡迎光臨 (http://www.raoushi.com/bbs/)
Powered by Discuz! X3.1