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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

TLC549轉換器應用模真+仿真C語言源代碼-已測可用

[復制鏈接]
跳轉到指定樓層
樓主
TLC549轉換器電路Proteus仿真原理圖如下:




單片機源程序如下:
  1. /*
  2. *軟 件 標 題:TLC549 AD采樣子程序
  3. *軟 件 說 明:從TLC549讀取采樣值
  4. *_________________________________________
  5. *
  6. */
  7. #include <REGX51.H>//頭文件
  8. #include "intrins.h"

  9. #define    Wait1us        _nop_();
  10. #define    Wait2us        {_nop_();_nop_();}
  11. #define    Wait4us        {Wait2us;Wait2us;}
  12. #define    Wait8us        {Wait4us;Wait4us;}
  13. #define    Wait10us      {Wait8us;Wait2us;}
  14. #define    Wait30us      {Wait10us;Wait8us;Wait4us;Wait2us;}


  15. /************定義接口總線**************/
  16. sbit Clock = P1 ^ 5; //時鐘口線
  17. sbit DataOut = P1 ^ 4; //數據輸出口線
  18. sbit ChipSelect = P1 ^ 3; //片選口線
  19. /************接口總線定義結束**********/


  20. /*********函數名稱:ADCSelChannel********
  21. *
  22. *功能:轉換指定通道的模擬量為數字量
  23. *
  24. *說明:
  25. *
  26. *位置:1
  27. *
  28. ****************************************/
  29. unsigned char ADCSelChannel(void)
  30. {
  31.       unsigned char ConvertValue = 0;
  32.       unsigned char i;
  33.       ChipSelect = 1; //芯片復位
  34.       ChipSelect = 0;
  35.       ChipSelect = 1;
  36.       Clock = 0;
  37.       Wait4us;
  38.       ChipSelect = 0; //芯片起始
  39.       Wait4us; //等待延時
  40.       for (i = 0; i < 8; i ++) //輸入采樣轉換時鐘
  41.       {
  42.             Clock = 1;
  43.             Clock = 0;
  44.       }
  45.       ChipSelect = 1; //開始轉換
  46.       Wait10us; //等待轉換結束
  47.       ChipSelect = 0; //讀取轉換結果
  48.       Wait4us;
  49.       for (i = 0; i < 8; i ++) //
  50.       {
  51.             Clock = 1;
  52.             ConvertValue <<= 1;
  53.             if (DataOut)
  54.             {
  55.                    ConvertValue = 0x1;
  56.             }
  57.             Clock = 0;
  58.       }
  59.       ChipSelect = 1;
  60.       return (ConvertValue); //返回轉換結果
  61. }



復制代碼

  1. #include <REGX51.H>//頭文件
  2. #include "intrins.h"//空操作文件
  3. #include<stdio.h>
  4. #include<stdlib.h>
  5. #define  uchar unsigned char//宏定義char
  6. #define  uint          unsigned int//宏定義int
  7. void delay(long i){while(i--);}
  8. uchar code tb[10] = {0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};//數碼管段選
  9. uchar code seg_bit_scan[]={0xef,0xdf,0xbf,0x7f}; //各個數碼管對應的位選數據

  10. sbit data_temp=P1^4;//數據線(讀出數據)
  11. sbit cs=P1^3;//片選
  12. sbit sclk=P1^5;//io口時鐘


  13. uint j;        uchar qian,bai,shi,ge;

  14. void chuli(uint num)          //顯示程序
  15. {  
  16.   
  17.   qian=num/1000%10;              //千,百,十,個處理
  18.   bai=num/100%10;
  19.   shi=num/10%10;
  20.   ge=num%10;

  21.   }
  22. uint ad_549()                    //TLC549處理
  23. {
  24.   uchar i;
  25.   uint data_ad=0;
  26.   cs=1;//先拉高電平 //初始化,啟動
  27.   sclk=0;//clk拉低電平
  28.   cs=0;//cs拉低電平
  29.   _nop_();//空操作 5微妙                    
  30.   
  31.    for(i=8;i>0;i--)//循環讀取8位A/D轉換結果
  32.         {
  33.                 data_ad<<=1;
  34.                 data_ad=data_temp|data_ad;
  35.                 sclk=1;
  36.                 _nop_();_nop_();
  37.                 sclk=0;
  38.                 _nop_();
  39.         }//循環八次 讀到一個8個2進制數         
  40.   cs=1;//cs拉高電平
  41. sclk=0;
  42.            if (data_ad==0xff) data_ad=data_ad+1.953125 ;
  43.            data_ad=data_ad*19.53125;//采集到的0--255,對應0--5V


  44.   return(data_ad);//返回ad的數據
  45. }
  46. void timer0_isr(void)  interrupt 1//定時器的0中斷服務函數
  47. {
  48.                                                                               
  49.         TR0=0;//關閉定時器0                                                        
  50.         TL0=(65536-10000)%256;//賦初值
  51.         TH0=(65536-10000)/256;//賦初值
  52.         j++;                                                      
  53.         if(j>=4) //變量j加一次 //如果j大于4
  54.         j=0;//j等于0
  55.                                                                
  56.            TR0=1;//重新啟動定時器0
  57. }
  58. void timer0_init (void)//定時器0中斷初始化函數
  59. {
  60.         EA=0;//關閉總中斷                     
  61.         TMOD=0x01;//確定定時器0的工作方式為1            
  62.         TR0=0;//關閉定時器0                     
  63.         TL0=(65536-10000)%256;//賦初值
  64.         TH0=(65536-10000)/256;//賦初值                  
  65.         PT0=1;//                     
  66.         ET0=1;//打開定時器0的中斷開關                     
  67.         EA=1;//打開總中斷開關                     
  68.         TR0=1;//啟動定時器0                     
  69. }                                                
  70. void main(void)//主程序
  71. {  
  72.         
  73.         uint i;//變量i
  74.         timer0_init ();//初始化定時器0 啟動定時器0
  75.                
  76.         while(1)//循環函數
  77.         {  
  78.             P0=0xff;        
  79.                 i=ad_549();//把ad_549讀到的數賦給i
  80.                 chuli(i);//顯示最終結果(啟動ad_549轉換)
  81.         
  82.                 switch(j)
  83.                 {
  84.                         case 0: P0 = tb[ge]; break;         
  85.                         case 1: P0 = tb[shi]; break;         
  86.                         case 2: P0 = tb[bai];break;
  87.                         case 3: P0 = tb[qian]&0x7f; break;
  88.             default: break;
  89.                 }
  90.                  
  91.                 P2 = seg_bit_scan[j];      //與j對應,P2輸出數碼管的位選信號
  92.                  delay(8);
  93.                 }
  94.         }

  95.                
復制代碼

仿真程序下載: A_D轉換器應用-已測可用.zip (334.45 KB, 下載次數: 15)

評分

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

查看全部評分

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

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 九九久久国产 | 亚洲视频一区在线 | 精品一二区 | 欧美一级二级三级视频 | 日韩在线不卡视频 | 特黄av| 日韩精品 | 一区二区三区在线免费观看 | 国产美女精品视频免费观看 | 欧美日韩一区二区三区在线观看 | 国产伦一区二区三区久久 | 日本色婷婷 | 日韩美av| 国产精品免费在线 | 欧美一区二区在线观看视频 | 亚洲伊人a | 精品一区二区电影 | 一本岛道一二三不卡区 | 免费同性女女aaa免费网站 | 99视频免费 | 欧美成人专区 | 一片毛片 | 精品一区二区三区在线观看国产 | 久久精品视频99 | 一个色在线 | 欧美在线视频不卡 | 国产精品美女一区二区 | 国产成人久久精品一区二区三区 | 精品在线看 | 色综合一区二区 | av天天干 | 日韩精品| 欧洲免费毛片 | 欧美8一10sex性hd | 国产日韩中文字幕 | 成人午夜激情 | 日韩一级免费电影 | 久草综合在线 | 成人免费视频一区二区 | 99爱视频 | 羞羞的视频网站 |