MEGA16单片机_AD转换程序

发布者:快乐心跳最新更新时间:2014-12-15 关键字:MEGA16  单片机  AD转换程序 手机看文章 扫描二维码
随时随地手机看文章
AD转换,编程的寄存器有:
ADMUX:多工选择寄存器。参考电压、对齐方式、模拟通道及增益选择位
ADCSR(A):使能、中断标志、中断使能、预分频值等
ADCL、ADCH:数据寄存器
SFI0R:特殊功能寄存器
////////////////////////////////////////////////////////////////////////////////////////////////////
#ifndef __AD_H__
#define __AD_H__
#include
#include
#define  uchar unsigned char
#define  uint  unsigned int
extern uint mega16_ad(void);
#endif
////////////////////////////////////////////////////////////////////////////////////////////////////
#include "ad.h"
uint mega16_ad(void)
{
    uint addata;
  DDRA&=~BIT(PA0);
  PORTA&=~BIT(PA0);
  ADMUX=0x00;
  ADCSR=0X80;
  ADCSR|=BIT(ADSC);
  while(!(ADCSR&(BIT(ADIF))));//即:while(!(ADCSR&0x10));
    addata=ADCL;
  addata=addata+ADCH*256;
  return addata;
}
/////////////////////////////////////////////////////////////////////////////////////////////////////////
#include "ad.h"
#include "smg.h" 
void main(void)
{
  DDRA&=~BIT(PA0);//选定模拟通道0
  PORTA&=~BIT(PA0);
  SystemInit();
  SystemInit();
   while(1)
   {
   Show(mega16_ad()/1000,0);
   Show(mega16_ad()%1000/100,1);
   Show(mega16_ad()%100/10,2);
   Show(mega16_ad()%100%10,3);
   }
}
////////////////////////////////////////////////////////////////////////////////////////////////////////
/*MCU:ATMEGA16
晶振频率:8MHZ
功能:数码管动态扫描程序
*/
#ifndef __SMG_H__
#define __SMG_H__
#include
#include
#define  uchar unsigned char
#define  uint  unsigned int
extern const  table[];
//**********1ms基准延时程序**********************************   
void DelayMs(unsigned int ms);
void SystemInit(void);
void Show(unsigned char ddata,unsigned char num);
#endif
///////////////////////////////////////////////////////////////////////////////////////////////////////
/*MCU:ATMEGA16
晶振频率:8MHZ
功能:数码管动态扫描程序
*/
#include "smg.h"
#pragma data:code //共阳数码管断码表
const  table[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,
                0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e,0xb6};
//**********1ms基准延时程序**********************************   
void DelayMs(unsigned int ms)
{
    unsigned int j;
 while(--ms)
 {
    for(j=1141;j>0;--j);//1141
    }
}
void SystemInit(void)
{
  DDRA |= (1<<2)|(1<<3)|(1<<4)|(1<<6);
 DDRB |= 0xFF;
 
 PORTA |= (1<<2)|(1<<6);
 PORTB = 0xFF; 
 PORTA &= (~(1<<2))&(~(1<<6));
}
void Show(unsigned char ddata,unsigned char num)
{
  PORTA |= (1<<3);
 PORTB = table[ddata];
 PORTA &= ~(1<<3);
  
 PORTB = 0x00;
 PORTA |= (1<<4);
 PORTB = (1<
 PORTA &= ~(1<<4); 
 DelayMs(2);   
}
关键字:MEGA16  单片机  AD转换程序 引用地址:MEGA16单片机_AD转换程序

上一篇:AVR单片机T1中断定时1秒程序
下一篇:学好单片机,挑战高薪不是梦

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

赛普拉斯推出全新可高速安全联网的汽车用MCU产品线
电子网消息,赛普拉斯半导体公司今日宣布其 Traveo™ 汽车微控制器 (MCU) 系列的新产品现已开始提供样品,可为经典仪表板系统提供安全的高速联网功能。新MCU系列支持用于车内高速联网的控制器局域网络灵活数据率 (CAN FD) 标准,允许海量数据在每个 CAN 节点间进行交换。该系列的增强型安全硬件扩展 (eSHE)支援能够防止与未授权的电子控制单元 (ECU) 通信,从而保护车内网络的数据安全。全新的 MCU 系列提供更先进的系统功能、优质音效和图形,而且可驱动多达 6 个传统机械仪表,进一步加强了赛普拉斯领先的 Traveo 系列的市场覆盖能力。 赛普拉斯汽车事业部高级副总裁 Takeshi Fuse 表示:“我们最
[半导体设计/制造]
多路端口可编程霓虹灯及彩灯控制器
   现有的霓虹灯以及彩灯控制器多是使用专用集成电路,其中固化多种闪烁方式,一般只提供4~16路输出。由于在大型霓虹灯中使用的控制器路数相当多,一般只能定做,代价高而且灵活性较差。本设计由于采用了力源公司的新一代BASIC单片机PS1016及高性价比的8位LED控制驱动器PS7219,从而可实现多路端口,并且能够对任一端口进行控制,可广泛用于大型霓虹灯、塑料霓虹灯以及彩灯的可编程控制,既可在产品上直接编程,又可在计算机上调试好直接传输。具有设计简单、使用方便等特点。 1主要器件介绍 1.1 PS1016单片机   PS1016单片机引脚排列如图1所示,其特点如下:   1.固化在芯片内部的PICBAS
[单片机]
89C52单片机 蜂鸣器的实现
1、简介 开发板蜂鸣器电路 我们可以看到 蜂鸣器是连接开发板 P2.3口, 并且通过三极管来控制蜂鸣器供电电路的连接和断开。 2、实现代码 #include reg52.h //引入51头文件 sbit beep = P2^3; //得到控制蜂鸣器的端口值,默认 为高电平 1 //毫秒延时函数 void delay(int time){ int x,y; for(x = time;x 0;x--) for(y = 114;y 0;y--); } void main() { while(1) { //beep = 0; //蜂鸣器一直响 beep = ~beep; //按位取反 1
[单片机]
89C52<font color='red'>单片机</font> 蜂鸣器的实现
MSP430系列超低功耗单片机及应用
O 引 言 单片机的应用日趋广泛,对处理器的综合性能要求也越来越高。纵观单片机的发展,以应用需求为目标,市场越来越细化,充分突出以“单片”解决问题。单片机系统作为嵌入式系统的一部分,主要集中在中、低端应用领域。在这些应用中,目前也出现了一些新的趋势,主要体现在以下几个方面: 1)以电池供电的应用越来越多,而且由于产品体积的限制,很多是用纽扣电池供电,如无线传感器网络(WSN)、手持式仪表、玩具等。这就要求系统功耗尽可能低。 2)随着应用的复杂度的提高,对处理器的功能和性能要求不断提高,既要外设丰富、功能灵活,又要有一定的运算能力,能做一些实时算法,而不仅仅做简单的控制。 3)产品更新速度快,开发时间短,希望开发工具
[单片机]
MSP430系列超低功耗<font color='red'>单片机</font>及应用
基于MSP430单片机的虚拟示波器
0 引言 信息技术的高速发展,对新的技术设备提出了数字化,小型化和低功耗的要求,而虚拟示波器就是为适应这一发展而设计的。MSP430单片机具有集成度高、嵌入模块丰富(12位AD、16位定时器、FLASH、3通道DMA等)、超低功耗、系统稳定等特点,在许多领域得到了广泛的应用。对于一个虚拟示波器,一般通过采集模拟波形,然后由MCU经过A/D转换,产生相应的波形数据,经多级缓冲和传输,再经过相应的数字信号处理(如FFT等),最后通过采样将模拟波形还原出来。MSP430F169单片机内嵌12位A/D转换器,通过前置放大器、信号调理、比例转换后,由单片机完成模数转换,数据将从单片机经由USB接口高速传输至PC机,PC机经过一系列的数字
[单片机]
基于MSP430<font color='red'>单片机</font>的虚拟示波器
企业需重新思考对MCU技术采用方案
作者:Pin Tsalin, Bridgetek 微控制器单元(MCUs)有效地构成绝大多数现代嵌入式系统设计基础,为工程师提供灵活性与符合成本效益的适当强大性能。由于这些特性,它们已经达成惊人的销售数量(根据IC Insights的数据,去年有近230亿件装置出货)。随着MCU市场成熟,已经越来越集中于少数且广泛使用通用架构。 然而,这几乎完全与某些嵌入式市场的需求背道而驰。 以下的文章,我们将探讨在某些工程师想要的内容与他们实际期望的差距。 虽然MCU系列与其核心平台的通用性明显是这些装置取得非凡的成功主要因素,但也限制其使用范围。这可能会在将来留下越来越少的差异化空间。业界关注的应用焦点,例如物联网等让大量的MCU被
[单片机]
企业需重新思考对<font color='red'>MCU</font>技术采用方案
单片机外中断使用方面的问题及其解决方法
  在长期使用51单片机的过程中,我们发现单片机在工业生产现场等干扰较强的环境工作时,有时确已产生定义为下降沿触发方式的外中断,然而用仪器测量已经送入单片机的INTX引脚时,单片机却不能够正常响应中断。在排除了可能由程序导致的问题之后,再检查CPU的当前状态,发现中断级别、中断允许、中断触发方式也都表明应该响应中断。后经分析及测试,发现是单片机INTX引脚内部端口锁存器被置为零所致。当端口被封锁为零时,从该引脚引入的下降沿表示的中断申请将丢失,中断当然不被响应。由于程序中并未使用可将端口锁存器置为零的指令,且这种情况的产生具有一定的随机性,并非经常发生,所以认为这种现象可能是因电路干扰或噪声造成锁存器误动作导致的。同时我们还认为这
[单片机]
<font color='red'>单片机</font>外中断使用方面的问题及其解决方法
51单片机定时器和计数器
8051单片机内部有两个定时/计数器T0及T1,具有定时和计数两种功能。T0及T1在计数过程中不需要CPU参与,也不影响CPU的其他工作。当计数溢出后,定时/计数器给出中断信号,申请CPU停止当前的工作,去处理预先设定的中断事件。 一、T1内部结构 定时器工作模式:对内部时钟信号计数。由于时钟频率是定值,所以可根据计数值计算出定时时间。 计数器工作模式:是对加在T1(P3.5)引脚上的外部脉冲进行计数。 二、计数功能 计数器用于统计从TO(P3.4)和Tl(P3.5)两个引脚输入脉冲的负跳变数量。负跳变是指前一个机器周期采样为高电平,后一个机器周期为低电平。每输入一个脉冲负跳变,计数器加1。 输入脉冲的高电平与低电平至少应保持
[单片机]
51<font color='red'>单片机</font>定时器和计数器
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

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

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

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