




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、摘要本次課程設計是以AT89C52為核心控制器,1602液晶為顯示器設計的液晶顯示電路。該電路可在1602液晶上顯示ASCII碼表里的各種字符,通過編程設定的顯示方式。設計中采用了二種動態(tài)顯示方式,第一種是整屏左移操作,先將待顯示的內容寫入1602RAM的后面幾個存儲單元,當內容寫入完成后,寫入指令,實現(xiàn)指針不動而屏幕動的效果。第二種是將內容一個個寫到1602顯示,這主要通過延時函數(shù)控制寫入的兩個字符間的時間間隔。1602液晶一次可以顯示32個字符,通過編程可以實現(xiàn)不同的動態(tài)顯示方式。關鍵詞:AT89C52;1602;動態(tài)顯示1 Proteus仿真流程與Keil編譯器簡介1.1 Proteus
2、仿真流程(1)工作界面Proteus ISIS的工作界面是一種標準的Windows界面,如圖1-2所示。包括:標題欄、主菜單、標準工具欄、繪圖工具欄、狀態(tài)欄、對象選擇按鈕、預覽對象方位控制按鈕、仿真進程控制按鈕、預覽窗口、對象選擇器窗口、圖形編輯窗口。圖1.1 proteus操作界面(2) 基本操作1 圖形編輯窗口在圖形編輯窗口內完成電路原理圖的編輯和繪制。為了方便作圖坐標系統(tǒng)(CO-ORDINATE SYSTEM)。ISIS中坐標系統(tǒng)的基本單位是10nm,主要是為了和Proteus ARES保持一致。但坐標系統(tǒng)的識別(read-out)單位被限制在1th。坐標原點默認在圖形編輯區(qū)的中間,圖形
3、的坐標值能夠顯示在屏幕的右下角的狀態(tài)欄中。 點狀柵格(The Dot Grid)與捕捉到柵格(Snapping to a Grid)編輯窗口內有點狀的柵格,可以通過View菜單的Grid命令在打開和關閉間切換。點與點之間的間距由當前捕捉的設置決定。捕捉的尺度可以由View菜單的Snap命令設置,或者直接使用快捷鍵F4、F3、F2和CTRL+F1。2 預覽窗口該窗口通常顯示整個電路圖的縮略圖。在預覽窗口上點擊鼠標左鍵,將會有一個矩形藍綠框標示出在編輯窗口的中顯示的區(qū)域。 其他情況下,預覽窗口顯示將要放置的對象的預覽。這種Place Preview特性在下列情況下被激活:當一個對象在選擇器中被選中
4、、當使用旋轉或鏡像按鈕時、當為一個可以設定朝向的對象選擇類型圖標時(例如:Component icon, Device Pin icon等等)、當放置對象或者執(zhí)行其他非以上操作時,place preview會自動消除、對象選擇器(Object Selector)根據(jù)由圖標決定的當前狀態(tài)顯示不同的內容。顯示對象的類型包括:設備,終端,管腳,圖形符號,標注和圖形。在某些狀態(tài)下,對象選擇器有一個Pick切換按鈕,點擊該按鈕可以彈出庫元件選取窗體。通過該窗體可以選擇元件并置入對象選擇器,在今后繪圖時使用。3 對象選擇與放置通過對象選擇按鈕,從元件庫中選擇對象,并置入對象選擇器窗口,供今后繪圖時使用。顯
5、示對象的類型包括:設備,終端,管腳,圖形符號,標注和圖形。放置對象的步驟如下(To place an object:)根據(jù)對象的類別在工具箱選擇相應模式的圖標(mode icon)。根據(jù)對象的具體類型選擇子模式圖標(sub-mode icon)。如果對象類型是元件、端點、管腳、圖形、符號或標記,從選擇器里(selector)選擇你想要的對象的名字。對于元件、端點、管腳和符號,可能首先需要從庫中調出。如果對象是有方向的,將會在預覽窗口顯示出來,你可以通過預覽對象方位按鈕對對象進行調整。最后,指向編輯窗口并點擊鼠標左鍵放置對象。1.2 Keil軟件簡介Keil C51是美國Keil Softwar
6、e公司出品的51系列兼容單片機C語言軟件開發(fā)系統(tǒng),與匯編相比,C語言在功能上、結構性、可讀性、可維護性上有明顯的優(yōu)勢,因而易學易用。Keil提供了包括C編譯器、宏匯編、連接器、庫管理和一個功能強大的仿真調試器等在內的完整開發(fā)方案,通過一個集成開發(fā)環(huán)境(uVision)將這些部分組合在一起。運行Keil軟件需要WIN98、NT、WIN2000、WINXP等操作系統(tǒng)。如果你使用C語言編程,那么Keil幾乎就是你的不二之選,即使不使用C語言而僅用匯編語言編程,其方便易用的集成環(huán)境、強大的軟件仿真調試工具也會令你事半功倍。Keil C51開發(fā)系統(tǒng)基本知識Keil C51開發(fā)系統(tǒng)基本知識 (1)系統(tǒng)概述
7、 Keil C51軟件提供豐富的庫函數(shù)和功能強大的集成開發(fā)調試工具,全Windows界面。另外重要的一點,只要看一下編譯后生成的匯編代碼,就能體會到Keil C51生成的目標代碼效率非常之高,多數(shù)語句生成的匯編代碼很緊湊,容易理解。在開發(fā)大型軟件時更能體現(xiàn)高級語言的優(yōu)勢。下面詳細介紹Keil C51開發(fā)系統(tǒng)各部分功能和使用。 (2)Keil C51單片機軟件開發(fā)系統(tǒng)的整體結構 C51工具包的整體結構,uVision與Ishell分別是C51 for Windows和for Dos的集成開發(fā)環(huán)境(IDE),可以完成編輯、編譯、連接、調試、仿真等整個開發(fā)流程。開發(fā)人員可用IDE本身或其它編輯器編輯
8、C或匯編源文件。然后分別由C51及C51編譯器編譯生成目標文件(.OBJ)。目標文件可由LIB51創(chuàng)建生成庫文件,也可以與庫文件一起經(jīng)L51連接定位生成絕對目標文件(.ABS)。ABS文件由OH51轉換成標準的Hex文件,以供調試器dScope51或tScope51使用進行源代碼級調試,也可由仿真器使用直接對目標板進行調試,也可以直接寫入程序存貯器如EPROM中。Keil C51生成的目標代碼效率非常之高,多數(shù)語句生成的匯編代碼很緊湊,容易理解。在開發(fā)大型軟件時更能體現(xiàn)高級語言的優(yōu)勢。2 單片機模塊功能簡介AT89C52是一個低電壓,高性能CMOS 8位單片機,片內含8k bytes的可反復擦
9、寫的Flash只讀程序存儲器和256 bytes的隨機存取數(shù)據(jù)存儲器(RAM),器件采用ATMEL公司的高密度、非易失性存儲技術生產(chǎn),兼容標準MCS-51指令系統(tǒng),片內置通用8位中央處理器和Flash存儲單元,AT89C52單片機在電子行業(yè)中有著廣泛的應用。其主要功能特性有以下幾點:(1)兼容MCS51指令系統(tǒng) (2)8K可反復擦寫(大于100000次)Flash ROM; (3)32個雙向I/O口; (4)256x8bit內部RAM; (5)3個16位可編程定時/計數(shù)器中斷; (6)時鐘頻率0-24MHz; (7)2個串行中斷,可編程UART串行通道; (8)2個外部中斷源,共8個中斷源;
10、(9)2個讀寫中斷口線,3級加密位; (10)低功耗空閑和掉電模式,軟件設置睡眠和喚醒功能; (11)有PDIP、PQFP、TQFP及PLCC等幾種封裝形式,以適應不同產(chǎn)品的需求。 AT89C52為8 位通用微處理器,采用工業(yè)標準的C51內核,在內部功能及管腳排布上與通用的8XC51相同,其主要用于會聚調整時的功能控制。其引腳分布如圖2.1所示。圖2.1 AT89C52單片機引腳圖3 設計方案與工作原理3.1 LCM1602液晶簡介LCM(LCD Module)即LCD顯示模組,是指將液晶顯示器件、連接件、控制與驅動等外圍電路,PCB電路板,背光源,結構件等裝配在一起的組件。LCM提供用戶一個
11、標準的LCD顯示驅動接口,用戶按照接口要求進行操作來控制LCD正確顯示。LCM是一種相對更高集成度的LCD產(chǎn)品,對小尺寸LCD顯示,LCM是一種省電的顯示裝置,LCM可以比較方便地與各種微控制器(比如單片機)連接,作為簡易的人機接口。其中,MCS-51單片機作為LCM1602顯示控制系統(tǒng)的核心部件。它由中央處理器(CPU)、存儲器(ROM與RAM)、輸入/輸出單元(I/O)三大基本部分構成。單片機具有高性能、低價格;體積小,集成度高,可靠性和抗干擾能力強;較低工作電壓(1.85V),低功耗等優(yōu)點。并且,只要在單片機的外圍適當加一些必要的擴展電路及通道接口,就可以構成各種應用系統(tǒng),如工業(yè)控制系統(tǒng)
12、、數(shù)據(jù)采集系統(tǒng)、自動控制系統(tǒng)、自動測試系統(tǒng)、檢測監(jiān)視系統(tǒng)、智能儀表、功能模塊等。因此單片機廣泛應用于便攜式智能產(chǎn)品與家電消費品,以及工業(yè)控制,國防裝備等領域。3.2 單片機最小系統(tǒng)單片機控制模塊是整個設計方案的核心。AT59C51芯片作為該系統(tǒng)的控制部件,它控制了1602液晶顯示的內容以及液晶動態(tài)顯示方式。單片機最下系統(tǒng)由時鐘電路和復位電路構成,這樣就可以在接入其他器件,用單片機編程實現(xiàn)對外部器件的控制。單片機最小系統(tǒng)如圖3.1所示。圖3.1 單片機最小系統(tǒng)3.3 設計方案由上面介紹的1602液晶,參看1602液晶芯片資料可以對其寫入內容和設定內容的顯示位置以及顯示方式。將1602液晶與單片機
13、最小系統(tǒng)相連接就構成了本次設計方案。1602液晶與單片機的連接方式是1602液晶的數(shù)據(jù)端D0D7連接在單片機的P0口,1602液晶的數(shù)據(jù)命令選擇端RD接在單片機的P2.6引腳,讀寫控制端R/Wj接在單片機的P2.5引腳,使能端EN接在單片機的P2.7腳。設計的電路圖如圖3.2所示。圖3.2 設計方案原理圖4 軟件編程4.1 1602流程圖本次課程設計1602液晶顯示的內容是“WELCOME TO WU HAN LI GONG”,設定的動態(tài)顯示方式是顯示的內容在屏幕上從右向左移動,停留一段時間后閃爍兩次消失,然后從左向右一次顯示每個字符,停留一段時間后閃爍兩次后消失。動態(tài)顯示方式的字符間的時間間
14、隔,不同顯示方式的時間間隔主要通過延時程序來完成,設計的1602系統(tǒng)流程圖如圖4.1所示。開始 對1602初始化寫入顯示設置命令 延遲5ms檢查忙信號B_Z=0?獲得RAM地址NY結束內容顯示完?寫入相應內容延遲5msNY圖4.1 1602顯示流程圖4.2 軟件程序#include <reg51.h>#include <intrins.h>typedef unsigned char BYTE; /用BYTE代替unsigned char數(shù)據(jù)類型typedef bit BOOL; /用BOOL代替bit數(shù)據(jù)類型 sbit LCD_RS = P26; /數(shù)據(jù)命令選擇端 sb
15、it LCD_RW = P25; /讀寫選擇端sbit LCD_EP = P27; /使能信號BYTE code dis1 = " WELCOME TO "/待顯示的字符BYTE code dis2 = " WU HAN LI GONG "BYTE code dis3 = " BIG BIG WORLD "BYTE code dis4 = " I LOVE WHUT "BYTE code dis5 = " WANG DAO YUN "void delay(int ms) / 延時子程序int i
16、;while(ms-) for(i = 0; i< 250; i+) _nop_(); _nop_(); _nop_(); _nop_(); BOOL lcd_bz() / 測試LCD忙碌狀態(tài) BOOL result;LCD_RS = 0; /寫指令LCD_RW = 1;LCD_EP = 1; /為產(chǎn)生下降沿做好準備_nop_(); /延時5ms_nop_();_nop_();_nop_();result = (BOOL)(P0 & 0x80);/判斷狀態(tài)字最高位STA7,確保STA7為0LCD_EP = 0; /將LED_EP拉低,產(chǎn)生下降沿,寫入指令return result
17、; /返回結果,為1禁止讀寫,為0可以讀寫void lcd_wcmd(BYTE cmd)/ 寫入指令數(shù)據(jù)到LCD while(lcd_bz(); /為1不能進行讀寫操作LCD_RS = 0; /寫指令LCD_RW = 0; LCD_EP = 0;_nop_();_nop_(); P0 = cmd; /將指令寫到P0口_nop_();_nop_();_nop_();_nop_();LCD_EP = 1; /使能端高電平,為產(chǎn)生下降沿準備_nop_();_nop_();_nop_();_nop_();LCD_EP = 0; /產(chǎn)生下降沿,將指令寫入LCD void lcd_pos(BYTE pos
18、) /設定顯示位置 lcd_wcmd(pos | 0x80); /LCD數(shù)據(jù)指針格式80H+地址void lcd_wdat(BYTE dat) /寫入字符顯示數(shù)據(jù)到LCD while(lcd_bz(); /LCD忙檢測,為1不能進行讀寫,為0可以讀寫LCD_RS = 1; /寫數(shù)據(jù)LCD_RW = 0; LCD_EP = 0;P0 = dat; /數(shù)據(jù)送入P0口_nop_();_nop_();_nop_();_nop_();LCD_EP = 1; /使能端拉高。為產(chǎn)生下降沿做準備_nop_();_nop_();_nop_();_nop_();LCD_EP = 0; /使能端拉低,將數(shù)據(jù)寫入LC
19、D void lcd_init() /LCD初始化設定 lcd_wcmd(0x38); /16*2顯示,5*7點陣,8位數(shù)據(jù)delay(1); /延時1mslcd_wcmd(0x0c); /顯示開,關光標delay(1);lcd_wcmd(0x06); /移動光標,當讀或寫一個字符后地址指針加1且光標加1delay(1);lcd_wcmd(0x01); /清除LCD的顯示內容,地址指針數(shù)據(jù)指針清零delay(1);void flash() delay(300); /控制停留時間 lcd_wcmd(0x08); /關閉顯示 delay(100); /延時 lcd_wcmd(0x0c); /開顯示
20、 delay(100); lcd_wcmd(0x08); /關閉顯示 delay(100); /延時 lcd_wcmd(0x0c); /開顯示 delay(100); void main() BYTE i,j; /定義uisigned char型變量i,j lcd_init(); / 初始化LCD delay(10); /延時10ms while(1) lcd_wcmd(0x06); /向右移動光標 lcd_pos(0x10); /設置顯示位置為第一行的第17個字符 i = 0; while(dis1 i != '0') lcd_wdat(dis1 i ); /顯示字符&quo
21、t;WLCOME TO" i+; / delay(30); /控制兩字之間顯示速度 lcd_pos(0x50); /設置顯示位置為第二行第17個字符 i = 0; while(dis2 i != '0') lcd_wdat(dis2 i ); /顯示字符" WU HAN LI GONG " i+; /delay(30); /控制兩字之間顯示速度 for(j=0;j<16;j+) /向左移動16格 lcd_wcmd(0x18); /字符同時左移一格 delay(80); /控制移動時間 flash(); /閃動二次 delay(800); /控
22、制停留時間 lcd_wcmd(0x01); /清除LCD的顯示內容 delay(1); lcd_wcmd(0x06); /向左移動光標 lcd_pos(0); /設置顯示位置為第一行的第1個字符 i = 0; while(dis3 i != '0') /顯示字符"BIG BIG WORLD" lcd_wdat(dis3 i ); i+; delay(30); /控制兩字之間顯示速度 lcd_pos(0x40); /設置顯示位置為第二行的第16個字符 i = 0; while(dis4 i != '0') lcd_wdat(dis4 i );
23、/顯示字符" I LOVE WHUT " i+; delay(30); /控制兩字之間顯示速度 flash(); delay(800); /控制停留時間 lcd_wcmd(0x01); /清除LCD的顯示內容 delay(1); lcd_wcmd(0x06); /向左移動光標 lcd_pos(0); /設置顯示位置為第一行的第1個字符 i = 0; while(dis5 i != '0') /顯示字符"WANG DAO YUN" lcd_wdat(dis5 i ); i+; delay(30); /控制兩字之間顯示速度 lcd_pos(0x40); /設置顯示位置為第二行的第16個字符 i = 0; while(dis6 i != '0') lcd_wdat(dis6 i ); /顯示字符" " i+; delay(30); /控制兩字之間顯示速度 flash(); delay(800); lcd_wc
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 技術升級項目合同借款協(xié)議
- 合同管理培訓與人才培養(yǎng)的建議
- 餐飲業(yè)原料采購合同(安全食品專用)
- 勞動合同范本:外來專業(yè)技術人才
- 商業(yè)地皮交易合同書
- 蘇州市模范勞動合同樣本
- 四人合作創(chuàng)業(yè)股份分配合同范本
- 年度合作合同:速記服務條款
- 液化氣采購框架合同
- 購物中心投資合同樣本
- 績效評價師考試-隨機題庫
- CSC-103微機線路成套保護裝置檢驗作業(yè)指導書
- 叉車日常維護保養(yǎng)檢查記錄表
- 鐵路橋梁工程各工序工效分析
- 2022《文創(chuàng)產(chǎn)品的設計》PPT演示文稿
- 介入科制度匯編
- 鍍鋅管理論重量表常用
- 鐵總計統(tǒng)【2017】177號關于進一步加強鐵路建設項目征地拆遷工作和費用管理的指導意見
- 電子技術基礎與技能-(3)
- 部編版四年級下冊語文第二單元課文教材分析及全部教案
- 美術開學第一課(課堂PPT)
評論
0/150
提交評論