• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

    基于Proteus和MedWin V3.0的直流數(shù)字電壓表的設(shè)計

    2019-10-08 05:23:14
    關(guān)鍵詞:電壓表字符端口

    嚴 敏

    (江蘇旅游職業(yè)學(xué)院 信息工程學(xué)院,江蘇 揚州 225127)

    數(shù)字電壓表由于具有測量速度快、測量精度高、測量結(jié)果可視化顯示等優(yōu)點,已廣泛應(yīng)用于智能測量控制的某些領(lǐng)域[1-2]。本文設(shè)計了一個基于Proteus和MedWin V3.0的直流數(shù)字電壓表,以微控制器芯片AT89C51為主控制器測量單通道模擬電壓,在ADC0832模數(shù)轉(zhuǎn)換后,輸出數(shù)字電壓值在LCD1602屏幕上實時顯示。

    1 系統(tǒng)硬件設(shè)計

    1.1 設(shè)計總體結(jié)構(gòu)

    該設(shè)計使用單片機芯片AT89C51控制ADC0832進行模數(shù)轉(zhuǎn)換,ADC0832輸入被測0~5V模擬電壓,經(jīng)模數(shù)轉(zhuǎn)換后,輸出的數(shù)字電壓值介于0x00~0xFF之間。單片機讀取ADC0832模數(shù)轉(zhuǎn)換結(jié)果,進行數(shù)值量程變換,再送液晶屏LCD1602實時顯示,系統(tǒng)設(shè)計的總體結(jié)構(gòu)如圖1所示。

    圖1 系統(tǒng)的總體結(jié)構(gòu)

    1.2 A/D轉(zhuǎn)換器ADC0832

    設(shè)計電路時,將引腳VCC接5 V,將GND引腳接地,并將引腳 (芯片選擇使能)連接到微控制器AT89C51的P2.5端口,引腳CLK(時鐘輸入端子)連接到AT89C51的P2.6端口,引腳DI(數(shù)據(jù)信號輸入)和引腳DO(數(shù)據(jù)信號輸出)在通信期間不同時有效,并且與AT89C51的接口是雙向的,所以將它們并聯(lián)一起連接到AT89C51的P2.7端口,引腳CH0(模擬輸入通道0)經(jīng)過滑動變阻器連接到被測模擬電壓,由于只測量一路電壓,所以不使用引腳CH1(模擬輸入通道1),如圖2所示。當(dāng)然,這里也可以將被測模擬電壓連接到引腳CH1,不使用引腳CH0。

    圖2 ADC0832電路原理圖

    1.3 LCD1602液晶顯示模塊

    LCD1602屏幕可以顯示兩行字符,每行16個,總共32個字符。在電路設(shè)計時,引腳VSS接地,引腳VDD接5 V,引腳VEE接地。引腳RS(數(shù)據(jù)/指令寄存器選擇)、引腳R/W(讀/寫選擇)、引腳E(使能端)分別連接到AT89C51的P2端口的P2.0、P2.1、P2.2。引腳D0~ D7(8位數(shù)據(jù))直接連接到AT89C51的P0端口的P0.0~P0.7,這里使用上拉電阻RP1的目的是增加驅(qū)動能力。

    圖3 LCD1602電路原理圖

    LCD1602內(nèi)部有一個80*8位的DDRAM緩沖區(qū),字符顯示位與DDRAM地址的對應(yīng)關(guān)系如表1所示,DDRAM第一行的地址從00H開始到27H結(jié)束,第二行的地址從40H開始到67H結(jié)束,每行40個地址,而LCD1602每行顯示16個字符,因此在編寫程序的時候,選用DDRAM的前16個地址即可,需要特別注意的是第二行地址是從40H開始的。如果要在LCD1602屏幕的某行某列顯示一個字符,就往某行某列對應(yīng)的DDRAM地址寫入這個字符對應(yīng)的ASCII碼,這時會發(fā)現(xiàn)液晶屏幕上并不能正常顯示出這個字符,原因就是必須在該地址的基礎(chǔ)上還要加上80H。比如,要在第二行第二列顯示電壓單位伏特的符號“V”,就要先將第二行第二列對應(yīng)的DDRAM地址41H加上80H,即C1H,然后在C1H地址寫入“V”字符對應(yīng)的ASCII碼0x56,這樣才能正常顯示,其它字符的顯示依此類推,不再贅述。

    表1 顯示位與DDRAM的對應(yīng)關(guān)系

    2 系統(tǒng)軟件設(shè)計

    根據(jù)ADC0832的工作時序要求和LCD1602液晶顯示要求,該系統(tǒng)控制程序在MedwinV3.0開發(fā)軟件中用C51語言編寫完成,實現(xiàn)電壓表的測量功能。

    2.1 主程序設(shè)計

    void main()

    { unsigned int val; //定義變量

    ……

    while(1)

    {val=ADC(); //進行A/D轉(zhuǎn)換

    int=(val)/51; //計算整數(shù)部分

    dec=(val%51)*100/51; //計算小數(shù)部分

    Display1(int); //顯示整數(shù)部分

    Display2(dec); //顯示小數(shù)部分 ……}

    2.2 A/D轉(zhuǎn)換子程序設(shè)計

    unsigned char ADC()//模數(shù)轉(zhuǎn)換子程序

    { ……

    CS=0; //片選有效

    CLK=1; CLK=0; //第一個脈沖的下降沿

    DIO=1;

    CLK=1; CLK=0; //第二個脈沖下降沿

    DIO=0; //選擇通道CH0

    CLK=1; CLK=0; //第三個脈沖下降沿

    DIO=1; //DI失去作用

    CLK=1; //第四個脈沖

    for(i=0;i<8;i++)//一個字節(jié)8位數(shù)據(jù)

    {CLK=1; CLK=0;

    data<<=1;

    data|=(unsigned char)DIO; }

    CS=1; //片選無效

    return data; } //將讀取的數(shù)據(jù)返回

    2.3 LCD1602液晶顯示子程序設(shè)計

    LCD1602液晶屏的驅(qū)動程序編寫相對復(fù)雜,一定要弄清楚1602的各個操作指令的用法和意義,主要包括顯示模式的設(shè)置、顯示開關(guān)控制、輸入模式控制、從DDRAM中讀取數(shù)據(jù)、對DDRAM進行寫數(shù)據(jù)、清屏、光標(biāo)歸位設(shè)定、數(shù)據(jù)地址指針設(shè)置、LCD目前的忙碌工作標(biāo)志等[3],其部分代碼設(shè)計如下所示:

    ……

    void Lcd_initial()//初始化LCD

    { E=0;

    Lcd_writecmd(0x38); //16*2顯示,5*7點陣

    msdelay (1);

    Lcd_writecmd(0x08); //顯示關(guān)閉

    msdelay (2);

    Lcd_writecmd(0x01); //顯示清屏

    msdelay (2);

    Lcd_writecmd(0x06); //設(shè)置光標(biāo),讀寫一個字符后,光標(biāo)加1

    msdelay (1);

    Lcd_writecmd (0x0c); //顯示打開,不顯示光標(biāo)

    msdelay (1); }

    3 仿真與結(jié)果分析

    在Medwin V3.0開發(fā)軟件中編寫程序、修改調(diào)試程序、編譯后生成十六進制HEX文件,打開Proteus電路設(shè)計圖,將其加載到AT89C51芯片中并啟動仿真按鈕以查看系統(tǒng)設(shè)計的仿真結(jié)果。根據(jù)分壓原理,改變滑動變阻器RV2的阻值大小,從而改變ADC0832輸入通道CH0的被測模擬電壓值,此時液晶 LCD1602顯示的電壓值隨之改變,并精確到小數(shù)點后兩位。為了便于電壓測量結(jié)果的分析,在RV2兩端加一個虛擬電壓表,同時觀察虛擬電壓表和LCD1602顯示數(shù)值的大小,分別如圖4和圖5所示。經(jīng)過多次測量,得出如下結(jié)論:被測模擬電壓和模數(shù)轉(zhuǎn)換后的數(shù)字電壓這兩者的電壓數(shù)值誤差較小,基本上約為10mV,小于8位分辨率的電壓精度5V/28≈19.53mV,可見測量精度高,滿足本設(shè)計要求。

    圖4 虛擬電壓表

    圖5 數(shù)字電壓表

    4 結(jié)束語

    本文基于Proteus和MedWin V3.0設(shè)計了直流數(shù)字電壓表,在MedWin V3.0開發(fā)環(huán)境中編寫、調(diào)試單片機C51程序,編譯完成后生產(chǎn)HEX文件并將其加載到AT89C51芯片中,以便在Proteus仿真平臺上進行驗證。Proteus和MedWin V3.0的聯(lián)合使用,不僅對單片機課程的課堂教學(xué)有較好的項目演示功能,而且對單片機項目的開發(fā)設(shè)計有很大的實際意義。

    猜你喜歡
    電壓表字符端口
    尋找更強的字符映射管理器
    如何判斷電壓表的測量對象
    一種端口故障的解決方案
    判斷電壓表測量對象有妙招
    字符代表幾
    一種USB接口字符液晶控制器設(shè)計
    電子制作(2019年19期)2019-11-23 08:41:50
    消失的殖民村莊和神秘字符
    端口阻塞與優(yōu)先級
    電壓表的妙用
    再探電壓表內(nèi)阻的測量方法
    平顶山市| 秀山| 蓝田县| 武平县| 桃江县| 惠安县| 金沙县| 大方县| 葫芦岛市| 西丰县| 江口县| 分宜县| 青岛市| 江川县| 尖扎县| 洪湖市| 株洲县| 和田市| 阿瓦提县| 宜章县| 禄丰县| 朝阳区| 福建省| 龙山县| 芦山县| 河东区| 和平区| 夏津县| 方山县| 灵宝市| 永善县| 镇平县| 乡城县| 贺兰县| 宜春市| 信宜市| 贵港市| 新乡市| 保定市| 汉源县| 巨鹿县|