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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

單片機數摸轉換ADC0809的應用

[復制鏈接]
跳轉到指定樓層
樓主
ID:525872 發表于 2019-5-18 17:56 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
#include <reg52.h>             //頭文件
#define uchar unsigned char           //宏定義無符號字符型
#define uint  unsigned  int           //宏定義無符號整型
uchar duan[10]={0xc0,0Xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};         //所需的段的位碼0~9
uchar wei[4]={0X01,0X02,0X04,0X08};                                                                   //位控制碼
sbit ST=P3^0;   //A/D啟動轉換信號
sbit OE=P3^1;   //數據輸出允許信號
sbit EOC=P3^2;  //A/D轉換結束信號
sbit CLK=P3^3;  //時鐘脈沖  
uint z,x,c,v,AD0809, date;        //定義數據類型
/******************************************************************
延時函數
******************************************************************/
void delay(uchar t)
{
  uchar i,j;
   for(i=0;i<t;i++)
   {
            for(j=13;j>0;j--);
         { ;
         }
   }
}
/**********************************************************************
                數碼管動態掃描
*********************************************************************/
void xianshi() //顯示函數
{
/*****************數據轉換*****************************/
  z=date/1000;
  x=date%1000/100;
  c=date%100/10;
  v=date%10;
/******************數據顯示*****************************/
      P2=wei[0];
          P1=duan[z]&0x7f;
          delay(50);  
            P2=wei[1];
      P1=duan[x];
          delay(50);  
             P2=wei[2];
      P1=duan[c];
          delay(50);  
      P2=wei[3];
      P1=duan[v];
          delay(50);  
                                       

}
/*************************************************************************
                                CLK振蕩信號        
**************************************************************************/
void timer0( ) interrupt 1 //定時器0工作方式1
{

TH0=(65536-2)/256;          //重裝計數初值
TL0=(65536-2)%256;          //重裝計數初值
CLK=!CLK;                          //取反
}

/*************************************************************************
                                主函數        
**************************************************************************/
void main()
{
TMOD=0X01;                          //定時器中斷0

CLK=0;                                  //脈沖信號初始值為0
TH0=(65536-2)/256;          //定時時間高八位初值
TL0=(65536-2)%256;          //定時時間低八位初值
EA=1;                                  //開CPU中斷
ET0=1;                                  //開T/C0中斷
TR0=1;
while(1)                           //無限循環
        {
        ST=0;                                //使采集信號為低
        ST=1;                                //開始數據轉換
        ST=0;                                //停止數據轉換
        while(!EOC);                //等待數據轉換完畢
        OE=1;                                //允許數據輸出信號
        AD0809=P0;                    //讀取數據
        OE=0;                                //關閉數據輸出允許信號
        if(AD0809>=256)                //電壓顯示不能超過5V
        AD0809=255;
        date=AD0809*19.6;                //數碼管顯示的數據值,         由于最小分辨率為0.0196,乘了1000,所以為19.6 放大1000倍,容易把電壓各位分離顯示
        xianshi();                        //數碼管顯示函數

    }
}        


                                                                                                         

keil.rar

37.82 KB, 下載次數: 10, 下載積分: 黑幣 -5

程序+仿真

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

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