標(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ì)概要如下。
表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ù)如下:
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顯示子程序文件功能
最后通過(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日

  1. #include <reg52.h>
  2. typedef unsigned char uchar;
  3. typedef unsigned int uint;

  4. sbit En = P3^4;
  5. sbit Rs = P3^5;
  6. sbit Wr = P3^6;   //定義1602控制引腳
  7. uchar code D[]={"2014120404112"};

  8. /*===========================================================
  9.     1602需要的函數(shù)
  10. ========================================================== */
  11. void Read_Busy()   //讀1602指令,判斷是否忙碌
  12. {
  13. uchar busy;
  14. P0 = 0xff;
  15. Rs = 0;
  16. Wr = 1;
  17. do
  18. {
  19. En = 1;
  20. busy = P0;
  21. En = 0;
  22. }while(busy & 0x80);
  23. }

  24. void WrOrder_1602(uchar order) //1602寫(xiě)指令
  25. {
  26. Read_Busy();
  27. Rs = 0;
  28. Wr = 0;
  29. P0 = order;
  30. En = 1;
  31. En = 0;
  32. }
  33. void Init_1602()    //液晶初始化
  34. {
  35. WrOrder_1602(0x38);   //設(shè)置顯示模式
  36. WrOrder_1602(0x0f);   // 開(kāi)光標(biāo)和光標(biāo)閃爍
  37. WrOrder_1602(0x01);   //清屏

  38. WrOrder_1602(0x06);   //寫(xiě)一數(shù)據(jù)后光標(biāo)自動(dòng)加一
  39. }

  40. void WrData_1602(uchar Data)   //寫(xiě)一個(gè)數(shù)據(jù)
  41. {
  42. Read_Busy();
  43. Rs = 1;
  44. Wr = 0;
  45. P0 = Data;
  46. En = 1;
  47. En = 0;
  48. }

  49. void WrD_1602(uchar x, uchar n, uchar *D)    //第x行第n(取0~15)個(gè)位置開(kāi)始寫(xiě)一個(gè)字符串
  50. {
  51. uchar i=0;
  52. if(x==1)
  53. {
  54. WrOrder_1602(0x80|n);//第一行第n個(gè)位置開(kāi)始
  55. }
  56. else
  57. {
  58. WrOrder_1602(0x80|0x40|n);//第二行第n個(gè)位置開(kāi)始
  59. }
  60. while(D[i]!='\0')
  61. {
  62. Read_Busy();
  63. Rs = 1;
  64. Wr = 0;
  65. P0 = D[i];
  66. En = 1;
  67. En = 0;
  68. i++;
  69. }
  70. }


  71. void main(void)
  72. {
  73.   Init_1602(); //液晶初始化
  74.   WrOrder_1602(0x38);   //設(shè)置顯示模式
  75.   WrOrder_1602(0x0f);   // 開(kāi)光標(biāo)和光標(biāo)閃爍
  76.   WrOrder_1602(0x01);   //清屏
  77.   WrOrder_1602(0x06);   //寫(xiě)一數(shù)據(jù)后光標(biāo)自動(dòng)加一


  78. …………
  79. …………限于本文篇幅 余下代碼請(qǐng)從51黑下載附件…………
復(fù)制代碼


全部資料51hei下載地址:
點(diǎn)陣字符LCD靜態(tài)數(shù)字顯示.rar (2.55 MB, 下載次數(shù): 57)



作者: 慕情    時(shí)間: 2019-6-10 23:10
你好我想問(wèn)一下有沒(méi)有動(dòng)態(tài)的




歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1