AVR实验一.docx
单片机与接口技术实验刘东卓西南大学电子信息工程学院姓名:肖旭学号:2223班级:4i三年级:2014仿JX器。Idir1.8,S10Idir1.9.$01;Idir17,OxOc;1.Oadconstantinr1.7Idir1.7,SOe:1.oadconstantinr!71.oop:addr1.8,r1.9:Addr2tor1.实验一实验环境熟悉实验目的,1,熟悉编译环境的安装使用,2,/斛汇端语言涮写程序的相关要点。实殴事理:编详器的安装和使用请见说明实验内航根据本电子文档的1、2、3的介绍,熟悉端详环境的安装使用,熟悉汇编语言编写程序的相关要点,连接好KMFRvrS1.Udi。%建立汇涮语言新工程,翻写汇编语言程序.如下面所示:Decrementr1.7brne1.oop:Branchifr1.7<>0nop;Continue(donothing)利川编译器里面的单步执行或全速运行,竹行存放器数据变化:!RegisterXI1.RO4-0x7BR05-0x9FRO6=OxADR07三OxEEROB三0xC9R09=0x63R1.O-0x7BR1.1.-OxCCR12-OxBER13-OxFDR1.4-0xD2R15三0xF4R1.6=0x00R17三0x00R18>0x1.RIK0x01R20-0xS2R21-0x7BR22-0x2AR23-0x9ER24三0x01R25三OxBED*5-C"CO*?"?-CVCC运行完毕后,H8里面的值为0x1.e.5!c1.rr!8c1.rr1.9Idir174Idir1.6,$0Idir26,$61.oop:incr1.6nu1.r19tr16movr1.9,rmu1.rI8,r1.6movr1.81.raddr1.9.rimu1.r17,r16movr17,raddr1.8,r1.cpr16.r26bme1.oopretFrtMra;,u<<<*MSS9三2三J95器2或Mm*>1.皿3n<Hi1.M>sat1.EI1.1.1.U1.1.>IHm1.1.e1.>t1.1.eu>a>5H3WFCZO三IIMBHHMHHBHBaH0!Cu1Uw>m.mmNoUMb>a“,x:zs,D1.Uak'M.p)t三z1>«>ggM11:”】:3jBaeeSI:©«X“SXM9mUEf8)X3SC8*iX1.:eg%og.1M9:8X:S:«C8:80:CUXtacwshcte:Ca>3CM,M8,:C020uii0*Idi一rR16,1;1.oop:mu1.R17,R16:IiiovR17,RO:nu1.R18,R16;movR18,RO:addR17,R1;nu1.R19,R16;movR19,RO;addR18,R1;incR16:cpiR16,11:brne1.oop;nop:Memorvukurmry(Dyt9*QV*nc:CrOCo<1.QtUdSxxU,.ugOmOOOOOOOkOOOOSA34o34*nKnown-.«*-«OMOOOOOOMOOOO*OOOO3C*CoWV-C.*4*>oaoooooooaooooooooo¼*row*-OuoI-.<-3«<»I<<».".<实殴总副这是我第一次做AVR实验,因此有点难,虽然五的阶乘这个程序简单,但由于没有预习,上理论课时不太认真,对于设置存放微,各种运算符号不熟。所以这一次通过翻书向同学才做出来。实验二汇编语言程序设计实险目的,1.进一步熟悉编译环境的安袋使用.2、熟悉汇编语言编写程序.实验JK理,编译器的安装和使用请见说明实险内部根据本电子文档的1、2、3的介绍,进一步熟悉娘洋环境的使用,熟悉汇编语言编写程序,连接好仿真器.M开AVrSIUdi。4,建立汇编语言新工程,编写汇编语言程序,如卜面所示:Idir!6,32Idir1.7,$31Idir1.81Ox1.OIdir1.9,31.Idir20,$80100p1.rmu1.sr1.9,r201oop2:mu1.r1.9,r201.oop3:addr17,r161oop4:subr1.7,r1.9decr1.8brne100P2nop利用维译器里面的单步执行或全速运行件看存放器数据变化:通过编译器编译,谕答更如下问即:1、如果外接品振为4比请问这段代码运行完毕所需要多长时间?2074.75us2、第6行运后RO、RkR19和R20里面的值是多少?R0-80.R1.=FF,R19-0UR20-803、第7行运完毕后RO、KkR19和R20里面的值是多少?R0=80.R1=00.R19=01.R20=804、全部运行完毕后RO、RKRI6、R1.7、RI8、R19和R20里面的值是多少?R0=80.R1.=OO,R16=02,RI7=H,R18=00,R19=0bR20=805全部运行完毕后,1.<x1.T<4各执行多少次?1.ooPh1,1.OoP2:161.OOP3:161.OoPi16注:所有伯用16进制表示自主编写汇端程序进行遍试写出实脸报告.1!+2!÷3!+4!+5!=99sts$015,r20cirI8,6brne100p1.ret100pkincr1.8addr20,rjmpjiechengjiecheng:Idir16,S1.Idir!7301.p:incr1711u1.r16,r1.7movr1.6,rcpr!7.r!8brne1.oopret实险总综这是第二次实聆,前面的答笑下列问时很简单,只皤把程序写了,河运行.但后面的自主编写,由于运算复杂,所以对我来说还是很难的。实验三根本的IO实验实验目的:1、熟悉IO的根本控制,初步了解IO口的使用,2,了耨AYR单片机的开发过程.实验JK理:原理图如K:程第R器为»第£4WCMi嚏“一连线:PAO-1.EDOPA1.-1.ED1.本程序位于D:avrvidemocodeIO文件夹,连接好仿真器,翎开AVrStUdi。4,下一程序,运行完程可看到两个1.ED闪烁。实验内容I实殴总纵这次实验涉及到I/O端口,通过这次实验我史/解"0端口的设置.实验四把戏流水灯实验实险目的,I、进一步熟悉IO11的控制,熟悉IO门的使用.2、掌楹AYR单片机的开发过程.3、了解移位算法的使用.实MK理:原理图如下:PSO(TOYPS1.(T1.)MP9,AZ)PBJ(AN)pw8s)P95(M06DPWOCSO)P0"(Smwro0p)PD(INTO)PD3<JOi(OC1.B)PW(OC1.A)PD6(KF>PD?(TOC2)(ADCO)PAO(ADQ)PA1.(ADC2)PA2(ADC4)PM(ADC5)PA5(ADC6)PM(ADCT)PA7KOSSFC5吕摩SFrAM7X1.A,(VCC连线:PA(A1.EDMPR口与1.ED一一对应连接实殴内容,<->依次闪烁Sinc1.ude<mega1.6.h>inc1.ude<de1.ay.h>voidBain(void)(unsignedcharpositin=O;IWTA=OxPT;DDRA=OxFF;whi1.e(1.)Iporta-'(1.<<position);if(÷+position>=8)position=0;de1.ayms(1000):):)<->种闪烁方式交替循环的灯inc1.ude<iom1.6v.h>Sinc1.ude<macros.h>Sdefine1.ed_portPORTSdefine1.ed_ddrDDRAvoidde1.ay(void)(unsignedchari.j;for(i=500:i>0:i)for(j=500J>0J-)voidaain(void)UnSiKnCdChiIrposition=0,c=0x7F,i=0:P0RTA=0xFF;DDRA=OxFF:vhiIe(I)(Porta=OxFE:for(i-0:i<1.6;i*)(PORTA='(1.<<position):if(+position>7)DoSiIion=Q:dc1.ay:)P0RTA=0x7F:for(i=0;i<16;i+)(PORT-'('(c)>>position);if+position”position=。;de1.ayO;)K)RTA=0xA:for(i=0i<16:i+÷)(PORTA="(PORTA);de1.ay():)for(i=0;i<16:i+*)(srand(i):P0RTA=rand(>%255:de1.ayO;)实殴总绦实物时行现成的程序,只需根据要求更改程序即可,但由于程序不足单纯的C谱音.所以有点难度.实验五蜂鸣器操作实验实验目的,1、继续熟悉IO口的使用2,了解AYR蝇鸣器的操作3、实验及理:原理图如下:丰ii至±».i三三g8Ar,三PBC黑££«连战:PDo-SPK本程序位于D:avridemocodebuzz文件夹,连接好仿真器,翻开AVrStUdi。4,下就程序,运行完毕可实现蜂鸣器循环一短一长两连续响.实险内部程序如下:"inc1.ude<iom1.6v.h>#inc1.ude<acros.h>延时函数voidDe1.ay(void)(unsignedchari,j;for(i=200:i>0:i)for(j=200:j>0:j)主函数程序从这里开始运行voidainvoid)PORTD=0x01:DDRD=0x01;whi1.e1.实现效果,一短,一长,两连续循环,中间的延时时为了分开各次响出一短PORTD-0x01:0脚为高,响De1.ayO:延时PORTP=0x00;。脚为低,停止De1.ayO;De1.ayO:/一长PORTD0x01;De1.ayO:De1.ayO:De1.ayO:De1.ayO:MRT1.)=0x00:De1.ayO:De1.ayO:两连续PORTD=0x01:De1.ayO;PORTD=0x00:De1.ayO:K)R