一、主函数

  1. //采集AD值
  2. #include <pic.h>
  3. #include "ad.h"
  4. #include "usart.h"
  5. __CONFIG(0xFF32);
  6. const uchar disp[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,
  7. 0x07,0x7f,0x6f};
  8. //延时函数
  9. void delayms(uint x)
  10. {
  11. uint j,k;
  12. for(j=x;j>0;j--)
  13. for(k=110;k>0;k--);
  14. }
  15. //显示4位,低位数码管显示不正常
  16. void display(uint x)
  17. {
  18. PORTD= disp[x/1000]|0x80;
  19. PORTA= 0x10;
  20. delayms(2);
  21. PORTD= disp[x/100%10];
  22. PORTA= 0x08;
  23. delayms(4);
  24. PORTD= disp[x/10%10];
  25. PORTA= 0x04;
  26. delayms(2);
  27. PORTD= disp[x%10];
  28. PORTA= 0x02;
  29. delayms(2);
  30. }
  31. //初始化IO
  32. void init()
  33. {
  34. TRISA = 0x01;            //RA0 input mode
  35. TRISC = 0xff;                //RC output mode
  36. TRISD = 0;
  37. PORTC = 0x01;
  38. ADCON0 = 0x41;            //ADCS1:ADCS0=01,AN0,,A/D On
  39. ADCON1 = 0x8E;            //right justified,ADCS2=0,1110
  40. delayms(10);
  41. }
  42. //获取AD值
  43. uint getad()
  44. {
  45. uint adval;
  46. float advalf;
  47. GO = 1;
  48. while(GO);
  49. adval = ADRESH;
  50. adval = adval<<8|ADRESL;
  51. advalf = adval/1023.0*5.0;                //转换成电压
  52. adval = (uint)(advalf*1000);            //转换成4位整型
  53. return (adval);
  54. }
  55. void main()
  56. {
  57. uint i = 0;
  58. uint temp;
  59. init();
  60. usart_init();
  61. while(1)
  62. {
  63. temp = getad();
  64. display(temp);
  65. if(i == 100)
  66. {
  67. usart_tx(temp>>8);
  68. usart_tx(temp);
  69. i=0;
  70. }
  71. delayms(5);
  72. i++;
  73. }
  74. }

二、usart函数

  1. #include <pic.h>
  2. #include "usart.h"
  3. //串口初始化
  4. void usart_init(void)
  5. {
  6. SPBRG = 0xC;                //波特率19200
  7. TXSTA = 0x24;                //开启发送,高速模式
  8. RCSTA = 0X90;                //使能TXRX引脚,接收到CREN直到被清零
  9. RCIE = 0X1;                    //使能接受中断
  10. GIE = 0X1;                    //开启总中断
  11. PEIE = 0X1;                    //开启串口中断
  12. }
  13. void interrupt usart(void)
  14. {
  15. if(RCIE && RCIF)
  16. {
  17. TXREG = RCREG;            //返回接收的数据
  18. }
  19. }
  20. void usart_tx(unsigned char date)
  21. {
  22. TXREG = date;
  23. while(TRMT!=1);
  24. }

pic16f877a的AD实验学习的更多相关文章

  1. pic16f877a的PWM实验学习

    遇到的问题,编译时找不到TRISC.一开始以为头文件中没有定义,发现定义了. 所以是自己创建工程的时候,设备类型选错了. #include <pic.h> __CONFIG(0xFF32) ...

  2. Sharepoint2013 AD组用户不同步

    背景: SP2013列表库使用AD安全组授权访问,向AD安全组添加一个用户A,在Sharepoint AD同步(增量和完全)后,用户A仍然无法访问列表库:原因: 参考:安全令牌上的缓存  SP2013 ...

  3. freeradius整合AD域作anyconncet认证服务器

    一.服务器要求 Radius服务器:centos6.6.hostname.selinux  disabled.stop iptables AD域服务器:Windows Server 2008 R2 E ...

  4. 讲座:Modeling User Engagement for Ad and Search

    讲座:http://bdai.ruc.edu.cn/?p=118 Modeling User Engagement for Ad and Search ppt 链接: Dr. Ke(Adam) Zho ...

  5. Azure AD Connect 手动同步

    我们目前采用工具Azure AD Connect 目录同步工具将本地域控制器的用户信息同步至office365和Azure 在之前目录同步工具中使用Windows 任务计划程序或单独的 Windows ...

  6. SQL Server 阻止了对组件 'Ad Hoc Distributed Queries' 的 STATEMENT'OpenRowset/OpenDatasource' 的访问

    delphi ado 跨数据库访问 语句如下 ' and db = '帐套1' 报错内容是:SQL Server 阻止了对组件 'Ad Hoc Distributed Queries' 的 STATE ...

  7. 如何查看/统计当前AD域控制器的活动用户?

    最近公司想知道某台AD域控制器上当前连接了多少活动用户? 此前个人只知道以下不是非常完善且统计起来比较麻烦的方法: 方法1:查看共享会话数.(不完全准确) 方法2:查看当前的DNS记录.(这种方法统计 ...

  8. AD域-让共享目录只显示用户有权限访问的文件夹

    问题: 在AD域中,我们一般都会用到共享,如果有很多部门,我们可能还会按部门.职位配置权限.比如CSD,IT,PA等,但文件夹一多,用户看着就头大,而且用户没权限访问的文件夹误点击进去还会提示无权限访 ...

  9. AD域的安装(在Windows Server 2003中安装Active Directory)

    在Active Directory中提供了一组服务器作为身份验证服务器或登录服务器,这类服务器被称作域控制器(Domain Controller,简称DC).建立一个AD域的过程实际就是在一台运行Wi ...

随机推荐

  1. JavaScript中的编码解码

    1.URI 统一资源标识符(URI)是一个用于标识某一互联网资源名称的字符串.,该种标识允许用户对任何(包括本地和互联网)的资源通过特定的协议进行交互操作.Web上可用的每种资源 -HTML文档.图像 ...

  2. 处理警告:编码 GBK 的不可映射字符

    怎么处理警告:编码 GBK 的不可映射字符:javac -encoding UTF-8 XX.java使用-encoding参数指明编码方式: 或者 用记事本打开文件,然后另存为,选择ANSI编码,覆 ...

  3. python中*args和**kargs得用法总结

    前言: 一个很简单的函数说起: def Jiafa(x, y): z = x + y return z print(Jiafa(1,2)) 这个很简单,一看就知道输出等于3. 那下一个问题是,如果我要 ...

  4. SelfCert wcf中 生成x5.09证书的工具

    http://blog.pluralsight.com/selfcert-create-a-self-signed-certificate-interactively-gui-or-programma ...

  5. git开发实战:认识git

    git简介: git是分布式版本控制系统,相比较svn相比,git会在本地保存完整的提交记录,即使远程服务器宕机数据消失,可以将本地分支提交到远程服务器,本地分支会保存完整的记录.只要文件提交到git ...

  6. H5rem

    <meta name="viewport" content="width=device-width,initial-scale=1,maximum-scale=1, ...

  7. mybatis Invalid bound statement (not found)错误解决办法

    由于新版的IntelliJ IDEA不再编译source folder下的xml文件,而我们平时使用mybatis时,习惯于将*Mapper.xml文件放在与dao层.service层平级的src目录 ...

  8. Day 45 Mysql 数据库练习题二

    1.表关系   注意:创建表时,根据合理性设置字段的长度和类型. 2.下面:开始你的表演 1.查询所有人员信息 select * from ren 2.只查询人员的姓名和年龄 select name, ...

  9. STL中的查找

    一.查找 1.头文件 #include <algorithm> 2.使用方法 1.binary_search:查找某个元素是否出现.O(logn) a.函数模板:binary_search ...

  10. anaconda 安装2个python环境 亲测

    本机环境: anaconda3,pyhon3.7.4 配置第2个python环境,安装python3.6 > conda create --name tensorflow python=3.6 ...