當(dāng)前位置:首頁 > 單片機(jī) > 單片機(jī)
[導(dǎo)讀]// HS12864-15B - 并行方式 - 顯示漢字 - 圖形// 帶字庫 // 芯片 ATMEGA16L // 時鐘 4MHz 內(nèi)部 // 功能1:漢字及字母的顯示,漢字不能錯位 // 功能2:圖形顯示,顯示橫線、豎線、邊框、128*64圖像、64*64圖像 /

// HS12864-15B - 并行方式 - 顯示漢字 - 圖形

// 帶字庫
// 芯片 ATMEGA16L
// 時鐘 4MHz 內(nèi)部
// 功能1:漢字及字母的顯示,漢字不能錯位
// 功能2:圖形顯示,顯示橫線、豎線、邊框、128*64圖像、64*64圖像
// 注意:采用了文本區(qū)和圖形區(qū)清零函數(shù),漢字和圖形顯示切換時要注意,基本指令集和擴(kuò)充指令集的轉(zhuǎn)換
// 保存圖像的數(shù)組最后不能有逗號
#include

#define LCD_Bus PORTC // 數(shù)據(jù)總線
#define rs 2 // PORTD.2,數(shù)據(jù)&指令選擇,H:寫數(shù)據(jù),L:寫指令
#define rw 3 // PORTD.3,讀&寫選擇,H:read,L:write
#define e 4 // PORTD.4,讀寫使能
#define psb 5 // PORTD.5, psb=H,并口模式, psb=L,串口模式
#define rst 6 // PORTD.6, LCD復(fù)位,低有效
#define bf 7 // 忙閑狀態(tài)標(biāo)志位,PORTC.7,H:內(nèi)部正執(zhí)行操作,L:空閑
#define run 7 // PORTB.7,運行標(biāo)志

#define RS_SET PORTD |= 1<#define RS_CLR PORTD &= ~(1<#define RW_SET PORTD |= 1<#define RW_CLR PORTD &= ~(1<#define E_SET PORTD |= 1<#define E_CLR PORTD &= ~(1<#define PSB_SET PORTD |= 1<#define PSB_CLR PORTD &= ~(1<#define RST_SET PORTD |= 1<#define RST_CLR PORTD &= ~(1<#define run_neg PORTB ^= 1<

void delay_nms(unsigned int); // 延時 n ms
void init_lcd(void); // 初始化
void chk_busy(void); // 檢測忙閑
void wr_data(unsigned char dat); // 寫數(shù)據(jù)到LCD
void wr_comm(unsigned char comm); // 寫命令到LCD
void wr_str(const unsigned char *s); // 向LCD寫字符串,長度64字符之內(nèi)(32個漢字) ,指針要指向ROM
//void wr_str(unsigned char const *s); // const的位置在unsigned char的前后都可以
void hz_disp(void); // 寫漢字或字母
void img_disp (unsigned char const *img); // 顯示圖片128*64
void img_disp2(unsigned char const *img); // 顯示圖片64*64 左半屏
void img_disp3(unsigned char const *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); // 顯示邊框

const unsigned char ex1[] = {"泰 山 學(xué) 院"}; //字符串以