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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 8328|回復: 4
收起左側

單片機TLC549 A/D轉換程序+仿真

[復制鏈接]
ID:99600 發表于 2015-12-25 12:35 | 顯示全部樓層 |閱讀模式

A/D轉換

A/D轉換


  1. /********************************************************************
  2. *                                                              
  3. *  程序功能 :  數碼轉換實驗
  4. *                                                                        
  5. *  應用軟件 :  KEIL C                                               
  6. *                  
  7. *  硬    件 :  W2041  
  8. *                                                               
  9. *  創建時間 :  2015-12-16
  10. *              
  11.                         
  12. ********************************************************************/   
  13. #include <reg52.h>
  14. #include<intrins.h>
  15. #define uchar unsigned char
  16. #define uint unsigned int
  17. sbit dian=P0^7;//小數點位
  18. sbit led_e=P2^7;//液晶使能端口
  19. uchar temp,ad;
  20. uchar code table1[12]= {0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xff,0xbf}; //數碼管段選
  21. sbit CS=P3^3;                //片選
  22. sbit CLK=P2^6;                //時鐘
  23. sbit DAT=P2^7;                 //數據
  24. uchar    bdata ADCdata;
  25. sbit    ADbit=ADCdata^0;        //定義可為選址變量

  26. /********************************************************************
  27. 函 數 名:TLC549ADC()
  28. 功    能:A/D轉換子程序
  29. 說    明:讀取上一次A/D轉換的數據,啟動下一次A/D轉換
  30. ***********************************************************************/
  31. void Delay_MS(uint ms)
  32. {
  33.         uint x,y;
  34.         for(x=ms;x>0;x--)
  35.                 for(y=110;y>0;y--);
  36. }
  37. uchar TLC549ADC(void)
  38. {  
  39.     uchar i;
  40.         CS=1;   
  41.     CLK=0;   
  42.     DAT=1;
  43.     CS=0;
  44.     for(i=0;i<8;i++)
  45.     {
  46.         CLK=1;
  47. //                Delay_MS(5);
  48.        _nop_();  _nop_();_nop_();
  49.        _nop_();
  50.        ADbit=DAT;  
  51.            ADCdata<<=1;    //AD轉換     
  52.         CLK=0;
  53. //                Delay_MS(5);
  54.         _nop_(); _nop_();_nop_();      
  55.     }
  56.     return (ADCdata);
  57. }
  58. /********************************************************************

  59. 函 數 名:main()
  60. 功    能:主程序
  61. 說    明:
  62. 入口參數:無
  63. 返 回 值:無  
  64. ***********************************************************************/
  65. void main()
  66. {   
  67.     uchar i,AD_DATA;             //定義A/D轉換數據變量
  68.         while(1)
  69.         {
  70. //            TLC549ADC();             //啟動一次A/D轉換        
  71. //                    for(i=0xff;i>0;i--)         //延時
  72. //                    {_nop_();}        
  73.             AD_DATA=TLC549ADC();     //讀取當前電壓值A/D轉換數據
  74.                 led_e=0;                                  //防止液晶影響
  75.              P1=0xFD;                                  //電壓個位
  76.                  P0=table1[AD_DATA/100];
  77.                          for(i=0xff;i>0;i--)         //延時
  78.                             {_nop_();}
  79.                          for(i=0xff;i>0;i--)         //延時
  80.                             {_nop_();}
  81. //                    P0=0XFF;                                 //關閉數碼,消除余輝
  82.                  
  83.                  P1=0xFB;                                        //小數點第一位
  84.                  P0=table1[(AD_DATA%100)/10];
  85. //                 dian=0;
  86.                          for(i=0xff;i>0;i--)         //延時
  87.                             {_nop_();}        
  88.                          for(i=0xff;i>0;i--)         //延時
  89.                             {_nop_();}
  90. //                    P0=0XFF;
  91.                
  92.                  P1=0xF7;                                   //小數點第二位
  93.                  P0=table1[AD_DATA%10];
  94.                          for(i=0xff;i>0;i--)         //延時
  95.                             {_nop_();}
  96.                          for(i=0xff;i>0;i--)         //延時
  97.                     {_nop_();}
  98. //                 P0=0XFF;
  99.          }   
  100. }
復制代碼


TLC594工程文件和仿真文件下載
22-AD轉換TLC549.zip (63.14 KB, 下載次數: 138)

評分

參與人數 2黑幣 +55 收起 理由
vktpas + 5 共享資料的黑幣獎勵!
admin + 50 共享資料的積分獎勵!

查看全部評分

回復

使用道具 舉報

無效樓層,該帖已經被刪除
ID:244326 發表于 2017-11-5 21:35 | 顯示全部樓層
到底用的液晶還是數碼管
回復

使用道具 舉報

ID:271988 發表于 2018-1-8 20:52 | 顯示全部樓層
xueliang 發表于 2017-11-5 21:35
到底用的液晶還是數碼管

都可以,看你需要什么去顯示
回復

使用道具 舉報

ID:276150 發表于 2018-1-15 16:30 | 顯示全部樓層
這個復制代碼頁面怎么設置
回復

使用道具 舉報

ID:371577 發表于 2018-7-15 13:57 | 顯示全部樓層
為何我用此程序做電壓表的程序,0~2.5V可以正常顯示。2.5以上就會顯示為輸入電壓-2.5v的值。請大神指點。


回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

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