久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费
標(biāo)題:
數(shù)字鐘的設(shè)計(jì)
[打印本頁(yè)]
作者:
hantao
時(shí)間:
2021-7-26 18:19
標(biāo)題:
數(shù)字鐘的設(shè)計(jì)
/*******************************************************************************
* 實(shí)驗(yàn)名 : 數(shù)字鐘實(shí)驗(yàn)
* 使用的IO : P0,P1,P2
* 實(shí)驗(yàn)效果 :HH:MM:SS
*選擇設(shè)置加1。
*******************************************************************************/
#include<reg51.h>
sbit time=P1^0; //時(shí)間設(shè)置
sbit timer=P1^1; //鬧鐘設(shè)置
sbit add=P1^2; //加
sbit dec=P1^3; //減
sbit speaker=P3^5; //鬧鐘輸出
sbit LSA=P2^2;
sbit LSB=P2^3;
sbit LSC=P2^4;
bit disp_sd; //數(shù)碼管閃動(dòng)顯示標(biāo)志位
bit disp_ms; //數(shù)碼管顯示時(shí)間/鬧鐘標(biāo)志位
bit disp_sdt; //數(shù)碼管閃動(dòng)間隔反轉(zhuǎn)標(biāo)志位
bit zhengdian=0; //整點(diǎn)報(bào)時(shí)標(biāo)志位
unsigned char code led[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};//數(shù)字0-9的編碼
unsigned char time_cc,timer_cc; //調(diào)時(shí)計(jì)數(shù)器
unsigned char count0,count1,second,minit,hour; //時(shí)間時(shí)分秒
unsigned char second1,minit1,hour1; //鬧鐘時(shí)分秒
unsigned char hour_zd; //整點(diǎn)小時(shí)記錄
unsigned char TempData[8],Key_Num;
/*******************************************************************************
* 函數(shù)名 : delay
* 函數(shù)功能 : 延時(shí)函數(shù)
*******************************************************************************/
void delay(void)
{
unsigned int i ;
for(i=0; i<100 ; i++);
}
/*******************************************************************************
* 函數(shù)名 : display
* 函數(shù)功能 : 時(shí)間顯示函數(shù)
*******************************************************************************/
/*******************************************************************************
* 函數(shù)名 : key_scan
* 函數(shù)功能 : 按鍵處理函數(shù)
*******************************************************************************/
void key_scan(void)
{
unsigned int i ;
if(time==0)
{
speaker=1;//鬧鐘輸出
for(i=0;i<10;i++)
display();
if(time==0)
{
TR0=0;
do
display();
while(time==0);
disp_sd=1;
disp_ms=0;
time_cc++;
if(time_cc==4)
{
TR0=1;
time_cc=0;
disp_sd=0;
}
}
}
if(timer==0)
{
speaker=1;
for(i=0;i<10;i++)
{
display();
}
if (timer==0)
{
do
display();
while(timer==0);
disp_sd=1; //數(shù)碼管閃動(dòng)顯示
disp_ms=1; //顯示模式為鬧鐘時(shí)間
timer_cc++;
if(timer_cc==4)
{
timer_cc=0;
disp_sd=0; //閃動(dòng)關(guān)閉
disp_ms=0; //切換到時(shí)間模式
}
}
}
if(add==0)
{
for(i=0;i<10;i++)
{
display() ;
}
if(add==0)
{
do
display();
while(add==0);
if(disp_ms==0)
{
switch(time_cc)
{
case(0x01): {hour++; if(hour>23) hour=23; break;}
case(0x02): {minit++; if(minit>59) minit=59; break;}
case(0x03): {second++; if(second>59) second=59; break;}
default: break;
}
}
else
{
switch(timer_cc)
{
case(0x01): {if (hour1==23) hour1=23; else hour1++; break;}
case(0x02): {if (minit1==59) minit1=59; else minit1++;break;}
case(0x03): {if (second1==59) second1=59; else second1++; break;}
default :break;
}
}
}
}
if(dec==0)
{
for(i=0;i<10;i++)
{
display();
}
if(dec==0)
{
do
display() ;
while(dec==0) ;
if(disp_ms==0)
{
switch(time_cc)
{
case(0x01): {if (hour==0) hour=0; else hour--; break;}
case(0x02): {if (minit==0) minit=0; else minit-- ;break;}
case(0x03): {if (second==0) second=0; else second--;break;}
default: break;
}
}
else
{
switch(timer_cc)
{
case(0x01): {if(hour1==0) hour1=0; else hour1--;break;}
case(0x02): {if (minit1==0) minit1=0; else minit1--;break;}
case (0x03): {if (second1==0) second1=0; else second1-- ;break;}
default: break;
}}}}}
/*******************************************************************************
* 函數(shù)名 : timer_alam
* 函數(shù)功能 : 鬧鐘函數(shù)
*******************************************************************************/
void timer_alam(void)
{
if((disp_ms==0)&&(disp_sd==0)) //正常運(yùn)行時(shí)間的狀態(tài)下
{
if((hour1==hour)&&(minit1==minit))
{
speaker=disp_sdt;
}
else
{
if(zhengdian==1)
{
speaker=disp_sdt;
}
else
speaker=1;
}
}
}
/*******************************************************************************
* 函數(shù)名 : main
* 函數(shù)功能 :主函數(shù)
*******************************************************************************/
void main(void)
{
second=0x00;//時(shí)間初始化為 12:00:00
minit=0x00;
hour=12;
count0=0x00;
count1=0x00;
P1=0xFF;
TMOD=0x11;
TL0=0xba;
TH0=0x3c;
TL1=0xba;
TH1=0x3c;
EA=1;
ET0=1;
ET1=1;
TR0=1;
TR1=1;
while(1)
{
key_scan();
display();
timer_alam();
}
}
/*******************************************************************************
* 函數(shù)名 : time0_int
* 函數(shù)功能 : 中斷函數(shù)T0
*******************************************************************************/
void time0_int(void) interrupt 1
{
TL0=0xba;
TH0=0x3c;
TR0=1;
count0++ ;
if(count0==20)
{
count0=0;
second++;
if(hour_zd==second) //報(bào)時(shí)到小時(shí)數(shù)后關(guān)閉報(bào)時(shí)標(biāo)志。
{
zhengdian=0;
}
if(second==60)
{
second=0;
minit++;
if(minit==60)
{
zhengdian=1;//開啟整點(diǎn)報(bào)時(shí)
minit=0;
hour++;
hour_zd=hour;
if(hour_zd>12)
hour_zd=hour_zd-12; //12小時(shí)制報(bào)時(shí)方式
if(hour==24)
{
hour=0;
}
}}}}
/*******************************************************************************
* 函數(shù)名 : time1_int
* 函數(shù)功能 : 中斷函數(shù)T1
*******************************************************************************/
void timel_int(void) interrupt 3
{
TL1=0xba;
TH1=0x3c;
TR1=1;
count1++ ;
if(count1==10)
{
count1=0;
disp_sdt=~disp_sdt;
}
}
歡迎光臨 (http://www.zg4o1577.cn/bbs/)
Powered by Discuz! X3.1
主站蜘蛛池模板:
中文在线a在线
|
91精品国产综合久久福利软件
|
国产欧美精品一区二区三区
|
亚洲精品丝袜日韩
|
亚洲精品福利在线
|
97人人超碰
|
国产精品99久久久精品免费观看
|
99视频入口
|
日本精品裸体写真集在线观看
|
国产精品国产三级国产aⅴ中文
|
欧美日韩理论
|
av一区二区三区
|
爱爱免费视频
|
欧美电影免费观看高清
|
美女日批免费视频
|
亚洲精品久久视频
|
成人在线精品视频
|
亚洲精品乱码久久久久久蜜桃91
|
av一区二区三区四区
|
欧美日韩国产不卡
|
在线国产小视频
|
亚洲国产一区二区三区
|
99爱免费
|
亚洲精品视频一区二区三区
|
亚洲乱码国产乱码精品精的特点
|
国产乱码精品一品二品
|
最新av中文字幕
|
成人不卡视频
|
欧美电影网
|
男女又爽又黄视频
|
欧美激情在线精品一区二区三区
|
亚洲一区二区在线视频
|
91av视频
|
亚洲一区中文字幕
|
中文字幕在线观看
|
欧美一级在线观看
|
欧美激情欧美激情在线五月
|
秋霞电影院午夜伦
|
伊人网综合在线
|
免费一看一级毛片
|
欧美手机在线
|