




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
1、/ 函數(shù)聲明 #include"stdio.h"#include"absacc.h"#include"reg51.h"/LCD接口管腳聲明sbit A0=P3A0;/寄存器選擇信號sbit RW=P3A1; /讀/寫選擇信號sbit E1=P3A2; /使能信號 E1sbit E2=P3A3; / 使能信號 E2#define DATA_IO P1#define LCD_DISPLAYON 0xaf#define LCD_DISPLAYOFF 0xae#define LCD_DRIVERON 0xa5#define LCD_DRIVE
2、ROFF 0xa4#define LCD_DUTY16 0xa8#define LCD_DUTY32 0xa9#define LCD_END 0xee#define LCD_RESET 0xe2#define LCD_RWMODE 0xe0#define LCD_STARTLINE0 0xc0#define LCD_PAGE0 0xb8#define LCD_COLUMNADDR0 0x00#define LCD_ON() LCD_Command(LCD_DISPLAYON)#define LCD_OFF() LCD_Command(LCD_DISPLAYOFF)#define LCD_Sta
3、ticON() LCD_Command(LCD_DRIVERON)#define LCD_StaticOFF() LCD_Command(LCD_DRIVEROFF)#define LCD_Select16() LCD_Command(LCD_DUTY16)#define LCD_Select32() LCD_Command(LCD_DUTY32)#define LCD_StartRW() LCD_Command(LCD_RWMODE)#define LCD_EndRW() LCD_Command(LCD_END)#define LCD_Reset() LCD_Command(LCD_RESE
4、T)#define LCD_SetStartLine(i) LCD_Command(LCD_STARTLINE0+i)#define LCD_SetPage(i) LCD_Command(LCD_PAGE0+i)#define LCD_SetColumn(i) LCD_Command(LCD_COLUMNADDR0+i)/ / 函數(shù)名稱: LCD_Command1/ 入口參數(shù): nCommand 命令字/ 函數(shù)功能: 寫指令代碼子程序 (SED1520-1)/ void LCD_Command1(unsigned char nCommand)unsigned char state_temp;A
5、0=0;RW=1; while(state_temp&0x80=1) / 判"忙"標(biāo)志為 "0" 否, 否再讀DATA_IO=0xFF ; /P1 口置 "1" E1=1;state_temp=DATA_IO; / 設(shè)置讀狀態(tài)字地址 E1=0;RW=0;E1=1; DATA_IO=nCommand; / 寫指令代碼E1=1;E1=0;/ / 函數(shù)名稱: WRITE_showDATA1/ 入口參數(shù): show_DATA 寫入 SED1520-1 內(nèi)部顯示 RAM 的數(shù)據(jù)/ 函數(shù)功能: 寫顯示數(shù)據(jù)子程序 (SED1520-1)/
6、void WRITE_showDATA1(unsigned char show_DATA) unsigned char state_temp;A0=0;RW=1;while(state_temp&0x80=1) / 判"忙 "標(biāo)志為 "0" 否, 否再讀 DATA_IO=0xFF ; /P1 口置 "1" E1=1;state_temp=DATA_IO; / 設(shè)置讀狀態(tài)字地址 E1=0;A0=1;RW=0;E1=1; DATA_IO=show_DATA; / 寫指令代碼E1=1;E1=0;/ / 函數(shù)名稱: READ_show
7、DATA1/ 入口參數(shù): show_DATA 讀出 SED1520-1 內(nèi)部顯示 RAM 的數(shù)據(jù)/ 函數(shù)功能: 讀顯示數(shù)據(jù)子程序 (SED1520-1)/ unsigned char READ_showDATA1()unsigned char show_DATA; unsigned char state_temp;A0=0;RW=1;while(state_temp&0x80=1) / 判"忙 "標(biāo)志為 "0" 否, 否再讀DATA_IO=0xFF ;E1=1;state_temp=DATA_IO;E1=0;A0=1;DATA_IO=0xFF ;
8、E1=1;show_DATA=DATA_IO;E1=0;return(show_DATA);/P1 口置 "1"/ 設(shè)置讀狀態(tài)字地址/P1 口置 "1"/ 讀數(shù)據(jù)/ 返回顯示區(qū)數(shù)據(jù)/ / 函數(shù)名稱: LCD_Command2/ 入口參數(shù): nCommand 命令字/ 函數(shù)功能: 寫指令代碼子程序 (SED1520-2)/ void LCD_Command2(unsigned char nCommand)unsigned char state_temp;A0=0;RW=1;while(state_temp&0x80=1) / 判"忙&qu
9、ot;標(biāo)志為 "0" 否, 否再讀 DATA_IO=0xFF ; /P1 口置 "1" E2=1;state_temp=DATA_IO; / 設(shè)置讀狀態(tài)字地址 E2=0;RW=0;/ 寫指令代碼E2=1;DATA_IO=nCommand;E2=1;E2=0;/ / 函數(shù)名稱: WRITE_showDATA2/ 入口參數(shù): show_DATA 寫入 SED1520-2 內(nèi)部顯示 RAM 的數(shù)據(jù)/ 函數(shù)功能: 寫顯示數(shù)據(jù)子程序 (SED1520-2)/ void WRITE_showDATA2(unsigned char show_DATA) unsigne
10、d char state_temp; A0=0;RW=1; while(state_temp&0x80=1) / 判"忙 "標(biāo)志為 "0" 否, 否再讀 DATA_IO=0xFF ; /P1 口置 "1" E2=1;state_temp=DATA_IO; / 設(shè)置讀狀態(tài)字地址 E2=0;A0=1;RW=0;E2=1;DATA_IO=show_DATA; / 寫指令代碼E2=1;E2=0;/ / 函數(shù)名稱: READ_showDATA2/ 入口參數(shù): show_DATA 讀出 SED1520-2 內(nèi)部顯示 RAM 的數(shù)據(jù)/ 函數(shù)
11、功能: 讀顯示數(shù)據(jù)子程序 (SED1520-2)/ unsigned char READ_showDATA2()unsigned char show_DATA; unsigned char state_temp;A0=0;RW=1; while(state_temp&0x80=1) / 判"忙 "標(biāo)志為 "0" 否, 否再讀 DATA_IO=0xFF ;/P1 口置 "1"E2=1;state_temp=DATA_IO; / 設(shè)置讀狀態(tài)字地址 E2=0;A0=1;DATA_IO=0xFF ;/ P1 口置 "1&qu
12、ot;E2=1; show_DATA=DATA_IO; / 讀數(shù)據(jù) E2=0;return(show_DATA); / 返回顯示區(qū)數(shù)據(jù) / 函數(shù)聲明#include"stdio.h"#include"absacc.h"#include"reg51.h"/ 定義地址#define CWADD1 XBYTE0x8000 / 寫指令代碼地址 (E1)#define CRADD1 XBYTE0x8200 / 讀狀態(tài)字地址 (E1)#define DWADD1 XBYTE0x8100 / 寫顯示數(shù)據(jù)地址 (E1)#define DRADD1 X
13、BYTE0x8300 / 讀顯示數(shù)據(jù)地址 (E1)#define CWADD2 XBYTE0x4000 / 寫指令代碼地址 (E2)#define CRADD2 XBYTE0x4200 / 讀狀態(tài)字地址 (E2)#define DWADD2 XBYTE0x4100 / 寫顯示數(shù)據(jù)地址 (E2)#define DRADD2 XBYTE0x4300 / 讀顯示數(shù)據(jù)地址 (E2)/ 定義各命令字 #define LCD_DISPLAYON 0xaf#define LCD_DISPLAYOFF 0xae#define LCD_DRIVERON 0xa5#define LCD_DRIVEROFF 0xa
14、4#define LCD_DUTY16 0xa8#define LCD_DUTY32 0xa9#define LCD_END 0xee#define LCD_RESET 0xe2#define LCD_RWMODE 0xe0#define LCD_STARTLINE0 0xc0#define LCD_PAGE0 0xb8#define LCD_COLUMNADDR0 0x00/ 定義各命令操作 #define LCD_ON() LCD_Command(LCD_DISPLAYON)#define LCD_OFF() LCD_Command(LCD_DISPLAYOFF)#define LCD_S
15、taticON() LCD_Command(LCD_DRIVERON)#define LCD_StaticOFF() LCD_Command(LCD_DRIVEROFF)#define LCD_Select16() LCD_Command(LCD_DUTY16)#define LCD_Select32() LCD_Command(LCD_DUTY32)#define LCD_StartRW() LCD_Command(LCD_RWMODE)#define LCD_EndRW() LCD_Command(LCD_END)#define LCD_Reset() LCD_Command(LCD_RE
16、SET)#define LCD_SetStartLine(i) LCD_Command(LCD_STARTLINE0+i)#define LCD_SetPage(i) LCD_Command(LCD_PAGE0+i)#define LCD_SetColumn(i) LCD_Command(LCD_COLUMNADDR0+i)/*ASCII字體,大小6X8上到下D0D7,左到右*/unsigned char code ASCII6=0x00,0x7e,0x21,0x21,0x21,0x7e,/*A*/0x00,0x7f,0x49,0x49,0x49,0x36,/*B*/0x00,0x3e,0x4
17、1,0x41,0x41,0x22,/*C*/0x00,0x7f,0x41,0x41,0x22,0x1c,/*D*/0x00,0x7f,0x49,0x49,0x49,0x49,/*E*/0x00,0x7f,0x09,0x09,0x09,0x01,/*F*/0x00,0x3e,0x41,0x49,0x49,0x7a,/*G*/0x00,0x7f,0x08,0x08,0x08,0x7f,/*H*/0x00,0x41,0x7f,0x41,0x00,0x00,/*I*/0x00,0x20,0x40,0x41,0x3f,0x01,/*J*/0x00,0x7f,0x08,0x14,0x22,0x41,/*K
18、*/0x00,0x7f,0x40,0x40,0x40,0x40,/*L*/0x00,0x7f,0x02,0x0c,0x02,0x7f,/*M*/0x00,0x7f,0x04,0x08,0x10,0x7f,/*N*/0x00,0x3e,0x41,0x41,0x41,0x3e,/*O*/0x00,0x7f,0x09,0x09,0x09,0x06,/*P*/ 0x00,0x3e,0x41,0x41,0x41,0x3e,/*Q*/0x00,0x7f,0x09,0x19,0x29,0x46,/*R*/ 0x00,0x46,0x49,0x49,0x49,0x31,/*S*/0x00,0x01,0x01,0
19、x7f,0x01,0x01,/*T*/0x00,0x3f,0x40,0x40,0x40,0x3f,/*U*/0x00,0x1f,0x20,0x40,0x20,0x1f,/*V*/0x00,0x3f,0x40,0x38,0x40,0x3f,/*W*/0x00,0x63,0x14,0x08,0x14,0x63,/*X*/0x00,0x07,0x08,0x70,0x08,0x07,/*Y*/0x00,0x61,0x51,0x49,0x45,0x43,/*Z*/;/ / 函數(shù)名稱: LCD_Command1/ 入口參數(shù): nCommand 命令字/ 函數(shù)功能: 寫指令代碼子程序 (SED1520-1)
20、/ void LCD_Command1(unsigned char nCommand)unsigned char state_temp; while(state_temp&0x80=1) / 判 "忙 "標(biāo)志為 "0" 否 , 否再讀 state_temp=CRADD1; / 設(shè)置讀狀態(tài)字地址 CRADD1=nCommand; / 寫指令代碼/ / 函數(shù)名稱: WRITE_showDATA1/ 入口參數(shù): show_DATA 寫入 SED1520-1 內(nèi)部顯示 RAM 的數(shù)據(jù) / 函數(shù)功能: 寫顯示數(shù)據(jù)子程序 (SED1520-1)/ void
21、WRITE_showDATA1(unsigned char show_DATA)unsigned char state_temp; while(state_temp&0x80=1) / 判 "忙 "標(biāo)志為 "0" 否 , 否再讀 state_temp=CRADD1; / 設(shè)置讀狀態(tài)字地址 DRADD1=show_DATA; / 寫指令代碼/ / 函數(shù)名稱: READ_showDATA1/ 入口參數(shù): show_DATA 讀出 SED1520-1 內(nèi)部顯示 RAM 的數(shù)據(jù)/ 函數(shù)功能: 讀顯示數(shù)據(jù)子程序 (SED1520-1)/ unsigned
22、char READ_showDATA1() unsigned char show_DATA;unsigned char state_temp;while(state_temp&0x80=1) / 判 "忙 "標(biāo)志為 "0" 否 , 否再讀 unsigned char show_DATA;state_temp=CRADD1; show_DATA=DRADD1; return(show_DATA);/ 設(shè)置讀狀態(tài)字地址/ 讀數(shù)據(jù)/ 返回顯示區(qū)數(shù)據(jù)/ / 函數(shù)名稱: LCD_Command2/ 入口參數(shù): nCommand 命令字/ 函數(shù)功能: 寫指令
23、代碼子程序 (SED1520-2)/ void LCD_Command2(unsigned char nCommand)unsigned char state_temp;while(state_temp&0x80=1) / 判 "忙 "標(biāo)志為 "0" 否 , 否再讀 state_temp=CRADD2; / 設(shè)置讀狀態(tài)字地址CRADD2=nCommand; / 寫指令代碼/ / 函數(shù)名稱: WRITE_showDATA2/ 入口參數(shù): show_DATA 寫入 SED1520-2 內(nèi)部顯示 RAM 的數(shù)據(jù)/ 函數(shù)功能: 寫顯示數(shù)據(jù)子程序 (SED
24、1520-2)/ void WRITE_showDATA2(unsigned char show_DATA) unsigned char state_temp; while(state_temp&0x80=1) / 判 "忙 "標(biāo)志為 "0" 否 , 否再讀 state_temp=CRADD2;/ 設(shè)置讀狀態(tài)字地址DRADD2=show_DATA; / 寫指令代碼 / / 函數(shù)名稱: READ_showDATA2/ 入口參數(shù): show_DATA 讀出 SED1520-2 內(nèi)部顯示 RAM 的數(shù)據(jù)/ 函數(shù)功能: 讀顯示數(shù)據(jù)子程序 (SED1520
25、-2)/ unsigned char READ_showDATA2() unsigned char state_temp;while(state_temp&0x80=1) / 判 "忙 "標(biāo)志為 "0" 否 , 否再讀 state_temp=CRADD2; / 設(shè)置讀狀態(tài)字地址 show_DATA=DRADD2; / 讀數(shù)據(jù) return(show_DATA); / 返回顯示區(qū)數(shù)據(jù)/ / 函數(shù)名稱: LCD_Command/ 入口參數(shù): nCommand 命令字/ 函數(shù)功能: 把命令字寫入兩個 SED1520/ void LCD_Command(
26、unsigned char nCommand)LCD_Command1(nCommand);LCD_Command1(nCommand);/ /函數(shù)名稱:LCD_SetRam/入口參數(shù):bChip2, ndata/bChip2 用于選擇控制器bChip2=0 選擇 SED1520-1/bChip2=1 選擇 SED1520-2/; ndata 是要寫入的數(shù)據(jù)/函數(shù)功能:把顯示數(shù)據(jù)寫入其中一個SED1520/ void LCD_SetRam(bit bChip2,unsigned char ndata)if(!bChip2)WRITE_showDATA1(ndata);elseWRITE_sho
27、wDATA2(ndata);/ / 函數(shù)名稱: LCD_Write/ 入口參數(shù): npage, ncolumn , ndata/ npage 取值 07;當(dāng)取 03 時在 SED1520-1;/ 當(dāng)取 41 時在 SED1520-2;/ ncolumn 取 060/; ndata 是要寫入的數(shù)據(jù)/ 函數(shù)功能: 把顯示數(shù)據(jù)寫入指定的位置/ void LCD_Write(unsigned char npage,unsigned char ncolumn,unsigned char ndata) LCD_SetPage(npage%4);LCD_SetColumn(ncolumn); LCD_Set
28、Ram(npage>3,ndata);/ / 函數(shù)名稱: LCD_PageWrite/ 入口參數(shù): npage ,*ndata/npage 取值 07;當(dāng)取 03 時在 SED1520-1;/當(dāng)取 41 時在 SED1520-2;/ *ndata 是要寫入的數(shù)據(jù)的地址指針/ 函數(shù)功能: 把顯示數(shù)據(jù)寫入指定的位置/ void LCD_PageWrite(unsigned char npage,unsigned char idata *ndata)unsigned char i;bit bChip2=npage>3;LCD_SetPage(npage%4);LCD_SetColumn(
29、0); for(i=0;i<61;i+)LCD_SetRam(bChip2,ndatai);/ / 函數(shù)名稱: LCD_Init/ 函數(shù)功能: 初始化 SED1520/ void LCD_Init()LCD_Command(LCD_RESET); LCD_Command(0xa0);LCD_Command(LCD_DUTY32); LCD_Command(0xa4);/ /函數(shù)名稱:GetIndex/入口參數(shù):szText/szText表示要顯示的子符/返回值:GetIndex/要顯示的字符在字摩存儲區(qū)的位置(第幾個子模)/函數(shù)功能:查詢字符在字模存儲區(qū)的位置/ unsigned cha
30、r GetIndex(unsigned char szText) unsigned char code TAB100= 'A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q' ,'R','S','T','U','V','W',
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年塑料凳子項目可行性研究報告
- 疫情務(wù)工合同范本
- 2025年中國皮卡行業(yè)市場深度分析及行業(yè)發(fā)展趨勢報告
- 矸石利用可行性研究報告
- 北京某汽車線束項目申請報告
- 煤耗試驗報告
- 汽車?yán)^電器項目可行性研究報告建議書申請備案
- 2025年中國血壓儀行業(yè)發(fā)展監(jiān)測及投資戰(zhàn)略規(guī)劃研究報告
- 人生導(dǎo)師合同范本
- 2025年廢棄資源和廢舊材料回收加工品項目建議書
- 2024年江蘇食品藥品職業(yè)技術(shù)學(xué)院高職單招(英語/數(shù)學(xué)/語文)筆試歷年參考題庫含答案解析
- 國內(nèi)新能源汽車在共享經(jīng)濟領(lǐng)域的應(yīng)用與前景
- 大慶油田環(huán)境保護與可持續(xù)發(fā)展
- 電氣設(shè)備維修
- 外研版三年級起點四年級(下冊)英語集體備課教(學(xué))案
- 中華民族的形成發(fā)展
- 《如何做美篇》課件
- “一帶一路”視域下印度尼西亞中資企業(yè)所得稅返還案例解析
- 咨詢服務(wù)協(xié)議書范本:教育咨詢和培訓(xùn)
- 潔凈空調(diào)負(fù)荷計算表格
- 瀘州食品安全承諾書
評論
0/150
提交評論