基于STC89C52RC的LCD12864模塊調(diào)試源碼_第1頁
基于STC89C52RC的LCD12864模塊調(diào)試源碼_第2頁
基于STC89C52RC的LCD12864模塊調(diào)試源碼_第3頁
基于STC89C52RC的LCD12864模塊調(diào)試源碼_第4頁
基于STC89C52RC的LCD12864模塊調(diào)試源碼_第5頁
已閱讀5頁,還剩1頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、/CONFIG.H引腳配置文件:/#ifndef _CONFIG_H#define _CONFIG_H/* 通用頭文件 */#include <reg52.h>#include <intrins.h>/* 數(shù)據(jù)類型定義 */*typedef signed char int8; / 8位有符號整型數(shù)typedef signed int int16; /16位有符號整型數(shù)typedef signed long int32; /32位有符號整型數(shù) */typedef unsigned char u8; / 8位無符號整型數(shù)typedef unsigned int u16; /

2、16位無符號整型數(shù)typedef unsigned long u32; /32位無符號整型數(shù)/* 全局運行參數(shù)定義 */#define SYS_MCLK (11059200/12) /系統(tǒng)主時鐘頻率,即振蕩器頻率÷12/* IO引腳分配定義 */sbit KEY_IN_1 = P24; /矩陣按鍵的掃描輸入引腳1sbit KEY_IN_2 = P25; /矩陣按鍵的掃描輸入引腳2sbit KEY_IN_3 = P26; /矩陣按鍵的掃描輸入引腳3sbit KEY_IN_4 = P27; /矩陣按鍵的掃描輸入引腳4sbit KEY_OUT_1 = P23; /矩陣按鍵的掃描輸出引腳1s

3、bit KEY_OUT_2 = P22; /矩陣按鍵的掃描輸出引腳2sbit KEY_OUT_3 = P21; /矩陣按鍵的掃描輸出引腳3sbit KEY_OUT_4 = P20; /矩陣按鍵的掃描輸出引腳4sbit ADDR0 = P10; /LED位選譯碼地址引腳0sbit ADDR1 = P11; /LED位選譯碼地址引腳1sbit ADDR2 = P12; /LED位選譯碼地址引腳2sbit ADDR3 = P13; /LED位選譯碼地址引腳3sbit ENLED = P14; /LED顯示部件的總使能引腳#define LCD12864_DB P0 /1602液晶數(shù)據(jù)端口sbit L

4、CD12864_RES = P10; /1602液晶指令/數(shù)據(jù)選擇引腳sbit LCD12864_RW = P11; /1602液晶讀寫引腳sbit LCD12864_EN = P15; /1602液晶使能引腳sbit DS1302_CE = P17; /DS1302片選引腳sbit DS1302_CK = P35; /DS1302通信時鐘引腳sbit DS1302_IO = P34; /DS1302通信數(shù)據(jù)引腳sbit I2C_SCL = P37; /I2C總線時鐘引腳sbit I2C_SDA = P36; /I2C總線數(shù)據(jù)引腳sbit BUZZER = P16; /蜂鳴器控制引腳sbit

5、IO_18B20 = P32; /DS18B20通信引腳sbit IR_INPUT = P33; /紅外接收引腳#include "LCD12864.H"#include "TIME.H"#include "DHT21.h"#endif/LCD12864.C源碼/#include "config.h"u8 zhbuf="預(yù)覽" /中文數(shù)組u8 ehbuf="yulan" /英文字符數(shù)組u8 code imbuf= /圖片碼128*64 寬16,高320x00,0x00,0x0

6、0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,;/*寫等待*/void Write_Ready()u8 sta=0;LCD12864_RES = 0;LCD12864_RW = 1;doLCD12864_EN = 1;sta = P0;LCD12864_EN = 0;while(sta&0x80);/*讀RAM中數(shù)據(jù)*/u8 Read_12864_RAM()u8 ram=0;LCD12864_RES = 1;LCD12864_RW = 1;LCD12864_EN = 1;ram = P0;LCD12

7、864_EN = 0;return ram;/*寫指令*/void Write_12864_Cmd(u8 cmd)Write_Ready();LCD12864_RES = 0;LCD12864_RW = 0;P0 = cmd;LCD12864_EN = 1;LCD12864_EN = 0;/*寫數(shù)據(jù)*/void Write_12864_Dat(u8 dat)Write_Ready();LCD12864_RES = 1;LCD12864_RW = 0;P0 = dat;LCD12864_EN = 1;LCD12864_EN = 0;/*設(shè)置起始坐標*/void Set_DDRAM_XY(u8 x

8、,u8 y)if(x>=7)x=7;if(y>=3)y=3;switch(y)case 0:Write_12864_Cmd(0x80+x);break;case 1:Write_12864_Cmd(0x90+x);break;case 2:Write_12864_Cmd(0x88+x);break;case 3:Write_12864_Cmd(0x98+x);break;default : break;/*顯示連續(xù)的2個字符*/void Show_Double_12864_Char(u8 x,u8 y,u8 *c)Set_DDRAM_XY(x,y);Write_12864_Dat(

9、*c);Write_12864_Dat(*(c+1); /*顯示單個字符*/void Show_Single_12864_Char(u8 x,u8 y,u8 *c)Set_DDRAM_XY(x,y);Write_12864_Dat(*c); /*顯示中文字符串*/void Show_12864_ZH(u8 x,u8 y,u8 *zh)u8* p=zh;Set_DDRAM_XY(x,y);while(*p)!='0')Write_12864_Dat(*p+);/*顯示一串?dāng)?shù)值*/*u8 dec 小數(shù)位 為0不顯示小數(shù)*/void Show_12864_NUM(u8 x,u8 y,

10、u8 dec,u16 num)u8 i;u8 numbuf6;for(i=0;num;i+)numbufi=num%10+'0'num/=10;Set_DDRAM_XY(x,y);for(;i;i-)if(i=dec)Write_12864_Dat(0X2E); /顯示小數(shù)點Write_12864_Dat(*(numbuf+(i-1); /顯示數(shù)值/*顯示英文字符串*/void Show_12864_EH(u8 x,u8 y,u8 *eh)u8* p=eh;Set_DDRAM_XY(x,y);while(*p)!='0')Write_12864_Dat(*p+)

11、;/*顯示圖案*/void Show_12864_IM(u8 code *im)unsigned char x,y,i;unsigned int tmp=0;for(i=0;i<9;) /分兩屏,上半屏和下半屏,因為起始地址不同,需要分開for(x=0;x<32;x+) /32行Write_12864_Cmd(0x34);Write_12864_Cmd(0x80+x);/列地址Write_12864_Cmd(0x80+i);/行地址,下半屏,即第三行地址0X88Write_12864_Cmd(0x30);for(y=0;y<16;y+)Write_12864_Dat(imtm

12、p+y);/讀取數(shù)據(jù)寫入LCDtmp+=16;i+=8;Write_12864_Cmd(0x36);/擴充功能設(shè)定Write_12864_Cmd(0x30); /*初始化12864*/void Init_Lcd12864()Read_12864_RAM();Show_Single_12864_Char(0,0,'A');Show_Double_12864_Char(0,0,"AB");Show_12864_NUM(0,0,1,123);Show_12864_ZH(0,0,"預(yù)覽");Show_12864_EH(0,0,"yulan");Show_12864_IM(imbuf); Write_12864_Cmd(0X30);/8位數(shù)據(jù),基本指令 Write_12864_Cmd(0X0C);/開顯示,關(guān)游標 Write_12864_Cmd(0X01);/清屏 Write_1

溫馨提示

  • 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)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論