久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

基于51單片機的TCL2543源程序

[復制鏈接]
跳轉到指定樓層
樓主
ID:1034876 發表于 2023-5-13 21:59 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
#include<reg51.h>
#define uint unsigned int
#define uchar unsigned char
#define ulong unsigned long
ulong volt;//測量的電壓值
uchar code led[11]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};//7段數碼管顯示0-9的對應電平碼
uint vtime;        // 用來控制測量地址位的改變
uchar addr;//測量地址位,指示測量的是哪一個模擬值 (其實就是TLC2543的控制字)
uchar xu[5];
float a;
sbit LW1=P2^3;//數碼管電壓顯示值的第1個                比如四個數碼管顯示4.885值中,對應顯示4這個數碼管
sbit LW2=P2^2;//數碼管電壓顯示值的第2個
sbit LW3=P2^1;//數碼管電壓顯示值的第3個
sbit LW4=P2^0;//數碼管電壓顯示值的第4個

sbit CLK=P1^7;//定義時鐘信號口
sbit DIN=P1^6;//定義2543數據寫入口
sbit DOUT=P1^5;//定義2543數據讀取口
sbit CS=P1^4;//定義2543片選信號口
sbit beep=P3^6;

/**********************************************************/
//函數名:delay(uint x)
//功能:延時程序 改變測量地址         
//調用函數:
//輸入參數:x
//輸出參數:
//說明:
/**********************************************************/
void delay(uint x)
{
        uchar y,z;
        for(y=x;y>0;y--)
                for(z=250;z>0;z--);//該步運行時間約為0.5ms
                vtime++;
                if(vtime==1000)
                {
                        vtime=0;
//                        addr++;
//                        if(addr==3)
//                                addr=0;//以上語句實現測量地址位的改變               
                }        
}
/**********************************************************/
//函數名:read2543(uchar addr)
//功能:2543驅動程序
//調用函數:
//輸入參數:addr
//輸出參數:
//說明:進行ad轉換將結果存于volt變量中 addr為測量位地址
/**********************************************************/
void read2543(uchar addr)
{
        uint ad=0;
        uchar i;
        CLK=0;
        CS=0;//片選段,啟動2543
        addr<<=4;//對地址位預處理
        for(i=0;i<12;i++) //12個時鐘走完,完成一次讀取測量
        {
                if(DOUT==1)
                        ad=ad|0x01;//單片機讀取ad數據
                DIN=addr&0x80;//2543讀取測量地址位
                CLK=1;
                ;;;//很短的延時
                CLK=0;//產生下降沿,產生時鐘信號
                ;;;
                addr<<=1;
                ad<<=1;//將數據移位準備下一位的讀寫
        }
        CS=1;//關2543
        ad>>=1;
        volt=ad;//取走轉換結果
        volt=volt*1221;//例子的滿量程為5V,轉換分辯率為12位(2的12次方=4096) 。即最大值是255,5/4096=1221mV,即例子中的1V代表實際1221mV      
    xu[0] = (volt/1000000);   //1
    xu[1] = (volt/100000)%10;   //0.001
    xu[2] = (volt/10000)%10;     //0.01
    xu[3] =(volt/1000)%10;      //0.1
          a=(xu[0]+xu[1]*0.001+xu[2]*0.01+xu[3]*0.1);
}
/**********************************************************/
//函數名:display()
//功能:5位數碼管顯示
//調用函數:delay(uint x)
//輸入參數:
//輸出參數:
//說明:將處理后的電壓值與測量位值顯示在5位數碼管上
/**********************************************************/
void display()
{

        P0=0xff;//消隱,因為不斷進行循環顯示,以防上次顯示有殘留電平的影響
        LW1=1;        //選中第1個數碼管進行顯示
        P0=~led[volt/1000000]&0x7f;//帶小數點1伏顯示位
        delay(2);  //延時
        P0=0xff;  //消隱
        LW1=0;        //取消選中第1個數碼管進行顯示
        LW2=1;        //選中第2個數碼管進行顯示
        P0=~led[(volt/100000)%10];//100毫伏顯示位
        delay(2);
        P0=0xff;
        LW2=0;
        LW3=1;
        P0=~led[(volt/10000)%10];//10毫伏顯示位
        delay(2);
        P0=0xff;
        LW3=0;
        LW4=1;
        P0=~led[(volt/1000)%10];//1毫伏顯示位
        delay(2);
        P0=0xff;
        LW4=0;                        
}

void key()
{

if(a>=4.096)
{
beep=0;

}
if(a<4.096){
beep=1;
display();

}



}

/**********************************************************/
//主程序
/**********************************************************/
void main()
{
//beep=0;
read2543(0);
        while(1)
        {

    key();
                read2543(0);//調用2543驅動程序測量地址為0

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

使用道具 舉報

沙發
ID:1034876 發表于 2023-5-13 22:00 | 只看該作者
第一次
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 91视频观看 | 国产综合区 | 精品久久久精品 | 黄色欧美在线 | 精品在线播放 | 国产日韩欧美一区 | 久久中文字幕av | www亚洲一区 | 成人婷婷| 亚洲精品一区在线 | 国产成人亚洲精品自产在线 | 亚洲成人免费视频在线观看 | 亚洲一区三区在线观看 | 九九在线视频 | 日韩中文一区二区三区 | 欧美在线观看免费观看视频 | 久久精品亚洲精品国产欧美kt∨ | 在线看黄免费 | 网站国产 | 国产亚洲高清视频 | 亚洲午夜精品 | 欧美中文字幕在线观看 | 天堂av在线影院 | 久久久观看 | 久久久久久精 | www.狠狠操 | 免费成人在线网站 | 一区二区三区四区不卡 | 亚洲国产精品一区二区三区 | 亚洲精品一区二三区不卡 | 色综久久 | 黄色网络在线观看 | 特级黄一级播放 | 成人免费视频网站在线观看 | 成人久久久 | 久久久精品视频免费 | 日本成人久久 | 全部免费毛片在线播放网站 | 一级做a爰片性色毛片 | 亚洲欧美激情精品一区二区 | 久久久久久久久久久久久九 |