久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费
標(biāo)題:
基于51單片機(jī)時(shí)間可調(diào)整電子時(shí)鐘程序
[打印本頁(yè)]
作者:
bbxyliyang
時(shí)間:
2019-10-7 17:10
標(biāo)題:
基于51單片機(jī)時(shí)間可調(diào)整電子時(shí)鐘程序
1 、此款電子時(shí)鐘,時(shí)間可以設(shè)置,有4個(gè)按鍵,一個(gè)功能按鍵,一個(gè)加,一個(gè)減,一個(gè)確定按鍵。
2、按下功能按鍵一下,時(shí)鐘走時(shí)停止,時(shí)兩位數(shù)碼管閃爍,代表此時(shí)再調(diào)時(shí)狀態(tài),這個(gè)時(shí)候加減按鍵就可以調(diào)整時(shí)鐘,再次按下功能按鍵,就可以調(diào)整分鐘,再按一下功能按鍵就可以設(shè)置秒。設(shè)置好時(shí)間后我們按確定按鍵,時(shí)鐘開(kāi)始走時(shí)。
3、這個(gè)程序?qū)⒑芎玫慕虝?huì)我們?cè)趺醋寯?shù)碼管閃爍顯示。
#include <REG51.H>
typedef unsigned int UINT;
typedef unsigned char UCHAR ;
sbit key1=P3^3;
sbit key2=P3^4;
sbit key3=P3^5;
sbit key6=P3^6;
sbit LE1 = P3^1; //定義位控口
sbit LE2 = P3^2; //定義段控口
UCHAR MODE ;
UCHAR page ;
signed char HH = 0; //小時(shí)初始值
signed char MM = 0; //分鐘初始值
signed char SS = 0; //秒初始值
UINT u1_10ms = 0; //10ms計(jì)數(shù)
UINT u2_10ms = 0;
bit T_CYCLE = 0;
extern void T0_Init(void); //初始化定時(shí)器,函數(shù)定義在timer.c
UCHAR code NUM[] = {0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xbf};
void delay(UINT t) //延時(shí)t時(shí)鐘周期
{
while (t--) ;
}
void H_Increase(void) //小時(shí)增1
{
IF(HH<23) HH++;
else
{
HH = 0;
}
}
void M_Increase(void) //分鐘增1
{
if(MM<59) MM++;
else
{
MM = 0;
}
}
void S_Increase(void) //秒增1
{
if(SS<59) SS++;
else
{
SS = 0;
}
}
void H(void) //小時(shí)增1
{
if(HH>0) HH--;
else
{
HH =23;
}
}
void M(void) //分鐘增1
{
if(MM>0) MM--;
else
{
MM = 59;
}
}
void S(void) //秒增1
{
if(SS>0) SS--;
else
{
SS = 59;
}
}
void display(UCHAR SEG,UCHAR Digi) //顯示一位數(shù)碼管,SEG = 0-9數(shù)字,Digi = 第0-6位
{
LE2 = 1;
P0 = (0x01<<Digi) ;
LE2 = 0;
P0 = 0x00;
LE1 = 1;
P0 = NUM[SEG];
if (Digi==1||Digi==4) P1&= 0x7f ; //顯示分隔符
delay(50);
P0 = 0xff;
LE1 = 0;
}
void key()
{
if(key1==0)
{
delay(2);
if(key1==0)
{
while(!key1);
TR0=0;
if(MODE == 3) MODE = 1;
else MODE ++;
}
}
if(key2==0)
{
delay(2);
if(key2==0)
{
while(!key2);
if(MODE == 1) H_Increase() ;
if(MODE == 2) M_Increase() ;
if(MODE == 3) S_Increase() ;
}
}
if(key3==0)
{
delay(2);
if(key3==0)
{
while(!key3);
if(MODE == 1) H() ;
if(MODE == 2) M() ;
if(MODE == 3) S() ;
}
}
if(key6==0)
{
delay(2);
if(key6==0)
{
while(!key6);
TR0=1;
MODE=0;
}
}
}
void main(void)
{
P1 = 0xff;
LE1 = 0;
LE2 = 0;
T0_Init();
while(1)
{
key();
if(MODE != 1 || T_CYCLE)
{
display(HH/10,0); //顯示小時(shí)十位數(shù)
display(HH%10,1); //顯示小時(shí)個(gè)位數(shù)
display(10,2);
}
if(MODE != 2 || T_CYCLE)
{
display(MM/10,3); //顯示分鐘十位數(shù)
display(MM%10,4); //顯示分鐘個(gè)位數(shù)
display(10,5); //顯示小時(shí)個(gè)位數(shù)
}
if(MODE != 3 || T_CYCLE)
{
display(SS/10,6); //顯示秒十位數(shù)
display(SS%10,7); //顯示秒個(gè)位數(shù)
}
}
}
extern void key_Process(void);
extern void S_Increase(void);
void T0_Init(void)
{
TMOD = 0x11;
//定時(shí)器賦初始值,定時(shí)時(shí)間為10ms。
TH0 = 0xd8;
TL0 = 0xf0;
TH1 = 0xd8;
TL1= 0xf0;
ET0=1;
ET1=1;
TR0=1;
TR1=1;
EA=1;
}
void T0_INTSrv(void) interrupt 1
{
//定時(shí)器重新開(kāi)始計(jì)時(shí)。
TH0 = 0xd8;
TL0 = 0xf0;
u1_10ms ++;
if (u1_10ms>99) // 1000 ms = 1 second
{
u1_10ms = 0;
SS++;
if(SS==60)
{
SS=0;
MM++;
if(MM==60)
{
MM=0;
HH++;
if(HH==24)
HH=0;
}
}
}
}
void T1_INTSrv(void) interrupt 3
{
//定時(shí)器重新開(kāi)始計(jì)時(shí)。
TH0 = 0xd8;
TL0 = 0xf0;
u2_10ms ++;
if (u2_10ms%10==0) // 100 ms
{
T_CYCLE = ! T_CYCLE; //閃爍循環(huán)
}
}
作者:
admin
時(shí)間:
2019-10-8 16:11
本帖需要重新編輯補(bǔ)全電路原理圖,源碼,詳細(xì)說(shuō)明與圖片即可獲得100+黑幣(帖子下方有編輯按鈕)
歡迎光臨 (http://www.zg4o1577.cn/bbs/)
Powered by Discuz! X3.1
主站蜘蛛池模板:
色精品视频
|
中文字幕 国产精品
|
欧美精品中文字幕久久二区
|
操皮视频
|
一区二区三区视频免费观看
|
国产夜恋视频在线观看
|
欧美888
|
日本不卡视频在线播放
|
久久新
|
日韩中文视频
|
亚洲精品久久久久久国产精华液
|
在线播放国产一区二区三区
|
91成人
|
欧美日韩精选
|
亚洲午夜网
|
欧美高清视频一区
|
国产成人久久av免费高清密臂
|
九九精品在线
|
国产精品成人一区二区三区
|
91中文字幕在线
|
jizz中国日本
|
日韩在线一区视频
|
逼逼视频
|
欧美 日韩 国产 成人 在线 91
|
黄色电影在线免费观看
|
国产精品波多野结衣
|
国产一区二区三区不卡av
|
日韩中文一区
|
久草视频网站
|
国产精品99久久免费观看
|
国产精品国产成人国产三级
|
国产91久久精品一区二区
|
99福利视频
|
激情av在线
|
在线观看黄视频
|
日韩精品久久一区
|
一级黄色片在线看
|
色婷婷九月
|
黄频免费
|
国产精品久久
|
精品一区二区三区四区在线
|