#define FOSC 12000000L //系統時鐘
#define Timer0_Interval_ms 5 //timer0模式1的計數溢出時間間隔,必須以毫秒為單位
//--定義使用的IO口--//
#define GPIO_DIG P0 //段選
#define GPIO_PLACE P1 //位選
unsigned char num[8]={0,0,0,0,0,0,0,0};
//--定義全局變量--//
unsigned char code DIG_PLACE[8] = {
0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};//位選控制查表的方法控制
unsigned char code DIG_CODE[17] = {
0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};
//0、1、2、3、4、5、6、7、8、9、A、b、C、d、E、F的顯示碼
unsigned char DisplayData[8];
long counter=87654321;
unsigned char second=0,minute=0,hour=21;
unsigned char counter_5ms=200;
bit IsTime2SentPC = 0;
bit busy;
enum {STOP,HOUR_TEN,HOUR_SINGLE,COLON_1,MINUTE_TEN,MINUTE_SINGLE,COLON_2,SECOND_TEN,SECOND_SINGLE,RUNNING};
//工作模式:停止計時,小時十位,小時個位,冒號1,分鐘十位,分鐘個位,冒號2,秒鐘十位,秒鐘個位,運行計時
unsigned char WorkMode = RUNNING; //開機狀態是時鐘運行計時
//用來存放要顯示的8位數的值
sbit K_add = P3^2;
sbit K_dec = P3^3;
//sbit Number_ON=P3^7;
sbit dig_out = P2^7; //位掃描信號,對數碼管掃描沒用,用在示波器顯示波形
sbit frame_out = P2^0; //幀掃描信號,對數碼管掃描沒用,用在示波器顯示波形
bit counter_changed = 0; //按鍵后計數器值發生變化的標志,有變化才調用update_display_buffer() |