標(biāo)題: 點(diǎn)陣字符LCD靜態(tài)數(shù)字顯示單片機(jī)課程設(shè)計(jì)全套資料下載(論文+程序+任務(wù)書(shū)等) [打印本頁(yè)]
作者: 三流侍衛(wèi) 時(shí)間: 2018-1-16 10:12
標(biāo)題: 點(diǎn)陣字符LCD靜態(tài)數(shù)字顯示單片機(jī)課程設(shè)計(jì)全套資料下載(論文+程序+任務(wù)書(shū)等)
陜西科技大學(xué)
顯示器驅(qū)動(dòng)課程設(shè)計(jì)任務(wù)書(shū)
電信 學(xué)院 電子 專業(yè) 141 班級(jí) 學(xué)生: 曹 帥
題目: 點(diǎn)陣字符LCD靜態(tài)數(shù)字顯示
課程設(shè)計(jì)從 2017 年 12月 25 日起到 2018 年 1 月 7 日
1、課程設(shè)計(jì)的內(nèi)容和要求(包括原始數(shù)據(jù)、技術(shù)要求、工作要求等):
熟悉51系列(兼容)單片機(jī)軟件開(kāi)發(fā)系統(tǒng)Keil C51集成開(kāi)發(fā)環(huán)境(u Vison系列編譯器)和Proteus電路分析與實(shí)物仿真軟件。
了解點(diǎn)陣字符LCD模塊的內(nèi)部結(jié)構(gòu)及字符字模,熟悉點(diǎn)陣字符LCD顯示器驅(qū)動(dòng)的基本原理。設(shè)計(jì)點(diǎn)陣字符LCD顯示器的驅(qū)動(dòng)電路,編寫(xiě)程序?qū)崿F(xiàn)在點(diǎn)陣字符LCD顯示器上的靜態(tài)數(shù)字顯示。
電路方面主要包括以下3部分。(a)設(shè)計(jì)單片機(jī)的最小系統(tǒng)(包括復(fù)位電路和外接的晶振電路),并確定相關(guān)元器件參數(shù)。(b)設(shè)計(jì)單片機(jī)與點(diǎn)陣字符LCD模塊間的控制線,主要包括控制字符LCD顯示器的數(shù)據(jù)/指令寄存器選擇、讀/寫(xiě)選擇、使能信號(hào)和I/O數(shù)據(jù)傳輸線等連線。(c)采用直接訪問(wèn)時(shí)單片機(jī)P0口的上拉電阻; LCD模塊的電源及偏壓電路。
編寫(xiě)點(diǎn)陣字符LCD顯示器靜態(tài)數(shù)字顯示程序,實(shí)現(xiàn)數(shù)字(0—9)的信息顯示。顯示內(nèi)容自定,如顯示學(xué)號(hào)。
2、對(duì)課程設(shè)計(jì)成果的要求〔包括圖表、實(shí)物等硬件要求〕:
(1)利用電路設(shè)計(jì)軟件(Proteus 軟件)繪制陣字符LCD模塊驅(qū)動(dòng)電路的原理圖,并列出元器件清單。原理圖應(yīng)包括標(biāo)題欄。
(2)編寫(xiě)陣字符LCD顯示器靜態(tài)數(shù)字顯示的匯編語(yǔ)言或C語(yǔ)言源程序,并給出程序流程圖。
(3)在Keil C51與Proteus的聯(lián)機(jī)調(diào)試下完成的陣字符LCD顯示器靜態(tài)數(shù)字顯示的仿真結(jié)果或制作實(shí)物。
(4)在課程設(shè)計(jì)報(bào)告中對(duì)上述內(nèi)容作適當(dāng)說(shuō)明。
3、課程設(shè)計(jì)工作進(jìn)度計(jì)劃:
時(shí)間 | 設(shè)計(jì)任務(wù)及要求 |
12.25-12.26
| 查閱資料,確定設(shè)計(jì)方案
|
12.27-12.28
| 熟悉點(diǎn)陣字符LCD模塊的結(jié)構(gòu)及工作原理
|
12.29-12.30
| 熟悉設(shè)計(jì)軟件(Keil C51和Proteus)
|
12.31
| 設(shè)計(jì)點(diǎn)陣字符LCD模塊的驅(qū)動(dòng)電路
|
1.1-1.2
| 編寫(xiě)點(diǎn)陣字符LCD顯示器的靜態(tài)數(shù)字顯示程序
|
1.3-1.4
| 硬件電路與驅(qū)動(dòng)程序的調(diào)試、仿真/實(shí)物制作(選作)
|
1.5-1.6
| 撰寫(xiě)課程設(shè)計(jì)報(bào)告
|
1.7
| 驗(yàn)收設(shè)計(jì)成果,交課程設(shè)計(jì)報(bào)告
|
指導(dǎo)教師: 日期:
教研室主任: 日期:
目 錄
1 選題背景
2 方案論證
2.1設(shè)計(jì)原理
2.2硬件方案
2.3軟件方案
2.4方案特點(diǎn)
3 點(diǎn)陣字符LCD靜態(tài)數(shù)字顯示設(shè)計(jì)過(guò)程論述
3.1系統(tǒng)硬件框圖設(shè)計(jì)
3.2系統(tǒng)原理圖設(shè)計(jì)
3.3系統(tǒng)軟件設(shè)計(jì)
3.3.1程序流程圖
3.3.2軟件代碼
4 結(jié)果分析
5 總結(jié)
6 設(shè)計(jì)體會(huì)
參考文獻(xiàn)
1 選題背景本課程設(shè)計(jì)命題為點(diǎn)陣字符LCD靜態(tài)數(shù)字顯示,涉及顯示技術(shù)、電子技術(shù)、單片微型計(jì)算機(jī)、程序設(shè)計(jì)等相關(guān)課程內(nèi)容,針對(duì)LCD顯示器設(shè)計(jì)驅(qū)動(dòng)電路,編寫(xiě)驅(qū)動(dòng)程序。要求學(xué)生熟悉51系列(兼容)單片機(jī)軟件開(kāi)發(fā)系統(tǒng)Keil C51集成開(kāi)發(fā)環(huán)境(u Vison系列編譯器)和Proteus電路分析與實(shí)物仿真軟件。了解點(diǎn)陣字符LCD模塊的內(nèi)部結(jié)構(gòu)及字符字模,熟悉點(diǎn)陣字符LCD顯示器驅(qū)動(dòng)的基本原理。設(shè)計(jì)點(diǎn)陣字符LCD顯示器的驅(qū)動(dòng)電路,編寫(xiě)程序?qū)崿F(xiàn)在點(diǎn)陣字符LCD顯示器上的靜態(tài)數(shù)字顯示。通過(guò)本次課設(shè),使學(xué)生運(yùn)用上述專業(yè)知識(shí),進(jìn)行一次綜合性訓(xùn)練。既有助于鞏固學(xué)生所學(xué)專業(yè)知識(shí)、培養(yǎng)獨(dú)立設(shè)計(jì)能力、工程繪圖能力、編寫(xiě)技術(shù)報(bào)告,提高綜合運(yùn)用知識(shí)的能力,也能為畢業(yè)設(shè)計(jì)以及未來(lái)工作打下基礎(chǔ)。
2 方案論證2.1設(shè)計(jì)原理
以AT89C51單片機(jī)為核心,編寫(xiě)相應(yīng)的軟件程序,設(shè)計(jì)復(fù)位電路以及外界晶振電路、上拉電阻、偏壓電路等使單片機(jī)與點(diǎn)陣字符LCD模塊(LM016L)相連接最終實(shí)現(xiàn)靜態(tài)數(shù)字(201412040112)的顯示。
2.2硬件方案硬件電路由三部分組成,即單片機(jī)復(fù)位電路、外接的晶振電路、LCD顯示電路。各部分實(shí)現(xiàn)功能及設(shè)計(jì)概要如下。
- 單片機(jī)復(fù)位電路、外接的晶振電路:?jiǎn)纹瑱C(jī)正常工作需要
- LCD顯示電路:顯示數(shù)字字符信息
- 復(fù)位電路設(shè)計(jì)概要:采用手動(dòng)按鈕復(fù)位采用方法是在RST端和正電源Vcc之間 接一個(gè)按鍵開(kāi)關(guān)而本設(shè)計(jì)晶振采用的是1MHz因此起振時(shí)間為10ms,由于人的動(dòng)作再快也會(huì)使按鈕保持接通達(dá)數(shù)十毫秒,所以完全滿足復(fù)位的時(shí)間要求。
- LCD顯示電路設(shè)計(jì)概要:本次課設(shè)任務(wù)是點(diǎn)陣字符靜態(tài)數(shù)字顯示,因此選擇LM016L具備字符發(fā)生器的顯示器件。
表2-1 LM016L引腳功能
編 號(hào) | 符 號(hào) | 引腳說(shuō)明 | 編 號(hào) | 符 號(hào) | 引腳說(shuō)明 |
1 | VSS | 電源地 | 9 | D2 | 數(shù)據(jù) |
2 | VDD | 電源正極 | 10 | D3 | 數(shù)據(jù) |
3 | VEE | 負(fù)電壓供電 | 11 | D4 | 數(shù)據(jù) |
4 | RS | 數(shù)據(jù)/命令 | 12 | D5 | 數(shù)據(jù) |
5 | R/ W | 讀/寫(xiě)選擇 | 13 | D6 | 數(shù)據(jù) |
6 | E | 使能信號(hào) | 14 | D7 | 數(shù)據(jù) |
7 | D0 | 數(shù)據(jù) |
|
|
|
8 | D1 | 數(shù)據(jù) |
|
|
|
2.3軟件方案本設(shè)計(jì)軟件部分的主要完成功能是定義1602控制引腳、確定要顯示的數(shù)字字符內(nèi)容即學(xué)號(hào)、讀指令數(shù)據(jù)操作、寫(xiě)指令數(shù)據(jù)操作、LCD初始化。根據(jù)軟件的功能劃分軟件設(shè)計(jì)模塊結(jié)構(gòu),如圖2-1所示。
圖2-1 軟件功能模塊結(jié)構(gòu)(見(jiàn)附件)
各個(gè)模塊具體任務(wù)如下:
- LCD初始化模塊:設(shè)置顯示模式,開(kāi)光標(biāo)和光標(biāo)閃爍,清屏。
- 讀指令數(shù)據(jù)操作:判斷是否忙碌
- 寫(xiě)指令數(shù)據(jù)操作:完成寫(xiě)指令和寫(xiě)數(shù)據(jù)操作,實(shí)現(xiàn)字符的顯示
2.4方案特點(diǎn)該方案軟件方面采用C語(yǔ)言進(jìn)行編譯,相對(duì)于匯編語(yǔ)言其具有更加靈活,可移植性強(qiáng),庫(kù)函數(shù)多等特點(diǎn)。硬件方面選用LM016L作為L(zhǎng)CD顯示屏是因?yàn)椋肔CD顯示一個(gè)字符時(shí)比較復(fù)雜,但LM016L內(nèi)帶字符發(fā)生器,顯示字符就變得簡(jiǎn)單,讓控制器工作在文本方式,根據(jù)在LCD上開(kāi)始顯示的行列號(hào)及每行的列數(shù)找出顯示RAM對(duì)應(yīng)的地址,設(shè)立光標(biāo),在此送上該字符對(duì)應(yīng)的代碼即可。
3 點(diǎn)陣字符LCD靜態(tài)數(shù)字顯示設(shè)計(jì)過(guò)程論述3.1系統(tǒng)硬件框圖設(shè)計(jì)根據(jù)確定的硬件方案設(shè)計(jì)系統(tǒng)硬件框圖,包含晶振電路為單片機(jī)提供時(shí)鐘信號(hào),復(fù)位電路保證可以進(jìn)行復(fù)位操作以及LCD顯示電路進(jìn)行數(shù)字顯示。如圖3-1所示。
圖3-1系統(tǒng)硬件框圖(見(jiàn)附件)
3.2系統(tǒng)原理圖設(shè)計(jì)根據(jù)設(shè)計(jì)要求和硬件框圖設(shè)計(jì)系統(tǒng)原理圖,如圖3-2所示。

圖3-2 系統(tǒng)原理圖
單片機(jī)的管腳資源分配:其中P0口為作為L(zhǎng)CD數(shù)據(jù)信號(hào)口,P3.4口作為使能信號(hào)端 P3.5口作為數(shù)據(jù)/命令選擇端,P3.6口作為讀/寫(xiě)選擇端,硬件系統(tǒng)元器件清單如下表3-1所示。
表3-1硬件系統(tǒng)元器件清單
編 號(hào) | 符 號(hào) | 屬性 |
1 | R1 | 10K |
2 | R2 | 10K |
3 | C1 | 10uf |
4 | C2 | 30pf |
5 | C3 | 30pf |
6 | U1 | AT89C51 |
7 | LCD1 | LM016L |
8 | RP1 | 10K |
9 | X1 | 4pf |
|
|
|
3.3系統(tǒng)軟件設(shè)計(jì)3.3.1程序流程圖
該設(shè)計(jì)流程大致包括液晶屏初始化、清屏、確定顯示字符地址、定位光標(biāo)位置、字符顯示等具體流程如下圖3-3所示。












圖3-3 程序流程圖
3.3.2軟件代碼
1) LCD頭文件功能2) LCD顯示子程序文件功能- 保證LCD處于空閑狀態(tài)
- 根據(jù)MODE類型執(zhí)行寫(xiě)數(shù)據(jù)或?qū)懼噶畈僮?/font>
- 執(zhí)行清屏、光標(biāo)顯示設(shè)置等操作
- 確定光標(biāo)位置,寫(xiě)字符串?dāng)?shù)據(jù)
最后通過(guò)使用keil uvison4軟件將編輯好的程序文件錄入protues軟件中的硬件原理圖的AT89C51單片機(jī)中進(jìn)行仿真,并成功得到學(xué)號(hào)的顯示,完成設(shè)計(jì)任務(wù)。
4 結(jié)果分析該設(shè)計(jì)最終將軟件程序錄入單片機(jī)后進(jìn)行仿真測(cè)試,成功的在液晶顯示屏上進(jìn)行持續(xù)穩(wěn)定的靜態(tài)數(shù)字即201412040112學(xué)號(hào)的顯示。因此可以得出該設(shè)計(jì)的硬件方案與軟件方案的正確性,更進(jìn)一步論證了硬件電路原理圖的合理性,包括其中的電容、電阻、晶振等基本元器件參數(shù)確定是完全符合設(shè)計(jì)要求的。同時(shí)也驗(yàn)證了軟件程序的功能性是滿足要求的,可以成功實(shí)現(xiàn)所定義的數(shù)字顯示功能并且不會(huì)出現(xiàn)其他內(nèi)容的顯示,沒(méi)有出現(xiàn)花屏等其他錯(cuò)誤的顯示效果,足以看出該軟件程序的正確性。進(jìn)而更加驗(yàn)證了以AT89C51單片機(jī)為核心,編寫(xiě)相應(yīng)的軟件程序,設(shè)計(jì)復(fù)位電路以及外界晶振電路、上拉電阻、偏壓電路等使單片機(jī)與點(diǎn)陣字符LCD模塊(LM016L)相連接最終實(shí)現(xiàn)靜態(tài)數(shù)字(201412040112)的顯示設(shè)計(jì)原理的正確性。仿真結(jié)果圖如圖4-1所示。
圖4-1 仿真結(jié)果圖
5 總結(jié)此次課設(shè)雖然已經(jīng)成功完成仿真要求,但其中的關(guān)鍵步驟的正確性是該設(shè)計(jì)能夠成功實(shí)現(xiàn)的基礎(chǔ),最重要的兩點(diǎn)就是,單片機(jī)與液晶的接口要滿足液晶的時(shí)序要求,軟件編程中是要進(jìn)行正確的初始化、操作及寫(xiě)入顯示內(nèi)容的代碼。因此將這兩個(gè)關(guān)鍵步驟的設(shè)計(jì)內(nèi)容成功確定是本次課設(shè)的工作重點(diǎn),在完成了大體的方案步驟后,接下來(lái)便是對(duì)硬件方案中的一些細(xì)節(jié)進(jìn)行優(yōu)化,參數(shù)進(jìn)行確定,對(duì)軟件程序進(jìn)行功能性測(cè)試等工作,最終成功完成課設(shè)設(shè)計(jì)任務(wù)。
6 設(shè)計(jì)體會(huì)本次課設(shè)從 2017 年 12月 25 日起到 2018 年 1 月 7 日歷時(shí)兩周,從開(kāi)始的查閱資料,初步確定設(shè)計(jì)方案,然后學(xué)習(xí)protues以及keil uvison4軟件的基本功能操作,在具備了一定的軟件使用能力后便開(kāi)始進(jìn)行硬件電路的設(shè)計(jì)以及軟件程序的編寫(xiě),最后進(jìn)行電路與驅(qū)動(dòng)程序的調(diào)試與仿真并成功得出結(jié)果,整個(gè)設(shè)計(jì)過(guò)程中遇到過(guò)一些問(wèn)題,但在老師的兩次課設(shè)指導(dǎo),并且查閱資料以及與同學(xué)的交流下都得以解決,而我認(rèn)為課設(shè)得出結(jié)果是重要的,但是在這個(gè)查閱、學(xué)習(xí)、交流、集各方面知識(shí)為自己所用的這個(gè)過(guò)程才是我最大的收獲,因?yàn)檫@個(gè)過(guò)程不單單是學(xué)習(xí)一定的書(shū)本知識(shí)那樣簡(jiǎn)單,其對(duì)于我們以后的生活和工作的是具有巨大的幫助的,此次課設(shè)雖然已經(jīng)完成,但是它所帶給我的啟發(fā)與解決問(wèn)題的思路和方法將會(huì)在我以后的工作和生活中一直幫助著我.
參考文獻(xiàn)
[1]作者袁東 周新國(guó).51單片機(jī)典型應(yīng)用30例.清華大學(xué)出版社.出版時(shí)間2016年7月1日
[2]作者徐愛(ài)鈞 徐陽(yáng) Keil C51單片機(jī)高級(jí)語(yǔ)言應(yīng)用編程與實(shí)踐.電子工業(yè)出版社.出版時(shí)間2013年12月1日
- #include <reg52.h>
- typedef unsigned char uchar;
- typedef unsigned int uint;
-
- sbit En = P3^4;
- sbit Rs = P3^5;
- sbit Wr = P3^6; //定義1602控制引腳
- uchar code D[]={"2014120404112"};
-
- /*===========================================================
- 1602需要的函數(shù)
- ========================================================== */
- void Read_Busy() //讀1602指令,判斷是否忙碌
- {
- uchar busy;
- P0 = 0xff;
- Rs = 0;
- Wr = 1;
- do
- {
- En = 1;
- busy = P0;
- En = 0;
- }while(busy & 0x80);
- }
-
- void WrOrder_1602(uchar order) //1602寫(xiě)指令
- {
- Read_Busy();
- Rs = 0;
- Wr = 0;
- P0 = order;
- En = 1;
- En = 0;
- }
- void Init_1602() //液晶初始化
- {
- WrOrder_1602(0x38); //設(shè)置顯示模式
- WrOrder_1602(0x0f); // 開(kāi)光標(biāo)和光標(biāo)閃爍
- WrOrder_1602(0x01); //清屏
-
- WrOrder_1602(0x06); //寫(xiě)一數(shù)據(jù)后光標(biāo)自動(dòng)加一
- }
-
- void WrData_1602(uchar Data) //寫(xiě)一個(gè)數(shù)據(jù)
- {
- Read_Busy();
- Rs = 1;
- Wr = 0;
- P0 = Data;
- En = 1;
- En = 0;
- }
-
- void WrD_1602(uchar x, uchar n, uchar *D) //第x行第n(取0~15)個(gè)位置開(kāi)始寫(xiě)一個(gè)字符串
- {
- uchar i=0;
- if(x==1)
- {
- WrOrder_1602(0x80|n);//第一行第n個(gè)位置開(kāi)始
- }
- else
- {
- WrOrder_1602(0x80|0x40|n);//第二行第n個(gè)位置開(kāi)始
- }
- while(D[i]!='\0')
- {
- Read_Busy();
- Rs = 1;
- Wr = 0;
- P0 = D[i];
- En = 1;
- En = 0;
- i++;
- }
- }
-
-
- void main(void)
- {
- Init_1602(); //液晶初始化
- WrOrder_1602(0x38); //設(shè)置顯示模式
- WrOrder_1602(0x0f); // 開(kāi)光標(biāo)和光標(biāo)閃爍
- WrOrder_1602(0x01); //清屏
- WrOrder_1602(0x06); //寫(xiě)一數(shù)據(jù)后光標(biāo)自動(dòng)加一
-
-
- …………
- …………限于本文篇幅 余下代碼請(qǐng)從51黑下載附件…………
復(fù)制代碼
0.png (54.06 KB, 下載次數(shù): 41)
下載附件
2018-1-16 23:16 上傳
0.jpg (26.61 KB, 下載次數(shù): 49)
下載附件
2018-1-16 23:15 上傳
全部資料51hei下載地址:
點(diǎn)陣字符LCD靜態(tài)數(shù)字顯示.rar
(2.55 MB, 下載次數(shù): 57)
2018-1-16 10:12 上傳
點(diǎn)擊文件名下載附件
下載積分: 黑幣 -5
作者: 慕情 時(shí)間: 2019-6-10 23:10
你好我想問(wèn)一下有沒(méi)有動(dòng)態(tài)的
歡迎光臨 (http://www.torrancerestoration.com/bbs/) |
Powered by Discuz! X3.1 |