范禮平
摘要:單片機到底是什么呢?就是一個電腦,只不過是微型的,麻雀雖小,五臟俱全:它內(nèi)部也用和電腦功能類似的模塊,比如CPU,內(nèi)存,并行總線,還有和硬盤作用相同的存儲器件,不同的是它的這些部件性能都相對我們的家用電腦弱很多,不過用它來做一些控制電器一類不是很復雜的工作足矣了。我們現(xiàn)在用的全自動滾筒洗衣機,排煙罩、VCD等等的家電里面都可以看到它的身影!它主要是作為控制部分的核心部件。
關(guān)鍵詞單片機、字符型LCD顯示器、可調(diào)時鐘
利用單片機的控制程序結(jié)合LCD設(shè)計一個簡易的微電腦時鐘,可以告知現(xiàn)在的時間或記錄完成一件工作花費的時間(通過重置計時),設(shè)計過程中可以學習利用單片機定時器設(shè)計時間計時處理,這是許多電子裝置最基本的功能。LCD在電子產(chǎn)品設(shè)計中使用率相當?shù)母?,普通的七段顯示器只能用來顯示數(shù)字若遇到要顯示英文文字時,則一定會選用LCD。通常我們在電子商城買到的LCD,其背面都含有控制電路,其上面有專門的IC來完成LCD的動作控制,在自行設(shè)計的接口中,只要送入適當?shù)拿畲a和欲顯示的數(shù)據(jù),LCD便會將其字符顯示出來,在控制上非常方便。本次設(shè)計是利用單片機8051的控制程序結(jié)合LCD設(shè)計一個簡易的可調(diào)微電腦時鐘。
一、設(shè)計思路
定時器0計時中斷程序每隔5ms中斷一次當作一次中斷完成,每中斷一次計數(shù)器加1,計數(shù)200次,表示1秒依次判斷1min、1h,計數(shù)到了相關(guān)變量清零;用K1、K2、K3、K4進行時間調(diào)節(jié):K1(P2.4)---進入時間調(diào)節(jié);K2(P2.5)---調(diào)節(jié)小時;K3(P2.6)---調(diào)節(jié)分鐘;K4(P2.7)---調(diào)節(jié)完成。
工作流程圖:
1、主程序控制流程圖2、計時中斷程序流程圖
二、硬件電路
1、原理圖
其中LCD引腳說明如下:
D0----D7:雙向數(shù)據(jù)總線
RS:寄存器選擇控制線
R/W:讀寫控制線
EN:啟用控制線
VCC:電源正端
VO:字符顯示亮度控制引腳
GND:電源地端
值得注意的是:有的第1腳是接+5V,第2腳接地;有的第1腳是接地的,第2腳接+5V(最好能拿到原廠的引腳圖)。
2、實物電路
三、開發(fā)環(huán)境
開發(fā)環(huán)境選擇Keil C51 Vision2,Keil C51軟件是德國Keil Software/Keil Elektronik 公司開發(fā)的功能完善的C51開發(fā)軟件,近年來在國內(nèi)得到了迅速普及。
在keil的uV2集成環(huán)境下使用偉福仿真器需要在keil環(huán)境中做如下設(shè)定:1、設(shè)置“編譯后運行程序”,以便初始化偉福仿真器;2、設(shè)置硬件調(diào)試方式,并設(shè)置串口參數(shù)。
四、軟件原理
1、使用定時器0模式0
INIT_TIMER:
MOV TMOD,#00000000B
MOV IE,#10000010B
MOV TL0,#LO
MOV TH0,#HI
SETB TR0
RET
2、設(shè)置目前的時間
SZSJ:
CLR TR0
MOV SEC,#0
L0:
JB K2,L1
INC HOUR
MOV A,HOUR
CJNE A,#24,L2
MOV HOUR,#0
L2:
CALL CONV
MOV R5,#20
CALL DELAY
JMP L0
L1:
JB K3,L3
INC MIN
MOV A,MIN
CJNE A,#60,L4
MOV MIN,#0
L4:
CALL LCDZB
MOV R5,#20
CALL DELAY
JMP L0
L3:
JB K4,L0
JNB K4,$
SETB TR0
RET
3、一秒中斷子程序
INT:
PUSH ACC
MOV TL0,#24
MOV TH0,#99
INC DEDA
MOV A,DEDA
CJNE A,#200,K
K:
POP ACC
RETI
4、將時分秒的數(shù)據(jù)轉(zhuǎn)換成數(shù)字數(shù)據(jù)顯示在LCD上
LCDZB:
MOV A,HOUR
MOV X,#5
CALL SZZA
INC X
MOV A,#':'
MOV B,X
CALL LCDXS
MOV A,MIN
INC X
CALL SZZA
INC X
MOV A,#':'
MOV B,X
CALL LCDXS
MOV A,SEC
INC X
CALL SZZA
RET
5、在LCD上顯示數(shù)字
SZZA:
MOV B,#10
DIV AB
ADD A,#30H
PUSH B
MOV B,X
CALL LCDXS
POP B
MOV A,B
ADD A,#30H
INC X
MOV B,X
CALL LCDXS
RET
6、以4位控制方式將命令寫至LCD
MDL:
MOV P0,A
CLR RS
CALL DMC
RLC A
RLC A
RLC A
RLC A
MOV P0,A
CLR RS
CALL DMC
RET
7、以4位控制方式將數(shù)據(jù)寫入LCD
SDL:
MOV P0,A
SETB RS
CALL DMC
RLC A
RLC A
RLC A
RLC A
MOV P0,A
SETB RS
CALL DMC
RET
8、更新時分秒數(shù)據(jù)
TIMERGX:
MOV A,SEC
MOV B,SEC0
CJNE A,B,W1
JMP W2
W1:
CALL LCDZB
MOV SEC0,SEC
W2:RET
9、在LCD上顯示字符
LCDXS:
PUSH ACC
MOV A,B
ADD A,#0C0H
CALL MDL
POP ACC
CALL SDL
RET
10、總延遲時間(R5*10ms)
DELAY:
MOV R6,#50
LOOP:
MOV R7,#100
DJNZ R7,$
DJNZ R6,LOOP
DJNZ R5,DELAY
RET
其中:DMC-----短脈沖信
結(jié)語:本次設(shè)計使用了一般的LCD顯示器來顯示字符數(shù)據(jù),尤其是在教學中不僅能使學生L靈活掌握定時器的應(yīng)用,而且能掌握模塊化的設(shè)計思路。另外根據(jù)本設(shè)計可以自行擴充其他的功能,如:增加鬧鈴、產(chǎn)生音樂聲、啟動繼電器控制家電等。
參考文獻
[1] 單片機實踐與應(yīng)用.吳金成.清華大學出版社
[2] 單片機實用技術(shù).陶春鳴.人民郵電出版社
[3] 單片機原理與應(yīng)用.李群芳.武漢大學出版社
注:文章內(nèi)所有公式及圖表請以PDF形式查看。