找回密码
 立即注册

QQ登录

只需一步,快速开始

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

STC15408AD单片机摇杆AD转换串口显示程序

[复制链接]
跳转到指定楼层
楼主
ID:613558 发表于 2019-9-19 13:55 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
新手上路,求大佬多多指导。

单片机源程序如下:
  1. #include"stc15f2k60s2.h"
  2. #include <intrins.h>
  3. //sbit URx = P1^0;
  4. //sbit URy = P1^1;
  5. sbit key = P1^2;


  6. unsigned int h = 0 ;
  7. unsigned int l = 0 ;
  8. unsigned int vin = 0;
  9. void ConfigUsart();
  10. void delay_us(unsigned int i);
  11. void ConfigAD();
  12. void ADC_STC15();

  13. void Delay100ms()                //@11.0592MHz
  14. {
  15.         unsigned char i, j, k;

  16.         _nop_();
  17.         _nop_();
  18.         i = 5;
  19.         j = 52;
  20.         k = 195;
  21.         do
  22.         {
  23.                 do
  24.                 {
  25.                         while (--k);
  26.                 } while (--j);
  27.         } while (--i);
  28. }

  29. void main()
  30. {
  31.    EA = 1;
  32.    ES = 1;
  33.    ConfigUsart();
  34.    ConfigAD();
  35.    //IE = 0x80;
  36.   while(1)
  37.   {
  38.            ADC_STC15();
  39.          Delay100ms();
  40.          Delay100ms();
  41.          Delay100ms();
  42.          Delay100ms();
  43.          Delay100ms();
  44.   }

  45. }

  46. void ConfigUsart()
  47. {
  48.         SCON = 0x50;                //8位数据,可变波特率
  49.         AUXR |= 0x40;                //定时器1时钟为Fosc,即1T
  50.         AUXR &= 0xFE;                //串口1选择定时器1为波特率发生器
  51.         TMOD &= 0x0F;                //设定定时器1为16位自动重装方式
  52.         TL1 = 0xE0;                //设定定时初值
  53.         TH1 = 0xFE;                //设定定时初值
  54.         ET1 = 0;                //禁止定时器1中断
  55.         TR1 = 1;                //启动定时器1
  56. }


  57. void ConfigAD()
  58. {                                 
  59.    CLK_DIV &= ~0x20;   //ADJ = 1  //        高2位低8位
  60.    //EADC = 1;
  61.    P1ASF |= 0x03;
  62.    ADC_RES = 0;
  63.    ADC_CONTR |= 0x80 ; //开电源
  64.    ADC_CONTR |= 0x40;  //转换速度
  65.    //ADC_CONTR |= 0x08;
  66.    //ADC_CONTR |= 0x00;        //P1.0
  67.    Delay100ms();
  68.    //delay_us(8000);
  69. }



  70. void ADC_STC15()
  71. {                 
  72.    unsigned int   s   = 0;

  73.    ADC_RES = 0;
  74.    ADC_CONTR |= 0x80 ; //开电源
  75.    ADC_CONTR |= 0x40;  //转换速度
  76.    ADC_CONTR |= 0x08;
  77.   // ADC_CONTR |= 0x00;        //P1.0
  78. //   _nop_();
  79. //   _nop_();
  80. //   _nop_();
  81. //   _nop_();
  82.    while(!(ADC_CONTR & 0x10));   //等待转换完成
  83.    ADC_CONTR  &= ~0x10;                         //关闭ADC
  84.    //h = ADC_RES;
  85.    //ADC_RES = 0;
  86.    SBUF = ADC_RES;
  87.    while(!TI);
  88.    TI = 0;




  89. ////          static unsigned  int  i =  0;
  90. //        unsigned int   s   = 0;
  91. //
  92. //        ADC_RES  = 0 ;  //  AD转换结果高位
  93. //        ADC_RESL = 0 ;           //AD转换结果低位
  94. //        ADC_CONTR |=0x80;  //开电源         
  95. //        //ADC_CONTR |= 0x08;   //开始ad转换
  96. //        ADC_CONTR |= 0x04;
  97. //        ADC_CONTR |= 0x03;
  98. //
  99. ////        while(i==0)
  100. ////        {
  101. ////          i = (ADC_CONTR & 0x10);   
  102. ////        }
  103. //
  104. ////        ADC_CONTR &=0xEF;    //清除标志位  关闭转换
  105. //         h = ADC_RES;
  106. //         l = ADC_RESL;
  107. //         s = h<<8|l;
  108. //         vin = s * 1024 / 3 ;
  109. //         SBUF = vin;
  110. //         while(!TI);
  111. //         TI = 0;
  112. //         ADC_CONTR &=0xEF; // 关电源

  113. }

  114. void delay_us(unsigned int i){

  115.         for(i;i>0;i--)
  116.         {
  117.         _nop_();
  118.         _nop_();
  119.         _nop_();
  120.         }
  121. }

  122. void InterruptUsart() interrupt 4
  123. {

  124.   if(RI)
  125.   {
  126.     RI = 0 ;
  127.        
  128.         SBUF = SBUF;
  129.   }
  130.   if(TI)
  131.   {
  132.    

  133.          TI = 0;
  134.   }
  135. }
复制代码

所有资料51hei提供下载:
串口实验.rar (32.23 KB, 下载次数: 21)


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

使用道具 举报

沙发
ID:1 发表于 2019-9-19 17:49 | 只看该作者
本帖需要重新编辑补全电路原理图,源码,详细说明与图片即可获得100+黑币(帖子下方有编辑按钮)
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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