新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > 74hc595+4根IO口线驱动1602,带PWM调光

74hc595+4根IO口线驱动1602,带PWM调光

作者: 时间:2016-11-29 来源:网络 收藏
void lcd_putchar(unsigned char addr,unsigned char ch){//写一个字lcd_wcmd(0x80+addr);lcd_wdat(ch);}void lcd_display(unsigned char *l1,unsigned char *l2){//写一屏幕unsigned char i=0;lcd_wcmd(0x80); //显示地址设为80H(即00H,)上排第一位for(i=0;i<16;i++){lcd_wdat(l1[i]);}lcd_wcmd(0x80+0x40); //重新设定显示地址为0xc0,即下排第1位for(i=0;i<16;i++) {lcd_wdat(l2[i]);}}void lcd_cls(){lcd_wcmd(0x01); //清屏延时函数可以省略}//米有读函数,但是功能可以由上面的函数扩展哦~void lcd_init(){OutBuf=0xff;Send595();//复位VIO,这段代码必须加。否则MCU忽然RESET会导致液晶乱码lcd_wcmd(0x30);//复位1602,这段代码必须加,同上lcd_en();//唤醒lcd_wcmd(0x20);lcd_en();//唤醒lcd_wcmd(0x28); //四位,5x7lcd_wcmd(0x0c); //开启显示屏,关光标,光标不闪烁lcd_wcmd(0x06); //显示地址递增,即写一个数据后,显示位置右移一位lcd_wcmd(0x01); //清屏 //调试的时候被设计失误的对比度电位器坑死了:就是两排小方块死都不显示//查了半天都不知道//最后捅了下电位器就正常了……}void lcd_print(unsigned char *str){unsigned char addr=0x80,len=0;lcd_wcmd(addr); //显示地址设为80H(即00H,)上排第一位while(*str!=){//等待末尾if(len >= 16){lcd_wcmd(0x80+0x40);//下排第一位,换行len=0;}if(*str==){lcd_wcmd(0x80+0x40);//下排第一位,换行}else{lcd_wdat(*str); }str++;len++;}}//写字符串函数void PWM() __interrupt 1 __using 1{ET0=0;TF0=0;//CLRTR0=0;EA=0;TH0=0xFC;TL0=0x00;//十级调光,频率400Hzif(PWM_T>10) {PWM_T=0;}if(PWM_Cycle>PWM_T){ LCD1602_BACKLIGHT=0;}if(PWM_Cycle

下面上图片:


自己DIY的最小系统,旁边是串口转接器。这个板子上有两个晶振跳线选择
外加一个外界晶振。现在这个晶振跳在内置的11.0592上。

本文引用地址:https://www.eepw.com.cn/article/201611/323409.htm

上一页 1 2 下一页

关键词: 74hc5951602PWM调

评论


技术专区

关闭