找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2464|回复: 0
打印 上一主题 下一主题
收起左侧

AD0809查询法单片机源码

[复制链接]
跳转到指定楼层
楼主
ID:317159 发表于 2018-4-29 08:48 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
单片机源程序如下:
  1. #include "yxxAD0809.h"
  2. #include "yxxlcd.h"
  3. #include "yxxkey.h"


  4. unsigned char AD_DATA_SAVE[4]={0,0,0,0};
  5. unsigned char AD_P1;
  6. unsigned int vol;
  7. extern unsigned char cha_count;
  8. /*******************************************************************************
  9. * 函 数 名         : AD0809_init
  10. * 函数功能                   : 初始化AD0809,定时器中断产生时钟信号
  11. * 输    入         : c
  12. * 输    出         : 无
  13. *******************************************************************************/
  14. void AD0809_init()
  15. {
  16.           TMOD=0x02;
  17.           TH0=(256-250);
  18.           TL0=(256-250);
  19.           ET0 =1;
  20.           EA = 1;
  21.           TR0=1;
  22.           
  23. }

  24. void T0_CLK() interrupt 1
  25. {
  26.    CLK=~CLK;
  27. }

  28. //void channel()
  29. //{
  30. //        if(mode==0)               {SA=0; SB=0; SC=0;onechar(10,0,'1');}
  31. //        else if(mode==1)              {SA=0; SB=0; SC=1;onechar(10,0,'2');}
  32. //        else if(mode==2)              {SA=0; SB=1; SC=0;onechar(10,0,'3');}
  33. //        else if(mode==3)              {SA=0; SB=1; SC=1;onechar(10,0,'4');}
  34. //        else if(mode==4)              {SA=1; SB=0; SC=0;onechar(10,0,'5');}
  35. //        else if(mode==5)              {SA=1; SB=0; SC=1;onechar(10,0,'6');}
  36. //        else if(mode==6)              {SA=1; SB=1; SC=0;onechar(10,0,'7');}
  37. //        else if(mode==7)              {SA=1; SB=1; SC=1;onechar(10,0,'8');}       
  38. //        else                          {mode=0; }
  39. //}
  40. //void channel1()
  41. //{
  42. //  switch(mode)
  43. //        {
  44. //                 case 0: SA=0; SB=0; SC=0;break;
  45. //                 case 1: SA=0; SB=0; SC=1;break;
  46. //                 case 2: SA=0; SB=1; SC=0;break;
  47. //                 case 3: SA=0; SB=1; SC=1;break;
  48. //                 case 4: SA=1; SB=0; SC=0;break;
  49. //                 case 5: SA=1; SB=0; SC=1;break;
  50. //                 case 6: SA=1; SB=1; SC=0;break;
  51. //                 case 7: SA=1; SB=1; SC=1;break;                                         
  52. //        }
  53. //}

  54. /*******************************************************************************
  55. * 作    者                   :叶星鑫
  56. * 学    号                   :201536110116
  57. * 函 数 名         : AD0809_data
  58. * 函数功能                   : 得到采集到的数据
  59. * 输    入         : c
  60. * 输    出         : 无
  61. *******************************************************************************/
  62. void  AD0809_data(unsigned char channel)
  63. {
  64.           channel=cha_count;
  65.           switch(channel)
  66.         {
  67.                  case 0: SA=0; SB=0; SC=0;listchar(10,0,"chn0");break;
  68.                  case 1: SA=1; SB=0; SC=0;listchar(10,0,"chn1");break;
  69.                  case 2: SA=0; SB=1; SC=0;listchar(10,0,"chn2");break;
  70.                  case 3: SA=1; SB=1; SC=0;listchar(10,0,"chn3");break;
  71.                  case 4: SA=0; SB=0; SC=1;listchar(10,0,"chn4");break;
  72.                  case 5: SA=1; SB=0; SC=1;listchar(10,0,"chn5");break;
  73.                  case 6: SA=0; SB=1; SC=1;listchar(10,0,"chn6");break;
  74.                  case 7: SA=1; SB=1; SC=1;listchar(10,0,"chn7");break;                                         
  75.         }

  76.         START=0;
  77.         START=1;
  78.         START=0;
  79.         while(!EOC);
  80.         ENABLE=1;
  81.         AD_P1=AD_DATA;
  82.         ENABLE=0;

  83.         vol=AD_P1*196;
  84.         vol=vol/10;

  85.         AD_DATA_SAVE[0]=0x30+vol/1000;//显示个位
  86.         AD_DATA_SAVE[1]=0x30+vol/100%10;
  87.         AD_DATA_SAVE[2]=0x30+vol/10%10;
  88.         AD_DATA_SAVE[3]=0x30+vol%10;
  89. }

  90. /*******************************************************************************
  91. * 函 数 名         : vol_display
  92. * 函数功能                   : 将得到采集到的数据显示出来
  93. * 输    入         : c
  94. * 输    出         : 无
  95. *******************************************************************************/

  96. void display_vol()
  97. {
  98. //          write_com(0x01);
  99.         listchar(0,0,"voltage:");
  100.         onechar(3,1,AD_DATA_SAVE[0]);
  101.         onechar(4,1,'.');
  102.                
  103.         onechar(5,1,AD_DATA_SAVE[1]);       
  104.         onechar(6,1,AD_DATA_SAVE[2]);       
  105.         onechar(7,1,AD_DATA_SAVE[3]);

  106. }



  107. ……………………

  108. …………限于本文篇幅 余下代码请从51黑下载附件…………
复制代码

所有资料51hei提供下载:
AD0809_查询法.zip (76.46 KB, 下载次数: 13)


分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表