




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
例如:LCD1602液晶模塊應(yīng)用要求:LCD1602字符型液晶顯示實(shí)驗(yàn)。在屏幕的第一行顯示“224166320@qq”,第二行那么顯示“Tel:1308645xxxx”[實(shí)驗(yàn)原理——LCD根底知識(shí)]LCD顯示器是一種利用液晶的扭曲/向列效應(yīng)制成的新型顯示器。具有體積小、重量輕、功耗低、抗干擾能力強(qiáng)等優(yōu)點(diǎn),因而在單片機(jī)系統(tǒng)中被廣泛應(yīng)用。[實(shí)驗(yàn)原理——LCD結(jié)構(gòu)及工作原理]LCD本身不發(fā)光,是通過(guò)借助外界光線照射液晶材料而實(shí)現(xiàn)顯示的被動(dòng)顯示器件。向列型液晶材料被封裝在上、下兩片導(dǎo)電玻璃電極之間,液晶分子平行排列,上下扭曲90度,外部入射光線通過(guò)上偏振片后形成偏振光,該偏振光通過(guò)平行排列的液晶材料后被旋轉(zhuǎn)90度,再通過(guò)與上偏振片垂直的下偏振片,被反射極反射過(guò)來(lái),呈透明狀態(tài)。假設(shè)在上、下電極之間加一定電壓,在電場(chǎng)的作用下迫使加在電極局部的液晶分子轉(zhuǎn)成垂直排列,其旋光作用也隨之消失,致使從上偏振片入射的偏振光不旋轉(zhuǎn),光無(wú)法通過(guò)下偏振片返回,呈黑色。去掉電壓后,液晶分子又恢復(fù)其扭轉(zhuǎn)結(jié)構(gòu)。實(shí)驗(yàn)原理——SMC1602A液晶模塊引腳功能實(shí)驗(yàn)原理——液晶控制器接口說(shuō)明實(shí)驗(yàn)原理——液晶控制器接口說(shuō)明實(shí)驗(yàn)原理——液晶控制器接口說(shuō)明實(shí)驗(yàn)原理——液晶控制器接口說(shuō)明實(shí)驗(yàn)原理——1602液晶控制器自帶標(biāo)準(zhǔn)字庫(kù)每一個(gè)字符都有一個(gè)固定的代碼,比方“A”的代碼是41H,顯示時(shí)模塊把41H中的點(diǎn)陣字符圖形顯示出來(lái),就能看到字母“A”。#include<AT89x52.h>#include<INTRINS.h>#defineucharunsignedchar#defineuintunsignedint#defineDOUTP0sbitrs=P2^0;sbitrw=P2^1;sbite=P2^7;codeuchartab1[]={0x32,0x32,0x34,0x31,0x36,0x36,0x33,0x32,0x30,0x40,0x71,0x71,0x2e,0x63,0x6f,0x6d,0xff,};codeuchartab2[]={0x54,0x65,0x6c,0x3a,0x20, 0X31,0X33,0x30,0x38,0x36,0x34,0x35,0x78,0x78,0x78,0x78,0xff,};//延時(shí)函數(shù)voiddelayms(unsignedintms){unsignedchari;while(ms--){for(i=0;i<120;i++);}}參考例如程序〔程序?qū)懺谝粋€(gè)C文件中〕//以下為讀忙狀態(tài)的時(shí)序程序unsignedcharread_status(void){unsignedcharLCD_Status;DOUT=0xff;rs=0;rw=1;e=1;delayms(1);LCD_Status=DOUT;e=0;returnLCD_Status;}//以下為寫(xiě)命令的時(shí)序程序voidwrite_com(unsignedcharcmd){while((read_status()&0x80)==0x80);rs=0;rw=0;e=0;P0=cmd;e=1;delayms(1);e=0;}//以下為液晶初始化程序voidlcd_ini(void){write_com(0x38);delayms(1);write_com(0x01);delayms(1);write_com(0x06);delayms(1);write_com(0x0c);delayms(1);}//以下為寫(xiě)數(shù)據(jù)的時(shí)序程序voidwrite_dat(unsignedchardat){while((read_status()&0x80)==0x80);rs=1;rw=0;e=0;P0=dat;e=1;delayms(1);e=0;}//以下為主函數(shù)voidmain(void){uchari=0;lcd_ini();write_com(0x80);//設(shè)置第一行數(shù)據(jù)地址指針,為80H+地址碼
delayms(1);while(tab1[i]!=0xff){write_dat(tab1[i]);i++;delayms(1);}i=0;write_com(0xc0);//設(shè)置第二行數(shù)據(jù)地址指針,為80H+地址碼
delayms(1);while(tab2[i]!=0xff){write_dat(tab2[i]);i++;delayms(1);}i=0;while(1);}參考程序://LCD1602.C//液晶控制與顯示程序#include<reg51.h>#include<intrins.h>sbitRS=P2^0;//存放器選擇位,將RS位定義為P2.0引腳sbitRW=P2^1;//讀寫(xiě)選擇位,將RW位定義為P2.1引腳sbitEN=P2^2;//使能信號(hào)位,將E位定義為P2.2引腳//延時(shí)函數(shù)voiddelayms(unsignedintms){unsignedchari;while(ms--){for(i=0;i<120;i++);}}程序可作如下修改,寫(xiě)法如下://忙檢測(cè)函數(shù)unsignedcharbusy_check(void){unsignedcharLCD_Status;//定義忙狀態(tài)變量
RS=0;RW=1;EN=1;delayms(1);LCD_Status=P0;//讀取忙狀態(tài)
EN=0;returnLCD_Status;//返回忙狀態(tài)}//寫(xiě)命令voidwrite_LCD_Command(unsignedcharcmd){while((busy_check()&0x80)==0x80);//等待忙狀態(tài)結(jié)束
RS=0;RW=0;EN=0;P0=cmd;EN=1;delayms(1);EN=0;}//寫(xiě)數(shù)據(jù)voidwrite_LCD_data(unsignedchardat){while((busy_check()&0x80)==0x80);RS=1;RW=0;EN=0;P0=dat;EN=1;delayms(1);EN=0;}//初始化voidinit_LCD(void){write_LCD_Command(0x38);//顯示模式設(shè)置
delayms(1);write_LCD_Command(0x01);//清屏
delayms(1);write_LCD_Command(0x06);//字符進(jìn)入模式:屏幕不動(dòng),字符后移
delayms(1);write_LCD_Command(0x0c);//顯示開(kāi),關(guān)光標(biāo)
delayms(1);}//顯示字符串voidShowString(unsignedcharx,unsignedchary,unsignedchar*str){unsignedchari=0;//設(shè)置起始位置if(y==0){write_LCD_Command(0x80|x);}if(y==1){write_LCD_Command(0xc0|x);}//輸出字符串for(i=0;i<16;i++){write_LCD_data(str[i]);}}//主函數(shù)voidmain(void){init_LCD();ShowString(0,0,"224166320@qq");ShowString(0,1,"Tel:1308645xxxx");while(1);}根本思路:將一個(gè)文件的程序按照其模塊功能劃分為兩個(gè)或兩個(gè)以上的文件,每個(gè)文件表示系統(tǒng)實(shí)現(xiàn)特定的功能。如本程序可分為主函數(shù)C文件、液晶顯示C文件、液晶顯示頭文件、includes頭文件。//main.c:#include"includes.h"voidmain(void){init_LCD();ShowString(0,0,"224166320@qq");ShowString(0,1,"Tel:1308645xxxx");while(1);}大型模塊化程序的肇始〔LCD16023.0版〕//lcd1602test.c:#include<reg51.h>#include<LCD1602.h>voidShowString(unsignedcharx,unsignedchary,unsignedchar*str){unsignedchari=0;if(y==0){write_LCD_Command(0x80|x);}if(y==1){write_LCD_Command(0xc0|x);}
for(i=0;i<16;i++){write_LCD_data(str[i]);}}大型模塊化程序的肇始〔LCD16023.0版〕//includes.h:#ifndef__INCLUDES_H__#define__INCLUDES_H__#include<reg51.h>#include<intrins.h>voidShowString(unsignedcharx,unsignedchary,unsignedchar*str);init_LCD();#endif大型模塊化程序的肇始〔LCD16023.0版〕//lcd1602.h:#ifndefLCD_CHAR_1602_2010_11_8#defineLCD_CHAR_1602_2010_11_8sbitRS=P2^0;//存放器選擇位,將RS位定義為P2.0引腳sbitRW=P2^1;//讀寫(xiě)選擇位,將RW位定義為P2.1引腳sbitEN=P2^2;//使能信號(hào)位,將E位定義為P2.2引腳voiddelayms(unsignedintms){unsignedchari;while(ms--){for(i=0;i<120;i++);}}大型模塊化程序的肇始〔LCD16023.0版〕接上頁(yè)://忙檢測(cè)函數(shù)unsignedcharbusy_check(void){unsignedcharLCD_Status;//定義忙狀態(tài)變量
RS=0;RW=1;EN=1;delayms(1);LCD_Status=P0;//讀取忙狀態(tài)
EN=0;returnLCD_Status;//返回忙狀態(tài)}//寫(xiě)命令voidwrite_LCD_Command(unsignedcharcmd){while((busy_check()&0x80)==0x80);//等待忙狀態(tài)結(jié)束
RS=0;RW=0;EN=0;P0=cmd;EN=1;delayms(1);EN=0;}接上頁(yè)://寫(xiě)數(shù)據(jù)voidwrite_LCD_data(unsignedchardat){while((busy_check()&0x80)==0x80);RS=1;RW=0;EN=0;P0=dat;EN=1;delayms(1);EN=0;}//初始化voidinit_LCD(void){write_LCD_Command(0x38);//顯示模式設(shè)置
delayms(1);write_LCD_Command(0x01);//清屏
delayms(1);write_LCD_Command(0x06);//字符進(jìn)入模式:屏幕不動(dòng),字符后移
delayms(1);write_LCD_Command(0x0c);//顯示開(kāi),關(guān)光標(biāo)
delayms(1);}#endif上面這個(gè)模塊化程序的缺陷:1、將大量實(shí)質(zhì)性函數(shù)代碼寫(xiě)入到lcd1602.h這個(gè)頭文件里面,混淆了頭文件區(qū)別于C語(yǔ)言源文件的功能——頭文件應(yīng)為一份接口描述文件,其文件內(nèi)部不應(yīng)包含實(shí)質(zhì)性函數(shù)代碼,它就是一份說(shuō)明書(shū),說(shuō)明的內(nèi)容就是模塊對(duì)外的接口函數(shù)或接口變量,同時(shí)包含很重要的宏定義及一些結(jié)構(gòu)體的信息,離開(kāi)這些信息就無(wú)法正常使用接口接口變量。2、includes.h這個(gè)頭文件將程序用到的所有頭文件都包含進(jìn)去,不要在這個(gè)文件中再寫(xiě)入象函數(shù)聲明這樣的語(yǔ)句;而要在這個(gè)頭文件中再聲明函數(shù),本身說(shuō)明模塊化程序的不標(biāo)準(zhǔn)。思路:將此程序按照其模塊功能劃分為主函數(shù)C文件、初始化函數(shù)C文件、液晶顯示C文件、includes頭文件、液晶顯示C文件的頭文件、初始化函數(shù)C文件的頭文件,共6個(gè)文件,其中l(wèi)cd1602.h和init.h實(shí)現(xiàn)lcd1602test.c和init.c兩個(gè)文件和其他文件的連接。//main.c:#include"includes.h"voidmain(void){init_LCD();ShowString(0,0,"224166320@qq");ShowString(0,1,"Tel:1308645xxxx");while(1);}程序修改如下:對(duì)3.0版本程序的修正#include<includes.h>//初始化voidinit_LCD(void){write_LCD_Command(0x38);//顯示模式設(shè)置
delayms(1);write_LCD_Command(0x01);//清屏
delayms(1);write_LCD_Command(0x06);//字符進(jìn)入模式:屏幕不動(dòng),字符后移
delayms(1);write_LCD_Command(0x0c);//顯示開(kāi),關(guān)光標(biāo)
delayms(1);}//init.c:#include<includes.h>//延時(shí)函數(shù)voiddelayms(unsignedintms){unsignedchari;while(ms--){for(i=0;i<120;i++);}}//lcd1602test.c:接上頁(yè)://忙檢測(cè)函數(shù)unsignedcharbusy_check(void){unsignedcharLCD_Status;//定義忙狀態(tài)變量
RS=0;RW=1;EN=1;delayms(1);LCD_Status=P0;//讀取忙狀態(tài)
EN=0;returnLCD_Status;//返回忙狀態(tài)}//寫(xiě)命令voidwrite_LCD_Command(unsignedcharcmd){while((busy_check()&0x80)==0x80);//等待忙狀態(tài)結(jié)束
RS=0;RW=0;EN=0;P0=cmd;EN=1;delayms(1);EN=0;}接上頁(yè)://寫(xiě)數(shù)據(jù)voidwrite_LCD_data(unsignedchardat){while((busy_check()&0x80)==0x80);RS=1;RW=0;EN=0;P0=dat;EN=1;delayms(1);EN=0;}//顯示字符串voidShowString(unsignedcharx,unsignedchary,unsignedchar*str){unsignedchari=0;//設(shè)置起始位置if(y==0){write_L
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 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ì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年水利工程勘察設(shè)計(jì)項(xiàng)目建議書(shū)
- 2025年工程測(cè)繪項(xiàng)目發(fā)展計(jì)劃
- 2025年甲氧基酚合作協(xié)議書(shū)
- 2025至2031年中國(guó)移動(dòng)式篩分機(jī)組行業(yè)投資前景及策略咨詢研究報(bào)告
- 2025至2030年中國(guó)老化懸掛線數(shù)據(jù)監(jiān)測(cè)研究報(bào)告
- 2025至2031年中國(guó)聚丙烯立式貯罐行業(yè)投資前景及策略咨詢研究報(bào)告
- 2025至2031年中國(guó)液相色譜/質(zhì)譜儀行業(yè)投資前景及策略咨詢研究報(bào)告
- 《跨境電商英語(yǔ)》課件-Letters of Credit and Status Inquiry
- 《跨境電商》課件-任務(wù)三亞馬遜平臺(tái)操作技巧
- 2025年錦綸66-DTY項(xiàng)目合作計(jì)劃書(shū)
- 巨量千川(中級(jí))營(yíng)銷師認(rèn)證考試題(附答案)
- 供應(yīng)商評(píng)估與選擇標(biāo)準(zhǔn)
- 期末綜合試卷(試題)2024-2025學(xué)年人教版數(shù)學(xué)五年級(jí)上冊(cè)(含答案)
- 心肺復(fù)蘇術(shù)-cpr課件
- 2024年初級(jí)招標(biāo)采購(gòu)從業(yè)人員《招標(biāo)采購(gòu)專業(yè)實(shí)務(wù)》考前必刷必練題庫(kù)600題(含真題、必會(huì)題)
- 【MOOC】地下開(kāi)采方法學(xué)-中南大學(xué) 中國(guó)大學(xué)慕課MOOC答案
- 2024年版中級(jí)經(jīng)濟(jì)師經(jīng)濟(jì)基礎(chǔ)知識(shí)講義
- 2024年醫(yī)師定期考核臨床類人文醫(yī)學(xué)知識(shí)考試題庫(kù)及答案(共280題)
- 《女性服裝搭配》課件
- 企業(yè)溫室氣體排放報(bào)告核查指南(試行)解讀 - 1
- 鐵路施工職業(yè)病預(yù)防
評(píng)論
0/150
提交評(píng)論