12864(帶字庫)并行方式顯示漢字和圖形-CVAVR程序
// HS12864-15B - 并行方式
// 帶字庫
// 芯片 ATMEGA16L
// 時鐘 4MHz 內(nèi)部
// 采用系統(tǒng)自帶延時程序
// 功能1:漢字及字母的顯示,漢字不能錯位
// 功能2:圖形顯示,顯示橫線、豎線、邊框、128*64圖像、64*64圖像
// 注意:采用了文本區(qū)和圖形區(qū)清零函數(shù),漢字和圖形顯示切換時要注意,基本指令集和擴充指令集的轉(zhuǎn)換
// 保存圖像的數(shù)組最后不能有逗號
#include
#include
#define LCD_Bus PORTC // 數(shù)據(jù)總線
#define rs PORTD.2 // 數(shù)據(jù)&指令選擇,H:寫數(shù)據(jù),L:寫指令
#define rw PORTD.3 // 讀&寫選擇,H:read,L:write
#define e PORTD.4 // 讀寫使能
#define psb PORTD.5 // psb=H,并口模式, psb=L,串口模式
#define rst PORTD.6 // LCD復位,低有效
#define bf 7 // 忙閑狀態(tài)標志位,PORTC.7,H:內(nèi)部正執(zhí)行操作,L:空閑
#define run PORTB.7 // 運行標志
void init_lcd(void); // 初始化
void chk_busy(void); // 檢測忙閑
void wr_da
void wr_comm(unsigned char comm); // 寫命令到LCD
void wr_str(unsigned char flash *s); // 向LCD寫字符串,長度64字符之內(nèi)(32個漢字),指針要指向ROM
void hz_disp(void); // 寫漢字或字母
void img_disp (unsigned char flash *img); // 顯示圖片128*64
void img_disp2(unsigned char flash *img); // 顯示圖片64*64 左半屏
void img_disp3(unsigned char flash *img); // 顯示圖片64*64 右半屏
void LcdClearTXT(void); // 文本區(qū)RAM清零
void LcdClearBMP(void); // 圖形區(qū)RAM清零
void lcdfill(unsigned char disdata); // 整屏全亮或顯示豎條
void Disp_H_Line(void); // 顯示橫條
void frame(void); // 顯示邊框
flash unsigned char ex1[] = {"泰 山電 子"}; //字符串以