A/D轉換
- /********************************************************************
- *
- * 程序功能 : 數碼轉換實驗
- *
- * 應用軟件 : KEIL C
- *
- * 硬 件 : W2041
- *
- * 創建時間 : 2015-12-16
- *
-
- ********************************************************************/
- #include <reg52.h>
- #include<intrins.h>
- #define uchar unsigned char
- #define uint unsigned int
- sbit dian=P0^7;//小數點位
- sbit led_e=P2^7;//液晶使能端口
- uchar temp,ad;
- uchar code table1[12]= {0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xff,0xbf}; //數碼管段選
- sbit CS=P3^3; //片選
- sbit CLK=P2^6; //時鐘
- sbit DAT=P2^7; //數據
- uchar bdata ADCdata;
- sbit ADbit=ADCdata^0; //定義可為選址變量
- /********************************************************************
- 函 數 名:TLC549ADC()
- 功 能:A/D轉換子程序
- 說 明:讀取上一次A/D轉換的數據,啟動下一次A/D轉換
- ***********************************************************************/
- void Delay_MS(uint ms)
- {
- uint x,y;
- for(x=ms;x>0;x--)
- for(y=110;y>0;y--);
- }
- uchar TLC549ADC(void)
- {
- uchar i;
- CS=1;
- CLK=0;
- DAT=1;
- CS=0;
- for(i=0;i<8;i++)
- {
- CLK=1;
- // Delay_MS(5);
- _nop_(); _nop_();_nop_();
- _nop_();
- ADbit=DAT;
- ADCdata<<=1; //AD轉換
- CLK=0;
- // Delay_MS(5);
- _nop_(); _nop_();_nop_();
- }
- return (ADCdata);
- }
- /********************************************************************
- 函 數 名:main()
- 功 能:主程序
- 說 明:
- 入口參數:無
- 返 回 值:無
- ***********************************************************************/
- void main()
- {
- uchar i,AD_DATA; //定義A/D轉換數據變量
- while(1)
- {
- // TLC549ADC(); //啟動一次A/D轉換
- // for(i=0xff;i>0;i--) //延時
- // {_nop_();}
- AD_DATA=TLC549ADC(); //讀取當前電壓值A/D轉換數據
- led_e=0; //防止液晶影響
- P1=0xFD; //電壓個位
- P0=table1[AD_DATA/100];
- for(i=0xff;i>0;i--) //延時
- {_nop_();}
- for(i=0xff;i>0;i--) //延時
- {_nop_();}
- // P0=0XFF; //關閉數碼,消除余輝
-
- P1=0xFB; //小數點第一位
- P0=table1[(AD_DATA%100)/10];
- // dian=0;
- for(i=0xff;i>0;i--) //延時
- {_nop_();}
- for(i=0xff;i>0;i--) //延時
- {_nop_();}
- // P0=0XFF;
-
- P1=0xF7; //小數點第二位
- P0=table1[AD_DATA%10];
- for(i=0xff;i>0;i--) //延時
- {_nop_();}
- for(i=0xff;i>0;i--) //延時
- {_nop_();}
- // P0=0XFF;
- }
- }
復制代碼
TLC594工程文件和仿真文件下載
22-AD轉換TLC549.zip
(63.14 KB, 下載次數: 138)
2015-12-25 12:34 上傳
點擊文件名下載附件
A/D轉換
|