历史上的今天
返回首页

历史上的今天

今天是:2026年03月27日(星期五)

正在发生

2023年03月27日 | 采用AT89C51+ADC0832+LCD1602的电子称设计

2023-03-27 来源:elecfans

电子称设计,主要用于菜市场的电子称,可以设置价格,根据价格和重量计算出金额,该设计采用了Proteus仿真软件,采用AT89C51为主控,采用ADC0832芯片来进行ADC的转换,采用LCD1602显示屏显示,同时设计了矩阵键盘用于输入价格。设计难度3颗星(满星为5颗)。

首先设计电路图,由于模块不多,所以接口可以随意分配,电路仿真图如下图1。

55bc2f0f720faf9e8dcaaa11f70e0267_pYYBAGKq3c6AHViBAAbTsUOfYMU575.png?imageView2/2/w/550

设计时需要一步一步进行设计,一般设计开始尽量将人机交互的模块优先级调高。这里呢就优先对LCD1602进行设计,驱动程序如下:



void wrc(uint8 c)


{


delay(1);


rs=0;


rw=0;


e=0;


P0=c;


e=1;


delay(1);


e=0;


}


void wrd(uint8 dat)


{


delay(1);


rs=1;


rw=0;


e=0;


P0=dat;


e=1;


delay(1);


e=0;


rs=0;


}


void init()


{




delay(1);


wrc(0x38);


wrc(0x38);


wrc(0x38);


wrc(0x06);


wrc(0x0c);


wrc(0x01);


}

屏幕显示有了,就可以对其他模块进行设计,按键和ADC优先级差不多,所以可以随意的选择,这里优先对ADC0832模块进行设计,代码如下:


unsigned char A_D(unsigned char CH)              //AD函数


{


unsigned char i,adval,test;          //定义局部变量并初始化


adval=0x00;


test=0x00;


Clk=0;                      //clk低电平


DI=1;                      //DI初始高电平在第一个时钟脉冲的下降沿前保持高电平,表示启动信号


_nop_();                    


CS=0;                       //片选


_nop_();


Clk=1;                      //clk上升沿,起始位写入


_nop_();


if(CH==0x00)               //选择通道0


{


Clk=0;                    //clk低电平


DI=1;                   


_nop_();


Clk=1;                    //clk上升沿,通道0的第一位写入


_nop_();


Clk=0;


DI=1;


_nop_();


Clk=1;                    //clk上升沿,通道0的第二位写入


_nop_();


}


else


{


Clk=0;


DI=1;


_nop_();


Clk=1;                //clk上升沿,通道1的第一位写入


_nop_();


Clk=0;


DI=1;


_nop_();                //clk上升沿,通道1的第二位写入


Clk=1;


_nop_();


}


Clk=0;


DI=1;


for(i=0;i<8;i++)                //从高位向低位读取八位AD值


{


_nop_();


adval<<=1;


Clk=1;


_nop_();


Clk=0;


if(DO)


adval|=0x01;


else


adval|=0x00;


}


for(i=0;i<8;i++)


{




test>>=1;                  //从低位向高位读取八位AD值




if(DO)


test|=0x80; 


else         


test|=0x00;


_nop_();


Clk=1;


_nop_();


Clk=0;


}


if(adval==test)   dat=test;          //判断两个读取值是否相等相等就把读取的数赋值给DAT


_nop_();


CS=1;


DO=1;


Clk=1;


return dat;


}

最后来对矩阵键盘进行设计,这个也是比较简单的,一般学过单片机的都了解,代码如下:

uint8 keyscan()          //按键扫描程序


{


uint8 h,l,value;


P1=0x0f;


h=P1&0x0f;


if(h!=0x0f)


{


delay(1);


if(h!=0x0f)


{


h=P1&0x0f;


l=P1|0xf0;


P1=l;


l=P1&0xf0;


h=P1&0x0f;


value=h+l;     


}


return value;


}


}


驱动都由了,最后就是实现逻辑了,由于逻辑代码有点多,这里就不贴出来了,最后来看一看效果吧!

f91700977987d29befc53e9e901f6495_poYBAGKq3hyAWDVdAAFdTUc-K4s062.png?imageView2/2/w/550

推荐阅读

史海拾趣

ETA Electric Industry Co Ltd公司的发展小趣事

随着技术实力的增强,ETA Electric Industry Co Ltd开始积极拓展国内外市场。他们参加了多个国际电子展会,与世界各地的潜在客户建立了联系。同时,公司还加强了与国内外大型电子企业的合作,为其提供定制化的解决方案。这些举措极大地提升了公司的知名度和市场份额,为公司的快速发展奠定了基础。

Fortiming Corporation公司的发展小趣事

背景:随着电子技术的快速发展,客户对频率控制产品的要求越来越高。

发展:Fortiming不断投入研发资源,进行技术创新和产品升级。公司成功开发出了一系列高精度、高稳定性的晶振产品,满足了市场对高品质频率控制产品的需求。同时,Fortiming还积极探索新的应用领域,如通信、汽车电子、物联网等,不断拓展市场边界。

FILTRAN公司的发展小趣事

背景:2001年9月5日,Fortiming Corporation在内华达州正式成立(来源:企查查)。在成立之初,公司就明确了自己的市场定位——专注于提供高质量的石英晶振、晶体振荡器等频率控制产品。

发展:面对当时竞争激烈的电子行业,Fortiming凭借其对技术的深刻理解和对市场需求的敏锐洞察,迅速在石英晶振领域站稳脚跟。公司不仅注重产品研发,还积极引进先进生产设备,提升产品质量和生产效率。

Fair Rite公司的发展小趣事

随着全球进入数字化、网络化、智能化时代,电子元器件市场发生了深刻的变化。Fair Rite积极应对市场变化,通过技术创新和产品研发,不断推出适应新需求的产品。例如,公司针对EMF/EMI干扰较严重或容易出现导漏流问题的情况,推出了EMI抑制铁芯线圈(SM-BL系列),帮助客户节省PCB空间并降低干扰信号。同时,Fair Rite还注重满足客户的性价比需求,为每个新产品进行定制化设计和质量验证(遵循ISO9001:2008标准),确保其在不同应用场景下稳定可靠。

这些故事展示了Fair Rite在电子行业中不断发展壮大的历程。通过不断创新、拓展市场和提升品质,Fair Rite已经成为电子行业中的佼佼者之一。

E-Z-HOOK公司的发展小趣事

随着全球化进程的加速推进,E-Z-HOOK公司开始积极拓展国际市场。他们通过参加国际展会、建立海外销售网络等方式,将产品推向全球各地。同时,公司还积极寻求与国际知名企业的合作机会,共同开发新技术和新产品。这些努力使得E-Z-HOOK公司的品牌影响力逐渐扩大,在全球范围内树立了良好的声誉和形象。

Coiltronics公司的发展小趣事

在电子行业的初期,Coiltronics公司凭借其独特的线圈技术,成功打破了市场格局。当时,市场上的电子线圈普遍存在效率低下、散热不良等问题,而Coiltronics公司则通过深入研究,开发出一种新型的高效散热线圈。这一创新不仅提高了电子设备的性能,还大大降低了故障率,使得Coiltronics的产品在市场上大受欢迎。公司凭借这一技术优势,迅速在电子行业崭露头角。

问答坊 | AI 解惑

大功率开关电源中功率MOSFET的驱动技术

功率MOSFET具有导通电阻低、负载电流大的优点,因而非常适合用作开关电源(switch-mode power supplies,SMPS)的整流组件,不过,在选用MOSFET时有一些注意事项。  功率MOSFET和双极型晶体管不同,它的栅极电容比较大,在导通之前要先对该电容充 ...…

查看全部问答>

用TLV2553采集数据,两个相邻通道的串扰问题

我用TLV2553采集两个相邻通道的信号,发现有串扰问题,具体是:有两个传感器,在单通道进行测量时,零点很准确。但两个传感器同时采集时,发现第二通道的零点,会随着第一通道传感器的信号变化,而发生变化。 总是想不通是如何来的?如何解决? ...…

查看全部问答>

基础知识:车载传感器的应用与分类

将当今的汽车说成是电子产品毫不过分,而且有人预言今后还会在安全、环保和信息化这三个领域加速实现电子化。这一趋势今后肯定只会 加速而不可能停滞。因为汽车厂商在安全、环保和信息化这三个领域里早就提出了加速实现电子化的方针。而其中最值得 ...…

查看全部问答>

MCF52233_DMA&UART

 呵呵,我们的Freescale。终于有Freescale的版块了,现在把以前写的一些东西转过来,希望能有更多人的关注Freescale。 MCF52233_DMA&UART—Direct Memory Access & Universal Asynchronous receiver/transimtters   Coldfire有三个独立的全双 ...…

查看全部问答>

eboot生成nb0问题

E:\\WINCE600\\OSDesigns\\liyutai\\liyutai\\RelDir\\liyutai_ARMV4I_Debug>viewbin eboot. bin ViewBin... eboot.bin Image Start = 0x80021000, length = 0x00000000 Done. boot.bib文件如下: MEMORY ;   Name  &nbs ...…

查看全部问答>

安装EVC4的过程碰到问题, 麻烦高手帮忙

我用的操作系统是XP SP2, 之前已经安装过WINCE, Activesync 4.5.. 从微软官网下了的EVC4, 解压后直接点击SETUP安装, 安装过程提示需要先安装Microsoft Windows CE Platform Manager, 于是我就确认安装.. 结果在安装Platform Manager的过程中就出 ...…

查看全部问答>

quartus ii 8.0

在quartus ii 8.0进行完全编译时提示不支持EPM3128_ATC_144,请指点...…

查看全部问答>

电脑声卡测试问题,求助大家

一台电脑出厂时候,需要进行耳机和麦克风测试:是否能正常输出声音与输入,现在想改进以前的测试方式,可否将耳机与麦的两者的接口直接用一跟线连接起形成一简单的工作回路测试(耳机与麦都是3pin脚),直接将耳机的输出信号当作麦克风的输入信号,并保存成 ...…

查看全部问答>

WinDbg 與 Virtual PC 聯合使用的問題

使用WinDbg與Virtual PC調試驅動程序時,如果讓Virtual PC停止全速運\行進行單步調試時,Virtual PC會占用100%的CPU資源,宿主電腦會運\行得很慢,請問這個有辦法解決嗎?…

查看全部问答>

DSP+FPGA+ASIC的实时图像处理系统

1.引言随着红外焦平面阵列技术的快速发展,红外成像系统实现了高帧频、高分辨率、高可靠性及微型化,在目标跟踪、智能交通监控中得到了越来越多的应用,并向更加广泛的军事及民用领域扩展。实时红外图像处理系统一般会包括非均匀校正、图像增强、 ...…

查看全部问答>