历史上的今天

今天是:2024年10月12日(星期六)

正在发生

2019年10月12日 | atmega128 AD 转换

发布者:breakthrough2 来源: eefocus关键字:atmega128  转换  头文件 手机看文章 扫描二维码
随时随地手机看文章

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

#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<ADIE)|(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  转换  头文件 引用地址:atmega128 AD 转换

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

推荐阅读

国庆假日,首先祝各位朋友假日愉快!我也乘着这段时间,在陪娃的间隙,把欧洲的插电式混合动力的一些变化梳理一下,主要是由于欧盟在9月使用WLTP作为新的排放和油耗测试工况,对于插电式混合动力来说,在排放和油耗(CO2 g/km)表现上都面临这一些挑战。2018年开始,德国的主要企业都纷纷把宣传插电转换到了宣传纯电动的道路上来,某种程度也是代表插电式...
首先说说问题, 感觉这个Code Compose Studio 比较奇怪#include "TFTTFT_Driver.h"找不到文件, 无法打开没有include 仅在同一工程下就可以使用函数每次运行程序结果不同下面给出一个使用ADC的实例:ADC初始化函数:void ConfigureAdcTempSensor(void){ /* Configure ADC Temp Sensor Channel */ ADC10CTL1 = INCH_10 + ADC10DIV_0 +...
生命体和机器人的界限在哪里? 自人工智能兴起以来,这一问题就反复被舆论追问。如今,美国佛蒙特大学和塔弗茨大学团队的一项研究成果使得上述问题的答案更加模糊了。1月14日,全球顶级期刊《美国科学院院报》(PNAS)发表论文,称打造了用发育中的非洲爪蟾心肌细胞和表皮细胞重组而成的机器人Xenobots。这也是有史以来首个可编程活体机器人。 论文中明确...
左蓝微电子亮相国际电子展:国产射频滤波器展现技术硬实力5G与物联网的发展带来了射频前端器件需求不断上升。然而,在全球半导体产能紧缺和中美贸易摩擦背景下,“缺芯涨价”状况愈演愈烈,如何在艰难时期保证企业正常运转、维持产品供给,是中国企业不得不思考的问题。对关键器件自主可控日益重视的国内终端厂商与本土射频器件供应商的合作意愿日渐强烈。...

史海拾趣

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

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

厂商技术中心

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

 
机器人开发圈

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