avr单片机红外接收与发射实验

avr单片机红外接收与发射实验

ID:27561800

大小:60.50 KB

页数:5页

时间:2018-12-04

avr单片机红外接收与发射实验_第1页
avr单片机红外接收与发射实验_第2页
avr单片机红外接收与发射实验_第3页
avr单片机红外接收与发射实验_第4页
avr单片机红外接收与发射实验_第5页
资源描述:

《avr单片机红外接收与发射实验》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、AVR单片机红外接收与发射实验供单片机入门学习者练习用的AVR单片机的红外接收与发射实验程序。用单片机入门实验套件提供的红外接收与发射套件完成红外的反射、阻断等实验。红外发射与接收器件广泛应用于机器人竞赛项目中,像寻迹、追光、蔽障等都会用到红外接收与发射器件。该程序用AVR-Studio-4幵发,在AVR单片机Atmega48上调试通过。本实验的详细说明和硬件搭建请参考〉〉单片机入门实验红外接收与发射实验AVR汇编程序;作者:超简单工作室;Email:fullmous@hotmai1.com;软件版本:AVRStudio4.13.571ServicePack2;创建日期:2008.3;版本

2、VI.00;Target:M48;Crystal:8.OOOOMhz轉.include,zm48def.inc"•org$0000rjmp_main.org$0020_port_init:;端口初始化;PORTB=0x00;clrR2out0x5,R2;DDRB=OxFF;ldiR24,255out0x4,R24;PORTC=0x00;out0x8,R2;DDRC=0x06;ldiR24,6out0x7,R24ret_adc_init:;ADC初始化;ADCSRA=0x00;设置前,先关闭ADCclrR2sts122,R2;ADMUX=(l«REFS0);选择内部AVCC为基准ldiR24

3、,64sts124,R24;ACSR=(1«ACD);关闭模拟比较器ldiR24,128out0x30,R24;使能ADC,启动ADC单次转换,选64分频;ADCSRA=(1«ADEN)

4、(1«ADSC)

5、(1«ADPS2)

6、(1«ADPS1);ldiR24,198sts122,R24ret_adc_get:;ADC转换函数;ADCSRA

7、=(1«ADSC);启动ADC转换IdsR24,122oriR24,64sts122,R24L4:;while(ADCSRA&(1«ADSC));判断ADC转换是否结束IdsR2,122sbrcR2,6rjmpL4IdsR16,120IdsR17,120

8、+1ret_delay_us::微秒级延时L8:subiR16,1sbciR17,0ldiR24,1ldiR25,0cpR24,R16cpcR25,R17brltL8ret_delay_ms::毫秒级延时st-y,R20st-y,R21movR20,R16movR21,R17L12:ldiR16,low(1000)ldiR17,high(1000)rcall_delay_ussubiR20,1sbciR21,0cpiR20,0cpcR20,R21brneLI2IdR21,y+IdR20,y+ret_divl6:;双字节除法。同时得到整数和余数;入口:除数在rl8:rl9中,被除数在rl6:

9、rl7中pushR25;r24:r25存中间值,最后是商pushR24clrR25clrR24L_div:cpR16,R18;被除数与除数比较cpcR17,R19brltL_end_div;小于除数,结束adiwR25:R24,1:否则,中间值加1subR16,R18;被除数减除数sbcR17,R19rjmpL_div;返回继续L_end_div:movR18,R24;除法运算结束,商存rl8:rl9中,余数留在rl6:rl7中movR19,R25popR24popR25ret_main:rcall_port_initrcall_adc_initL16:;ADC转换一次rcall_adc一

10、get;结果在rl6:rl7中;adc_v=adc_v/10;ldiR18,10果除10,保证AD转换的最大值100ldiR19,0rcall_divl6movR17,R19;除10得到的结果送rl6:rl7movR16,R18cpiR16,100:被除数与除数比较brltL17;大于100,置成99ldiR16,99L17:;t=adc_v/10;ldiR18,10;继续除10ldiR19,0rcall_divl6;得到一个小于10的商在rl8中,10的模在rl6中ldiR24,2mulR24,R18;将1*18中的值乘2,结果在r0:rl中raovwR30,R0;将r0:rl的值赋给r

11、30:r31,作为偏移量ldiR24,low(_tabs«l);获取字符表基地址ldiR25,high(_tabs«l)addR30,R24移量+基地址构成z指针adcR31,R25lpmR18,Z+0;取字型送入rl8out0x5,R18;字型送PortB,输出ldiR24,4out0x8,R24;4送端口portc,即置位portc.2;delay_ms(10);pushR16;rl6中是除10的余数,即10的模,保

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。