




下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
单片机入门系列-avrAD转换程序〃本例使用内部参考电压,ADc0输入,采集的信号通过LED显示。〃整理:AVR与虚拟仪器古欣//ICC-AVRapplicationbuilder:2006-9-311:42:36//Target:M32//Crystal:7.3728Mhz//2.56v片内基准电压,输入a1:即adc0//误差为:连续测量模式。//精度8,输出左对齐ADLAR=1//注意:参考电压一定要高于被测电压。#include<iom32v.h>#include<macros.h>〃数字滤波#definea0xF4//a=0.95#defineb0x0D//b=1-a=0.05constled_table[16]={0xa0,0xfc,0xc1,0xd0,0x9c,0x92,0x82,0xf8,0x80,0x90,0x88,0x86,0xc7,0xc4,0x83,0x8b};//0~~ftypedefunsignedcharuint8;uint8value,value1=0;intx;//最终的值10位volatileuint8i,j=0;//delayvoidDelay100us(uint8n){uint8i;for(i=36;n!=0;n--)while(--i);}voidDelay1s(uint8n){n=n*10;for(;n!=0;n--){Delay100us(200);}}voidport_init(void){PORTA=0x00; 〃做adc输入时不可上拉。DDRA=0x00;PORTB=0xFF;DDRB=0xFF;PORTC=0xFF;DDRC=0x00;PORTD=0xFF;DDRD=0x00;}//ADCinitialize//Conversiontime:225uSvoidadc_init(void){ADCSR=0x00;//disableadcADMUX=0xC0|(1<<ADLAR);//2.56v片内基准电压/selectadcinput0/ACSR=0x80;//使能adc可用,不用修改ADCSRA=0xA8;//ADC使能,自动触发模式使能,触发源由SFIOR确定,中断使能,分频因子为2SFIOR=0X60;//触发源设置为:定时器比较匹配}//TIMER0initialize-prescale:1024//WGM:Normal//desiredvalue:1Hz//actualvalue:35.556mSec(-3455.6%)voidtimer0_init(void){TCCR0=0x00;//stopTCNT0=0x01;//setcountOCR0=0x02;//setcompare//FFTCCR0=0x0D;//starttimer1024分频CTC比较输出定时时间:256/(7.3728Mhz/1024)=35.556ms}#pragmainterrupt_handlertimer0_ovf_isr:10voidtimer0_ovf_isr(void){TCNT0=0x01;//reloadcountervaluej++;if(j==0)CLI();#pragmainterrupt_handlertimer0_comp_isr:20voidtimer0_comp_isr(void){//compareoccuredTCNT0=OCR0TCNT0=0x01;//reloadcountervaluei++;if(i==0)CLI();}#pragmainterrupt_handleradc_isr:15voidadc_isr(void){//conversioncomplete,readvalue(int)using...//ADIF硬件清零ADCSRA|=(1<<ADIF);//ADIF置1清位value=ADCH;//Read8lowbitsfirst(important)//value|=(int)ADCH<<8;//read2highbitsandshiftintotopbyt//value=(value*2.56)/1024;〃数字滤波value1=(char)(((int)a*value1+(int)b*value)>>8);//value1=(int)(a*value1+b*value);x=0|value1;x=x<<2;//真实的10位值if(((x/100)<16)&&((x/100)>0))PORTB=led_table[x/100];elsePORTB=led_table[0];/*/测试j++;if(j==255){//TIMSK=0x00;ADCSRA&=~(1<<ADIE);CLI();PORTB=led_table[0];}*/}//callthisroutinetoinitializeallperipheralsvoidinit_devices(void){//stoperrantinterruptsuntilsetupCLI()一—disab-eOJ--mr-t-erruprsporrm一5ir-f--me「o——m-r-t-(*adc—m-oiMCUCRH0X00-=KIGICRHoxooi^boor-t-禅翅TIMSKHOXOYWmer-nrerrupr-t-sourcesSEI()i/>e—enab-e5'r-f-errupr-f-sda=per-phe「a-sarenow-n-<-f-Q5'=zed)voidmam(vo.d)nk——de<.ces(*ADCSRA
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论