AVR(ATMEGA128\16)AD功能(扫描,中断,差分扫描,差分中断)

发布者:CelestialMagic最新更新时间:2016-10-19 来源: eefocus关键字:AVR  ATMEGA128  AD功能  差分扫描  差分中断 手机看文章 扫描二维码
随时随地手机看文章
下面是AD差分扫描

AVR(ATMEGA12816)AD功能(扫描,中断,差分扫描,差分中断) - 校 - bbmingxiao 的博客

/********************************AD头文件**********************************/

#ifndef __ad_chafenscan_H__
#define __ad_chafenscan_H__

uint mega128_ad_chafen01(void);//01通道差分,1为参考
uint mega128_ad_chafen32(void);//23通道差分,2为参考

#endif

/********************************ADC文件************************************/

#include "config.h"

uint mega128_ad_chafen01(void)
 {   
     uint addata1;
  DDRF&=~BIT(0);
  PORTF&=~BIT(0);/*端口设置*/
  DDRF&=~BIT(1);
  PORTF&=BIT(1);
  ADMUX=0B11010000;/*选择ADC通道1为参考,通道0输入*/
  ACSR=0x80;/*关模拟比较器*/
  ADCSRA=0X86;/*ADC使能ADEN,64分频*/
 // ADCSRA|=BIT(ADFR);
  ADCSRA|=BIT(ADSC);/*开始转换*/
  while(!(ADCSRA&(BIT(ADIF)))); /*等转换完成*/
     addata1=ADCL;
  addata1|=ADCH<<8;/*接收数据*/
     ADCSRA&=~BIT(ADIF);  /*清标志*/
     ADCSRA&=~BIT(ADEN);  /*关闭转换*/
   return addata1;
 } 
 
uint mega128_ad_chafen32(void)
 {   
     uint addata1;
  DDRF&=~BIT(0);
  PORTF&=~BIT(0);/*端口设置*/
  DDRF&=~BIT(1);
  PORTF&=BIT(1);
  ADMUX=0B11011011;/*选择ADC通道2为参考,通道3输入*/
  ACSR=0x80;/*关模拟比较器*/
  ADCSRA=0X86;/*ADC使能ADEN,64分频*/
 // ADCSRA|=BIT(ADFR);
  ADCSRA|=BIT(ADSC);/*开始转换*/
  while(!(ADCSRA&(BIT(ADIF)))); /*等转换完成*/
     addata1=ADCL;
  addata1|=ADCH<<8;/*接收数据*/
     ADCSRA&=~BIT(ADIF);  /*清标志*/
     ADCSRA&=~BIT(ADEN);  /*关闭转换*/
   return addata1;
 }

/********************************主函数头文件**********************************/

#ifndef __config_H__
#define __config_H__

#include
#include
#define  uchar unsigned char
#define  uint  unsigned int

#include "delay.h"
#include "lcd.h"
#include "ad_chafenscan.h"

#endif
/**************************主函数头文件****************************/

#include "config.h"

void main()
 {  uchar i;
   uint ad1,ad2;
    uint ad[4];
   DDRA=0X00;
   PORTA=0X00;
   DDRB = 0x00;      
   PORTB = 0x00 ;    
   DDRC = 0x00;
   PORTC = 0x00;
   DDRD = 0x00;
   PORTD = 0x00;
   DDRE=0X00;
   PORTE=0X00;
   DDRF=0X00;
   PORTF=0X00;
   DDRG=0X00;
   PORTG=0X00;/*端口设置*/
   LCD1602_initial();
   LCD1602_gotoXY( 1 , 3 );
   LCD1602_sendbyte(iDat,'a');
   LCD1602_sendbyte(iDat,'d');
   LCD1602_sendbyte(iDat,'c');

  while(1)
   {  
  ad1=mega128_ad_chafen01();ad2=mega128_ad_chafen32();
  if(ad1   ad[0]=ad1/1000;
  ad[1]=ad1%1000/100;
  ad[2]=ad1%100/10;
  ad[3]=ad1%10;
  LCD1602_gotoXY( 2 , 6 );
  for(i=0;i<4;i++)
  {
  LCD1602_sendbyte(iDat,0x30+ad[i]);
  }
     delayms(300);
   }

关键字:AVR  ATMEGA128  AD功能  差分扫描  差分中断 引用地址:AVR(ATMEGA128\16)AD功能(扫描,中断,差分扫描,差分中断)

上一篇:AVR(ATMEGA128/16)内部EEPROM读写
下一篇:AVR (ATMEGA)软件滤波方法程序(限值平均滤波法)

推荐阅读最新更新时间:2024-03-16 15:16

TQ2440 学习笔记—— 16、volatile关键字
大多数计算机拥有一系列寄存器,其存取速度比计算机主存更快。好的编译程序能进行一种被称为“冗余装入和存储的删去” (redundant load and store removal)的优化,即编译程序会在程序中寻找并删去这样两类代码:一类是可以删去的从内存装入数据的指令,因为相应的数据已经被存放在寄存器中;另 一种是可以删去的将数据存入内存的指令,因为相应的数据在再次被改变之前可以一直保留在寄存器中。 volatile的本意是“易变的” 由于访问寄存器的速度要快过RAM,所以编译器一般都会作减少存取外部RAM的优化。比如: static int i=0; int main(void) { ... while (1) {
[单片机]
基于16F877A和DS18B20的测温程序
以下是一个0到99度的测温程序,只要把数据处理程序改一下就可以改变测量范围和精度。 #INCLUDE P16F877A.INC CBLOCK 20H INPUT_HIGH_8 ;high 8 bit,don't allow other P use it but temperature conversion p INPUT_LOW_8 ;low 8 bit,don't allow other P use it but temperature conversion p DELAY_TEMP0 DELAY_TEMP1 PASS_TEMP UNITS_ORDE
[单片机]
微型电动车标准制定启动 有望2016年正名
    7月5日,中国微型电动车标准化技术委员会在京成立,并正式启动中国微型电动车标准制定工作。           中国微型电动车标准化技术委员会由中国电源工业协会、北京电源行业协会、中国电源产业技术创新联盟、中国微型电动车技术创新联盟发起成立,是在微型电动车领域内从事全国性标准化工作的技术工作组织。委员会特聘徐锭明、陈清泉、韩英铎、陈蕴博、钱逸泰、郭孔辉(点击查看最新人物消息) 、杨裕生、其鲁、陈全世、徐德鸿十位院士、专家为高级顾问,特邀全国电动汽车标准委员会、中国汽车技术研究中心、中科院、各省市汽车行业协会等有关单位的专家学者为专家智库成员。       标准委员会拟于7月起开始标准制定工作,9月30
[汽车电子]
总投16亿元,两集成电路基地项目落地锡山集成电路产业园
11月15日,无锡锡山集成电路装备产业园重点项目招商恳洽会举行。会上,锡北镇人民政府与半导体装备关键部件生产基地项目、集成电路设备零部件无锡基地项目签约,总投资约16亿元的项目正式落户园区。 锡山发布消息显示,集成电路装备产业园总规划面积2.4平方公里,核心区1平方公里,科学布局硅片生产与加工设备区、前道晶圆制造设备区、关键零部件制造区、后道封装测试设备区、研发及服务中心区和人才社区等六大功能片区,现已集聚连城凯克斯、吉姆西半导体、拉普拉斯等半导体高端装备制造企业,建成严陆光院士工作站、同济大学新型半导体材料与装备无锡研发中心等研发平台。根据规划,园区将重点聚焦半导体核心设备和关键零部件等领域,力争到“十四五”末园区产值实现2
[手机便携]
如何利用AVR单片机设计出语音识别系统
0 引言 传统的人机交互依靠复杂的键盘或按钮来实现,随着科技的发展,一些新型的人机交互方式也随之诞生,带给人们全新的体验。基于语音识别的人机交互方式是目前热门的技术之一。但是语音识别功能算法复杂、计算量大,一般在计算机上实现,即使是嵌入式方面,多数方案也需要运算能力强的ARM或DSP,并且外扩RAM、FLASH等资源,增加了硬件成本,这些特点无疑限制了语音识别技术的应用,尤其是嵌入式领域。 本系统采用的主控MCU为Atmel公司的ATMEGA128,语音识别功能则采用ICRoute公司的单芯片LD3320。LD3320内部集成优化过的语音识别算法,无需外部FLASH,RAM资源,可以很好地完成非特定人的语音识别任务。 1
[单片机]
如何利用<font color='red'>AVR</font>单片机设计出语音识别系统
使用单片机3个IO口+74HC595驱动驱动控制LCD1602液晶
此内容有一定的深度,初学者不建议看。 最近一直在研究数码管驱动芯片 74HC595 ,发现一件很好玩的事情,那就是 用74HC595做驱动调试程序时,发现它只能输出,不能输入。 查找大量资料,从某个网友制作的mylib.c(NES)中获得了一条指令: #define bin(_a,_b,_c,_d,_e,_f,_g,_h) ((_a) 7|(_b) 6|(_c) 5|(_d) 4|(_e) 3|(_f) 2|(_g) 1|(_h)) 分别是8 7 6 5 4 3 2 1位 我就想既然情况是这样的,那么能不能完全用74595来控制整个1602呢?于是…就有个下面这个有趣的过程了 废话不多说,先上电路系统仿
[单片机]
使用单片机3个IO口+74HC595驱动驱动控制LCD<font color='red'>16</font>02液晶
PIC16F97+eV1527解码源程序
//使用PIC16F917的片子,使用T0中断查询方式接收遥控命令 //************************************************************************************************************ #include pic.h ; void main(void); void interrupt ISR(void); void sub_cpu_ini(void); //*****************************************************************************************
[单片机]
基于AVR单片机的灭火机器人设计与实现
1 引言 机器人竞赛是近年来迅速开展起来的一种对抗活动,它涉及人工智能、机械、电子、传感器、精密机械等诸多领域。通过竞赛可以培养学生的创新意识、动手能力、团队写作能力等。其中灭火比赛是开展范围最广、影响最大的机器人竞赛项目之一。 比赛规则为模仿生活中消防员灭火,机器人从H点出发,在四个房间内寻找任意摆放的蜡烛,并且设法将其灭掉。比赛场地的墙壁高33cm,材质为木板,颜色为黑色。尺寸如图1所示。对于比赛,得的分越低成绩越好。另外根据选择的模式不同,计分时要乘上相应的系数。 图1比赛场地平面结构 2 系统硬件设计 2.1 系统总体设计 系统以ATmega32单片机为核心,它是一种基于增强RISC结构的、低功耗的8位单片机
[单片机]
基于<font color='red'>AVR</font>单片机的灭火机器人设计与实现
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved