性无码一区二区三区在线观看,少妇被爽到高潮在线观看,午夜精品一区二区三区,无码中文字幕人妻在线一区二区三区,无码精品国产一区二区三区免费

  • 回復(fù)
  • 收藏
  • 點(diǎn)贊
  • 分享
  • 發(fā)新帖

用C寫的時(shí)鐘,自己測試過了,時(shí)間精度還行,供朋友們參考!!!

/*P1接數(shù)碼管的段,P3接八個(gè)位.顯示,時(shí)時(shí),分分,秒秒
P0.0,0.1,0.2接三個(gè)按鍵,調(diào)節(jié)時(shí)間.
采用24小時(shí)制*********************************/
#include
#define uchar unsigned char
#define uint unsigned int
#define off 0
#define on 1
uchar SEC,MIN,HOUR,DIGIT,FLASH; //秒,分,時(shí),位
uint COUN; //4ms計(jì)數(shù)器,250次為1s
sbit P37=P3^7; //顯示秒的I/O口
sbit P17=P1^7;
uchar data paragraph[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};//0-10數(shù)字

/****************************************************************************************
定時(shí)器0的中斷程序**/
void t0(void)interrupt 1 using 1
{TH0=0x4c;
TL0=0x00;
COUN=COUN+1; //計(jì)數(shù)器20ms加1,一直加50次到1s
  if(COUN==20) //如果COUN到250
  {COUN=off; //則清0
//FLASH=!FLASH; //秒取反
    SEC=SEC+1;} //秒加1
  if(SEC==60) //如果秒到60
{SEC=off; //則清0
MIN=MIN+1;} //秒進(jìn)位后分加1
if(MIN==60) //如果分到60
{MIN=off; //則清0
HOUR=HOUR+1;} //分進(jìn)位后時(shí)加1
if(HOUR==24) //如果時(shí)到24
   {HOUR=off;} //時(shí)清0,一天到重新
}

/*****************************************************************************************
毫秒延時(shí)程序**/
void delay(uchar i)
{uchar a,b;
while(i--)
  {for(a=0;a<5;a++)
   for(b=0;b<100;b++);
   }
}
/*****************************************************************************************
顯示刷新程序**/
void refurbish(void)
{
     P1=paragraph[SEC%10]; //余數(shù)送P1
     P3=DIGIT; //位左移5
delay(1);

     P1=paragraph[SEC/10]; //整數(shù)送P1
     P3=DIGIT<<1; //位驅(qū)動(dòng)4
     delay(1); //延時(shí)1ms

   P1=paragraph[MIN%10]; //余數(shù)送P1
   P17=off;
   P3=DIGIT<<2; //位左移3
   delay(1);

   P1=paragraph[MIN/10]; //整數(shù)送P1
   P3=DIGIT<<3; //位驅(qū)動(dòng)2
   delay(1); //延時(shí)1ms

P1=paragraph[HOUR%10]; //余數(shù)送P1
P17=off;
P3=DIGIT<<4; //位左移1
delay(1);

P1=paragraph[HOUR/10]; //整數(shù)送P1
P3=DIGIT<<5; //位驅(qū)動(dòng)
delay(1);
}
//*****************************************************************************************
//主程序
void main(void)
{P1=0xff;
P3=0xff;
DIGIT=0X01; //位選擇
TMOD=0X01; //定時(shí)器T0開作于模試1(16位計(jì)數(shù)器)
TH0=0x4c;
TL0=0x00;
SEC=off; //秒清0
MIN=off; //分清0
HOUR=off; //時(shí)清0
COUN=off; //20ms計(jì)數(shù)器
TR0=on; //打開定時(shí)器0
EA=on; //打開總中斷
ET0=on; //打開T0中斷
while(1)
  refurbish();
}
全部回復(fù)(2)
正序查看
倒序查看
易陶
LV.2
2
2006-07-16 18:27
程序?qū)懙倪@么簡單啊
這就是全部嗎?
0
回復(fù)
bailsfi
LV.4
3
2006-07-25 11:58
@易陶
程序?qū)懙倪@么簡單啊這就是全部嗎?
還在改進(jìn),改好再發(fā)上來
0
回復(fù)
發(fā)