版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、 課程設(shè)計(jì)(論文)說明書題 目:基于單片機(jī)簡易計(jì)算器的設(shè)計(jì)院 (系):信息與通信學(xué)院 專 業(yè): 電子信息工程 學(xué)生姓名: 丘 譯 慶 學(xué) 號: 0800220223 指導(dǎo)教師: 袁 華 職 稱: 講 師 2011年 12月 18日摘 要簡易計(jì)算器是一種非常廣泛日常工具,對現(xiàn)代社會越來越流行。它可以進(jìn)行一些簡易的計(jì)算。本系統(tǒng)提供詳細(xì)的時、分、秒、年、月、日的時間信息,同時還可進(jìn)行簡易的計(jì)算信息,還具有時間校準(zhǔn)等功能。該電路采用AT89S52單片機(jī)作為核心,功耗小,能在3V的低壓工作,電壓可選用35V電壓供電。本系統(tǒng)硬件部分由AT89S52單片機(jī)、LCD1602液晶屏、鍵盤、指示燈系統(tǒng)等部分構(gòu)成。
2、軟件部分在keil環(huán)境下用C51語言編寫,包括時間設(shè)置、時間顯示、簡易計(jì)算顯示等。關(guān)鍵字:AT89S52;液晶屏LCD1602;鍵盤Abstract Simple calculator is a very broad everyday tool for modern society is more and more popular. It can carry on some simple calculation. This system provides detailed, minutes and seconds, year, month, day time information, and
3、at the same time but also for simple calculation information, but also has time calibration etc. Function. This circuit AT89S52 SCM as the core, power consumption is small, can be in 3 V of low-pressure work, voltage can choose 3 5 V voltage power supply. This system hardware part AT89S52 SCM by LCD
4、1602 LCD screen, keyboard, indicator system, part. Software in under the environment of keil with C51 language, including time set, time display, simple calculation shows, etc. In the programming process found on existing knowledge to finish writing task difficult, the teachers and students of help
5、to finish the program part of the code.Keyword:AT89S52;AT89S52 devices; LCD1602 LCD screen; keyboard目 錄摘要.1引言 .31 單片機(jī)及其應(yīng)用.31.1單片機(jī)介紹31.2單片機(jī)的應(yīng)用41.3 AT89S52單片機(jī)42 液晶屏LCD1602原理及應(yīng)用. 72.1液晶屏LCD1602介紹及工作原理. .72.2 液晶屏LCD1602的功能及應(yīng)用73 設(shè)計(jì)思路、仿真及調(diào)試.12 3.1設(shè)計(jì)方法123.2硬件設(shè)計(jì). .123.2.1按鍵調(diào)整電路123.2.2復(fù)位電路.133.2.3 液晶屏LCD1602
6、顯示電路.133.2.4 LED指示電路.133.2.5 4*4鍵盤的設(shè)計(jì).143.2.6 簡易計(jì)算器的總電路.143.3軟件設(shè)計(jì) 153.4軟件仿真153.5硬件調(diào)試.164 結(jié)束語. .17謝辭.18參考文獻(xiàn).19附件.20引言眾所周知單片機(jī)是一種集成在電路芯片,是采用超大規(guī)模集成電路技術(shù)把具有數(shù)據(jù)處理能力的中央處理器CPU隨機(jī)存儲器RAM、只讀存儲器ROM、多種I/O口和中斷系統(tǒng)、定時器/計(jì)時器等功能(可能還包括顯示驅(qū)動電路、脈寬調(diào)制電路、模擬多路轉(zhuǎn)換器、A/D轉(zhuǎn)換器等電路)集成到一塊硅片上構(gòu)成的一個小而完善的計(jì)算機(jī)系統(tǒng)。本設(shè)計(jì)要制作的就是單片機(jī)于生活中最為常見的異種應(yīng)用簡易計(jì)算器。本簡
7、易計(jì)算器AT89S52單片機(jī)作為核心,可以顯示簡易的計(jì)算和時間,時間可以人為設(shè)定;另外還可以顯示當(dāng)前的日歷,顯示格式為年(四位),月(兩位),日(兩位)。設(shè)置時間時的位切換、設(shè)定數(shù)值、啟動定時器、切換日歷通過外部中斷來實(shí)現(xiàn)。簡易計(jì)算器不僅可以進(jìn)行簡易的計(jì)算還可以顯示時間。簡易計(jì)算器顯示電路由LCD1602組成, 制作一個單片機(jī)計(jì)時裝置需要的材料需要有軟硬件的支持,硬件方面AT89C51單片機(jī),晶振,電源,液晶屏LCD1602。1 單片機(jī)及其應(yīng)用單片機(jī)是一種集成在電路芯片,是采用超大規(guī)模集成電路技術(shù)把具有數(shù)據(jù)處理能力的中央處理器CPU隨機(jī)存儲器RAM、只讀存儲器ROM、多種I/O口和中斷系統(tǒng)、定
8、時器/計(jì)時器等功能(可能還包括顯示驅(qū)動電路、脈寬調(diào)制電路、模擬多路轉(zhuǎn)換器、A/D轉(zhuǎn)換器等電路)集成到一塊硅片上構(gòu)成的一個小而完善的計(jì)算機(jī)系統(tǒng)。 1.1 單片機(jī)介紹:單片微型計(jì)算機(jī)簡稱單片機(jī),是典型的嵌入式微控制器(Microcontroller Unit),常用英文字母的縮寫MCU表示單片機(jī),它最早是被用在工業(yè)控制領(lǐng)域。單片機(jī)由芯片內(nèi)僅有CPU的專用處理器發(fā)展而來。最早的設(shè)計(jì)理念是通過將大量外圍設(shè)備和CPU集成在一個芯片中,使計(jì)算機(jī)系統(tǒng)更小,更容易集成進(jìn)復(fù)雜的而對體積要求嚴(yán)格的控制設(shè)備當(dāng)中。INTEL的Z80是最早按照這種思想設(shè)計(jì)出的處理器,從此以后,單片機(jī)和專用處理器的
9、發(fā)展便分道揚(yáng)鑣單片機(jī)是靠程序運(yùn)行的,并且可以修改。通過不同的程序?qū)崿F(xiàn)不同的功能,尤其是特殊的獨(dú)特的一些功能,這是別的器件需要費(fèi)很大力氣才能做到的,有些則是花大力氣也很難做到的。一個不是很復(fù)雜的功能要是用美國50年代開發(fā)的74系列,或者60年代的CD4000系列這些純硬件來搞定的話,電路一定是一塊大PCB板!但是如果要是用美國70年代成功投放市場的系列單片機(jī),結(jié)果就會有天壤之別!只因?yàn)閱纹瑱C(jī)的通過你編寫的程序可以實(shí)現(xiàn)高智能,高效率,以及高可靠性!單片機(jī)的硬件特性:單片機(jī)集成度高。單片機(jī)包括CPU、4KB容量的ROM(8031 無)、128 B容量的RAM、 2個16位定時/計(jì)數(shù)器、4個8位并行口
10、、全雙工串口行口。系統(tǒng)結(jié)構(gòu)簡單,使用方便,實(shí)現(xiàn)模塊化。1.2 單片機(jī)的應(yīng)用目前單片機(jī)滲透到我們生活的各個領(lǐng)域,幾乎很難找到哪個領(lǐng)域沒有單片機(jī)的蹤跡。導(dǎo)彈的導(dǎo)航裝置,飛機(jī)上各種儀表的控制,計(jì)算機(jī)的網(wǎng)絡(luò)通訊與數(shù)據(jù)傳輸,工業(yè)自動化過程的實(shí)時控制和數(shù)據(jù)處理,廣泛使用的各種智能IC卡,民用豪華轎車的安全保障系統(tǒng),錄像機(jī)、攝像機(jī)、全自動洗衣機(jī)的控制,以及程控玩具、電子寵物等等,這些都離不開單片機(jī)。更不用說自動控制領(lǐng)域的機(jī)器人、智能儀表、醫(yī)療器械了。因此,單片機(jī)的學(xué)習(xí)、開發(fā)與應(yīng)用將造就一批計(jì)算機(jī)應(yīng)用與智能化控制的科學(xué)家、工程師。單片機(jī)廣泛應(yīng)用于儀器儀表、家用電器、醫(yī)用設(shè)備、航空航天、專用設(shè)備的智能化管理及過
11、程控制等領(lǐng)域,大致可分如下幾個范疇: (1)在智能儀器儀表上的應(yīng)用 (2)在工業(yè)控制中的應(yīng)用 (3)在家用電器中的應(yīng)用 (4)在計(jì)算機(jī)網(wǎng)絡(luò)和通信領(lǐng)域中的應(yīng)用 (5)單片機(jī)在醫(yī)用設(shè)備領(lǐng)域中的應(yīng)用 (6)在各種大型電器中的模塊化應(yīng)用 (7)單片機(jī)在汽車設(shè)備領(lǐng)域中的應(yīng)用 此外,單片機(jī)在工商,金融,科研、教育,國防航空航天等領(lǐng)域都有著十分廣泛的用途。1.3 AT89S52單片機(jī)AT89S52是一種低功耗、高性能CMOS8位微控制器,具有8K 在系統(tǒng)可編程Flash 存儲器。使用Atmel 公司高密度非易失性存儲器技術(shù)制造,與工業(yè)80C51 產(chǎn)品指令和引腳完全兼容。片上Flash允許程序存儲器在系統(tǒng)可編
12、程,亦適于常規(guī)編程器。在單芯片上,擁有靈巧的8 位CPU 和在系統(tǒng)可編程Flash,使AT89S52為眾多嵌入式控制應(yīng)用系統(tǒng)提供高靈活、超有效的解決方案。AT89S52具有以下標(biāo)準(zhǔn)功能: 8k字節(jié)Flash,256字節(jié)RAM,32 位I/O 口線,看門狗定時器,2 個數(shù)據(jù)指針,三個16 位定時器/計(jì)數(shù)器,一個6向量2級中斷結(jié)構(gòu),全雙工串行口,片內(nèi)晶振及時鐘電路。另外,AT89S52 可降至0Hz 靜態(tài)邏輯操作,支持2種軟件可選擇節(jié)電模式。空閑模式下,CPU停止工作,允許RAM、定時器/計(jì)數(shù)器、串口、中斷繼續(xù)工作。掉電保護(hù)方式下,RAM內(nèi)容被保存,振蕩器被凍結(jié),單片機(jī)一切工作停止,直到下一個中斷
13、或硬件復(fù)位為止。主要性能1、與MCS-51單片機(jī)產(chǎn)品兼容2 、8K字節(jié)在系統(tǒng)可編程Flash存儲器3 、1000次擦寫周期4 、全靜態(tài)操作:0Hz33Hz5 、三級加密程序存儲器6 、32個可編程I/O口線7 、三個16位定時器/計(jì)數(shù)器8、八個中斷源9、全雙工UART串行通道10、 低功耗空閑和掉電模式l 1、掉電后中斷可喚醒l 2、看門狗定時器l3、 雙數(shù)據(jù)指針l4、 掉電標(biāo)識符引腳結(jié)構(gòu) P0 口:P0口是一個8位漏極開路的雙向I/O口。作為輸出口,每位能驅(qū)動8個TTL邏輯電平。對P0端口寫“1”時,引腳用作高阻抗輸入。當(dāng)訪問外部程序和數(shù)據(jù)存儲器時,P0口也被作為低8位地址/數(shù)據(jù)復(fù)用。在這種
14、模式下,P0具有內(nèi)部上拉電阻。在flash編程時,P0口也用來接收指令字節(jié);在程序校驗(yàn)時,輸出指令字節(jié)。程序校驗(yàn)時,需要外部上拉電阻。P1 口:P1 口是一個具有內(nèi)部上拉電阻的8 位雙向I/O 口,p1 輸出緩沖器能驅(qū)動4 個TTL 邏輯電平。對P1 端口寫“1”時,內(nèi)部上拉電阻把端口拉高,此時可以作為輸入口使用。作為輸入使用時,被外部拉低的引腳由于內(nèi)部電阻的原因,將輸出電流(IIL)。此外,P1.0和P1.2分別作定時器/計(jì)數(shù)器2的外部計(jì)數(shù)輸入(P1.0/T2)和時器/計(jì)數(shù)器2的觸發(fā)輸入(P1.1/T2EX),具體如下表所示。在flash編程和校驗(yàn)時,P1口接收低8位地址字節(jié)。引腳號第二功能
15、P1.0 T2(定時器/計(jì)數(shù)器T2的外部計(jì)數(shù)輸入),時鐘輸出P1.1 T2EX(定時器/計(jì)數(shù)器T2的捕捉/重載觸發(fā)信號和方向控制)P1.5 MOSI(在系統(tǒng)編程用)P1.6 MISO(在系統(tǒng)編程用)P1.7 SCK(在系統(tǒng)編程用)P2 口:P2 口是一個具有內(nèi)部上拉電阻的8 位雙向I/O 口,P2 輸出緩沖器能驅(qū)動4 個TTL 邏輯電平。對P2 端口寫“1”時,內(nèi)部上拉電阻把端口拉高,此時可以作為輸入口使用。作為輸入使用時,被外部拉低的引腳由于內(nèi)部電阻的原因,將輸出電流(IIL)。在訪問外部程序存儲器或用16位地址讀取外部數(shù)據(jù)存儲器(例如執(zhí)行MOVX DPTR)時,P2 口送出高八位地址。在這
16、種應(yīng)用中,P2 口使用很強(qiáng)的內(nèi)部上拉發(fā)送1。在使用8位地址(如MOVX RI)訪問外部數(shù)據(jù)存儲器時,P2口輸出P2鎖存器的內(nèi)容。在flash編程和校驗(yàn)時,P2口也接收高8位地址字節(jié)和一些控制信號。P3 口:P3 口是一個具有內(nèi)部上拉電阻的8 位雙向I/O 口,p2 輸出緩沖器能驅(qū)動4 個TTL 邏輯電平。對P3 端口寫“1”時,內(nèi)部上拉電阻把端口拉高,此時可以作為輸入口使用。作為輸入使用時,被外部拉低的引腳由于內(nèi)部電阻的原因,將輸出電流(IIL)。P3口亦作為AT89S52特殊功能(第二功能)使用,如下表所示。在flash編程和校驗(yàn)時,P3口也接收一些控制信號。引腳號第二功能P3.0 RXD(
17、串行輸入)P3.1 TXD(串行輸出)P3.2 INT0(外部中斷0)P3.3 INT0(外部中斷0)P3.4 T0(定時器0外部輸入)P3.5 T1(定時器1外部輸入)P3.6 WR(外部數(shù)據(jù)存儲器寫選通)P3.7 RD(外部數(shù)據(jù)存儲器寫選通)RST: 復(fù)位輸入。晶振工作時,RST腳持續(xù)2 個機(jī)器周期高電平將使單片機(jī)復(fù)位??撮T狗計(jì)時完成后,RST 腳輸出96 個晶振周期的高電平。特殊寄存器AUXR(地址8EH)上的DISRTO位可以使此功能無效。DISRTO默認(rèn)狀態(tài)下,復(fù)位高電平有效。ALE/PROG:地址鎖存控制信號(ALE)是訪問外部程序存儲器時,鎖存低8 位地址的輸出脈沖。在flash
18、編程時,此引腳(PROG)也用作編程輸入脈沖。在一般情況下,ALE 以晶振六分之一的固定頻率輸出脈沖,可用來作為外部定時器或時鐘使用。然而,特別強(qiáng)調(diào),在每次訪問外部數(shù)據(jù)存儲器時,ALE脈沖將會跳過。如果需要,通過將地址為8EH的SFR的第0位置“1”,ALE操作將無效。這一位置“1”,ALE 僅在執(zhí)行MOVX 或MOVC指令時有效。否則,ALE 將被微弱拉高。這個ALE 使能標(biāo)志位(地址為8EH的SFR的第0位)的設(shè)置對微控制器處于外部執(zhí)行模式下無效。PSEN:外部程序存儲器選通信號(PSEN)是外部程序存儲器選通信號。當(dāng)AT89S52從外部程序存儲器執(zhí)行外部代碼時,PSEN在每個機(jī)器周期被激
19、活兩次,而在訪問外部數(shù)據(jù)存儲器時,PSEN將不被激活。EA/VPP:訪問外部程序存儲器控制信號。為使能從0000H 到FFFFH的外部程序存儲器讀取指令,EA必須接GND。為了執(zhí)行內(nèi)部程序指令,EA應(yīng)該接VCC。在flash編程期間,EA也接收12伏VPP電壓。XTAL1:振蕩器反相放大器和內(nèi)部時鐘發(fā)生電路的輸入端。XTAL2:振蕩器反相放大器的輸出端。2 LCD1602的原理及其應(yīng)用2.1 液晶屏LCD1602的介紹:LCD1602已很普遍了,具體介紹我就不多說了,市面上字符液晶絕大多數(shù)是基于HD44780液晶芯片的,控制原理是完全相同的,因此HD44780寫的控制程序可以很方便地應(yīng)用于市面
20、上大部分的字符型液晶。字符型LCD通常有14條引腳線或16條引腳線的LCD,多出來的2條線是背光電源線VCC(15腳)和地線GND(16腳),其控制原理與14腳的LCD完全一樣。2.2 液晶屏LCD1602的功能及應(yīng)用 1602LCD采用標(biāo)準(zhǔn)的14腳(無背光)或16腳(帶背光)接口,各引腳接口說明如表10-13所示:編號符號引腳說明編號符號引腳說明1VSS電源地9D2數(shù)據(jù)2VDD電源正極10D3數(shù)據(jù)3VL液晶顯示偏壓11D4數(shù)據(jù)4RS數(shù)據(jù)/命令選擇12D5數(shù)據(jù)5R/W讀/寫選擇13D6數(shù)據(jù)6E使能信號14D7數(shù)據(jù)7D0數(shù)據(jù)15BLA背光源正極8D1數(shù)據(jù)16BLK背光源負(fù)極表10-13:引腳接口
21、說明表第1腳:VSS為地電源。第2腳:VDD接5V正電源。第3腳:VL為液晶顯示器對比度調(diào)整端,接正電源時對比度最弱,接地時對比度最高,對比度過高時會產(chǎn)生“鬼影”,使用時可以通過一個10K的電位器調(diào)整對比度。第4腳:RS為寄存器選擇,高電平時選擇數(shù)據(jù)寄存器、低電平時選擇指令寄存器。第5腳:R/W為讀寫信號線,高電平時進(jìn)行讀操作,低電平時進(jìn)行寫操作。當(dāng)RS和R/W共同為低電平時可以寫入指令或者顯示地址,當(dāng)RS為低電平R/W為高電平時可以讀忙信號,當(dāng)RS為高電平R/W為低電平時可以寫入數(shù)據(jù)。第6腳:E端為使能端,當(dāng)E端由高電平跳變成低電平時,液晶模塊執(zhí)行命令。第714腳:D0D7為8位雙向數(shù)據(jù)線。
22、第15腳:背光源正極。第16腳:背光源負(fù)極。10823 1602LCD的指令說明及時序1602液晶模塊內(nèi)部的控制器共有11條控制指令,如表10-14所示:序號指令RSR/WD7D6D5D4D3D2D1D01清顯示00000000012光標(biāo)返回000000001*3置輸入模式00000001I/DS4顯示開/關(guān)控制0000001DCB5光標(biāo)或字符移位000001S/CR/L*6置功能00001DLNF*7置字符發(fā)生存貯器地址0001字符發(fā)生存貯器地址8置數(shù)據(jù)存貯器地址001顯示數(shù)據(jù)存貯器地址9讀忙標(biāo)志或地址01BF計(jì)數(shù)器地址10寫數(shù)到CGRAM或DDRAM)10要寫的數(shù)據(jù)內(nèi)容11從CGRAM或D
23、DRAM讀數(shù)11讀出的數(shù)據(jù)內(nèi)容表10-14:控制命令表1602液晶模塊的讀寫操作、屏幕和光標(biāo)的操作都是通過指令編程來實(shí)現(xiàn)的。(說明:1為高電平、0為低電平)指令1:清顯示,指令碼01H,光標(biāo)復(fù)位到地址00H位置。指令2:光標(biāo)復(fù)位,光標(biāo)返回到地址00H。指令3:光標(biāo)和顯示模式設(shè)置 I/D:光標(biāo)移動方向,高電平右移,低電平左移 S:屏幕上所有文字是否左移或者右移。高電平表示有效,低電平則無效。指令4:顯示開關(guān)控制。 D:控制整體顯示的開與關(guān),高電平表示開顯示,低電平表示關(guān)顯示 C:控制光標(biāo)的開與關(guān),高電平表示有光標(biāo),低電平表示無光標(biāo) B:控制光標(biāo)是否閃爍,高電平閃爍,低電平不閃爍。指令5:光標(biāo)或顯
24、示移位 S/C:高電平時移動顯示的文字,低電平時移動光標(biāo)。指令6:功能設(shè)置命令 DL:高電平時為4位總線,低電平時為8位總線 N:低電平時為單行顯示,高電平時雙行顯示 F: 低電平時顯示5x7的點(diǎn)陣字符,高電平時顯示5x10的點(diǎn)陣字符。指令7:字符發(fā)生器RAM地址設(shè)置。指令8:DDRAM地址設(shè)置。指令9:讀忙信號和光標(biāo)地址 BF:為忙標(biāo)志位,高電平表示忙,此時模塊不能接收命令或者數(shù)據(jù),如果為低電平表示不忙。指令10:寫數(shù)據(jù)。指令11:讀數(shù)據(jù)。與HD44780相兼容的芯片時序表如下:讀狀態(tài)輸入RS=L,R/W=H,E=H輸出D0D7=狀態(tài)字寫指令輸入RS=L,R/W=L,D0D7=指令碼,E=高
25、脈沖輸出無讀數(shù)據(jù)輸入RS=H,R/W=H,E=H輸出D0D7=數(shù)據(jù)寫數(shù)據(jù)輸入RS=H,R/W=L,D0D7=數(shù)據(jù),E=高脈沖輸出無表10-15:基本操作時序表讀寫操作時序如圖10-55和10-56所示:圖10-56 寫操作時序10824 1602LCD的RAM地址映射及標(biāo)準(zhǔn)字庫表液晶顯示模塊是一個慢顯示器件,所以在執(zhí)行每條指令之前一定要確認(rèn)模塊的忙標(biāo)志為低電平,表示不忙,否則此指令失效。要顯示字符時要先輸入顯示字符地址,也就是告訴模塊在哪里顯示字符,圖10-57是1602的內(nèi)部顯示地址。圖10-57 1602LCD內(nèi)部顯示地址例如第二行第一個字符的地址是40H,那么是否直接寫入40H就可以將光
26、標(biāo)定位在第二行第一個字符的位置呢?這樣不行,因?yàn)閷懭腼@示地址時要求最高位D7恒定為高電平1所以實(shí)際寫入的數(shù)據(jù)應(yīng)該是01000000B(40H)+10000000B(80H)=11000000B(C0H)。在對液晶模塊的初始化中要先設(shè)置其顯示模式,在液晶模塊顯示字符時光標(biāo)是自動右移的,無需人工干預(yù)。每次輸入指令前都要判斷液晶模塊是否處于忙的狀態(tài)。1602液晶模塊內(nèi)部的字符發(fā)生存儲器(CGROM)已經(jīng)存儲了160個不同的點(diǎn)陣字符圖形,如圖10-58所示,這些字符有:阿拉伯?dāng)?shù)字、英文字母的大小寫、常用的符號、和日文假名等,每一個字符都有一個固定的代碼,比如大寫的英文字母“A”的代碼是01000001
27、B(41H),顯示時模塊把地址41H中的點(diǎn)陣字符圖形顯示出來,我們就能看到字母“A”圖10-58 字符代碼與圖形對應(yīng)圖3 設(shè)計(jì)思路、仿真及調(diào)試3.1 設(shè)計(jì)方法本電路設(shè)計(jì)采用AT89S52單片機(jī)為核心,利用晶振產(chǎn)生頻率為1HZ的時鐘脈沖信號,利用液晶屏LCD1602顯示計(jì)算及其時間信息,通過對AT89S52單片機(jī)的編程控制液晶屏LCD1602的顯示。顯示計(jì)算和簡易計(jì)算的信息同在LCD1602,通過按鍵切換選擇。外部按鍵可及時設(shè)定或調(diào)整時間或計(jì)算的信息。3.2 硬件設(shè)計(jì)本系統(tǒng)以AT89S52單片機(jī)為核心,本系統(tǒng)選用12MHZ的晶振,使得單片機(jī)有合理的運(yùn)行速度。起振電容30pF對振蕩器的頻率高低、振
28、蕩器的穩(wěn)定性和起振的快速性影響較合適,復(fù)位電路為按鍵高電平復(fù)位。3.2.1按鍵調(diào)整電路S0為調(diào)秒的按鍵,當(dāng)按下S0時秒加1,S1為調(diào)分的按鍵,當(dāng)按S1時分加1,S2按鍵為調(diào)時,當(dāng)按下S2時,時加1,S3按鍵為調(diào)日,當(dāng)按下S3時日加1,S4為調(diào)月,當(dāng)按下S4時月加1,S5為調(diào)年,當(dāng)按下S5時年加1;S6為時間顯示建,S7為計(jì)算顯示鍵。3.2.2復(fù)位電路3.2.3液晶屏LCD1602顯示3.2.4 LED指示電路當(dāng)單片機(jī)通電時LED亮3.2.5 4*4鍵盤的設(shè)計(jì)鍵盤功能如下:3.2.6簡易計(jì)算器的總電路硬件設(shè)計(jì)中用Protel99se畫原理圖和PCB圖 如圖1所示原理圖:圖13.3 軟件設(shè)計(jì) 本電
29、路軟件設(shè)計(jì)采用C語言編寫程序(具體程序在附件中給出)。程序設(shè)計(jì)主要包括簡易計(jì)算的編程,按鍵編程,時間控制編程,液晶屏LCD1602的顯示編程。3.4 軟件仿真在硬件設(shè)計(jì)完成后,利用軟件對其進(jìn)行仿真,以盡可能的減少做板的次數(shù)。本次我采用Proteus軟件仿真。如圖2所示,簡易計(jì)算器的時間顯示如圖3所示 簡易計(jì)算器的計(jì)算顯示軟件仿真正常,可進(jìn)行硬件制作。圖2圖33.5 硬件調(diào)試做好電路板,按鍵使用正確,時間顯示正常,計(jì)算功能也正常!如下圖:4 結(jié)論 在用單片機(jī)實(shí)現(xiàn)簡易計(jì)算的設(shè)計(jì)中使用到了AT89s52、LCD1602及其4*4鍵盤的使用。在設(shè)計(jì)過程中我通過在網(wǎng)上和圖書館查閱資料,收集了關(guān)于單片機(jī)和
30、液晶屏LCD1602顯示方面的資料,通過對這些資料的學(xué)習(xí),我了解了單片機(jī)的基本結(jié)構(gòu)和單片機(jī)在生活和生產(chǎn)中所發(fā)揮的作用;液晶屏LCD1602的原理和使用。本次課程設(shè)計(jì)完成的主要工作和任務(wù)如下:對設(shè)計(jì)方案的理論研究,單片機(jī)的合理選型,硬件電路的設(shè)計(jì),電路板的制作,元器件的焊接,軟件的編寫和調(diào)試以及課設(shè)論文的制作。通過設(shè)計(jì)簡易計(jì)算器的過程中我掌握了單片機(jī)的基本原理及其各種應(yīng)用,對它的各種硬件接口與軟件設(shè)計(jì)方法有較深入的認(rèn)識。通過對電路原理圖、pcb圖的繪制,電路仿真、電路板的制作掌握了對proteus仿真軟件的使用。謝 辭本論文是在袁華老師悉心指導(dǎo)下完成的。袁華老師淵博的專業(yè)知識,嚴(yán)謹(jǐn)?shù)闹螌W(xué)態(tài)度,精
31、益求精的工作作風(fēng),誨人不倦的高尚師德,嚴(yán)以律己、寬以待人的崇高風(fēng)范,樸實(shí)無華、平易近人的人格魅力對我影響深遠(yuǎn)。不僅使我樹立了遠(yuǎn)大的學(xué)術(shù)目標(biāo)、掌握了基本的研究方法,還使我明白了許多待人接物與為人處世的道理。本課設(shè)論文從選題到完成,每一步都是在袁華老師的指導(dǎo)下完成的,傾注了袁華老師大量的心血。在此,謹(jǐn)向袁華老師表示崇高的敬意和衷心的感謝!在此也感謝大學(xué)的老師教育我,使我完成本次課設(shè),感謝他們帶給我知識,同時也感謝我的同學(xué)們,對我的支持! 參考文獻(xiàn):1 余錫存,曹國華,單片機(jī)原理及接口技術(shù). 西安:西安電子科技大學(xué)出版社,20002 郭天祥,新概念51單片機(jī)c語言教程。北京:電子工業(yè)出版社,2009
32、3 馬忠梅,單片機(jī)的C語言應(yīng)用程序設(shè)計(jì).北京:北京航空航天大學(xué)出版社,1997。4張毅剛著,單片機(jī)原理及應(yīng)用,北京,高等教育出版社,20085 譚浩強(qiáng),C程序設(shè)計(jì)(第二版)M.北京:清華大學(xué)出版社,2003。附 件硬件電路原理圖:軟件編程程序:#include <reg52.h>#define uchar unsigned char#define uint unsigned intsbit rs=P00;sbit rw=P01;sbit e=P02;sbit k0=P10;sbit k1=P11;sbit k2=P12;sbit k3=P13;sbit k4=P14;sbit k5
33、=P15;sbit k6=P16;sbit k7=P17;unsigned char code digit ="0123456789" /定義字符數(shù)組顯示數(shù)字unsigned char s,m,h,day,month,year,count;void write_dat(uchar dat); void write_com(uchar com);void keyscan();/* 功能說明:顯示編碼,加上0x30,分別為'1','2','3','+','4','5','6&
34、#39;,'-',等*/uchar code table1=1,2,3,0x2b-0x30,4,5,6,0x2d-0x30,7,8,9,0x2a-0x30,0,0x3d-0x30,0x01-0x30,0x2f-0x30;uchar k=0,flag=0,num,fuhao,i;long a,b,c;void delay(uint z) uint x,y; for(x=z;x>0;x-) for(y=110;y>0;y-);/*函數(shù)功能:指定字符顯示的實(shí)際地址入口參數(shù):x*/ void WriteAddress(unsigned char x) write_com(x
35、|0x80); /顯示位置的確定方法規(guī)定為"80H+地址碼x" /* 函數(shù)功能:顯示小時 */void DisplayHour() unsigned char i,j;i=h/10; /取整運(yùn)算,求得十位數(shù)字j=h%10; /取余運(yùn)算,求得各位數(shù)字 WriteAddress(0x45); /寫顯示地址,將十位數(shù)字顯示在第2行第0列 write_dat(digiti); /將十位數(shù)字的字符常量寫入LCD write_dat(digitj); /將個位數(shù)字的字符常量寫入LCD /* 函數(shù)功能:顯示分鐘 */void DisplayMinute() unsigned char i
36、,j; i=m/10; /取整運(yùn)算,求得十位數(shù)字j=m%10; /取余運(yùn)算,求得各位數(shù)字 WriteAddress(0x48); /寫顯示地址,將十位數(shù)字顯示在第2行第3列 write_dat(digiti); /將十位數(shù)字的字符常量寫入LCD write_dat(digitj); /將個位數(shù)字的字符常量寫入LCD /* 函數(shù)功能:顯示秒 */void DisplaySecond() unsigned char i,j; i=s/10; /取整運(yùn)算,求得十位數(shù)字j=s%10; /取余運(yùn)算,求得各位數(shù)字 WriteAddress(0x4b); /寫顯示地址,將十位數(shù)字顯示在第2行第6列 writ
37、e_dat(digiti); /將十位數(shù)字的字符常量寫入LCD write_dat(digitj); /將個位數(shù)字的字符常量寫入LCD /* 函數(shù)功能:顯示小時 */void DisplayYear() unsigned char i,j;i=year/10; /取整運(yùn)算,求得十位數(shù)字j=year%10; /取余運(yùn)算,求得各位數(shù)字 WriteAddress(0x07); /寫顯示地址,將十位數(shù)字顯示在第2行第0列 write_dat(digiti); /將十位數(shù)字的字符常量寫入LCD write_dat(digitj); /將個位數(shù)字的字符常量寫入LCD /* 函數(shù)功能:顯示分鐘 */void
38、 DisplayMonth() unsigned char i,j; i=month/10; /取整運(yùn)算,求得十位數(shù)字j=month%10; /取余運(yùn)算,求得各位數(shù)字 WriteAddress(0x0a); /寫顯示地址,將十位數(shù)字顯示在第2行第3列 write_dat(digiti); /將十位數(shù)字的字符常量寫入LCD write_dat(digitj); /將個位數(shù)字的字符常量寫入LCD /* 函數(shù)功能:顯示秒 */void DisplayDay() unsigned char i,j; i=day/10; /取整運(yùn)算,求得十位數(shù)字j=day%10; /取余運(yùn)算,求得各位數(shù)字 WriteA
39、ddress(0x0d); /寫顯示地址,將十位數(shù)字顯示在第2行第6列 write_dat(digiti); /將十位數(shù)字的字符常量寫入LCD write_dat(digitj); /將個位數(shù)字的字符常量寫入LCD void keyscan2()if(k0=0) delay(5); if(k0=0) s+; if(s=60) s=0; if(k1=0) delay(5); if(k1=0) m+; if(m=60) m=0; if(k2=0) delay(5); if(k2=0) h+; if(h=60) h=0; if(k3=0) delay(5); if(k3=0) day+; if(day=30) day=0; if(k4=0) delay(5); if(k4=0) month+; if(month=13) month=0; if(k5=0) delay(5);
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025民辦幼兒園教師聘用合同書范本
- 2025監(jiān)理工程師《合同管理》考點(diǎn)合同生效時間的規(guī)定
- 二零二五年度醫(yī)療項(xiàng)目項(xiàng)目經(jīng)理委托合同3篇
- 二零二五年度互聯(lián)網(wǎng)金融服務(wù)公司股權(quán)及業(yè)務(wù)轉(zhuǎn)讓合同3篇
- 2025年度紙裝修設(shè)計(jì)創(chuàng)新技術(shù)應(yīng)用合同3篇
- 2025年度企業(yè)財(cái)務(wù)分析與稅務(wù)籌劃咨詢服務(wù)合同2篇
- 2025年度醫(yī)療機(jī)構(gòu)與執(zhí)業(yè)藥師簽訂的藥品質(zhì)量追溯體系合作協(xié)議3篇
- 2025年度展臺搭建與展會現(xiàn)場布置合同3篇
- 二零二五年度軌道交通設(shè)備維修保養(yǎng)協(xié)議3篇
- 2025年度養(yǎng)殖技術(shù)培訓(xùn)與推廣合作合同3篇
- 數(shù)據(jù)中心容災(zāi)備份方案
- 綠化園林技術(shù)交底
- 瑜伽肩頸理療修復(fù)課程設(shè)計(jì)
- 探討電影中的情緒表達(dá)和情感共鳴
- 2024年沈陽水務(wù)集團(tuán)招聘筆試參考題庫含答案解析
- 社會消防安全教育培訓(xùn)題庫及答案
- 部編人教版語文八年級上冊文言文課下注釋
- 蘇教版譯林三年級上下冊單詞表
- 腫瘤病例隨訪調(diào)查表
- 游樂園、滑雪場、冰雪樂園建設(shè)合作協(xié)議
- 粉末涂料有限公司檢維修作業(yè)安全風(fēng)險分級清單
評論
0/150
提交評論