新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 74hc595+4根IO口線驅(qū)動1602,帶PWM調(diào)光

74hc595+4根IO口線驅(qū)動1602,帶PWM調(diào)光

作者: 時(shí)間:2016-11-29 來源:網(wǎng)絡(luò) 收藏
void lcd_putchar(unsigned char addr,unsigned char ch){//寫一個(gè)字lcd_wcmd(0x80+addr);lcd_wdat(ch);}void lcd_display(unsigned char *l1,unsigned char *l2){//寫一屏幕unsigned char i=0;lcd_wcmd(0x80); //顯示地址設(shè)為80H(即00H,)上排第一位for(i=0;i<16;i++){lcd_wdat(l1[i]);}lcd_wcmd(0x80+0x40); //重新設(shè)定顯示地址為0xc0,即下排第1位for(i=0;i<16;i++) {lcd_wdat(l2[i]);}}void lcd_cls(){lcd_wcmd(0x01); //清屏延時(shí)函數(shù)可以省略}//米有讀函數(shù),但是功能可以由上面的函數(shù)擴(kuò)展哦~void lcd_init(){OutBuf=0xff;Send595();//復(fù)位VIO,這段代碼必須加。否則MCU忽然RESET會導(dǎo)致液晶亂碼lcd_wcmd(0x30);//復(fù)位1602,這段代碼必須加,同上lcd_en();//喚醒lcd_wcmd(0x20);lcd_en();//喚醒lcd_wcmd(0x28); //四位,5x7lcd_wcmd(0x0c); //開啟顯示屏,關(guān)光標(biāo),光標(biāo)不閃爍lcd_wcmd(0x06); //顯示地址遞增,即寫一個(gè)數(shù)據(jù)后,顯示位置右移一位lcd_wcmd(0x01); //清屏 //調(diào)試的時(shí)候被設(shè)計(jì)失誤的對比度電位器坑死了:就是兩排小方塊死都不顯示//查了半天都不知道//最后捅了下電位器就正常了……}void lcd_print(unsigned char *str){unsigned char addr=0x80,len=0;lcd_wcmd(addr); //顯示地址設(shè)為80H(即00H,)上排第一位while(*str!=