atmega8535 Ad转换的c程序

发布者:DreamyEclipse最新更新时间:2017-12-13 来源: eefocus关键字:atmega8535  Ad转换 手机看文章 扫描二维码
随时随地手机看文章

atmega8535 Ad转换的c程序

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


uchar Table[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};

uchar Data[4]={0,0,0,0}; 

void DelayMs(uint i)  //0.25ms 
{uchar j; 
 for(;i!=0;i--) 
  {for(j=250;j!=0;j--) {;}} 


void Display(uchar *p) //间隔5ms显示 
{uchar i,sel=0x01; 
 for(i=0;i<4;i++) 
  {PORTD=sel; 
   PORTB=0xff-Table[p[i]]; 
   DelayMs(20); 
   sel=sel<<1; 
  } 


uint ADC_Convert(void) 
{uint temp1,temp2; 
 temp1=(uint)ADCL; 
 temp2=(uint)ADCH; 
 temp2=(temp2<<8)+temp1; 
 return(temp2); 


void Process(uint i,uchar *p) 
{p[0]=i/1000; 
 i=i%1000; 
 p[1]=i/100; 
 i=i%100; 
 p[2]=i/10; 
 i=i%10; 
 p[3]=i; 


void main(void) 
{uint i; 
 DDRA=0x00;                    //设置A口为不带上拉输入; 
 PORTA=0x00; 
 DDRB=0xff;                    //设置B口为推挽1输出; 
 PORTB=0xff; 
 DDRD=0xff;                    //设置C口为推挽1输出; 
 PORTD=0xff; 
 PORTB=0x00;                   //B口初始化输出1;C口初始化输出0;点亮全部数码管; 
 PORTD=0xff; 
 ADMUX=0x01;                   //选择第二通道ADC1; 
 ADCSR=0xe6;                   //125K转换速率,自由转换模式;启动AD转换器; 
 DelayMs(3000);                //延时待系统稳定; 
 while(1) 
 {i=ADC_Convert(); 
  Process(i,Data); 
  Display(Data); 
 } 
}


 


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

void DelayMs(uint i)
{uchar j;
 for(;i!=0;i--)
  {for(j=255;j!=0;j--) {;}}
}

main()
{DDRA=0xff; //A口1输出
 PORTA=0xff;
 DDRB=0xff; //B口1输出
 PORTB=0xff;
 while(1)
  {DelayMs(0);
   PORTA=0xff;
   PORTB=0x00;}
}


关键字:atmega8535  Ad转换 引用地址:atmega8535 Ad转换的c程序

上一篇:ATmega8535L Eeprom示例程序
下一篇:avr单片机数码管显示时钟

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

数据采集系统基于AD转换芯片AD0809
提起LABVIEW,就不能不涉及到数据采集和控制。 曾经在网上辩论过LV是不是通用编程语言,NI的创始人的一篇文章的标题就是“LV是通用语言吗”,这的确很难说,说它是通用语言,因为它的确具备了通用语言的基本能力,但是只能说是基本的,但是对很多VC容易实现的东西,在LV中却是个问题,尤其是系统相关的一些操作,所以,我个人更愿意认为,LABVIEW是倾向于测量和控制的硬件工程师的语言,它是语言,而不是一般意义上的专用软件,所以,LABVIEW逐渐成为工科院校学生的基本课程。 数据采集是LV最擅长的领域,对于开发过 单片机 的人来说,数据采集是再熟悉不过的了,如果想真正了解数据采集,就必须从AD,DA,COUNTER等转换芯片开始,数据
[单片机]
数据采集系统基于<font color='red'>AD转换</font>芯片AD0809
基于使用CC2430芯片AD转换功能见解
1.AD转换分辨率 8位;10位;12位;14位。 2.采样间隔转换时间 Tconv = (decimation rate + 16) x 0.25 s decimation rate = (64【8】;128【10】;256【12】;512【14】) 3.转换端口设置【P0为输入口】 ADCCFG:把P0口相应的引脚当作ADC输入时,置1,输入使能。 ADCCON1: 可以检测转换结束 ADCCON3: 设置参考电压【其中ADC_SOC为林模拟输入电压】;相应的转换分辨率;选择转换端口 4.转换后值的放置 ADCH:存放模/数转
[单片机]
MSP430单片机AD转换LCD1602&TUBE显示
#include msp430x14x.h #define uint unsigned int #define uchar unsigned char #define ulint unsigned long int #define RS BIT0; #define RW BIT1; #define EN BIT2; uint Volt0; //设置电压变量 ulint Volttem0; unsigned data0=0,data1=0; uint ADresult0; //设置A/D转换结果 uint a ={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,
[单片机]
PIC单片机AD转换数据存储及串口效率
  PIC 单片机A/D 转换后的数据通常需要占用两个8 位宽的RAM 单元, 而PIC 单片机的存储单元有限,因此造成了单片机的存储单元不能被有效利用, 同时通过串口向上位机传送数据时也需要花费较多的时间。   为此提出一种数据打包的方法, 使得相同的数据量占用较少的存储空间, 并可提高传输效率。   引言      在由单片机和PC 机构成的检测系统中, 通常会由多个单片机采集数据并将经过A/D 转换的数据通过串口送往上位PC 机进行数据处理。PIC 单片机A/D 转换后的结果大多是8 位或10 位的, 8 位的A/D转换不涉及该问题。以10 位的数据为例, 在单片机内进行存储时需要占用2 个8 位的字节, 低8 位和高2
[单片机]
滑动窗口均值滤波用于avr单片机AD转换
程序代码: /* 程序功能:用单片机内部AD实现外部电压转换为数字信号 作者:朱波 时间:2012年1月14日 AD工作流程:1.配置引脚为不带上拉电阻的输入 2.进行ADC多工选择寄存器(ADMUX)的设置(参考电压的选择和输入通道、增益的选择) 3.进行ADC控制和状态寄存器A(ADCSRA) 的设置(使能AD) 4.进行ADC控制和状态寄存器A(ADCSRA) 的设置(启动AD) 5.进行查询设置(转换完成后跳出循环) 6.进行ADC数据寄存器(ADCL、ADCH)的设置 7.返回AD转换结果 完整程序源代码下载: http://www.51hei.com/f/hdjz.rar 滑动窗口均值滤波函数应用的注意事项
[单片机]
滑动窗口均值滤波用于avr单片机<font color='red'>AD转换</font>
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

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

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

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