pic16f877a的AD实验学习
一、主函数
- //采集AD值
- #include <pic.h>
- #include "ad.h"
- #include "usart.h"
- __CONFIG(0xFF32);
- const uchar disp[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,
- 0x07,0x7f,0x6f};
- //延时函数
- void delayms(uint x)
- {
- uint j,k;
- for(j=x;j>0;j--)
- for(k=110;k>0;k--);
- }
- //显示4位,低位数码管显示不正常
- void display(uint x)
- {
- PORTD= disp[x/1000]|0x80;
- PORTA= 0x10;
- delayms(2);
- PORTD= disp[x/100%10];
- PORTA= 0x08;
- delayms(4);
- PORTD= disp[x/10%10];
- PORTA= 0x04;
- delayms(2);
- PORTD= disp[x%10];
- PORTA= 0x02;
- delayms(2);
- }
- //初始化IO
- void init()
- {
- TRISA = 0x01; //RA0 input mode
- TRISC = 0xff; //RC output mode
- TRISD = 0;
- PORTC = 0x01;
- ADCON0 = 0x41; //ADCS1:ADCS0=01,AN0,,A/D On
- ADCON1 = 0x8E; //right justified,ADCS2=0,1110
- delayms(10);
- }
- //获取AD值
- uint getad()
- {
- uint adval;
- float advalf;
- GO = 1;
- while(GO);
- adval = ADRESH;
- adval = adval<<8|ADRESL;
- advalf = adval/1023.0*5.0; //转换成电压
- adval = (uint)(advalf*1000); //转换成4位整型
- return (adval);
- }
- void main()
- {
- uint i = 0;
- uint temp;
- init();
- usart_init();
- while(1)
- {
- temp = getad();
- display(temp);
- if(i == 100)
- {
- usart_tx(temp>>8);
- usart_tx(temp);
- i=0;
- }
- delayms(5);
- i++;
- }
- }
二、usart函数
- #include <pic.h>
- #include "usart.h"
- //串口初始化
- void usart_init(void)
- {
- SPBRG = 0xC; //波特率19200
- TXSTA = 0x24; //开启发送,高速模式
- RCSTA = 0X90; //使能TXRX引脚,接收到CREN直到被清零
- RCIE = 0X1; //使能接受中断
- GIE = 0X1; //开启总中断
- PEIE = 0X1; //开启串口中断
- }
- void interrupt usart(void)
- {
- if(RCIE && RCIF)
- {
- TXREG = RCREG; //返回接收的数据
- }
- }
- void usart_tx(unsigned char date)
- {
- TXREG = date;
- while(TRMT!=1);
- }
pic16f877a的AD实验学习的更多相关文章
- pic16f877a的PWM实验学习
遇到的问题,编译时找不到TRISC.一开始以为头文件中没有定义,发现定义了. 所以是自己创建工程的时候,设备类型选错了. #include <pic.h> __CONFIG(0xFF32) ...
- Sharepoint2013 AD组用户不同步
背景: SP2013列表库使用AD安全组授权访问,向AD安全组添加一个用户A,在Sharepoint AD同步(增量和完全)后,用户A仍然无法访问列表库:原因: 参考:安全令牌上的缓存 SP2013 ...
- freeradius整合AD域作anyconncet认证服务器
一.服务器要求 Radius服务器:centos6.6.hostname.selinux disabled.stop iptables AD域服务器:Windows Server 2008 R2 E ...
- 讲座: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 ...
- Azure AD Connect 手动同步
我们目前采用工具Azure AD Connect 目录同步工具将本地域控制器的用户信息同步至office365和Azure 在之前目录同步工具中使用Windows 任务计划程序或单独的 Windows ...
- SQL Server 阻止了对组件 'Ad Hoc Distributed Queries' 的 STATEMENT'OpenRowset/OpenDatasource' 的访问
delphi ado 跨数据库访问 语句如下 ' and db = '帐套1' 报错内容是:SQL Server 阻止了对组件 'Ad Hoc Distributed Queries' 的 STATE ...
- 如何查看/统计当前AD域控制器的活动用户?
最近公司想知道某台AD域控制器上当前连接了多少活动用户? 此前个人只知道以下不是非常完善且统计起来比较麻烦的方法: 方法1:查看共享会话数.(不完全准确) 方法2:查看当前的DNS记录.(这种方法统计 ...
- AD域-让共享目录只显示用户有权限访问的文件夹
问题: 在AD域中,我们一般都会用到共享,如果有很多部门,我们可能还会按部门.职位配置权限.比如CSD,IT,PA等,但文件夹一多,用户看着就头大,而且用户没权限访问的文件夹误点击进去还会提示无权限访 ...
- AD域的安装(在Windows Server 2003中安装Active Directory)
在Active Directory中提供了一组服务器作为身份验证服务器或登录服务器,这类服务器被称作域控制器(Domain Controller,简称DC).建立一个AD域的过程实际就是在一台运行Wi ...
随机推荐
- 日志数据如何同步到MaxCompute
摘要:日常工作中,企业需要将通过ECS.容器.移动端.开源软件.网站服务.JS等接入的实时日志数据进行应用开发.包括对日志实时查询与分析.采集与消费.数据清洗与流计算.数据仓库对接等场景.本次分享主要 ...
- SQL Server索引管理之六大铁律
索引是以表列为基础的数据库对象.索引中保存着表中排序的索引列,并且纪录了索引列在数据库表中的物理存储位置,实现了表中数据的逻辑排序.通过索引,可以加快数据的查询速度和减少系统的响应时间;可以使表和表之 ...
- hdu 2732 Leapin' Lizards (最大流 拆点建图)
Problem Description Your platoon of wandering lizards has entered a strange room in the labyrinth yo ...
- 2018-2019-2 20175105王鑫浩《Java程序设计》实验四 《Android开发基础》实验报告
实验四 <Android开发基础> 实验报告封面 课程:Java程序设计 班级:1751班 姓名:王鑫浩 学号:20175105 指导教师:娄嘉鹏 实验日期:2019年5月17日 实验时间 ...
- 【SpringBoot】 理解Spirng中的IOC原理
前言 前文已经介绍了Spring Bean的生命周期,在这个周期内有一个重要的概念就是: IOC容器 大家也知道IOC是Sping 的重要核心之一,那么如何理解它呢,它又是产生什么作用呢?本文就IOC ...
- iview+vue 表格中添加图片
开门见山,话不多说,要在表格中添加图片,可以使用td: <table " width="100%"> <tr class="tr-style ...
- VS2015 编写C++的DLL,并防止DLL导出的函数名出现乱码(以串口通信为例,实现串口通信)
参考链接:https://blog.csdn.net/songyi160/article/details/50754705 1.新建项目 建立好的项目界面如下: 接着在解决方案中找到[头文件]然后右击 ...
- Selenium:下拉框处理(Select模块)
在UI自动化测试过程中,经常会遇到一些下拉框,如果我们基于Webdriver操作的话就需要click两次,而且很容易出现问题,实际上Selenium给我们提供了专门的Select(下拉框处理模块). ...
- javaScript Queue
function Queue() { var items = []; this.enqueue = function(element) { items.push(element) } this.deq ...
- Git文件操作命令
添加文件 git add 添加指定文件: git add test.txt Test.java 添加所有文件: git add . 取消添加文件 git reset HEAD – filename g ...