0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

采用AT89C51+ADC0832+LCD1602的電子稱設(shè)計

嵌入式應(yīng)用開發(fā) ? 來源:嵌入式應(yīng)用開發(fā) ? 作者:嵌入式應(yīng)用開發(fā) ? 2022-06-16 15:39 ? 次閱讀

電子稱設(shè)計,主要用于菜市場的電子稱,可以設(shè)置價格,根據(jù)價格和重量計算出金額,該設(shè)計采用了Proteus仿真軟件,采用AT89C51為主控,采用ADC0832芯片來進行ADC的轉(zhuǎn)換,采用LCD1602顯示屏顯示,同時設(shè)計了矩陣鍵盤用于輸入價格。設(shè)計難度3顆星(滿星為5顆)。
首先設(shè)計電路圖,由于模塊不多,所以接口可以隨意分配,電路仿真圖如下圖1。

pYYBAGKq3c6AHViBAAbTsUOfYMU575.png

設(shè)計時需要一步一步進行設(shè)計,一般設(shè)計開始盡量將人機交互的模塊優(yōu)先級調(diào)高。這里呢就優(yōu)先對LCD1602進行設(shè)計,驅(qū)動程序如下:

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);

}

屏幕顯示有了,就可以對其他模塊進行設(shè)計,按鍵和ADC優(yōu)先級差不多,所以可以隨意的選擇,這里優(yōu)先對ADC0832模塊進行設(shè)計,代碼如下:

unsigned char A_D(unsigned char CH)              //AD函數(shù)

{

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;          //判斷兩個讀取值是否相等相等就把讀取的數(shù)賦值給DAT

_nop_();

CS=1;

DO=1;

Clk=1;

return dat;

}
最后來對矩陣鍵盤進行設(shè)計,這個也是比較簡單的,一般學(xué)過單片機的都了解,代碼如下:
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;

}

}

驅(qū)動都由了,最后就是實現(xiàn)邏輯了,由于邏輯代碼有點多,這里就不貼出來了,最后來看一看效果吧!

poYBAGKq3hyAWDVdAAFdTUc-K4s062.png



審核編輯:湯梓紅

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • AT89C51
    +關(guān)注

    關(guān)注

    27

    文章

    543

    瀏覽量

    80868
  • 電子稱
    +關(guān)注

    關(guān)注

    1

    文章

    25

    瀏覽量

    12214
  • LCD1602
    +關(guān)注

    關(guān)注

    14

    文章

    606

    瀏覽量

    52372
  • adc0832
    +關(guān)注

    關(guān)注

    3

    文章

    83

    瀏覽量

    28315
收藏 人收藏

    評論

    相關(guān)推薦

    lcd1602+ADC0832電子稱程序和仿真圖

    本帖最后由 gk320830 于 2015-3-4 14:22 編輯 lcd1602+ADC0832電子稱程序和仿真圖
    發(fā)表于 06-03 21:48

    LCD1602+LCD12864+89C51顯示電路原理圖

    LCD1602+LCD12864+89C51顯示電路原理圖
    發(fā)表于 09-18 09:43 ?1089次下載
    <b class='flag-5'>LCD1602+LCD12864+89C51</b>顯示電路原理圖

    ADC0832_LCD1602兩路電壓表程序

    ADC0832+LCD1602兩路電壓表
    發(fā)表于 01-11 16:58 ?21次下載

    LCD1602電子時鐘

    基于51單片機stc89c52的lcd1602電子時鐘,歡迎下載交流
    發(fā)表于 11-05 16:01 ?20次下載

    基于89C51+LCD1602+PCF8591有毒氣體濃度報警器仿真與源程序

    基于89C51+LCD1602+PCF8591有毒氣體濃度報警器 內(nèi)涵 實物圖 原理圖 源程序
    發(fā)表于 01-11 17:31 ?22次下載

    使用51單片機和ADC0832設(shè)計LCD1602顯示數(shù)字電壓表的電路圖和程序

    本文檔的主要內(nèi)容詳細介紹的是使用51單片機和ADC0832設(shè)計LCD1602顯示數(shù)字電壓表的電路圖和程序資料合集免費下載。
    發(fā)表于 08-07 08:00 ?95次下載
    使用<b class='flag-5'>51</b>單片機和<b class='flag-5'>ADC0832</b>設(shè)計<b class='flag-5'>LCD1602</b>顯示數(shù)字電壓表的電路圖和程序

    使用89C51單片機實現(xiàn)LCD1602LCD12864的顯示電路原理圖

    本文檔的主要內(nèi)容詳細介紹的是使用89C51單片機實現(xiàn)LCD1602LCD12864的顯示電路原理圖。
    發(fā)表于 03-05 08:00 ?23次下載
    使用<b class='flag-5'>89C51</b>單片機實現(xiàn)<b class='flag-5'>LCD1602</b>和<b class='flag-5'>LCD</b>12864的顯示電路原理圖

    使用51單片機和ADC0832應(yīng)用LCD1602的程序和仿真資料

    本文檔的主要內(nèi)容詳細介紹的是使用51單片機和ADC0832應(yīng)用LCD1602的程序和仿真資料。
    發(fā)表于 06-30 17:34 ?60次下載
    使用<b class='flag-5'>51</b>單片機和<b class='flag-5'>ADC0832</b>應(yīng)用<b class='flag-5'>LCD1602</b>的程序和仿真資料

    LCD1602和DS18B20及ADC0832的程序和仿真工程文件免費下載

      本文檔的主要內(nèi)容詳細介紹的是LCD1602和DS18B20及ADC0832的程序和仿真工程文件免費下載。
    發(fā)表于 07-24 17:30 ?31次下載
    <b class='flag-5'>LCD1602</b>和DS18B20及<b class='flag-5'>ADC0832</b>的程序和仿真工程文件免費下載

    使用LCD1602ADC0832實現(xiàn)電子秤的程序和工程文件

    本文檔的主要內(nèi)容詳細介紹的是使用LCD1602ADC0832實現(xiàn)電子秤的程序和工程文件。
    發(fā)表于 07-24 17:30 ?22次下載
    使用<b class='flag-5'>LCD1602</b>和<b class='flag-5'>ADC0832</b>實現(xiàn)<b class='flag-5'>電子</b>秤的程序和工程文件

    51單片機驅(qū)動LCD1602顯示原理及例程

    LCD1602A 可以顯示兩行字符,一行顯示16個;②只能顯示數(shù)字和字母(5X7的點陣)不能顯示漢字;③每個字符之間有間隔;④引腳圖2.LCD1602A中文手冊 下載3.LCD1602A接線4.
    發(fā)表于 11-10 19:51 ?149次下載
    <b class='flag-5'>51</b>單片機驅(qū)動<b class='flag-5'>LCD1602</b>顯示原理及例程

    51單片機采用ADC0808檢測ADC_LCD1602顯示

    51單片機采用ADC0808檢測ADC_LCD1602顯示系統(tǒng)整體設(shè)計具體實現(xiàn)如下代碼系統(tǒng)整體設(shè)計1)本設(shè)計的控制器采用
    發(fā)表于 11-17 16:06 ?38次下載
    <b class='flag-5'>51</b>單片機<b class='flag-5'>采用</b><b class='flag-5'>ADC</b>0808檢測<b class='flag-5'>ADC_LCD1602</b>顯示

    51單片機多路測溫報警系統(tǒng)(AT89C51、多個DS18B20、LCD1602

    51單片機多路測溫報警系統(tǒng)(AT89C51、多個DS18B20、LCD1602)一、簡介** 此系統(tǒng)主要由AT89C51、多個DS18B20溫度模塊和
    發(fā)表于 11-21 11:06 ?19次下載
    <b class='flag-5'>51</b>單片機多路測溫報警系統(tǒng)(AT<b class='flag-5'>89C51</b>、多個DS18B20、<b class='flag-5'>LCD1602</b>)

    單片機液晶滾動顯示(AT89C51LCD1602

    單片機液晶滾動顯示(AT89C51、LCD1602)一、簡介此電路由AT89C51最小系統(tǒng)和LCD1602液晶模塊組成??蓪崿F(xiàn)上線垂直滾動、左右滾動和播放暫停。二、執(zhí)行效果上下滾動左右
    發(fā)表于 11-23 16:51 ?43次下載
    單片機液晶滾動顯示(AT<b class='flag-5'>89C51</b>、<b class='flag-5'>LCD1602</b>)

    STC89C52_51單片機_LCD1602液晶

    STC89C52_51單片機_LCD1602液晶簡單顯示實例顯示:Pretty Girl i Love u#include<reg52.h>#define
    發(fā)表于 11-23 17:06 ?20次下載
    STC<b class='flag-5'>89C52_51</b>單片機_<b class='flag-5'>LCD1602</b>液晶