蘇杰
摘要:本設(shè)計是為中職學(xué)生在單片機(jī)課程學(xué)習(xí)中,加強(qiáng)理論知識的理解、提高動手操作能力、實現(xiàn)理論聯(lián)系實際而開發(fā)的實習(xí)模塊設(shè)計。本設(shè)計是利用最基本的51系列單片機(jī)為控制核心,以數(shù)字時鐘DS1302為時鐘芯片,以基礎(chǔ)的字符型液晶LCD1602為終端顯示,以最簡單的洞洞板為載體,以面向客戶的C語言程序為控制手段,來實現(xiàn)電子時鐘的顯示、調(diào)整和自動計時。
Abstract: This design is developed for strengthening the understanding of theoretical knowledge, improving the ability to practice and integrating theory with practice of the MCU learning of the secondary vocational school students. This design takes the most basic 51 series microcontroller as the control core, takes DS1302 of digital clock as the clock chip, takes the character LCD1602 as the terminal display, takes the most simple pegboard as the carrier and takes the customer oriented C language program as a means of control to achieve the display, adjustment and automatic timing of the electronic clock.
關(guān)鍵詞:51單片機(jī)系統(tǒng);洞洞板電路;C語言;電子時鐘顯示
Key words:51 SCM system;pegboard circuit;C program;electronic clock display
中圖分類號:TN141.9 文獻(xiàn)標(biāo)識碼:A 文章編號:1006-4311(2017)12-0101-02
0 引言
近年來,單片機(jī)應(yīng)用技術(shù)課程已經(jīng)廣泛進(jìn)入到了我國中等職業(yè)教育的電氣自動化、電工電子等相關(guān)專業(yè)的專業(yè)課程當(dāng)中。但是由于這門課要求學(xué)生有較強(qiáng)的邏輯思維能力,以及課程本身設(shè)置了大量的、抽象的理論知識的學(xué)習(xí),這就導(dǎo)致大多數(shù)中職院校在這門課的教學(xué)當(dāng)中教學(xué)效果并不好。本設(shè)計就是為了讓學(xué)生能在理論知識學(xué)習(xí)的同時,用動手操作完成實際的電路制作的方法,來加強(qiáng)學(xué)生對單片機(jī)系統(tǒng)的理解。為了增加學(xué)習(xí)的操作性和趣味性,本設(shè)計利用的元器件及輔助材料的成本非常低廉,不需要制作印制電路板;同時為了加強(qiáng)制作的可靠性,整個電路板的設(shè)計焊接時不需要跨接明線或杜邦線,所有元件管腳連接都是通過錫接過線來完成,制作完成后使用時間長、不易損壞。
1 系統(tǒng)設(shè)計方案
本文所設(shè)計的液晶時鐘是由主控系統(tǒng)、按鍵控制、時鐘模塊和顯示模塊四個模塊組成,如圖1所示。
2 元件清單(表1)
3 硬件電路設(shè)計
系統(tǒng)電路原理圖如圖2所示。
3.1 主控系統(tǒng)
整個主控系統(tǒng)即為51單片機(jī)的最小應(yīng)用系統(tǒng),其中電源電路20腳接地、40腳接VCC;時鐘電路18、19腳間外接12MHZ晶振;為了簡化電路,復(fù)位電路9腳懸空,保留上電復(fù)位功能即可。STC89C52單片機(jī)采用雙列直插式封裝,焊接時須安裝在40引腳IC座上。瓷片電容和晶振也均采用直插式的封裝形式。安裝過程中,晶振和電容應(yīng)安裝在單片機(jī)的芯片座內(nèi)部。
3.2 按鍵控制
按鍵控制模塊需要3個獨(dú)立按鍵。
S1為功能鍵:系統(tǒng)開機(jī)顯示時間后,第一次按下S1,系統(tǒng)走時停止,進(jìn)入到調(diào)整狀態(tài),并且秒顯示位置閃爍,系統(tǒng)進(jìn)入秒調(diào)整狀態(tài),此時等待按下S2、S3鍵進(jìn)行秒顯示調(diào)整;在此按下S1,分實現(xiàn)位置閃爍,進(jìn)行分調(diào)整狀態(tài);跟著依次是小時、星期、日、月、年的調(diào)整狀態(tài);當(dāng)?shù)诎舜伟聪耂1時,系統(tǒng)退出調(diào)整狀態(tài),進(jìn)入到走時狀態(tài)。S1接單片機(jī)的P0.5口。
S2為調(diào)整加鍵:當(dāng)系統(tǒng)進(jìn)入到調(diào)整狀態(tài),按下S2鍵時,閃爍位置的數(shù)值就會加1,并且該修改數(shù)值會被記錄到走時數(shù)值當(dāng)中。S2接單片機(jī)的P0.2口。
S3為調(diào)整減鍵:當(dāng)系統(tǒng)進(jìn)入到調(diào)整狀態(tài),按下S3鍵時,閃爍位置的數(shù)值就會減1,并且該修改數(shù)值會被記錄到走時數(shù)值當(dāng)中。S3接單片機(jī)的P0.5口。因為STC89C52單片機(jī)P0口內(nèi)部無上拉電路,所以S1、S2、S3按鍵均須接10KΩ上拉電阻,來提供足夠的控制電流。
3.3 時鐘模塊
時鐘模塊采用DALLAS公司生產(chǎn)的DS1302時鐘芯片。該時鐘芯片價格便宜、功能齊全,可以提供年、月、日、星期、時、分、秒的計時功能;工作電壓2.0~5.5V;安裝備用電池的話,在關(guān)閉系統(tǒng)電源的情況下可以繼續(xù)走時。我們依然是采用雙列直插式的封裝形式,并且焊接時配備8引腳IC座。備用電源我們采用1節(jié)3V的紐扣電池CR2025供電。其中1腳接系統(tǒng)電源VCC,8腳接備用電源正極,4腳接地;2、3腳間接32768HZ的晶振,作為時鐘的走時晶振;5、6、7腳分別接單片機(jī)的P2.2、P2.1、P2.0的I/O口。
3.4 顯示模塊
顯示模塊采用性價比高的LCD1602字符型液晶,每行16個字符,分兩行顯示;上面一行顯示年、月、日和星期,下面一行顯示時、分、秒和簡單的娛樂圖形。由于LCD1602不能顯示漢字,所以年、月、日、時、分、秒均采用數(shù)字顯示方法;為了更貼近實際,本設(shè)計中星期的顯示方法為英文縮寫的字符顯示,即 顯示“Mon”、“Tue”、“Wed”、“Thu”、“Fri”、“Sat”、“Sun”。LCD1602液晶模塊有16個引腳,其中1、2腳分別接系統(tǒng)電源GND和VCC;3腳接一個緊密電位器做顯示對比度的調(diào)節(jié);4、5、6腳為控制引腳,分別連接單片機(jī)的P1.2、P1.3、P1.4口;7~14腳為數(shù)據(jù)傳輸引腳,分別連接P3.7~P3.0口;15腳串接一個限流電阻后接VCC,16腳接GND,這兩個引腳是LCD1602的背燈引腳。
這里有兩個方面需要注意:一是液晶模塊引腳上要焊接插針,電路板上要焊接插針座,液晶模塊通過插針連接在洞洞板上,即實現(xiàn)了電氣連接,又增加了元件的固定可靠性;二是為了不使用跨接明線,只使用錫接過線,在I/O口分配時7~14腳與P3口是逆序連接的。
4 軟件設(shè)計
與硬件系統(tǒng)類似,軟件系統(tǒng)主要包括:按鍵查詢程序塊、DS1302時鐘芯片驅(qū)動程序塊和LCD1602液晶顯示程序塊。整個程序都是基于C語言來編寫完成的。程序流程圖如圖3。
4.1 液晶顯示程序部分
本程序部分主要包括:1602寫指令子程序、寫數(shù)據(jù)子程序、時分秒顯示子程序、年月日顯示子程序、星期顯示子程序。
在這部分程序里首先應(yīng)該注意的是,因為我們在硬件系統(tǒng)中,將1602的8位數(shù)據(jù)引腳與單片機(jī)的P3進(jìn)行逆序連接,所以在寫指令和寫數(shù)據(jù)子程序中應(yīng)先將數(shù)據(jù)進(jìn)行高地位對調(diào)變換再給P3口進(jìn)行輸出,變換公式如下:
date=(date<<4)|(date>>4);
date=((date<<2)&0×cc)|((date>>2)&0×33);
date=((date<<1)&0×aa)|((date>>1)&0×55);
其次要注意在星期顯示子函數(shù)中,我們要對字符串進(jìn)行處理,所以程序起始要加入程序語句#include
最后要注意,在系統(tǒng)正常走時時,本設(shè)計使用定時器T0進(jìn)行計時,每100ms讀取一次DS1302時鐘芯片的實時時間;每讀取完實時時間單片機(jī)就會將讀取的時間送給LCD1602進(jìn)行顯示。
4.2 時鐘芯片驅(qū)動程序部分
DS1302時鐘芯片作為一款串行通訊的時鐘芯片,我們要控制它就必須以它的時序為基礎(chǔ)先編寫出寫字節(jié)的子程序,然后編寫出寫數(shù)據(jù)和讀數(shù)據(jù)的子程序。
4.3 按鍵處理程序部分
本設(shè)計按鍵部分采用的是獨(dú)立式按鍵,按鍵的讀取則是按照查詢的方式來編寫程序。在開機(jī)后,系統(tǒng)進(jìn)入走時狀態(tài),此時只有S1功能鍵能夠被查詢到。當(dāng)?shù)谝淮伟聪耂1鍵,系統(tǒng)進(jìn)入調(diào)整狀態(tài),S2和S3按鍵才能被查詢到,我們才能通過S2和S3鍵來改變各項的時間數(shù)值。
5 結(jié)論
本文介紹了一個應(yīng)用51單片機(jī)控制的數(shù)字液晶時鐘的制作方法。本設(shè)計實現(xiàn)了在LCD1602液晶上實時顯示年、月、日、時、分、秒和星期;并且具備掉電保持功能;同時還可以通過按鍵對時間和日期進(jìn)行調(diào)整。本設(shè)計的優(yōu)點(diǎn)在于可操作性強(qiáng),不需要制作專門的印制電路板;線路可靠,沒有跨接明線;程序簡單,利用模塊化的C語言子程序即可編寫。適合于廣大電氣自動化和電工電子專業(yè)的中職學(xué)生在教師的指導(dǎo)完成制作。
參考文獻(xiàn):
[1]張毅剛.新編MCS-51單片機(jī)應(yīng)用設(shè)計[M].哈爾濱工業(yè)大學(xué)出版社,2003.
[2]匡忠輝.單片機(jī)原理及應(yīng)用[M].機(jī)械工業(yè)出版社,2007.
[3]胡漢才.單片機(jī)原理及其接口技術(shù)[M].清華大學(xué)出版社,1996.