单片机实习报告-6_第1页
单片机实习报告-6_第2页
单片机实习报告-6_第3页
单片机实习报告-6_第4页
单片机实习报告-6_第5页
已阅读5页,还剩5页未读 继续免费阅读

付费下载

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

广东工贸职业技术学院2011~2012学年第二学期51单片机实习报告专业班级:学生学号:学生姓名:指导老师:课题名称:实习时间:一、设计目的在城市中,我们可以看到各式各样的广告流水灯。所谓“广告流水灯”,就是将一系列有颜色的广告灯串接在一起,然后令这些灯按一定的次序逐个(或几个)依次点亮和熄灭。由于各灯点亮产生的效果就像流动的水一样,因此将这类广告等称为“广告流水灯”。生活中广告流水灯的形式和点亮的次序是多种多样的。有单一颜色的几个灯按固定的次序来点亮的,有多个不同颜色的灯构成某一图案依次点亮的,也有多排广告灯按多种组合好的次序循环点亮的。为本次设计的广告流水灯,是其中最简单的类型,目的是使学生初步掌握单片机系统的设计方法,从了解设计要求,运用所学知识并查阅有关技术资料进行系统设计,到模拟调试,然后整理有关技术资料,编写设计说明书,使学生得到一次系统的训练,从而对本课程理解更深刻,更清楚,更重要的是提高应用理论知识和解决实际问题的能力。二、电路设计本设计采用8个发光二极管代表广告灯,由单片机的P2口来控制这8个发光二极管按下面的规律循环工作。1.主程序的功能①先实现广告灯从右至左,单个灯每0.2秒左移点亮。即点亮的次序如下所示:P2.7亮←P2.6亮←P2.5亮←P2.4亮←P2.3亮←P2.2亮←P2.1亮←P2.0亮。②再实现广告灯从左至右,单个灯每0.2秒移动点亮。即点亮的次序如下所示:P2.7亮→P2.6亮→P2.5亮→P2.4亮→P2.3亮→P2.2亮→P2.1亮→P2.0亮。③之后再使所有的广告灯闪烁两次,即先将所有灯点亮,然后熄灭,如此反复两次。2.中断服务程序功能设置两个中断服务程序,分别是外部中断0中断服务程序和外部中断1的中断服务程序,要求外部中断1的优先权高于外部中断0,它们的触发方式采用电平触发。①外部中断0中断服务程序实现的功能是:先使相邻两个广告灯从右至左,左移点亮,再让其从左至右,右移点亮,循环2次。②外部中断1中断服务程序实现的功能是:8只广告灯从中间开始向两边依次点亮,然后熄灭,再从两边开始向中间依次点亮,然后熄灭,循环2次。①时钟电路本设计可采用AT89C51作为处理器,采用12MHz的晶振,时钟电路如图1。其中X1、X2分别于单片机芯片的两个时钟管脚连接。图1②发光二极管电路8个发光二极管用于模拟“流水灯”,由P2口驱动,需接限流电阻,其电路如图2所示。88×100Ω图2③外部中断触发电路由于外部中断采用电平触发方式,在初始化时,必须将专用寄存器TCON的IT0和IT1位设置为0。这样只需在(P3.2脚)和(P3.3脚)各接一个按钮开关,开关另一端接地即可。当开关按下时,就可触发相应中断。三、设计分析1.主程序在端口控制的程序设计中,可以采用两种方法。一种是将移动前的显示初值通过程序来给定,然后逐次运行左移或右移指令,从而实现显示值的移动点亮;另一种是将所有显示数据编写成一个表,在程序中通过查表方式来逐个输出各个显示数据。单片机指令中,查表指令是由两条指令来构成的:“MOVDPTR,#data16”和“MOVCA@A+DPTR”。前一条指令是将数据所在表的表头地址(即data16)赋值于DPTR,从而使数据指针寄存器指到数据表的表头;后一条指令是将累加器A和数据指针寄存器DPTR内容之和作为地址,然后利用程序计数器PC将该地址上的数据(即数据表中的数据)存储到累加器A程序流程图如下:采用左移和右移指令来实现的程序流程图如图3所示。图3采用查表法实现的程序流程图如图4所示。图42.中断服务程序①外部中断0服务程序外部中断0服务程序实现8只广告灯从中间开始向两边依次点亮,然后熄灭,再从两边开始向中间依次点亮,然后熄灭,循环3次的功能。可采用查表的方法,将每次显示时P2口的值用一个8位二进制数表示,这样一轮循环需要十个数,它们分别是:0FFH、0E7H、0C3H、81H、00H、0FFH、7EH、3CH、18H、00H,将它们编为一个数据表格,在表格的最后添加一个数“0AAH”,用指令MOVCA,@A+DPTR查到数后,使用CJNEA,#0AAH ,DISP指令判断是否结束一个循环。②外部中断1服务程序外部中断1服务程序实现的功能是:先使相邻两个广告灯从右至左,左移点亮,再让其从左至右,右移点亮,循环3次。可采用循环移位或查表的方式,使用循环移位时,应将第一个数据设置为0FCH,并赋给A,再使用RLA指令实现左移,左移次数应为7次,左移结束后设置右移次数为6次,使用RRA实现右移,每次显示时间为0.2秒;使用查表方式时,将相应数据形成表格,再用MOVDPTR,#data16和MOVCA@A+DPTR指令查表。3.电路图4.源程序ORG0000H伪指令,指示下一条指令由0000H单元开始存放 AJMPSTART短转移指令(转移到“START”入口) ORG0003H伪指令,指示下一条指令由0003H单元开始存放 AJMPEXT1短转移指令 ORG0013H伪指令,指示下一条指令由0013H单元开始存放 AJMPEXT0短转移指令 START:MOVIE,#85H将85H赋给IE(设定中断控制允许IE) MOVIP,#04将04H赋给IP(设定中断优先级IPH MOVTCON,#00H将00H赋给TCON(设定控制寄存器TCON) MOVSP,#70H将70H赋给堆栈指针SP START1:MOVA,#0FFH将0FFH赋给累加器A MOVP2,A将累加器A的值传送给P2口输出 LCALLDELA长调用指令(调用延时子程序“DELAY”)Y MOVR1,#01H将01H赋给让R1 M1:MOVR2,#08H将08H赋给让R2 MOVA,#0FEH将0FEH赋给累加器A LOOP:MOVP2,A将累加器A的值传送给P2口输出 RLA左移指令(累加器的数值左移一位) LCALLDELAY长调用指令(调用延时子程序“DELAY”) DJNZR2,LOOP减1不为零转移指令(转移到“LOOP”入口) DJNZR1,M1减1不为零转移指令 MOVA,#0FFH将0FEH赋给累加器A MOVP2,A将累加器A的值传送给P2口输出 LCALLDELAY长调用指令(调用延时子程序“DELAY”) MOVR1,#01H将01H赋给让R1 M2:MOVR2,#08H将08H赋给让R2 MOVA,#7FH将7FHH赋给累加器A LOOP1:MOVP2,A将累加器A的值传送给P2口输出 RRA右移指令(累加器的数值左移一位) LCALLDELAY长调用指令(调用延时子程序“DELAY”) DJNZR2,LOOP1减1不为零转移指令(转移到“LOOP1”入口) DJNZR1,M2减1不为零转移指令 MOVR1,#02H将02H赋给让R1 M3:MOVP2,#0FFH将累加器0FFH的值传送给P2口输出 LCALLDELAY长调用指令(调用延时子程序“DELAY”) MOVP2,#00H LCALLDELAY DJNZR1,M3 AJMPSTART1短转移指令 DELAY:MOVR5,#10 D1:MOVR6,#50 D2:MOVR7,#248 DJNZR7,$ DJNZR6,D2 DJNZR5,D1 RET EXT0:PUSHACC PUSHPSW SETBRS0将RS1置1(选择工作寄存器组) CLRRS1将RS0置0(选择工作寄存器组) MOVR3,#02 MOVDPTR,#TABLE LOOP6:MOVR1,#00H LOOP7:MOVA,R1 MOVCA,@A+DPTR CJNEA,#0AAH ,DISP DJNZR3,LOOP6 AJMPZDHH DISP:MOVP2,A LCALLDELAY INCR1加一指令 AJMPLOOP7 ZDHH:POPPSW出栈指令(对断点地址的保护) POPACC RETI DJNZR7,$ DJNZR6,D2 DJNZR5,D1 TABLE:DB0FFH,0E7H,0C3H,81H,00H,0FFH,7EH,3CH,18H,00H,0AAH伪指令DB:从标号指定的地址单元开始,将数据表中的字节数据按顺序依次输入 EXT1:PUSHACC PUSHPSW SETBRS1 CLRRS0 MOVR3,#02 LOOP3:MOVA,#0FCH MOVR2,#07 LOOP4:MOVP2,A LCALLDELAY RLA DJNZR2,LOOP4 MOVA,#3FH MOVR2,#06 LOOP5:RRA MOVP2,A LCALLDELAY DJNZR2,LOOP5 DJNZR3,LOOP3 POPPSW POPACC RETI DJNZR7,$ DJNZR6,D2 DJNZR5,D1 RET END四·编译·试调·仿真用Keil对程序进行编译、试调。用Proteus对系统进行仿真。将编译后生成的hex文件下载到实验板,观察运行效果。五·实习心得一个星期的单片机实习,我通过查阅资料,请教老师和同学,基本上完成了硬件设计,程序设计。但是其中有很多问题值得我去思考。1、学习作风不好,不能积极对待,注意力不够集中;2、学习效率不高,发现自己单片机课程功底较差,实践动手能力不够强;3、独力解决问题的能力较差。以是是值得我去反思的,本次实习体现了自己那些不足希望能在今后得到改进。六·

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论