久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费
標(biāo)題:
用定時器做時鐘的仿真
[打印本頁]
作者:
lids
時間:
2016-11-9 10:55
標(biāo)題:
用定時器做時鐘的仿真
用定時器做時鐘的仿真,可調(diào)節(jié)時間,兩個“-”1秒閃爍一次
shizhong.jpg
(91.38 KB, 下載次數(shù): 46)
下載附件
2016-11-9 10:54 上傳
下面是源代碼
#include<reg51.h>
#include<absacc.h>
#define uchar unsigned char
#define uint unsigned int
/*七段共陰管顯示定義*/
uchar code dispcode[ ]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F,0x40,0x00,
0xBF,0x86,0xCB,0xCF,0xEF,0xED,0xFD,0x87,0xFF,0xDF};
/*定義并初始化變量*/
uchar seconde=0;
uchar minite=0;
uchar hour=12;
uchar mstcnt=0;
uchar mstcnt1=0;
uchar miao_ss=0;
char k1num=0,snum,fnum;
sbit k1=P1^0; // 設(shè)置
sbit k2=P1^1; //加
sbit k3=P1^2; //減
sbit LED=P1^7;
/*函數(shù)聲明*/
void delay(uchar k ); //延時子程序
void time_pro( ); //時間處理子程序
void display( ); //顯示子程序
void keyscan( ); //鍵盤掃描子程序
/*****************************/
/*延時子程序*/
/****************************/
void delay (uchar k)
{
uchar j;
while((k--)!=0)
{
for(j=0;j<125;j++)
{;}
}
}
/**************************/
/*時間處理子程序*/
/**************************/
void time_pro( void)
{
if(seconde==60) //秒鐘設(shè)為60進(jìn)制
{ seconde=0;
minite++;
if( minite==60) //分鐘設(shè)為60進(jìn)制
{ minite=0;
hour++;
if(hour==24) //時鐘設(shè)為24進(jìn)制
{hour=0; }
}
}
}
/*****************************/
/* 顯示子程序*/
/*****************************/
void display(void)
{
if(k1num==0)
{
snum=30;
fnum=30;
}
if(k1num==1) //如果k1num=1,分位閃爍
{
fnum++;
snum=30; // snum=15,每分鐘閃爍2次;snum=30,每分鐘閃爍1次;
}
if(k1num==2)
{
snum++;
fnum=30;
}
if(snum>=30)
{
P2=0xfe;
P0=dispcode[hour/10]; //顯示小時的十位
delay(4);
P2=0xfd;
P0=dispcode[hour%10]; //顯示小時的個位+秒點閃爍
delay(4);
if(snum==60)
snum=0;
}
if(seconde%2)
{
P2=0xfb;
P0=dispcode[10];
delay(4);
}
else{P2=0xfb;
P0=dispcode[11];
delay(4);}
if(fnum>=30)
{
P2=0xf7;
P0=dispcode[minite/10]; //顯示分的十位
delay(4);
P2=0xef;
P0=dispcode[minite%10]; //顯示分的個位
delay(4);
}
if(fnum==60)
fnum=0;
/* P2=0xdf;
P0=dispcode[10];
delay(4);*/
P2=0xbf;
P0=dispcode[seconde/10]; //顯示秒的十位
delay(4);
P2=0x7f;
P0=dispcode[seconde%10]; //顯示秒的個位
delay(4);
}
/*******************************/
/*鍵盤掃描子程序*/
/*******************************/
void keyscan (void)
{
if(k1==0) //設(shè)置
{
delay(30);
if(k1==0)
{ while(!k1);
k1num++;
if(k1num==1) //這句不寫,調(diào)時間時,秒走時;
{TR0=0; } //這句寫上,調(diào)時間時,秒停止走時;
if(k1num==3)
{
seconde=0;
k1num=0;
TR0=1;}
}
}
if(k1num==1)
{
if(k3==0) //按鍵3分的調(diào)整減
{
delay(30);
if(k3==0)
{ while(!k3);
minite--;
if(minite==-1)
{minite=59;}
}
}
if(k2==0) //按鍵2分的調(diào)整加
{
delay(30);
if(k2==0)
{ while(!k2);
minite++;
if(minite==60)
{minite=0;}
}
}
}
if(k1num==2)
{
if(k2==0) //按鍵2小時的調(diào)整加
{
delay(30);
if(k2==0)
{
while(!k2);
hour++;
if(hour==24)
{hour=0; }
}
}
if(k3==0) //按鍵3小時的調(diào)整減
{
delay(30);
if(k3==0)
{
while(!k3);
hour--;
if(hour==-1)
{hour=23; }
}
}
}
}
void timer0(void) interrupt 1 //定時器0方式1,50ms中斷一次
{ //晶振 12MHz
TH0=0x3c;
TL0=0xb0;
mstcnt++;
if(mstcnt==20)
{
seconde++;
mstcnt=0; //注意點。對計數(shù)單元的清零十分的重要,本次調(diào)試中就是
// ss=!ss;
// LED=ss;
} //因為忽略了這一點,給我造成了很大的被動。
}
/*void timer1(void) interrupt 3 //定時器0方式1,50ms中斷一次
{ //晶振 12MHz
TH0=0x3c;
TL0=0xb0;
miao_ss++;
if(miao_ss==10)
{
miao_ss=0;
// P0=dispcode[10];
LED=!LED;
// delay(5);
// P0=dispcode[11];
}
} */
/**************************/
/*主函數(shù)*/
/**************************/
void main(void)
{
// P1=0xff; //初始化p1口,全設(shè)為1
TMOD = 0x11; //time0為定時器,方式1
TH0=0x3c; //預(yù)置計數(shù)初值
TL0=0xb0;
EA=1;
ET0=1;
ET1=1;
TR1=1;
TR0=1;
while (1)
{
keyscan( ); //按鍵掃描
time_pro( ); //時間處理
display( ); //顯示時間
}
} //仿真通過 8位數(shù)碼管顯示88—88—88樣式的時鐘
歡迎光臨 (http://www.zg4o1577.cn/bbs/)
Powered by Discuz! X3.1
主站蜘蛛池模板:
可以免费观看的av
|
久久久久久国产精品免费免费
|
国产成人免费视频网站高清观看视频
|
欧美日韩国产高清视频
|
狠狠操狠狠干
|
欧美狠狠操
|
亚洲成人在线免费
|
日韩国产中文字幕
|
欧美日韩亚洲一区二区
|
综合久
|
久久99精品久久久久久国产越南
|
午夜一区
|
青青草av网站
|
亚洲精品无
|
日韩在线播放视频
|
日韩在线视频免费观看
|
97精品久久
|
欧美精品一区二区三区蜜桃视频
|
caoporn国产精品免费公开
|
日本三级网
|
性高湖久久久久久久久aaaaa
|
av免费入口
|
欧美亚洲国产一区二区三区
|
在线观看国产精品视频
|
国产特级毛片
|
九九热在线观看视频
|
日韩无
|
午夜视频在线观看视频
|
黄色成人国产
|
久久久久国产精品一区二区
|
国产高清视频一区二区
|
婷婷久久五月
|
美日韩精品
|
免费艹逼视频
|
国产精品一区二区av
|
www.色.com
|
亚洲综合一区二区三区
|
在线观看亚洲专区
|
青青草一区
|
久草新在线
|
国产亚洲精品久久久久动
|