資源簡介
利用51單片機實現數碼管顯示時間的倒計時
代碼片段和文件信息
???//根據電路圖??INT0?由P3.2口引入?下降沿引起
#include?
#define?u8?unsigned?char
#define?u16?unsigned?int
//K3為暫停鍵??(按下暫停,松開繼續倒計時)
sbit?A=P2^2;
sbit?b=P2^3;
sbit?C=P2^4;???//申明鎖存器鎖存端??P22?23?24為位選
u8?shigecount1num;
u8?code?djs[]={0x3f0x060x5b0x4f0x660x6d0x7d0x070x7f0x6f0x770x7c
0x390x5e0x790x71};
void?delay(u16?xms)
{
???u16?ij;
?for(i=xms;i>0;i--)???//i=xms??即延時約xms毫秒
???for(j=100;j>0;j--);
}
void?init()
{
EX0=1;????//打開外部中斷0中斷
TMOD=0x11;?//設置定時器1的工作方式
TH1=(65536-45872)/256;
TL1=(65536-45872)%256;??//給定時器1裝初值
EA=1; ?//打開全部
ET1=1;??//開定時器1中斷
TR1=1;?//啟動定時器1
EX0=1;?//使能外部中斷0
}
void?display(u8?shiu8?ge)??//顯示子函數
{
?????A=1;
?b=1;
?C=1;???//138譯碼器啟動數碼管第一位
????????//段選暫時先默認制高
?P0=?djs[shi];
?delay(5);
?P0=0xff;??//不顯示
?A=0;
?b=1;
?C=1;
?
?P0=djs[ge];
?delay(5);
?
}
void?main()
{
init();
num=60;???
??while(1)
{
TR1=1;?//啟動定時器1
??display(shige);
}
}
void?T1_time()?interrupt?3 ?//3代表定時器1
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件????????4081??2017-10-15?15:47??dao?ji?shi
?????文件????????1441??2017-10-15?15:47??dao?ji?shi.c
?????文件?????????675??2017-10-15?15:47??dao?ji?shi.hex
?????文件??????????52??2017-10-15?15:47??dao?ji?shi.lnp
?????文件????????3864??2017-10-15?15:47??dao?ji?shi.LST
?????文件????????6693??2017-10-15?15:47??dao?ji?shi.M51
?????文件????????4703??2017-10-15?15:47??dao?ji?shi.OBJ
?????文件?????????933??2017-10-15?15:47??dao?ji?shi.plg
?????文件???????55228??2017-10-15?15:48??dao?ji?shi.uvopt
?????文件???????13243??2017-10-08?14:19??dao?ji?shi.uvproj
?????文件???????55222??2017-10-09?21:31??dao?ji?shi_uvopt.bak
?????文件???????????0??2017-10-08?14:16??dao?ji?shi_uvproj.bak
- 上一篇:超聲波測距并用LCD1602進行顯示
- 下一篇:基于51單片機的計算器
評論
共有 條評論