|
本帖最后由 盧OK 于 2020-12-3 14:14 編輯
#include<reg52.h> //頭文件
#define uc unsigned char //宏定義
#define ui unsigned int //宏定義
sbit LED=P3^3;//定義LED變量
uc fen,shi,miao,num; //無符號(hào)字符型變量
uc code tab[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};/*0,1,2,3,4,5,6,7,8,9,.*///共陰極編碼
void delay(ui x)//1ms延時(shí)函數(shù)
{
ui i,j;
for(i=0;i<x;i++)
for(j=0;j<121;j++);
}
void display()//掃描顯示函數(shù),高位到低位
{
/*數(shù)碼管小時(shí)顯示*/
P0=tab[shi/10];//給小時(shí)的十位送形
P2=0xdf;//11011111 //位選
delay(1); //延時(shí)動(dòng)態(tài)掃描
P2=0xff; //關(guān)閉位選
P0=(tab[shi%10])|0x80;//給第二位后加“點(diǎn)
P2=0xef;//11101111
delay(1);
P2=0xff;
/*數(shù)碼管分鐘顯示*/
P0=tab[fen/10];
P2=0xf7;//11110111
delay(1);
P2=0xff;
P0=(tab[fen%10])|0x80;//給第四位后加“點(diǎn)”
P2=0xfb;//11111011
delay(1);
P2=0xff;
/*數(shù)碼管秒鐘顯示*/
P0=tab[miao/10];
P2=0xfd;//11111101
delay(1);
P2=0xff;
P0=tab[miao%10];
P2=0xfe;//11111110
delay(1);
P2=0xff;
}
void init()//初始化函數(shù)
{
/*初始時(shí)間為 01:30 */
shi=1; //小時(shí)初始
fen=30; //分鐘初始
/*定時(shí)器中斷初始化設(shè)置*/
TMOD=0x01;//設(shè)置定時(shí)器為定時(shí)器0工作方式為1
TH0=(65536-50000)/256; //賦初值
TL0=(65536-50000)%256; //賦初值
EA=1; //開總中斷
ET0=1; //開定時(shí)器0中斷
TR0=1; //啟動(dòng)定時(shí)器0
}
void main()//主函數(shù)
{
init();//調(diào)用初始化函數(shù)
while(1) //大循環(huán)
{
display(); //調(diào)用數(shù)碼管顯示函數(shù)
LED=0; //讓LED燈亮起
}
}
/*完整程序下載壓縮包查看*/
|
評(píng)分
-
查看全部評(píng)分
|