AVR实验一

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

单片机与接口技术实验刘东卓西南大学电子信息工程学院姓名:肖旭学号:222014333210133班级:4班年级:2014实验一实验环境熟悉实验目的:1、熟悉编译环境的安装使用。2、了解汇编语言编写程序的相关要点。实验原理:编译器的安装和使用请见说明实验内容:根据本电子文档的1、2、3的介绍,熟悉编译环境的安装使用,熟悉汇编语言编写程序的相关要点,连接好仿真器。打开Avrstudio4,建立汇编语言新工程,编写汇编语言程序,如下面所示:ldir18,$10ldir19,$01;ldir17,0x0e;Loadconstantinr17ldir17,$0e;Loadconstantinr17loop:addr18,r19;Addr2tor1decr17;Decrementr17brneloop;Branchifr170nop;Continue(donothing)利用编译器里面的单步执行或全速运行,查看寄存器数据变化:运行完毕后,r18里面的值为0x1e。5!clrr18clrr19ldir17,$1ldir16,$0ldir26,$6loop:incr16mulr19,r16movr19,r0mulr18,r16movr18,r0addr19,r1mulr17,r16movr17,r0addr18,r1cpr16,r26brneloopret10!ldiR16,1;ldiR17,0;ldiR18,0;ldiR19,1;ldiR20,11;loop:mulR17,R16;movR17,R0;mulR18,R16;movR18,R0;addR17,R1;mulR19,R16;movR19,R0;addR18,R1;incR16;cpiR16,11;brneloop;nop;实验总结:这是我第一次做AVR实验,因此有点难,虽然五的阶乘这个程序简单,但由于没有预习,上理论课时不太认真,对于设置寄存器,各种运算符号不熟。所以这一次通过翻书问同学才做出来。实验二汇编语言程序设计实验目的:1、进一步熟悉编译环境的安装使用。2、熟悉汇编语言编写程序。实验原理:编译器的安装和使用请见说明实验内容:根据本电子文档的1、2、3的介绍,进一步熟悉编译环境的使用,熟悉汇编语言编写程序,连接好仿真器。打开Avrstudio4,建立汇编语言新工程,编写汇编语言程序,如下面所示:ldir16,$2ldir17,$34ldir18,0x10ldir19,$1ldir20,$80loop1:mulsr19,r20loop2:mulr19,r20loop3:addr17,r16loop4:subr17,r19decr18brneloop2nop利用编译器里面的单步执行或全速运行,查看寄存器数据变化:通过编译器编译,请回答如下问题:1、如果外接晶振为4M,请问这段代码运行完毕所需要多长时间?2074.75us2、第6行运后R0、R1、R19和R20里面的值是多少?R0=80,R1=FF,R19=01,R20=803、第7行运完毕后R0、R1、R19和R20里面的值是多少?R0=80,R1=00,R19=01,R20=804、全部运行完毕后R0、R1、R16、R17、R18、R19和R20里面的值是多少?R0=80,R1=00,R16=02,R17=44,R18=00,R19=01,R20=805、全部运行完毕后,loop1-loop4各执行多少次?LOOP1:1,LOOP2:16LOOP3:16LOOP4:16注:所有值用16进制表示自主编写汇编程序进行调试。写出实验报告。1!+2!+3!+4!+5!=99sts$045,r20cpir18,6brneloop1retloop1:incr18addr20,r0jmpjiechengjiecheng:ldir16,$1ldir17,$0loop:incr17mulr16,r17movr16,r0cpr17,r18brneloopret实验总结:这是第二次实验,前面的回答问题很简单,只需把程序写了,再运行。但后面的自主编写,由于运算复杂,所以对我来说还是很难的。实验三基本的IO实验实验目的:1、熟悉IO口的基本控制,初步了解IO口的使用。2、了解AVR单片机的开发过程。实验原理:原理图如下:连线:PA0--LED0PA1--LED1本程序位于D:\avrvi\democode\IO_1文件夹,连接好仿真器,打开Avrstudio4,下载程序,运行完毕可看到两个LED闪烁。实验内容:实验总结:这次实验涉及到I/O端口,通过这次实验我更了解I/O端口的设置。实验四花样流水灯实验实验目的:1、进一步熟悉IO口的控制,熟悉IO口的使用。2、掌握AVR单片机的开发过程。3、了解移位算法的使用。实验原理:原理图如下:连线:PA(*)--LED(*),PA口与LED一一对应连接实验内容:(一)依次闪烁#includemega16.h#includedelay.hvoidmain(void){unsignedcharposition=0;PORTA=0xFF;DDRA=0xFF;while(1){porta=~(1position);if(++position=8)position=0;delay_ms(1000);};}(二)4种闪烁方式交替循环的灯#includeiom16v.h#includemacros.h#defineled_portPORTA#defineled_ddrDDRAvoiddelay(void){unsignedchari,j;for(i=500;i0;i--){for(j=500;j0;j--);}}voidmain(void){unsignedcharposition=0,c=0x7F,i=0;PORTA=0xFF;DDRA=0xFF;while(1){PORTA=0xFE;for(i=0;i16;i++){PORTA=~(1position);if(++position7)position=0;delay();}PORTA=0x7F;for(i=0;i16;i++){PORTA=~(~(c)position);if(++position7)position=0;delay();}PORTA=0xAA;for(i=0;i16;i++){PORTA=~(PORTA);delay();}for(i=0;i16;i++){srand(i);PORTA=rand()%255;delay();}}}实验总结:实验时有现成的程序,只需根据要求更改程序即可,但由于程序不是单纯的c语言,所以有点难度。实验五蜂鸣器操作实验实验目的:1、继续熟悉IO口的使用2、了解AVR蜂鸣器的操作3、实验原理:原理图如下:连线:PD0—SPK本程序位于D:\avrvi\democode\buzz_1文件夹,连接好仿真器,打开Avrstudio4,下载程序,运行完毕可实现蜂鸣器循环一短一长两连续响。实验内容:程序如下:#includeiom16v.h#includemacros.h//延时函数voidDelay(void){unsignedchari,j;for(i=200;i0;i--){for(j=200;j0;j--);}}//主函数程序从这里开始运行voidmain(void){PORTD=0x01;DDRD=0x01;while(1)//实现效果,一短,一长,两连续循环,中间的延时时为了分开各次响声{//一短PORTD=0x01;//0脚为高,响Delay();//延时PORTD=0x00;//0脚为低,停止Delay();Delay();//一长PORTD=0x01;Delay();Delay();Delay();Delay();PORTD=0x00;Delay();Delay();//两连续PORTD=0x01;Delay();PORTD=0x00;Delay();PORTD=0x01;Delay();PORTD=0x00;Delay();Delay();Delay();Delay();Delay();Delay();Delay();}}附加:蜂鸣器叫一次一盏灯亮,叫两次亮两盏灯………叫八次亮八盏灯/************************************************文件:main.c用途:演示蜂鸣器的操作Target:M16Crystal:1.000M注意:说明:本程序没有太大实际意义,仅限于演示。创建:2008.1.29修改:2008.1.29CopyRight(c)www.avrvi.comAVR与虚拟仪器************************************************/#includeiom16v.h#includemacros.h//延时函数voidDelay(void){unsignedchari,j;for(i=200;i0;i--){for(j=200;j0;j--);}}//主函数程序从这里开始运行voidmain(void){PORTB=0x01;DDRB=0x01;while(1)//实现效果,一短,一长,两连续循环,中间的延时时为了分开各次响声{//一短PORTB=0x01;//0脚为高,响Delay();//延时PORTB=0x00;//0脚为低,停止PORTA=0xFF;DDRA=0xFF;PORTA=0xFE;Delay();Delay();Delay();Delay();Delay();Delay();//两连续PORTB=0x01;Delay();PORTB=0x00;Delay();PORTB=0x01;Delay();PORTB=0x00;PORTA=0xFF;DDRA=0xFF;PORTA=0xFC;Delay();Delay();Delay();Delay();Delay();Delay();PORTB=0x01;Delay();PORTB=0x00;Delay();PORTB=0x01;Delay();PORTB=0x00;Delay();PORTB=0x01;Delay();PORTB=0x00;PORTA=0xFF;DDRA=0xFF;PORTA=0xF8;Delay();Delay();Delay();Delay();Delay();Delay();PORTB=0x01;Delay();PORTB=0x00;Delay();PORTB=0x01;Delay();PORTB=0x00;Delay();PORTB=0x01;Delay();PORTB=0x00;Delay();PORTB=0x01;Delay();PORTB=0x00;PORTA=0xFF;DDRA=0xFF;PORTA=0xF0;Delay();Delay();Delay();Delay();Delay();Delay();PORTB=0x01;Delay();PORTB=0x00;Delay();PORTB=0x01;Delay();PORTB=0x00;Delay();PORTB=0x01;Delay();PORTB=0x00;Delay();PORTB=0x01;Delay();PORTB=0x00;Delay();PORTB=0x01;Delay();PORTB=0x00;PORTA=0xFF;DDRA=0xFF;PORTA=0xE0;Delay();Delay();Delay();Delay();Delay();Delay();PORTB=0x01;Delay();PORTB=0x00;Delay();PORTB=0x01;Delay();PORTB=0x00;Delay();PORTB=0x01;Delay();PORTB=0x00;Delay();PORTB=0x01;Delay();PORTB=0x00;Delay();PORTB=0x01;Delay(

1 / 38
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功