4根io口线驱动1602(带pwm调光).docx

4根10 口线驱动1602 (带PWM调光) 呵呵,不用我说你们也知道为什么只需要 4根线:因为咱用了 74hc595啊!因为74HC595最近我手 里一抓一大把。但是STC的单片机IO 口紧缺。就算使用4线驱动模式也要8个IO(还要算上背光 PWM)。 这一次我几乎做到了他的一半。如果不用 PWM的话。大概只需要 3个10,如果需要PWM就四个罗。 MCU当然是老掉牙的死特惨 89C52罗? 画原理图实在是不方便。就不画了。另外求酷 ? 也可以在595后面级联类似三极管开关??…纟继电器之类的玩意。当然友情提醒,别超过 4个595.否则 速度会慢的可怕。我现在 1个595.写1602都可以丢掉延时函数了。 这一次硬件设计的比较简单, 但是IO全反了。所以需要占用额外的 CPU时间修正,但是毕竟方便洞 洞板嘛。还有大家别看到我给 A和B赋了好几次值而去 优化”代码。如果您 优化”的话,那么就根本驱动 不起来,因为51的加法减法乘除都要经过 ACC和B,如果不去重新赋值的话,那么就会发生改变的现象。 不过我这种位寻址软件修正可比那种 XX=XX XX的效率高多了。如果我这么写的话。恐怕刷一个屏幕没 1 秒下不来啊。12T的51就这个速度 …… 不过这一次焊板子实在是太仓促了。对比度电位器焊在液晶下面,结果初始化成功了显示两排方块。 晕了半天。调试半天还是没用。后来捅了一下背面就好了 ??…晕……! 上代码: #i nclude stc89c5x.h//STC89C52 P1_3//背光P1_0//数据输入P1_1// P1_3//背光 P1_0//数据输入 P1_1// 移位时钟,SHCP,11pin P1_2//锁存时钟,STCP,12pin #defi ne LCD1602_BACKLIGHT #defi ne LCD1602_SDA #defi ne LCD1602_SCK #defi ne LCD1602_SCL /* *硬件连接: 74HC595 Q7 - 1602 RS GND - 1602 RW(595没有输入功能,所以判定忙只能靠延时, 另外就是MCU的速度比较 的慢。所以也可以直接去掉延时。但是在 STC12系列上的表现,我可不知道会怎么样 74HC595 Q6 - 1602 EN 74HC595 Q5~Q2 - 1602 D5~D7(这一次硬件设计不合理, 才只能搞软件修正了。 不过好处 就是直接就可以洞洞板上对着联,减少了烧坏 595的概率。坏处就是 CPU时间消耗的多了 点。但是可以取消延时函数啦? 1602 D1?D4直接悬空 LCD_BACKLIGHT 加一级PNP三极管射随器加到液晶的 A上,如果无需调光可以去掉 这一部分电路和代码 *至于595的连接,只要不弄反 SCL和SCK,就没有问题啦? */ sbit __at 0xE0 A_0;//方便位操作,硬件设置真的是败笔 -- sbit __at 0xE1 A_1; sbit __at 0xE2 A_2; sbit __at 0xE3 A_ sbit __at 0xE4 A_ sbit __at 0xE5 A_ sbit __at 0xE6 A_ sbit __at 0xE7 A_ sbit __at 0xF1 B_ sbit __at 0xF2 B_ sbit __at 0xF3 B_ sbit __at 0xF4 B_ sbit __at 0xF5 B_ sbit __at 0xF6 B_ sbit __at 0xF7 B_ unsigned char PWM_Cycle=0;//PWM 占空比 unsigned char PWM_T=0;//PWM 当前所处周期 unsigned char OutBuf=0xff;// 输出缓冲 #define LCD_OFF #define LCD_CUR #define LCD_FCUR void delay(unsigned int n) { unsigned int x,y; for(x=n;x0;x--) for(y=100;y0;y--); } lcd_wcmd(0x08) lcd_wcmd(0x0E) lcd_wcmd(0x0F) void Send595() { unsigned char i,j; j=0x80; LCD1602_SCK=0; for(i=0;i8;i++) { LCD1602_SDA=OutBuf j; j=j1; LCD1602_SCK=1; LCD1602_SCK=0; } LCD1602_SDA=1; LCD1602_SCL=0; LCD1602_SCL=1; } void lcd_en() { //OutBuf=OutBuf|0x40;//E=1 B=Out

文档评论(0)

1亿VIP精品文档

相关文档