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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 4016|回復(fù): 0
打印 上一主題 下一主題
收起左側(cè)

單片機(jī)TLC2543數(shù)字電壓表Proteus仿真程序設(shè)計

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:856756 發(fā)表于 2021-6-15 13:07 | 只看該作者 |只看大圖 回帖獎勵 |倒序瀏覽 |閱讀模式


單片機(jī)源程序如下:
  1. #define TLC2543_GLOBAL
  2. #include "TLC2543.h"

  3. uint read_TLC2543(uchar channel)
  4. {
  5.     register uchar i;
  6.     uint tempAD = 0;

  7.     while(!TLC2543GetEoc());        //等待 TLC2543 空閑
  8.         _delay_us(3);
  9.     channel <<= 4;

  10.     TLC2543Clk(TLC2543_CLR);
  11.     TLC2543_Cs(TLC2543_SET);
  12.     TLC2543_Cs(TLC2543_CLR);                //_CS TLC2543 選取  

  13.         _delay_us(3);
  14.     for( i = 0; i < 12; i ++ )
  15.     {
  16.         tempAD <<= 1;
  17.         if( TLC2543GetDo() )        //讀取數(shù)據(jù)
  18.         {
  19.             tempAD |= 0x01;
  20.         }
  21.         if( channel&0x80 )
  22.         {
  23.             TLC2543Di(TLC2543_SET);
  24.         }
  25.         else
  26.         {
  27.             TLC2543Di(TLC2543_CLR);
  28.         }
  29.         channel <<= 1;
  30.         TLC2543Clk(TLC2543_SET);
  31.         nop();
  32.         TLC2543Clk(TLC2543_CLR);
  33.     }

  34.     TLC2543_Cs(TLC2543_SET);                //TLC2543 close
  35.         _delay_us(1);

  36.     return tempAD;         //取走轉(zhuǎn)換結(jié)果
  37. }
  38. void _delay_us(uint us)  //延時子函數(shù)
  39. {
  40.    uchar delayi;      
  41.    while(--us)
  42.    {
  43.          for(delayi=0;delayi<10;delayi++);
  44.    }
  45. }                                                                                                                          
復(fù)制代碼
  1. #include "led.h"
  2. #include "TLC2543.h"
  3. const uchar code displayMode=0x0f;    //后四位分別對應(yīng)緩沖區(qū)中每位的數(shù)據(jù)類型,
  4.                                       //1為任意字符顯示,0為數(shù)字顯示
  5. uchar displayBuff[4]={0x7e,0x7e,0x7e,0x7e};   //數(shù)碼管顯示緩沖區(qū),千,百,十,個
  6. const uchar code digitalNumber[10]={0x7e,0x06,0x6d,0x79,0x33,0x5b,0x5f,0x70,0x7f,0x73};
  7. sbit key=P1^2;                            //數(shù)碼管顯示數(shù)據(jù)
  8. void main() //主函數(shù)
  9. {         
  10.   uint voltageReadTemp;
  11.   uint voltageRead;
  12.   uchar temp;
  13.   uchar i,j;
  14.   init_led();
  15.   while(1)
  16.   {if(key){
  17.     ledSweepDisplay(displayBuff,displayMode,4);            //循環(huán)在數(shù)碼管上顯示緩沖區(qū)中的數(shù)據(jù)
  18.     voltageRead=read_TLC2543(0x05);
  19.         voltageRead=voltageRead*0x05;
  20.         for(i=4;i>0;i--)
  21.         {
  22.           temp=(uchar)(voltageRead/0x0fff);
  23.           if(i==4)
  24.             displayBuff[i-1]=digitalNumber[temp]|0x80;       //計算個位,放在緩沖區(qū)第3位
  25.           else                                               //計算十位,放在緩沖區(qū)第2位
  26.             displayBuff[i-1]=digitalNumber[temp];            //計算百位,放在緩沖區(qū)第1位
  27.           voltageRead=voltageRead%0x0fff;                    //計算千位,放在緩沖區(qū)第0位
  28.           voltageReadTemp=voltageRead<<1;                    //每次緩存的讀數(shù)左移一位
  29.           voltageRead=0x0000;
  30.           for(j=0;j<5;j++)
  31.             voltageRead+=voltageReadTemp;//voltageRead=voltageRead*10
  32.           
  33.         }

  34.   }
  35.         else           //切換量程   以下與上面相同
  36.         {
  37.                 ledSweepDisplay(displayBuff,displayMode,4);             //循環(huán)在數(shù)碼管上顯示緩沖區(qū)中的數(shù)據(jù)
  38.     voltageRead=read_TLC2543(0x06);
  39.         voltageRead=voltageRead*0x02;
  40.         for(i=4;i>0;i--)
  41.         {
  42.           temp=(uchar)(voltageRead/0x0fff);
  43.           if(i==4)
  44.             displayBuff[i-1]=digitalNumber[temp]|0x80;
  45.           else
  46.             displayBuff[i-1]=digitalNumber[temp];
  47.           voltageRead=voltageRead%0x0fff;
  48.           voltageReadTemp=voltageRead<<1;
  49.           voltageRead=0x0000;
  50.           for(j=0;j<2;j++)
  51.             voltageRead+=voltageReadTemp;//voltageRead=voltageRead*10
  52.         }
  53.                
  54. }
  55. }
  56. }
復(fù)制代碼

所有資料51hei提供下載:
數(shù)字電壓表.rar (183.32 KB, 下載次數(shù): 63)

評分

參與人數(shù) 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎勵!

查看全部評分

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

使用道具 舉報

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

本版積分規(guī)則

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

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 日韩国产欧美在线观看 | 欧美一级片 | 国产亚洲精品美女久久久久久久久久 | 亚洲成人精品一区二区 | 亚洲精品一区在线 | 久久久精品在线 | 一级一级一级毛片 | 中文在线a在线 | 成人片网址 | 亚洲精品1区 | 国产激情片在线观看 | 日韩欧美在线视频 | 亚洲电影免费 | 日韩在线视频观看 | www日| 激情婷婷 | 国产精品一区二区欧美黑人喷潮水 | 成人国产精品 | 久久大 | 在线免费观看毛片 | 国产乱码精品一区二区三区中文 | 午夜精品福利视频 | 免费毛片网 | 成人午夜在线观看 | 成人网在线观看 | 久久99精品久久久久婷婷 | 亚洲一在线 | 精品久久久久久一区二区 | 久久成人精品 | 天天综合亚洲 | 成人精品一区 | 午夜网 | 性高湖久久久久久久久aaaaa | 在线免费观看日本视频 | 一级毛片成人免费看a | julia中文字幕久久一区二区 | 日韩黄 | 久久久久久网站 | www亚洲一区 | 亚洲免费在线观看 | 91久久精品国产 |