找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1840|回复: 4
收起左侧

STC15f2k60s2单片机将2.5v模拟电压AD转换为8位二进制数用LED灯显示,求思路

[复制链接]
ID:621983 发表于 2019-10-10 22:01 | 显示全部楼层 |阅读模式
如题
回复

使用道具 举报

ID:497670 发表于 2019-10-11 08:38 | 显示全部楼层
这个没有什么思路,按照硬件一步步通过编程实现;
首先要把硬件搭建好,然后再写程序,调试
回复

使用道具 举报

ID:495949 发表于 2019-10-11 15:38 | 显示全部楼层
LED灯是LED数码管吗???  如果是LED数码管的话我建议:
回复

使用道具 举报

ID:495949 发表于 2019-10-11 15:41 | 显示全部楼层
前边的那个是我按错了 还没打完就发出去了
如果是LED数码管显示的话  
你可以先把数码管显示程序写好  
然后调用ADC的寄存器
处理ADC的数据
接着将ADC的值转换为整数型然后在数码管上显示
回复

使用道具 举报

ID:213173 发表于 2019-10-11 17:27 | 显示全部楼层
本帖最后由 wulin 于 2019-10-14 19:43 编辑

供楼主参考
  1. #include <STC15F2K60S2.H>
  2. #include <intrins.h>

  3. typedef unsigned char BYTE;
  4. typedef unsigned int WORD;

  5. #define ADC_POWER   0x80            //ADC电源控制位
  6. #define ADC_FLAG    0x10            //ADC完成标志
  7. #define ADC_START   0x08            //ADC起始控制位
  8. #define ADC_SPEEDLL 0x00            //CPU等待540个时钟
  9. /*----------------------------
  10. 软件延时
  11. ----------------------------*/
  12. void Delay(WORD n)
  13. {
  14.     WORD x;
  15.     while (n--)
  16.     {
  17.         x = 5000;
  18.         while (x--);
  19.     }
  20. }
  21. /*----------------------------
  22. 初始化ADC
  23. ----------------------------*/
  24. void InitADC()
  25. {
  26.         P1M1 = 0x01;                                                 //设置P1.0高阻
  27.         P1M0 = 0x00;                                                 //设置P1.0高阻
  28.         P1ASF = 0x01;                   //设置P1.0口为ADC口
  29.         ADC_RES = 0;                    //清除结果寄存器
  30.         ADC_CONTR = ADC_POWER | ADC_SPEEDLL;
  31.         Delay(2);                       //ADC上电并延时
  32. }
  33. /*----------------------------
  34. 读取ADC结果
  35. ----------------------------*/
  36. BYTE GetADCResult(BYTE ch)
  37. {
  38.     ADC_CONTR = ADC_POWER | ADC_SPEEDLL | ch | ADC_START;
  39.     _nop_();                        //等待4个NOP
  40.     _nop_();
  41.     _nop_();
  42.     _nop_();
  43.     while (!(ADC_CONTR & ADC_FLAG));//等待ADC转换完成标志置1
  44.     ADC_CONTR &= ~ADC_FLAG;         //清0 ADC转换完成标志
  45.     return ADC_RES;                 //返回8位ADC结果
  46. }
复制代码
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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