段码式显示屏和背光电路怎么设计?

在这里插入图片描述
全透和半透的段码式显示屏是需要通过点亮背光来使之达到显示清晰的效果,并且液晶和背光是分别两路电源控制的,液晶的电压根据不同的材质以及供电方式可以对应的选择电压,正常是3–5V都可以做,但是背光的电压是既定的,只有3V,这样就会出现一个情况,当液晶供电电压是5V的时候,单片机供电通过交流电的方式输出电压,这样到达背光的电压就超出了背光的工作电压,容易影响背光灯珠的寿命,这样就可以选择在背光的电路上面上串一个电阻,通过电阻来控制到达背光的电压,这样就不会担心背光和液晶的供电问题了,两个同时达到了自身的工作电压,使用寿命也不会受到影响,两全其美。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,你可以参考下面的代码实现: ``` #include <reg51.h> #define LED_PORT P0 // 共阳极数码管引脚连接在P0口上 // 共阳极数码管每个数字的8码 unsigned char digit_code[2][8] = { {0xFC, 0x60, 0xDA, 0xF2, 0x66, 0xB6, 0xBE, 0xE0}, // 逆时针方向 {0xFC, 0x0C, 0xDA, 0x9E, 0x8C, 0x9C, 0xFC, 0x8E} // 顺时针方向 }; // key_scan函数用于检测按键状态 unsigned char key_scan() { // ... } // step_motor_28BYJ48_send_pulse函数用于控制步进电机转动 void step_motor_28BYJ48_send_pulse(unsigned char step, unsigned char dir) { // ... } void main() { unsigned char key = 0; unsigned char dir = 0; // 默认逆时针方向 unsigned char speed = 10; // 默认速度,这里假设是10ms unsigned char step = 0; unsigned char digit_index = 0; // 数字索引,初始为0,即显示数字0 while (1) { key = key_scan(); if (key == 1) { // 检测到KEY1_PRESS表示按下了换向键 dir = !dir; digit_index = 0; // 切换方向后,从数字0开始显示 } else if (key == 2) { // 检测到KEY2_PRESS表示按下了加速键 if (speed > 1) { speed--; } } else if (key == 3) { // 检测到KEY3_PRESS表示按下了减速键 if (speed < 255) { speed++; } } LED_PORT = digit_code[dir][digit_index]; // 显示当前数字的8码 digit_index++; if (digit_index >= 2) { // 数字索引超出范围,重置为0,即显示数字0 digit_index = 0; } step_motor_28BYJ48_send_pulse(step++, dir); if (step == 8) { step = 0; } delay_ms(speed); } } ``` 在这个程序中,我们增加了一个digit_index变量,用于指示当前显示的数字是0还是1。当按下换向键后,我们将digit_index重置为0,从0开始显示数字。而在显示数字时,我们通过digit_code[dir][digit_index]获取当前数字的8码,其中dir表示当前方向(逆时针或顺时针),digit_index表示当前数字索引(0或1)。因此,当方向切换时,我们需要重置digit_index为0,以显示数字0。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值