找回密码
 立即注册

QQ登录

只需一步,快速开始

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

芯圣HC89F0541单片机的ADC检测与串口显示源程序

[复制链接]
跳转到指定楼层
楼主
在开发板没有配置显示功能的情况下,使用串行通讯功能是较好的显示观察手段。对于ADC的检测效果的观察,就可以采用这种办法。
程序设计的思想是使用引脚P06来采集外部模拟信号值,并通过程序通讯来显示采样值。其中,P16为串行通讯的发送端,而P17为串行通讯的接收端。
ADC采集的显示函数为:
  1. void PRT(void)
  2. {
  3.              int f=0;
  4.              guc_Uartbuf_a[0]=gui_AdcValue/1000+'0';
  5.              guc_Uartbuf_a[1]=gui_AdcValue%1000/100+'0';
  6.              guc_Uartbuf_a[2]=gui_AdcValue%100/10+'0';
  7.              guc_Uartbuf_a[3]=gui_AdcValue%10+'0';
  8.              guc_Uartbuf_a[4]=0x0D;
  9.              guc_Uartbuf_a[5]=0x0A;
  10.              IE &=~ 0x40;
  11.               for(guc_i=0;guc_i<6;guc_i++)
  12.               {
  13.                                      if((guc_Uartbuf_a[guc_i]>'0')||(f==1))
  14.                                      {
  15.                                                S2BUF = guc_Uartbuf_a[guc_i];
  16.                                                f=1;
  17.                                      }
  18.                                      else
  19.                                      {
  20.                                                 S2BUF = ' ';
  21.                                       }
  22.                                     
  23.                                      if(guc_i==2) f=1;

  24.                                      while(!(S2CON & 0x02));
  25.                                      S2CON &=~ 0x02;
  26.               }
  27.               IE |= 0x40;
  28. }
复制代码


ADC采集的主程序为:
  1. void main()
  2. {

  3.          while((CLKCON&0x20)!=0x20);
  4.          CLKSWR = 0x51;                                                     
  5.          while((CLKSWR&0xC0)!=0x40);
  6.          CLKDIV = 0x01;
  7.          P1M4 = 0xC2;                       

  8.          P0M6 = 0x02;
  9.          ADCC0 = 0x80;        
  10.          ADCC1 = 0x06;        
  11.          ADCC2 = 0x4B;                                                      

  12.          P1M6 = 0xC2;
  13.          P1M7 = 0x62;
  14.          TXD2_MAP = 0x16;
  15.          RXD2_MAP = 0x17;
  16.         
  17.          RCAP5H = 0xFF;
  18.          RCAP5L = 0x98;
  19.          T5CON = 0x06;        
  20.          S2CON2 = 0x00;
  21.          S2CON = 0x10;         
  22.          IE |= 0x40;
  23.          EA = 1;
  24.         
  25.          while(1)
  26.          {
  27.                    ADCC0 |= 0x40;
  28.                    while(!(ADCC0&0x20));
  29.                    ADCC0 &=~ 0x20;
  30.                    gui_AdcValue = ADCR;
  31.                    PRT();
  32.                    delay();
  33.          }
  34. }
复制代码


经程序下载后,检测的效果如下图所示。

检测效果

评分

参与人数 1黑币 +50 收起 理由
admin + 50 共享资料的黑币奖励!

查看全部评分

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

使用道具 举报

沙发
ID:328014 发表于 2020-7-7 19:26 | 只看该作者
国产芯片雄起啊,能分享个原理图吗?
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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