———微控制器課程設計報告
一、設計題目:液晶點陣顯示屏程式設計
二、設計要求:
1 能進行正常的模擬量取樣值顯示(溫度、壓力、電位),並將其顯示到液晶面板上。
2 lcd將從下到上滾動顯示:「江蘇大學計算機學院」,然後顯示:「2023年微控制器課程設計」 液晶點陣顯示屏程式設計」「作者姓名、班級、學號」
3 改變字型檔的內容,顯示其它漢字。
4 改變頁位址或列位址,使顯示的內容改變位置
5 改變滾動顯示模式,使顯示內容左右、上下滾動;改變引數使滾動速度變化。
三、設計思路及實施步驟:
(一)設計思路:由於實驗指導書中做過液晶顯示和模數轉換得實驗,根據兩個實驗的功能實現和流程原理進行設計
將程式分成三個模組:
主函式模組
模數轉換模組
液晶顯示模組
其中讓主函式模組做一些初始化和函式呼叫工作,模數轉換模組主要是將溫度,壓力,點位的值轉化為數字量供液晶顯示用,液晶顯示模組得到模數轉換模組傳遞過來的數字量顯示到液晶面板上。
(二)系統流程圖:
1系統主流程圖如下:
2主函式流程圖:
3 顯示模組流程圖
4 模數轉換模組流程圖
(三)系統部分程式功能說明
1、主函式部分功能**說明
主函式模組中的主函式**:最後呼叫testlcd()進行顯示。
void main (void)
2、模數轉換中取得值的函式。
unsigned int getadcvalue(char no)
3、定義字和點陣圖(取模的值省略)。其中「江蘇大學計算機學院,班級,姓名」採用位圖格式,用void dispbmp(char *buf) 函式顯示,數字採用8*16,採用void lcd_writejsdx8(char x,char y,char *dot)顯示,漢字採用16*16,採用void lcd_writejsdx(char x,char y,char *dot)顯示。
char code jiang文字: 江蘇大學計算機學院 -
char code su文字: 班級,姓名等
char code ling=
下面依次定義1,2,3,4,5,6,7,8,9,空格,點和溫,度,壓,力,電,位等,其中溫,度,壓,力,電,位為16*16,其餘為8*16。
4、定義並實現顯示8*16點數字的函式void lcd_writejsdx8(char x,char y,char *dot),**如下:
void lcd_writejsdx8(char x,char y,char *dot) /顯示8*16點陣漢字
else
5、顯示函式部分**:
void testlcd(void)
//一下**輸出江蘇大學計算機學院並向上滾動
dispbmp(jiang);
for (i=0;i<64;i++)
以下**實現輸出班級姓名
dispbmp(su);/顯示姓名'
以下**實現將取回的數字值及相關文字放入buf陣列內
if (no==1)
else
else
下面**實現顯示buf陣列。
for(i=0;i<7;i++)
四、結果分析:
將如下原始檔加入到開發工具中,除錯程式,並**到微控制器中執行,首先有「江蘇大學計算機學院」一行字向上滾動,然後顯示「液晶點陣顯示屏程式設計,班級,姓名」當這些字顯示完畢後,進入溫度、壓力、電位顯示模組中,按1鍵,液晶屏上將顯示溫度**.按2鍵,液晶屏上將顯示電位*.*按3鍵,液晶屏上將顯示壓力**.
代表數字。注意由於延時等原因,有時候按鍵後並不能轉換為另一種要求的顯示。系統基本按照課程設計的要求實現了所有功能,在程式設計和除錯過程中,遇到和解決了以下幾個問題:
第乙個就是在取字模的時候對於連續幾行字的取模老是不成功,後來我採用了在畫圖板中把字排好版,然後用取模軟體開啟位圖進行取模;
第二個問題是剛開始的時候,用lcd_writejsdx(char x,char y,char *dot)函式由於對8*16的數字漢字進行顯示時, 造成亂碼,後來發現了問題,寫了乙個lcd_writejsdx8(char x,char y,char *dot)函式,專門用來寫8*16的漢字,第三個問題是在按鍵選擇時,buf陣列會得到錯誤的資料,這是由於if控制結構沒有寫好,還有就是小數點到底在哪一位上,也耽誤了我一點時間。
雖然說基本功能都實現了,但是還有一些方面做得不夠好或者有待改進:
乙個是程式功能劃分不夠好,按鍵選擇控制部分應該放在main函式中更為符合,而液晶顯示模組只負責顯示,a\d轉換模組只負責轉換,程式控制權交給main函式。而現在負責控制的是液晶顯示模組。還有乙個是漢字的左右滾動功能沒有實現。
五、課程設計小結:
由於自己在大三時候休學沒有上好數字邏輯,組合語言和計算機組成原理等課,使我在復學後開這門課的時候有一種恐懼心理,總想著這個一點都不懂,怎麼學啊,又想想自己又不搞硬體這塊,混個及格就行了,可是通過老師不倦的講解,課程設計時一次一次的動手程式設計,除錯執行,老師檢查,最後終於基本搞定了這個系統。特別是通過這次微控制器課程設計,讓我對整個微控制器程式的設計,c51語言有了乙個比較深的理解。還有就是增強了自身的動手能力,把以前書本上講的或是沒有講的,通過一次課程設計具體的實施,使自己真正得到鍛鍊。
點陣顯示屏修改
本設計主要是基於51系列微控制器實現16 16led點陣顯示屏的書寫控制,系統選用atmel公司的at89s51微控制器作為控制器,74hc154 4線 16線解碼器 和74hc595 8位串入 串 並出移位暫存器 作為微控制器的i o口擴充套件來驅動led顯示屏。其中,16 16點陣顯示屏是由4個...
液晶顯示屏檢驗標準
附表 1 合作經營協議書 甲方 乙方 經甲乙雙方友好協商,就中石油煤層氣保德區塊地面工程合作經營事宜,自願達成如下協議,以資信守 一 合夥宗旨 共同合作 合法經營 利益共享 風險共擔。二 合作經營專案 中石油煤層氣保德區塊地面建設工程。三 合作經營地點 山西省保德縣。四 出資金額方式 期限墊付。1 ...
液晶顯示屏檢驗規範
x x x x 廈門 有 檔案編號版本號 修訂號生效日期頁次 限公司wx pg 02 24 a 0waysion technology xiamen co.ltd.進料檢驗作業指導書 標題1233.13.23.344.1 液晶顯示屏檢驗規範 2010年8月1日第1頁共3頁 目的 明確液晶顯示屏的檢驗...