精品学习网
所在位置:主页 > 半导体照明 > 51单片机连接扫码枪然后条码用1602显示怎么做

51单片机连接扫码枪然后条码用1602显示怎么做

发布时间:2022-12-10 12:00来源:www.51edu.com作者:畅畅

一、51单片机连接扫码枪然后条码用1602显示怎么做

扫码枪模块上淘宝买一个,最好串口的,方便,向店家要到协议就简单了,再百度一个1602的驱动,然后就可以起飞了~

二、单片机1602LCD

给你一个我实际的初始化程序,其中前后和命令之间的延时是我实际调试出来的,若延时时间短了也会出现你的现象:

void cmd1602(unsigned char ddata)

{

CTL1602_OUT = 0 //RS/RW/EN=0;

//禁止1602(E=0),选择1602为命令方式(RS=0),将读写口改为写状态(RW=0)

delay_us(50); //等待BUSY位变低

DAT1602_OUT = ddata; //送出数据到数据总线

SET1602_EN; //芯片使能位置1

delay_us(5); //保持一定宽度

SET1602_DI; //芯片使能位清0,命令被1602读到

delay_us(1); //保持一定宽度

}

void init_disp(void)

{

DAT1602_SEL = 0; //数据总线口定义为I/O方式

DAT1602_DIR = 0xff; //口定义为输出方式

CTL1602_SEL &= ~(SEL+RW+ENB); //各控制位定义为I/O方式

CTL1602_DIR |= (SEL+RW+ENB); //口定义为输出方式

//以上4行为430的I/O口定义操作,具体在头文件中定义

delay_ms(500);//延时500毫秒

cmd1602(0x38); /* Two Lines, 5x7 Font Style, No Cursors, No Blink */

delay_ms(10);

cmd1602(0x38);

delay_ms(10);

cmd1602(0x38);

delay_ms(10);

cmd1602(0x38);

delay_ms(10);

cmd1602(0x08); //close display

delay_ms(10);

cmd1602(0x01); //clear display

delay_ms(10);

cmd1602(0x06); //set AC right move

delay_ms(10);

cmd1602(0x0c); //open display

delay_ms(200);

}

三、51单片机P0口接上拉电阻后能驱动1602吗,为什么我接了之后液晶上全是方格呢

我遇到过, 不能用9个脚的上拉电阻,要8交的排阻(不要也可以的)。因为9交的有一个引脚是VCC和其他8个电阻的一端都连在一起,结果的每个和1602相连的引脚都是高电平,所以都是方格了

,换8位排阻吧

四、利用51系列单片机制作一个数控直流电源

哈哈题目属于基本单片机电路 ,首先ad转换,再次是直流斩波控制。最后是按键控制lcd显示。

基本就这样,最关键的是写程序。 这可不是一时半会的事。也可以用开关电源改装,选用合适的开关电源,看电压和电流是否能满足要求。在开关变压器高压与低压隔离的地方会有光耦做信号反馈。我们就从这动手先检测输出的电压是否达到了设定,如果没有达到设定,那开关电源高压侧继续震荡输出,反之停止。也就是用我们的检测电路代替原来开关电源的电压检测。简单吧只是嘴上说的容易,祝你成功 不明白再问 ,我只对硬件原理懂些,程序还得你自己写奥。

五、51单片机控制1602不使用时钟芯片可以直接实现倒计时吗

12Mhz晶振

中断里面就只是一个定时程序,如下

TH0=(65536-50000)/256;

TL0=(65536-50000)%256;//50ms初值

i++;

if(i==20) //20*50ms=1000ms=1s

{

num--;//num=30

}

if(num==0)

{//30秒控制程序

}

  • 热门资讯
  • 最新资讯
  • 手游排行榜
  • 手游新品榜