atmega128 AD 转换

2019-10-12来源: eefocus关键字:atmega128  AD  转换  头文件

/*********************************包含头文件********************************/

#include

#include


/********************************数码管段码表*******************************/

extern const unsigned char tab[]={0x3f,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,

                                  0x7F,0x6F};


/*********************************端口定义**********************************/

#define  sclon   PORTG |=BIT(0);     //时钟高

#define  scloff   PORTG &=~BIT(0);

#define  dion   PORTG |=BIT(1);      //数据高

#define  dioff   PORTG &=~BIT(1);


/*********************************全局变量**********************************/

unsigned int adc_rel;

int dat;


/****************************************************************************

函数功能:ADC初始化函数

入口参数:

出口参数:

****************************************************************************/

void adc_init(void)

{

ADCSRA=0x00;  //关ADC

ADMUX = (1<

ADCSRA = (1<

}


/****************************************************************************

函数功能:ADC中断函数

入口参数:

出口参数:

****************************************************************************/

#pragma interrupt_handler adc_isr:iv_ADC

void adc_isr(void)

{

   int data_H,data_L;

  ADCSRA = 0x00;  

  adc_rel=ADC;

  ADCSRA = (1<

}


/****************************************************************************

函数功能:数据输出程序

入口参数:temp

出口参数:

****************************************************************************/

void dataOUT(unsigned char temp)

{

    unsigned char i,temp1;

    temp1 = tab[temp];

    for(i = 0;i < 8;i++ )

    {

        scloff; 

  if((temp1&0x80)!= 0x80)

         {  dioff;}

        else

         { dion;}  

  sclon;

        temp1 <<=1; 

  scloff; 

    }

}


/****************************************************************************

函数功能:延时子程序

入口参数:

出口参数:

****************************************************************************/

void delay(void)

{

   int i;

    for(i=0;i<200;i++);

}


/****************************************************************************

函数功能:显示子程序

入口参数:k

出口参数:

****************************************************************************/

void display(unsigned int k)

{

   dataOUT(k/1000);

  PORTG &=0x03;

  delay();

  dataOUT(k/100%10);

  PORTG |=0x04;

  delay();

  dataOUT(k/10%10);

  PORTG &=0x0B;       

  PORTG |=0x08;

  delay();

  dataOUT(k%10);

  PORTG |=0x0C;

  delay();

}


/****************************************************************************

函数功能:主程序

入口参数:

出口参数:

****************************************************************************/

void main(void)

{

   DDRE=0x00;

  DDRG=0xff;

  adc_init();

  SEI();

  display(0);

  while(1)

  {

    delay();

   display(adc_rel);

  }

}


关键字:atmega128  AD  转换  头文件 编辑:什么鱼 引用地址:http://news.eeworld.com.cn/mcu/ic476953.html 本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。

上一篇:分享:LCD1602温度检测显示程序(ATmega16)
下一篇:ATmega8的eeprom读写操作程序

关注eeworld公众号 快捷获取更多信息
关注eeworld公众号
快捷获取更多信息
关注eeworld服务号 享受更多官方福利
关注eeworld服务号
享受更多官方福利

推荐阅读

ATMEGA16A单片机1602字符显示程序
* 【编译环境】: ICCAVR  * 【函数功能】: 1602字符显示        * 【晶    振】:  8M                * 【芯    片】:  ATMEGA16A         #include<iom16v.h>#define uchar unsigned char #define uint unsigne
发表于 2019-10-15
Atmega128a的4位独立键盘控制程序
;  F_CPU        16000000                // 单片机主频为16MHz,用于延时子程序,熔丝位必须设置到外部高频晶振才行#include <util/delay.h>#include <avr/io.h>#include <avr/iom128.h>#include <avr/interrupt.h>           //中断信号头文件#include
发表于 2019-10-15
基于Atmega16的电压表制作 程序+原理图
附带proteus设计图 电路图 大图在附件里面 /*****************************************************Project : Version : Date    : 2015-10-29Author  :tengzaibaChip type               : ATmega16AVR Core Clock frequency: 8.000000 M
发表于 2019-10-15
基于Atmega16的电压表制作 程序+原理图
ATMEGA16单片机实现的数控频率计原理图及程序
TCCR2  = 0x05;//启动定时器    PCK/128}//T2溢出中断服务程序#pragma interrupt_handler timer2_ovf_isr:5void timer2_ovf_isr(void){PORTC=0X02;TCCR1B = 0x00;                  //关闭计数 //读取计数值Load=CNT*65536+TCNT1;           //计算频率值TCNT1 = 0X00; 
发表于 2019-10-14
ATMEGA16单片机实现的数控频率计原理图及程序
ATmega8的eeprom读写操作程序
ATmega8的eeprom读写操作,实测没问题单片机源程序如下://ICC-AVR application builder// Target : M8// Crystal: 8.0000Mhz#include <iom8v.h>#include <macros.h>#include <74164.h>#include <eeprom.h>unsigned char    display[4];  // 显示缓冲区unsigned char    dis;         // 当前
发表于 2019-10-12
苹果新iPad Pro即将发布,加入“浴霸三摄”
据外媒报道,苹果将于今年10月举办新品发布会,正式发布包括16英寸版MacBook Pro、iPad Pro等在内的多款新品。其中,新款iPad Pro在外形上不会有太大的改变,但苹果还是对新机做出了一些优化,比如加入了“浴霸三摄”,这项升级主要是为了加入ToF镜头,并为更好的支持AR技术而做准备。不过,天风国际分析师郭明錤在一份最新的报告中指出,新款iPad Pro并不会在今年10月发布,其发布日期或将延后至明年第一季度。(新款iPad Pro渲染图)至于硬件,按照以往的惯例来看,新款iPad Pro或将搭载苹果A13X仿生处理器,配备6GB内存,提供64GB、256GB、512GB、1TB可选。除此之外,新款iPad Pro
发表于 2019-10-12
苹果新iPad Pro即将发布,加入“浴霸三摄”
小广播
何立民专栏 单片机及嵌入式宝典

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

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号 电信业务审批[2006]字第258号函 京公海网安备110108001534 Copyright © 2005-2019 EEWORLD.com.cn, Inc. All rights reserved