基于單片機(jī)的電子萬年歷
制作好一個電子時鐘時,單片機(jī)就差不多學(xué)會了80%,這個電子鐘可以顯示時間并且可以調(diào)節(jié)時間的秒,分,時。單片機(jī)主要的作用就是定時和中斷,如何充分利用好這兩個方面就是學(xué)習(xí)的重點。首先介紹下中斷,中斷就是指你在執(zhí)行一個指令的時候突然要執(zhí)行另一個指令時就要先將指令暫停先去執(zhí)行另一個指令,當(dāng)另一個指令完成時再返回完成中斷前的指令。單片機(jī)含有5個中斷,外部中斷0和1,定時器/計數(shù)器中斷0和1,串行口中斷。要執(zhí)行中斷時就要打開總中斷EA,將EA=1(高電平),在數(shù)字電路中1代表高電平,0代表低電平??傊袛嚅_完后,如果要開定時器中斷0的話就輸入ET0=1;再將TR0=1;這就開啟了定時器0的中斷(簡單吧)。中斷條件條件:1,有中斷請求(下面講),開總中斷EA=1,開中斷源中斷(ET0=1)。關(guān)于中斷的詳細(xì)解說大家可以查看www.51hei.com單片機(jī)網(wǎng)首頁上的第18課。
定時器有四種方式,我就用了方式1來寫電子鐘。如何定時呢?先聲明定時器工作方式TMOD,定時器0為低四位,定時器1為高四位。GATE大多數(shù)情況為 0(不詳細(xì)介紹),C/T為0時是定時器,1為計數(shù)器。我們選工作方式1所以第二位為01,所以TMOD=0x01;后面我們要裝初值也就是要往定時器 16位中裝初始值,由于單片機(jī)一個機(jī)器周期約為1微秒,一個機(jī)器周期定時器加1個值,TH0為定時器0的高8位,TL0為低八位。大家都知道一個字節(jié)為最大值為65535,所以假如你要定時50ms的話就要裝65535-50000的值。只裝滿后就溢出執(zhí)行中斷(我就大概的介紹下)。中斷出去后執(zhí)行一個中斷函數(shù)大概形勢為
TMOD=0x01;
TH0=0x4c;
TL0=0x00;
EA=1;
ET0=1;
TR0=1;
void timer0() interrupt 1{
TH0=0x4c;
TL0=0x00;
}
}
接下來我要寫我電子鐘的程序,這個程序還沒完全寫好,還差一個I^2c總線斷電數(shù)據(jù)保存的程序,以后再補(bǔ)充。單片機(jī)不同端口具有不同的作用,當(dāng)我們向端口輸入不同的高低電平時就有不同的作用,這里我們用到了液晶屏的控制,定時器,中斷系統(tǒng),鍵盤。以后改進(jìn)會用到蜂鳴器,I^2c總線。額,電腦要沒電了
關(guān)鍵詞:
單片機(jī)電子萬年
相關(guān)推薦
技術(shù)專區(qū)
- FPGA
- DSP
- MCU
- 示波器
- 步進(jìn)電機(jī)
- Zigbee
- LabVIEW
- Arduino
- RFID
- NFC
- STM32
- Protel
- GPS
- MSP430
- Multisim
- 濾波器
- CAN總線
- 開關(guān)電源
- 單片機(jī)
- PCB
- USB
- ARM
- CPLD
- 連接器
- MEMS
- CMOS
- MIPS
- EMC
- EDA
- ROM
- 陀螺儀
- VHDL
- 比較器
- Verilog
- 穩(wěn)壓電源
- RAM
- AVR
- 傳感器
- 可控硅
- IGBT
- 嵌入式開發(fā)
- 逆變器
- Quartus
- RS-232
- Cyclone
- 電位器
- 電機(jī)控制
- 藍(lán)牙
- PLC
- PWM
- 汽車電子
- 轉(zhuǎn)換器
- 電源管理
- 信號放大器
評論