找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2990|回復: 0
收起左側(cè)

單片機+DC0809數(shù)模轉(zhuǎn)化的使用例程與proteus仿真

[復制鏈接]
ID:268717 發(fā)表于 2018-7-27 07:18 | 顯示全部樓層 |閱讀模式
DC0809數(shù)模轉(zhuǎn)化的使用例程  注釋非常詳細

仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)
0.png 0.png

單片機源程序如下:
  1. /***********************************************************
  2. **程序功能:通過AD0809芯片顯示電壓值
  3. **程序說明:通過增加電阻值來改變電壓值 即顯示可變電阻的電壓值
  4. **通信格式:無
  5. *************************************************************/
  6. #include <reg52.h>
  7. #define uint unsigned int
  8. #define uchar unsigned char
  9.        
  10. uint Data;                  //輸出數(shù)據(jù)參數(shù)

  11. sbit OE=P1^0;               //輸出使能端口
  12. sbit EOC=P1^1;              //轉(zhuǎn)換結(jié)束信號
  13. sbit ST=P1^2;               //AD轉(zhuǎn)換啟動信號端

  14. sbit ADDA=P1^4;
  15. sbit ADDB=P1^5;
  16. sbit ADDC=P1^6;             //數(shù)碼管通道選擇IO口定義

  17. uchar code table[]={0x3f,0x06,0x5b,0x4f,0x66,
  18.                     0x6d,0x7d,0x07,0x7f,0x6f};           //0-9
  19.                                                    

  20. /*****************************************************************
  21. **函數(shù)名稱:Delay()
  22. **函數(shù)功能:延時
  23. **輸入    :無
  24. **輸出    :無
  25. ******************************************************************/
  26. void Delay()
  27. {
  28.   uint k,a;
  29.         for(k=25;k>0;k--)
  30.         for(a=2;a>0;a--);
  31. }

  32. /******************************************************************
  33. **函數(shù)名稱:Ad0809Init()
  34. **函數(shù)功能:Ad0809初始化
  35. **輸入    :無
  36. **輸出    :無
  37. *******************************************************************/
  38. void Ad0809Init()
  39. {
  40. ADDA=1;
  41. ADDB=1;
  42. ADDC=0;
  43. OE=0;ST=0;
  44. ST=1;ST=0;
  45. while(EOC==0);
  46. OE=1;
  47. Data=P3;
  48. OE=0;       
  49. }
  50. /*****************************************************************
  51. **函數(shù)名稱:Display()
  52. **函數(shù)功能:顯示函數(shù) 顯示電壓值
  53. **輸入    :無
  54. **輸出    :無
  55. ******************************************************************/
  56. void Display()
  57. {
  58.         uint i;
  59.         Data=Data*19.61;                        //將輸出數(shù)據(jù)轉(zhuǎn)換為電壓值
  60.         /* 輸出八位 二的八次方正好是256 所以最大為255 用500/255 */
  61. for(i=0;i<4;i++)
  62.         {
  63.                 P0=0x00;
  64.           switch(i)
  65.                 {
  66.                   case 0:P2=0xfe;P0=table[Data/1000]|0x80;break; //顯示小數(shù)點0x80
  67.                   case 1:P2=0xfd;P0=table[Data%1000/100];break;
  68.                   case 2:P2=0xfb;P0=table[Data%100/10];break;
  69.                   case 3:P2=0xf7;P0=table[Data%10];break;
  70.                 }
  71.                 Delay();
  72.         }
  73. }

  74. void main()
  75. {
  76.   while(1)
  77.         {
  78.           Ad0809Init();
  79.                 Display();
  80.         }
  81. }
復制代碼

所有資料51hei提供下載:
20161111144-李作鑫-ADC0809.rar (94.98 KB, 下載次數(shù): 19)



評分

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

查看全部評分

回復

使用道具 舉報

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

本版積分規(guī)則

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

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

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