




版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、精選優(yōu)質(zhì)文檔-傾情為你奉上 課程設(shè)計(jì)(論文)說(shuō)明書(shū)題 目:基于單片機(jī)簡(jiǎn)易計(jì)算器的設(shè)計(jì)院 (系): 專(zhuān) 業(yè): 學(xué)生姓名: 學(xué) 號(hào): 指導(dǎo)教師: 職 稱(chēng): 2011年 12月 18日摘 要簡(jiǎn)易計(jì)算器是一種非常廣泛日常工具,對(duì)現(xiàn)代社會(huì)越來(lái)越流行。它可以進(jìn)行一些簡(jiǎn)易的計(jì)算。本系統(tǒng)提供詳細(xì)的時(shí)、分、秒、年、月、日的時(shí)間信息,同時(shí)還可進(jìn)行簡(jiǎn)易的計(jì)算信息,還具有時(shí)間校準(zhǔn)等功能。該電路采用AT89S52單片機(jī)作為核心,功耗小,能在3V的低壓工作,電壓可選用35V電壓供電。本系統(tǒng)硬件部分由AT89S52單片機(jī)、LCD1602液晶屏、鍵盤(pán)、指示燈系統(tǒng)等部分構(gòu)成。軟件部分在keil環(huán)境下用C51語(yǔ)言編寫(xiě),包括時(shí)間設(shè)
2、置、時(shí)間顯示、簡(jiǎn)易計(jì)算顯示等。關(guān)鍵字:AT89S52;液晶屏LCD1602;鍵盤(pán)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 at the same time but also
3、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 LCD1602 LCD screen, keyboard,
4、 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 to finish the program part
5、 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顯示電路.133.2.4 LED指示電路.133.2
6、.5 4*4鍵盤(pán)的設(shè)計(jì).143.2.6 簡(jiǎn)易計(jì)算器的總電路.143.3軟件設(shè)計(jì) 153.4軟件仿真153.5硬件調(diào)試.164 結(jié)束語(yǔ). .17謝辭.18參考文獻(xiàn).19附件.20專(zhuān)心-專(zhuān)注-專(zhuān)業(yè)引言眾所周知單片機(jī)是一種集成在電路芯片,是采用超大規(guī)模集成電路技術(shù)把具有數(shù)據(jù)處理能力的中央處理器CPU隨機(jī)存儲(chǔ)器RAM、只讀存儲(chǔ)器ROM、多種I/O口和中斷系統(tǒng)、定時(shí)器/計(jì)時(shí)器等功能(可能還包括顯示驅(qū)動(dòng)電路、脈寬調(diào)制電路、模擬多路轉(zhuǎn)換器、A/D轉(zhuǎn)換器等電路)集成到一塊硅片上構(gòu)成的一個(gè)小而完善的計(jì)算機(jī)系統(tǒng)。本設(shè)計(jì)要制作的就是單片機(jī)于生活中最為常見(jiàn)的異種應(yīng)用簡(jiǎn)易計(jì)算器。本簡(jiǎn)易計(jì)算器AT89S52單片機(jī)作為核心
7、,可以顯示簡(jiǎn)易的計(jì)算和時(shí)間,時(shí)間可以人為設(shè)定;另外還可以顯示當(dāng)前的日歷,顯示格式為年(四位),月(兩位),日(兩位)。設(shè)置時(shí)間時(shí)的位切換、設(shè)定數(shù)值、啟動(dòng)定時(shí)器、切換日歷通過(guò)外部中斷來(lái)實(shí)現(xiàn)。簡(jiǎn)易計(jì)算器不僅可以進(jìn)行簡(jiǎn)易的計(jì)算還可以顯示時(shí)間。簡(jiǎn)易計(jì)算器顯示電路由LCD1602組成, 制作一個(gè)單片機(jī)計(jì)時(shí)裝置需要的材料需要有軟硬件的支持,硬件方面AT89C51單片機(jī),晶振,電源,液晶屏LCD1602。1 單片機(jī)及其應(yīng)用單片機(jī)是一種集成在電路芯片,是采用超大規(guī)模集成電路技術(shù)把具有數(shù)據(jù)處理能力的中央處理器CPU隨機(jī)存儲(chǔ)器RAM、只讀存儲(chǔ)器ROM、多種I/O口和中斷系統(tǒng)、定時(shí)器/計(jì)時(shí)器等功能(可能還包括顯示驅(qū)
8、動(dòng)電路、脈寬調(diào)制電路、模擬多路轉(zhuǎn)換器、A/D轉(zhuǎn)換器等電路)集成到一塊硅片上構(gòu)成的一個(gè)小而完善的計(jì)算機(jī)系統(tǒng)。1.1 單片機(jī)介紹:?jiǎn)纹⑿陀?jì)算機(jī)簡(jiǎn)稱(chēng)單片機(jī),是典型的嵌入式微控制器(Microcontroller Unit),常用英文字母的縮寫(xiě)MCU表示單片機(jī),它最早是被用在工業(yè)控制領(lǐng)域。單片機(jī)由芯片內(nèi)僅有CPU的專(zhuān)用處理器發(fā)展而來(lái)。最早的設(shè)計(jì)理念是通過(guò)將大量外圍設(shè)備和CPU集成在一個(gè)芯片中,使計(jì)算機(jī)系統(tǒng)更小,更容易集成進(jìn)復(fù)雜的而對(duì)體積要求嚴(yán)格的控制設(shè)備當(dāng)中。INTEL的Z80是最早按照這種思想設(shè)計(jì)出的處理器,從此以后,單片機(jī)和專(zhuān)用處理器的發(fā)展便分道揚(yáng)鑣單片機(jī)是靠程序運(yùn)行的,并且可以修改。通過(guò)不同的
9、程序?qū)崿F(xiàn)不同的功能,尤其是特殊的獨(dú)特的一些功能,這是別的器件需要費(fèi)很大力氣才能做到的,有些則是花大力氣也很難做到的。一個(gè)不是很復(fù)雜的功能要是用美國(guó)50年代開(kāi)發(fā)的74系列,或者60年代的CD4000系列這些純硬件來(lái)搞定的話(huà),電路一定是一塊大PCB板!但是如果要是用美國(guó)70年代成功投放市場(chǎng)的系列單片機(jī),結(jié)果就會(huì)有天壤之別!只因?yàn)閱纹瑱C(jī)的通過(guò)你編寫(xiě)的程序可以實(shí)現(xiàn)高智能,高效率,以及高可靠性!單片機(jī)的硬件特性:?jiǎn)纹瑱C(jī)集成度高。單片機(jī)包括CPU、4KB容量的ROM(8031 無(wú))、128 B容量的RAM、 2個(gè)16位定時(shí)/計(jì)數(shù)器、4個(gè)8位并行口、全雙工串口行口。系統(tǒng)結(jié)構(gòu)簡(jiǎn)單,使用方便,實(shí)現(xiàn)模塊化。1.2
10、 單片機(jī)的應(yīng)用目前單片機(jī)滲透到我們生活的各個(gè)領(lǐng)域,幾乎很難找到哪個(gè)領(lǐng)域沒(méi)有單片機(jī)的蹤跡。導(dǎo)彈的導(dǎo)航裝置,飛機(jī)上各種儀表的控制,計(jì)算機(jī)的網(wǎng)絡(luò)通訊與數(shù)據(jù)傳輸,工業(yè)自動(dòng)化過(guò)程的實(shí)時(shí)控制和數(shù)據(jù)處理,廣泛使用的各種智能IC卡,民用豪華轎車(chē)的安全保障系統(tǒng),錄像機(jī)、攝像機(jī)、全自動(dòng)洗衣機(jī)的控制,以及程控玩具、電子寵物等等,這些都離不開(kāi)單片機(jī)。更不用說(shuō)自動(dòng)控制領(lǐng)域的機(jī)器人、智能儀表、醫(yī)療器械了。因此,單片機(jī)的學(xué)習(xí)、開(kāi)發(fā)與應(yīng)用將造就一批計(jì)算機(jī)應(yīng)用與智能化控制的科學(xué)家、工程師。單片機(jī)廣泛應(yīng)用于儀器儀表、家用電器、醫(yī)用設(shè)備、航空航天、專(zhuān)用設(shè)備的智能化管理及過(guò)程控制等領(lǐng)域,大致可分如下幾個(gè)范疇: (1)在智能儀器儀表上
11、的應(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ī)在汽車(chē)設(shè)備領(lǐng)域中的應(yīng)用 此外,單片機(jī)在工商,金融,科研、教育,國(guó)防航空航天等領(lǐng)域都有著十分廣泛的用途。1.3 AT89S52單片機(jī)AT89S52是一種低功耗、高性能CMOS8位微控制器,具有8K 在系統(tǒng)可編程Flash 存儲(chǔ)器。使用Atmel 公司高密度非易失性存儲(chǔ)器技術(shù)制造,與工業(yè)80C51 產(chǎn)品指令和引腳完全兼容。片上Flash允許程序存儲(chǔ)器在系統(tǒng)可編程,亦適于常規(guī)編程器。在單芯片上,擁有靈巧的8 位CPU 和
12、在系統(tǒng)可編程Flash,使AT89S52為眾多嵌入式控制應(yīng)用系統(tǒng)提供高靈活、超有效的解決方案。AT89S52具有以下標(biāo)準(zhǔn)功能: 8k字節(jié)Flash,256字節(jié)RAM,32 位I/O 口線(xiàn),看門(mén)狗定時(shí)器,2 個(gè)數(shù)據(jù)指針,三個(gè)16 位定時(shí)器/計(jì)數(shù)器,一個(gè)6向量2級(jí)中斷結(jié)構(gòu),全雙工串行口,片內(nèi)晶振及時(shí)鐘電路。另外,AT89S52 可降至0Hz 靜態(tài)邏輯操作,支持2種軟件可選擇節(jié)電模式??臻e模式下,CPU停止工作,允許RAM、定時(shí)器/計(jì)數(shù)器、串口、中斷繼續(xù)工作。掉電保護(hù)方式下,RAM內(nèi)容被保存,振蕩器被凍結(jié),單片機(jī)一切工作停止,直到下一個(gè)中斷或硬件復(fù)位為止。主要性能1、與MCS-51單片機(jī)產(chǎn)品兼容2
13、、8K字節(jié)在系統(tǒng)可編程Flash存儲(chǔ)器3 、1000次擦寫(xiě)周期4 、全靜態(tài)操作:0Hz33Hz5 、三級(jí)加密程序存儲(chǔ)器6 、32個(gè)可編程I/O口線(xiàn)7 、三個(gè)16位定時(shí)器/計(jì)數(shù)器8、八個(gè)中斷源9、全雙工UART串行通道10、 低功耗空閑和掉電模式l 1、掉電后中斷可喚醒l 2、看門(mén)狗定時(shí)器l3、 雙數(shù)據(jù)指針l4、 掉電標(biāo)識(shí)符引腳結(jié)構(gòu) P0 口:P0口是一個(gè)8位漏極開(kāi)路的雙向I/O口。作為輸出口,每位能驅(qū)動(dòng)8個(gè)TTL邏輯電平。對(duì)P0端口寫(xiě)“1”時(shí),引腳用作高阻抗輸入。當(dāng)訪(fǎng)問(wèn)外部程序和數(shù)據(jù)存儲(chǔ)器時(shí),P0口也被作為低8位地址/數(shù)據(jù)復(fù)用。在這種模式下,P0具有內(nèi)部上拉電阻。在flash編程時(shí),P0口也用
14、來(lái)接收指令字節(jié);在程序校驗(yàn)時(shí),輸出指令字節(jié)。程序校驗(yàn)時(shí),需要外部上拉電阻。P1 口:P1 口是一個(gè)具有內(nèi)部上拉電阻的8 位雙向I/O 口,p1 輸出緩沖器能驅(qū)動(dòng)4 個(gè)TTL 邏輯電平。對(duì)P1 端口寫(xiě)“1”時(shí),內(nèi)部上拉電阻把端口拉高,此時(shí)可以作為輸入口使用。作為輸入使用時(shí),被外部拉低的引腳由于內(nèi)部電阻的原因,將輸出電流(IIL)。此外,P1.0和P1.2分別作定時(shí)器/計(jì)數(shù)器2的外部計(jì)數(shù)輸入(P1.0/T2)和時(shí)器/計(jì)數(shù)器2的觸發(fā)輸入(P1.1/T2EX),具體如下表所示。在flash編程和校驗(yàn)時(shí),P1口接收低8位地址字節(jié)。引腳號(hào)第二功能P1.0 T2(定時(shí)器/計(jì)數(shù)器T2的外部計(jì)數(shù)輸入),時(shí)鐘輸出
15、P1.1 T2EX(定時(shí)器/計(jì)數(shù)器T2的捕捉/重載觸發(fā)信號(hào)和方向控制)P1.5 MOSI(在系統(tǒng)編程用)P1.6 MISO(在系統(tǒng)編程用)P1.7 SCK(在系統(tǒng)編程用)P2 口:P2 口是一個(gè)具有內(nèi)部上拉電阻的8 位雙向I/O 口,P2 輸出緩沖器能驅(qū)動(dòng)4 個(gè)TTL 邏輯電平。對(duì)P2 端口寫(xiě)“1”時(shí),內(nèi)部上拉電阻把端口拉高,此時(shí)可以作為輸入口使用。作為輸入使用時(shí),被外部拉低的引腳由于內(nèi)部電阻的原因,將輸出電流(IIL)。在訪(fǎng)問(wèn)外部程序存儲(chǔ)器或用16位地址讀取外部數(shù)據(jù)存儲(chǔ)器(例如執(zhí)行MOVX DPTR)時(shí),P2 口送出高八位地址。在這種應(yīng)用中,P2 口使用很強(qiáng)的內(nèi)部上拉發(fā)送1。在使用8位地址(
16、如MOVX RI)訪(fǎng)問(wèn)外部數(shù)據(jù)存儲(chǔ)器時(shí),P2口輸出P2鎖存器的內(nèi)容。在flash編程和校驗(yàn)時(shí),P2口也接收高8位地址字節(jié)和一些控制信號(hào)。P3 口:P3 口是一個(gè)具有內(nèi)部上拉電阻的8 位雙向I/O 口,p2 輸出緩沖器能驅(qū)動(dòng)4 個(gè)TTL 邏輯電平。對(duì)P3 端口寫(xiě)“1”時(shí),內(nèi)部上拉電阻把端口拉高,此時(shí)可以作為輸入口使用。作為輸入使用時(shí),被外部拉低的引腳由于內(nèi)部電阻的原因,將輸出電流(IIL)。P3口亦作為AT89S52特殊功能(第二功能)使用,如下表所示。在flash編程和校驗(yàn)時(shí),P3口也接收一些控制信號(hào)。引腳號(hào)第二功能P3.0 RXD(串行輸入)P3.1 TXD(串行輸出)P3.2 INT0(外
17、部中斷0)P3.3 INT0(外部中斷0)P3.4 T0(定時(shí)器0外部輸入)P3.5 T1(定時(shí)器1外部輸入)P3.6 WR(外部數(shù)據(jù)存儲(chǔ)器寫(xiě)選通)P3.7 RD(外部數(shù)據(jù)存儲(chǔ)器寫(xiě)選通)RST: 復(fù)位輸入。晶振工作時(shí),RST腳持續(xù)2 個(gè)機(jī)器周期高電平將使單片機(jī)復(fù)位??撮T(mén)狗計(jì)時(shí)完成后,RST 腳輸出96 個(gè)晶振周期的高電平。特殊寄存器AUXR(地址8EH)上的DISRTO位可以使此功能無(wú)效。DISRTO默認(rèn)狀態(tài)下,復(fù)位高電平有效。ALE/PROG:地址鎖存控制信號(hào)(ALE)是訪(fǎng)問(wèn)外部程序存儲(chǔ)器時(shí),鎖存低8 位地址的輸出脈沖。在flash編程時(shí),此引腳(PROG)也用作編程輸入脈沖。在一般情況下,
18、ALE 以晶振六分之一的固定頻率輸出脈沖,可用來(lái)作為外部定時(shí)器或時(shí)鐘使用。然而,特別強(qiáng)調(diào),在每次訪(fǎng)問(wèn)外部數(shù)據(jù)存儲(chǔ)器時(shí),ALE脈沖將會(huì)跳過(guò)。如果需要,通過(guò)將地址為8EH的SFR的第0位置“1”,ALE操作將無(wú)效。這一位置“1”,ALE 僅在執(zhí)行MOVX 或MOVC指令時(shí)有效。否則,ALE 將被微弱拉高。這個(gè)ALE 使能標(biāo)志位(地址為8EH的SFR的第0位)的設(shè)置對(duì)微控制器處于外部執(zhí)行模式下無(wú)效。PSEN:外部程序存儲(chǔ)器選通信號(hào)(PSEN)是外部程序存儲(chǔ)器選通信號(hào)。當(dāng)AT89S52從外部程序存儲(chǔ)器執(zhí)行外部代碼時(shí),PSEN在每個(gè)機(jī)器周期被激活兩次,而在訪(fǎng)問(wèn)外部數(shù)據(jù)存儲(chǔ)器時(shí),PSEN將不被激活。EA/
19、VPP:訪(fǎng)問(wèn)外部程序存儲(chǔ)器控制信號(hào)。為使能從0000H 到FFFFH的外部程序存儲(chǔ)器讀取指令,EA必須接GND。為了執(zhí)行內(nèi)部程序指令,EA應(yīng)該接VCC。在flash編程期間,EA也接收12伏VPP電壓。XTAL1:振蕩器反相放大器和內(nèi)部時(shí)鐘發(fā)生電路的輸入端。XTAL2:振蕩器反相放大器的輸出端。2 LCD1602的原理及其應(yīng)用2.1 液晶屏LCD1602的介紹:LCD1602已很普遍了,具體介紹我就不多說(shuō)了,市面上字符液晶絕大多數(shù)是基于HD44780液晶芯片的,控制原理是完全相同的,因此HD44780寫(xiě)的控制程序可以很方便地應(yīng)用于市面上大部分的字符型液晶。字符型LCD通常有14條引腳線(xiàn)或16條
20、引腳線(xiàn)的LCD,多出來(lái)的2條線(xiàn)是背光電源線(xiàn)VCC(15腳)和地線(xiàn)GND(16腳),其控制原理與14腳的LCD完全一樣。2.2 液晶屏LCD1602的功能及應(yīng)用 1602LCD采用標(biāo)準(zhǔn)的14腳(無(wú)背光)或16腳(帶背光)接口,各引腳接口說(shuō)明如表10-13所示:編號(hào)符號(hào)引腳說(shuō)明編號(hào)符號(hào)引腳說(shuō)明1VSS電源地9D2數(shù)據(jù)2VDD電源正極10D3數(shù)據(jù)3VL液晶顯示偏壓11D4數(shù)據(jù)4RS數(shù)據(jù)/命令選擇12D5數(shù)據(jù)5R/W讀/寫(xiě)選擇13D6數(shù)據(jù)6E使能信號(hào)14D7數(shù)據(jù)7D0數(shù)據(jù)15BLA背光源正極8D1數(shù)據(jù)16BLK背光源負(fù)極表10-13:引腳接口說(shuō)明表第1腳:VSS為地電源。第2腳:VDD接5V正電源。第
21、3腳:VL為液晶顯示器對(duì)比度調(diào)整端,接正電源時(shí)對(duì)比度最弱,接地時(shí)對(duì)比度最高,對(duì)比度過(guò)高時(shí)會(huì)產(chǎn)生“鬼影”,使用時(shí)可以通過(guò)一個(gè)10K的電位器調(diào)整對(duì)比度。第4腳:RS為寄存器選擇,高電平時(shí)選擇數(shù)據(jù)寄存器、低電平時(shí)選擇指令寄存器。第5腳:R/W為讀寫(xiě)信號(hào)線(xiàn),高電平時(shí)進(jìn)行讀操作,低電平時(shí)進(jìn)行寫(xiě)操作。當(dāng)RS和R/W共同為低電平時(shí)可以寫(xiě)入指令或者顯示地址,當(dāng)RS為低電平R/W為高電平時(shí)可以讀忙信號(hào),當(dāng)RS為高電平R/W為低電平時(shí)可以寫(xiě)入數(shù)據(jù)。第6腳:E端為使能端,當(dāng)E端由高電平跳變成低電平時(shí),液晶模塊執(zhí)行命令。第714腳:D0D7為8位雙向數(shù)據(jù)線(xiàn)。第15腳:背光源正極。第16腳:背光源負(fù)極。10823 16
22、02LCD的指令說(shuō)明及時(shí)序1602液晶模塊內(nèi)部的控制器共有11條控制指令,如表10-14所示:序號(hào)指令RSR/WD7D6D5D4D3D2D1D01清顯示00000000012光標(biāo)返回000000001*3置輸入模式00000001I/DS4顯示開(kāi)/關(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寫(xiě)數(shù)到CGRAM或DDRAM)10要寫(xiě)的數(shù)據(jù)內(nèi)容11從CGRAM或DDRAM讀數(shù)11讀出的數(shù)據(jù)內(nèi)容表10-14:控制命令表160
23、2液晶模塊的讀寫(xiě)操作、屏幕和光標(biāo)的操作都是通過(guò)指令編程來(lái)實(shí)現(xiàn)的。(說(shuō)明:1為高電平、0為低電平)指令1:清顯示,指令碼01H,光標(biāo)復(fù)位到地址00H位置。指令2:光標(biāo)復(fù)位,光標(biāo)返回到地址00H。指令3:光標(biāo)和顯示模式設(shè)置 I/D:光標(biāo)移動(dòng)方向,高電平右移,低電平左移 S:屏幕上所有文字是否左移或者右移。高電平表示有效,低電平則無(wú)效。指令4:顯示開(kāi)關(guān)控制。 D:控制整體顯示的開(kāi)與關(guān),高電平表示開(kāi)顯示,低電平表示關(guān)顯示 C:控制光標(biāo)的開(kāi)與關(guān),高電平表示有光標(biāo),低電平表示無(wú)光標(biāo) B:控制光標(biāo)是否閃爍,高電平閃爍,低電平不閃爍。指令5:光標(biāo)或顯示移位 S/C:高電平時(shí)移動(dòng)顯示的文字,低電平時(shí)移動(dòng)光標(biāo)。指
24、令6:功能設(shè)置命令 DL:高電平時(shí)為4位總線(xiàn),低電平時(shí)為8位總線(xiàn) N:低電平時(shí)為單行顯示,高電平時(shí)雙行顯示 F: 低電平時(shí)顯示5x7的點(diǎn)陣字符,高電平時(shí)顯示5x10的點(diǎn)陣字符。指令7:字符發(fā)生器RAM地址設(shè)置。指令8:DDRAM地址設(shè)置。指令9:讀忙信號(hào)和光標(biāo)地址 BF:為忙標(biāo)志位,高電平表示忙,此時(shí)模塊不能接收命令或者數(shù)據(jù),如果為低電平表示不忙。指令10:寫(xiě)數(shù)據(jù)。指令11:讀數(shù)據(jù)。與HD44780相兼容的芯片時(shí)序表如下:讀狀態(tài)輸入RS=L,R/W=H,E=H輸出D0D7=狀態(tài)字寫(xiě)指令輸入RS=L,R/W=L,D0D7=指令碼,E=高脈沖輸出無(wú)讀數(shù)據(jù)輸入RS=H,R/W=H,E=H輸出D0D7
25、=數(shù)據(jù)寫(xiě)數(shù)據(jù)輸入RS=H,R/W=L,D0D7=數(shù)據(jù),E=高脈沖輸出無(wú)表10-15:基本操作時(shí)序表讀寫(xiě)操作時(shí)序如圖10-55和10-56所示:圖10-56 寫(xiě)操作時(shí)序10824 1602LCD的RAM地址映射及標(biāo)準(zhǔn)字庫(kù)表液晶顯示模塊是一個(gè)慢顯示器件,所以在執(zhí)行每條指令之前一定要確認(rèn)模塊的忙標(biāo)志為低電平,表示不忙,否則此指令失效。要顯示字符時(shí)要先輸入顯示字符地址,也就是告訴模塊在哪里顯示字符,圖10-57是1602的內(nèi)部顯示地址。圖10-57 1602LCD內(nèi)部顯示地址例如第二行第一個(gè)字符的地址是40H,那么是否直接寫(xiě)入40H就可以將光標(biāo)定位在第二行第一個(gè)字符的位置呢?這樣不行,因?yàn)閷?xiě)入顯示地址
26、時(shí)要求最高位D7恒定為高電平1所以實(shí)際寫(xiě)入的數(shù)據(jù)應(yīng)該是B(40H)+B(80H)=B(C0H)。在對(duì)液晶模塊的初始化中要先設(shè)置其顯示模式,在液晶模塊顯示字符時(shí)光標(biāo)是自動(dòng)右移的,無(wú)需人工干預(yù)。每次輸入指令前都要判斷液晶模塊是否處于忙的狀態(tài)。1602液晶模塊內(nèi)部的字符發(fā)生存儲(chǔ)器(CGROM)已經(jīng)存儲(chǔ)了160個(gè)不同的點(diǎn)陣字符圖形,如圖10-58所示,這些字符有:阿拉伯?dāng)?shù)字、英文字母的大小寫(xiě)、常用的符號(hào)、和日文假名等,每一個(gè)字符都有一個(gè)固定的代碼,比如大寫(xiě)的英文字母“A”的代碼是B(41H),顯示時(shí)模塊把地址41H中的點(diǎn)陣字符圖形顯示出來(lái),我們就能看到字母“A”圖10-58 字符代碼與圖形對(duì)應(yīng)圖3 設(shè)
27、計(jì)思路、仿真及調(diào)試3.1 設(shè)計(jì)方法本電路設(shè)計(jì)采用AT89S52單片機(jī)為核心,利用晶振產(chǎn)生頻率為1HZ的時(shí)鐘脈沖信號(hào),利用液晶屏LCD1602顯示計(jì)算及其時(shí)間信息,通過(guò)對(duì)AT89S52單片機(jī)的編程控制液晶屏LCD1602的顯示。顯示計(jì)算和簡(jiǎn)易計(jì)算的信息同在LCD1602,通過(guò)按鍵切換選擇。外部按鍵可及時(shí)設(shè)定或調(diào)整時(shí)間或計(jì)算的信息。3.2 硬件設(shè)計(jì)本系統(tǒng)以AT89S52單片機(jī)為核心,本系統(tǒng)選用12MHZ的晶振,使得單片機(jī)有合理的運(yùn)行速度。起振電容30pF對(duì)振蕩器的頻率高低、振蕩器的穩(wěn)定性和起振的快速性影響較合適,復(fù)位電路為按鍵高電平復(fù)位。3.2.1按鍵調(diào)整電路S0為調(diào)秒的按鍵,當(dāng)按下S0時(shí)秒加1,
28、S1為調(diào)分的按鍵,當(dāng)按S1時(shí)分加1,S2按鍵為調(diào)時(shí),當(dāng)按下S2時(shí),時(shí)加1,S3按鍵為調(diào)日,當(dāng)按下S3時(shí)日加1,S4為調(diào)月,當(dāng)按下S4時(shí)月加1,S5為調(diào)年,當(dāng)按下S5時(shí)年加1;S6為時(shí)間顯示建,S7為計(jì)算顯示鍵。3.2.2復(fù)位電路3.2.3液晶屏LCD1602顯示3.2.4 LED指示電路當(dāng)單片機(jī)通電時(shí)LED亮3.2.5 4*4鍵盤(pán)的設(shè)計(jì)鍵盤(pán)功能如下:3.2.6簡(jiǎn)易計(jì)算器的總電路硬件設(shè)計(jì)中用Protel99se畫(huà)原理圖和PCB圖 如圖1所示原理圖:圖13.3 軟件設(shè)計(jì) 本電路軟件設(shè)計(jì)采用C語(yǔ)言編寫(xiě)程序(具體程序在附件中給出)。程序設(shè)計(jì)主要包括簡(jiǎn)易計(jì)算的編程,按鍵編程,時(shí)間控制編程,液晶屏LCD1
29、602的顯示編程。3.4 軟件仿真在硬件設(shè)計(jì)完成后,利用軟件對(duì)其進(jìn)行仿真,以盡可能的減少做板的次數(shù)。本次我采用Proteus軟件仿真。如圖2所示,簡(jiǎn)易計(jì)算器的時(shí)間顯示如圖3所示 簡(jiǎn)易計(jì)算器的計(jì)算顯示軟件仿真正常,可進(jìn)行硬件制作。圖2圖33.5 硬件調(diào)試做好電路板,按鍵使用正確,時(shí)間顯示正常,計(jì)算功能也正常!如下圖:4 結(jié)論 在用單片機(jī)實(shí)現(xiàn)簡(jiǎn)易計(jì)算的設(shè)計(jì)中使用到了AT89s52、LCD1602及其4*4鍵盤(pán)的使用。在設(shè)計(jì)過(guò)程中我通過(guò)在網(wǎng)上和圖書(shū)館查閱資料,收集了關(guān)于單片機(jī)和液晶屏LCD1602顯示方面的資料,通過(guò)對(duì)這些資料的學(xué)習(xí),我了解了單片機(jī)的基本結(jié)構(gòu)和單片機(jī)在生活和生產(chǎn)中所發(fā)揮的作用;液晶屏
30、LCD1602的原理和使用。本次課程設(shè)計(jì)完成的主要工作和任務(wù)如下:對(duì)設(shè)計(jì)方案的理論研究,單片機(jī)的合理選型,硬件電路的設(shè)計(jì),電路板的制作,元器件的焊接,軟件的編寫(xiě)和調(diào)試以及課設(shè)論文的制作。通過(guò)設(shè)計(jì)簡(jiǎn)易計(jì)算器的過(guò)程中我掌握了單片機(jī)的基本原理及其各種應(yīng)用,對(duì)它的各種硬件接口與軟件設(shè)計(jì)方法有較深入的認(rèn)識(shí)。通過(guò)對(duì)電路原理圖、pcb圖的繪制,電路仿真、電路板的制作掌握了對(duì)proteus仿真軟件的使用。謝 辭本論文是在袁華老師悉心指導(dǎo)下完成的。袁華老師淵博的專(zhuān)業(yè)知識(shí),嚴(yán)謹(jǐn)?shù)闹螌W(xué)態(tài)度,精益求精的工作作風(fēng),誨人不倦的高尚師德,嚴(yán)以律己、寬以待人的崇高風(fēng)范,樸實(shí)無(wú)華、平易近人的人格魅力對(duì)我影響深遠(yuǎn)。不僅使我樹(shù)立了
31、遠(yuǎn)大的學(xué)術(shù)目標(biāo)、掌握了基本的研究方法,還使我明白了許多待人接物與為人處世的道理。本課設(shè)論文從選題到完成,每一步都是在袁華老師的指導(dǎo)下完成的,傾注了袁華老師大量的心血。在此,謹(jǐn)向袁華老師表示崇高的敬意和衷心的感謝!在此也感謝大學(xué)的老師教育我,使我完成本次課設(shè),感謝他們帶給我知識(shí),同時(shí)也感謝我的同學(xué)們,對(duì)我的支持! 參考文獻(xiàn):1 余錫存,曹?chē)?guó)華,單片機(jī)原理及接口技術(shù). 西安:西安電子科技大學(xué)出版社,20002 郭天祥,新概念51單片機(jī)c語(yǔ)言教程。北京:電子工業(yè)出版社,20093 馬忠梅,單片機(jī)的C語(yǔ)言應(yīng)用程序設(shè)計(jì).北京:北京航空航天大學(xué)出版社,1997。4張毅剛著,單片機(jī)原理及應(yīng)用,北京,高等教育
32、出版社,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=P15;sbit k6=P16;sbit k7=P17;unsigned char code digit ="&
33、quot; /定義字符數(shù)組顯示數(shù)字unsigned char s,m,h,day,month,year,count;void write_dat(uchar dat); void write_com(uchar com);void keyscan();/* 功能說(shuō)明:顯示編碼,加上0x30,分別為'1','2','3','+','4','5','6','-',等*/uchar code table1=1,2,3,0x2b-0x30,4,5,6,0x2d-0x30,7,
34、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|0x80); /顯示位置的確定方法規(guī)定為"80H+地址碼x" /* 函數(shù)功能:顯示小時(shí) */void DisplayHou
35、r() unsigned char i,j;i=h/10; /取整運(yùn)算,求得十位數(shù)字j=h%10; /取余運(yùn)算,求得各位數(shù)字 WriteAddress(0x45); /寫(xiě)顯示地址,將十位數(shù)字顯示在第2行第0列 write_dat(digiti); /將十位數(shù)字的字符常量寫(xiě)入LCD write_dat(digitj); /將個(gè)位數(shù)字的字符常量寫(xiě)入LCD /* 函數(shù)功能:顯示分鐘 */void DisplayMinute() unsigned char i,j; i=m/10; /取整運(yùn)算,求得十位數(shù)字j=m%10; /取余運(yùn)算,求得各位數(shù)字 WriteAddress(0x48); /寫(xiě)顯示地址,
36、將十位數(shù)字顯示在第2行第3列 write_dat(digiti); /將十位數(shù)字的字符常量寫(xiě)入LCD write_dat(digitj); /將個(gè)位數(shù)字的字符常量寫(xiě)入LCD /* 函數(shù)功能:顯示秒 */void DisplaySecond() unsigned char i,j; i=s/10; /取整運(yùn)算,求得十位數(shù)字j=s%10; /取余運(yùn)算,求得各位數(shù)字 WriteAddress(0x4b); /寫(xiě)顯示地址,將十位數(shù)字顯示在第2行第6列 write_dat(digiti); /將十位數(shù)字的字符常量寫(xiě)入LCD write_dat(digitj); /將個(gè)位數(shù)字的字符常量寫(xiě)入LCD /* 函
37、數(shù)功能:顯示小時(shí) */void DisplayYear() unsigned char i,j;i=year/10; /取整運(yùn)算,求得十位數(shù)字j=year%10; /取余運(yùn)算,求得各位數(shù)字 WriteAddress(0x07); /寫(xiě)顯示地址,將十位數(shù)字顯示在第2行第0列 write_dat(digiti); /將十位數(shù)字的字符常量寫(xiě)入LCD write_dat(digitj); /將個(gè)位數(shù)字的字符常量寫(xiě)入LCD /* 函數(shù)功能:顯示分鐘 */void DisplayMonth() unsigned char i,j; i=month/10; /取整運(yùn)算,求得十位數(shù)字j=month%10; /
38、取余運(yùn)算,求得各位數(shù)字 WriteAddress(0x0a); /寫(xiě)顯示地址,將十位數(shù)字顯示在第2行第3列 write_dat(digiti); /將十位數(shù)字的字符常量寫(xiě)入LCD write_dat(digitj); /將個(gè)位數(shù)字的字符常量寫(xiě)入LCD /* 函數(shù)功能:顯示秒 */void DisplayDay() unsigned char i,j; i=day/10; /取整運(yùn)算,求得十位數(shù)字j=day%10; /取余運(yùn)算,求得各位數(shù)字 WriteAddress(0x0d); /寫(xiě)顯示地址,將十位數(shù)字顯示在第2行第6列 write_dat(digiti); /將十位數(shù)字的字符常量寫(xiě)入LCD
39、write_dat(digitj); /將個(gè)位數(shù)字的字符常量寫(xiě)入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; i
40、f(k5=0) delay(5); if(k5=0) year+; if(year=99) year=0; void keyscan() uchar temp; P3=0xfe; temp=P3; temp=temp&0xf0; while(temp!=0xf0) delay(5); temp=P3; temp=temp&0xf0; while(temp!=0xf0) temp=P3; switch(temp) case 0xee:num=0; break; case 0xde:num=1; break; case 0xbe:num=2; break; case 0x7e:num=3; break; while(temp!=0xf0) temp=P3; temp=temp&0xf0; /*當(dāng)按下1,2,3,松手后執(zhí)行下面這段語(yǔ)句*/ if(num=0|num=1|num=2) if(flag=0) a=a*10+table1num;/如果沒(méi)有按符號(hào)鍵,符號(hào)前的數(shù)值為a else if(flag=1) b=b*10+table1num; /如果按了符號(hào)鍵,符號(hào)后的數(shù)值為b if(k=1) /如果之前按了'='號(hào),再按鍵時(shí)清屏,進(jìn)行下一次計(jì)算 k=0; write_com(0x01); else if(num=3) /判斷按下'+
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 液壓玩具模型施工方案
- 場(chǎng)站路基填筑施工方案
- 庭院毛石改造施工方案
- 煙臺(tái)冷庫(kù)安裝施工方案
- TSHJMRH 0064-2024 在用潤(rùn)滑油磨損金屬和污染物元素的測(cè)定 旋轉(zhuǎn)圓盤(pán)電極原子發(fā)射光譜法
- 二零二五年度車(chē)展活動(dòng)展位搭建與品牌宣傳合同
- 二零二五年度超市店長(zhǎng)入股合作協(xié)議書(shū)
- 2025年度餐廳員工勞動(dòng)合同保密條款
- 2025年度生態(tài)停車(chē)場(chǎng)建設(shè)與養(yǎng)護(hù)承包服務(wù)合同
- 二零二五年度個(gè)人債權(quán)轉(zhuǎn)讓及債務(wù)重組執(zhí)行協(xié)議
- 全院護(hù)理查房(食管裂孔疝)
- 2024-2025學(xué)年統(tǒng)編版語(yǔ)文九年級(jí)下冊(cè)第7課《溜索》任務(wù)驅(qū)動(dòng)型教學(xué)設(shè)計(jì)
- 中國(guó)老年危重患者營(yíng)養(yǎng)支持治療指南
- 2024數(shù)據(jù)要素典型案例
- 2023-2024學(xué)年五年級(jí)科學(xué)下冊(cè)(冀人版)第4課露和霜(教學(xué)設(shè)計(jì))
- 《管理學(xué)》第一章-管理導(dǎo)論
- 2024年國(guó)考公務(wù)員行測(cè)真題及參考答案
- 2024年全國(guó)國(guó)家版圖知識(shí)競(jìng)賽題庫(kù)及答案(共200題)
- 二手車(chē)交易定金合同范本5篇
- NB∕T 10391-2020 水工隧洞設(shè)計(jì)規(guī)范
- HJ 651-2013 礦山生態(tài)環(huán)境保護(hù)與恢復(fù)治理技術(shù)規(guī)范(試行)
評(píng)論
0/150
提交評(píng)論