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

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

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

#include

#define cs 2 // PORTD.2,片選信號
#define sid 3 // PORTD.3,串行數據線
#define sclk 4 // PORTD.4,時鐘線
#define psb 5 // PORTD.5, psb=H,并口模式, psb=L,串口模式
#define rst 6 // PORTD.6, LCD復位,低有效
#define run 7 // PORTB.7,運行標志

#define CS_SET PORTD |= 1<#define CS_CLR PORTD &= ~(1<#define SID_SET PORTD |= 1<#define SID_CLR PORTD &= ~(1<#define SCLK_SET PORTD |= 1<#define SCLK_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); // 寫數據到LCD
void wr_comm(unsigned char comm); // 寫命令到LCD
void wr_str(unsigned char const *s); // 向LCD寫字符串,長度64字符之內(32個漢字) ,指針要指向ROM
//void wr_str(const unsigned char *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[] = {"泰 山 學 院"}; //字符串以