DC0809數模轉化的使用例程 注釋非常詳細
仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)
0.png (32.25 KB, 下載次數: 64)
下載附件
2018-7-27 23:53 上傳
0.png (55.76 KB, 下載次數: 74)
下載附件
2018-7-27 23:54 上傳
單片機源程序如下:
- /***********************************************************
- **程序功能:通過AD0809芯片顯示電壓值
- **程序說明:通過增加電阻值來改變電壓值 即顯示可變電阻的電壓值
- **通信格式:無
- *************************************************************/
- #include <reg52.h>
- #define uint unsigned int
- #define uchar unsigned char
-
- uint Data; //輸出數據參數
- sbit OE=P1^0; //輸出使能端口
- sbit EOC=P1^1; //轉換結束信號
- sbit ST=P1^2; //AD轉換啟動信號端
- sbit ADDA=P1^4;
- sbit ADDB=P1^5;
- sbit ADDC=P1^6; //數碼管通道選擇IO口定義
- uchar code table[]={0x3f,0x06,0x5b,0x4f,0x66,
- 0x6d,0x7d,0x07,0x7f,0x6f}; //0-9
-
- /*****************************************************************
- **函數名稱:Delay()
- **函數功能:延時
- **輸入 :無
- **輸出 :無
- ******************************************************************/
- void Delay()
- {
- uint k,a;
- for(k=25;k>0;k--)
- for(a=2;a>0;a--);
- }
- /******************************************************************
- **函數名稱:Ad0809Init()
- **函數功能:Ad0809初始化
- **輸入 :無
- **輸出 :無
- *******************************************************************/
- void Ad0809Init()
- {
- ADDA=1;
- ADDB=1;
- ADDC=0;
- OE=0;ST=0;
- ST=1;ST=0;
- while(EOC==0);
- OE=1;
- Data=P3;
- OE=0;
- }
- /*****************************************************************
- **函數名稱:Display()
- **函數功能:顯示函數 顯示電壓值
- **輸入 :無
- **輸出 :無
- ******************************************************************/
- void Display()
- {
- uint i;
- Data=Data*19.61; //將輸出數據轉換為電壓值
- /* 輸出八位 二的八次方正好是256 所以最大為255 用500/255 */
- for(i=0;i<4;i++)
- {
- P0=0x00;
- switch(i)
- {
- case 0:P2=0xfe;P0=table[Data/1000]|0x80;break; //顯示小數點0x80
- case 1:P2=0xfd;P0=table[Data%1000/100];break;
- case 2:P2=0xfb;P0=table[Data%100/10];break;
- case 3:P2=0xf7;P0=table[Data%10];break;
- }
- Delay();
- }
- }
- void main()
- {
- while(1)
- {
- Ad0809Init();
- Display();
- }
- }
復制代碼
所有資料51hei提供下載:
20161111144-李作鑫-ADC0809.rar
(94.98 KB, 下載次數: 19)
2018-7-27 07:17 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
|