欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 4307|回復: 0
打印 上一主題 下一主題
收起左側

51單片機ADC0808直流數字電壓表系統Proteus仿真程序

[復制鏈接]
跳轉到指定樓層
樓主
基于51單片機的直流數字電壓表系統。
采用掌握LED動態顯示和A/D轉換接口的設計方法,制作直流數字電壓表。
用到了ADC0808芯片和四位七段LED顯示器。
將待顯示的數據拆解為3位十進制數,并分時的顯示在其相應的數碼管上。一次完整的輸出過程:最低位數據傳送P0口—P2.3清零—軟件延時—P2.3置1—中間位數據送P0口—P2.2清零—軟件延時—P2.2置1—最高位數據送P0口—P2.1清零—軟件延時—P2.1置1,如此循環。
啟動信號與輸出使能信號(START、ALT、OE)均由軟件方式的正脈沖提供;結束信號(EOC)由P2.6的高電平提供。A/D轉換時鐘信號由T0定時方式2中斷提供(設系統的振蕩頻率為12MHz)。一次完整的A/D轉換過程:發出啟動信號—查詢EOC標志—發出OE置1信號—讀取A/D結果—發出OE清零信號,如此無限循環。
仿真原理圖如下:



單片機C語言程序如下:
#include <reg51.h>
sbit _st= P2^5;
sbit _eoc=P2^6;
sbit _oe=P2^7;
sbit led0=P2^3;
sbit led1=P2^2;
sbit led2=P2^1;
sbit led3=P2^0;
unsigned char ad_result=0;
unsigned char table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; //×ÖÄ££¬êééÏ158ò3
unsigned char table2[]={0x3e};
void delay(unsigned int time)
{
        unsigned int j=0;
        for(;time>0;time--)
        for(j=0;j<125;j++);
}
void disp(void)
{
        led3=0;
        P0=table[ad_result/100];
        delay(10);
        led3=1;
        led2=0;
        P0=table[(ad_result/10)%10];
        delay(10);
        led2=1;
        led1=0;
        P0=table[(ad_result/1)%10];
        delay(10);
        led1=1;
        led0=0;
        P0=table2[0];
        delay(10);
        led0=1;
}
void main(void)
{
        while(1)
        {
                _st=0;_st=1;_st=0;
                while(!_eoc);
                _oe=1;
                ad_result=P1;
                _oe=0;
                disp();
        }
}
        附件下載(包含Protues工程和C語言程序):
text7.rar (64.53 KB, 下載次數: 50)
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表