单片机工程实践报告仪器参数设定.doc_第1页
单片机工程实践报告仪器参数设定.doc_第2页
单片机工程实践报告仪器参数设定.doc_第3页
单片机工程实践报告仪器参数设定.doc_第4页
单片机工程实践报告仪器参数设定.doc_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

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

文档简介

学校代码: 单片机工程实践(第八组)题 目:仪表参数设定(任务二) 组长: 学号:组员:指导教师: 设计时间:2013年2月27日2013年3月8日一、设计目的:单片机技术作为计算机技术的一个重要的分支,广泛应用于工业控制、智能化仪器,家用电器,甚至电子玩具等各个领域,它具有体积小、功能多、价格低廉、使用方便、系统设计灵活等优点。本设计以AT89C51单片机作为核心,功耗小,能在3V的低压工作,电压可选用35V电压供电。使用手动按键显示各按键的按键值,输出显示使用LCD。通过一个单片机为核心模拟仪表参数硬件调试过程,掌握单片机应用系统的设计思想和方法。学习应用系统软件的模块化设计方法,通过源程序的编辑、汇编或编译、链接、仿真调试,完成给定的任务。通过单片机工程实践的学习,提高学生自主学习的能力和素质,培养兴趣爱好,同时也培养学生创新能力和综合水平,积累经验,拓展学习生涯。二、 设计任务:要求明确设计任务内容及任务分工等; 基本任务:完成蜂鸣器、键盘、七段LED 显示器的自检程序设计(1)蜂鸣器自检 要求:利用程序实现两种以上声音。 设计任务内容:蜂鸣器发出两种不同频率的声音,来模拟警报的响声。不同频率的声音通过延时来实现。任务分工:图书馆讨论硬件编程框图,分析原理,统一思想。总体流程及流程图的设计 程序编写 程序调试(2)七段LED 显示器自检 要求:确定LED 显示器每一段均正确。设计任务内容:用开关控制LED的开始检测。每位数码管顺序显示不同位的同一段。每位数码管顺序显示从19、AF的同一种数字。每一段数码管要显示的数值通过查表来实现。调用延时控制LED显示时间和顺序显示间隔。任务分工:图书馆讨论硬件编程框图,分析电路原理,会算字型,探讨编程思想。软件流程图编写、设计 程序编写 程序调试(2)键盘自检 要求:确定键盘正确。 设计任务内容:通过LED证明键盘正确。现象:当按下K1、K2、K3、K4中任意键时,相应 LED显示。如果不是K1、K2、K3、K4中的键按下时,仍采集到键值,说明有两个或两个以上键同时按下,这是要发出“报警声”,同时在第一位LED显示“-1.”字样。自检结果:3个可用。K1键不好用,按下时有时能采到键值,有时不能。任务分工:图书馆研究硬件电路原理,分析按键情况,统一编程思想。 软件环境流程图编写、设计 程序输入程序调试随机选择任务:题目2:仪表参数设定难度系数:9功能:实现-19999至+19999任意5位数字的输入、显示硬件环境:LED显示器、键盘等任务分工:方案提供与流程图编写、设计我们共研究三种方案:第一种:四个键,每个键都制定特定的功能,K1键控制LED的位选,按键字数顺序选第二位LED到第五位,然后循环。第二个键只控制第一位LED显示,查表来显示“+1、1、灭”,第三个键和第四个键控制LED数字的递增和递减。(未采用)第二种:是我们采用的一种比较简单的程序,K1键控制第一位和第五位LED显示,当按键次数等于十的时候,第五位LED清零,第一位表显示。K2、K3、K4分别控制第二、三、四位LED显示0-9数字。(交易实现)第三种:只有四个按键,每个按键本身就不能直接代表一个数字了,不够用。可以用一个键作为选位键,一个键作为数值“递增”和“递减”键,用一个键作为“确认”,用一个键作为“修改”,这样四个键全用上了。单片机上电后,LED要显示为0,此时只有“修改”键可用,若将其按下,“递增”键、“递减”键、“确认”键就都可用了。(正在调试)。主程序K1控制第一位LED和第五位LED的编程K2、3、4控制相应数码管的程序程序输入程序调试三、 框图:a) 硬件编程框图及相关说明b) 主程序框图、子程序框图及相关说明(一)、蜂鸣器自检LED自检COMa f b g e c d habhY0SEL1ABC+5VDT12803Q1P0P2.7P2.6P2.5键盘自检蜂鸣器自检程序:开始第一种声音延时第二种声音延时 四、 程序清单:要求有明确的程序注解、程序清单可分两栏打印()蜂鸣器BEE1:CLR P2.3 ACALL DELAY1 SETB P2.3 ACALL DELAY1 CLR P2.3 ACALL DELAY2 SETB P2.3 ACALL DELAY2 SJMP BEE1DELAY1: MOV R7,#0A7HDL1: MOV R6,#0ABHDL0: MOV R5,#06H DJNZ R5,$ DJNZ R6,DL0 DJNZ R7,DL1 NOP RETDELAY2: MOV R7,#0A7HDL3: MOV R6,#0ABHDL2: MOV R5,#12H DJNZ R5,$ DJNZ R6,DL2 DJNZ R7,DL3 NOP RETLED 自检ORG 0000HMAIN: MOV R1,#1AH MOV R0,#0HZCX: MOV A,R0 MOV DPTR,#NUMTAB MOVC A,A+DPTR MOV P0,A INC R0 DEC R1 CJNE R1,#0H,SEL SJMP MAINSEL: LCALL SEL1 LCALL DELAY LCALL SEL2 LCALL DELAY LCALL SEL3 LCALL DELAY LCALL SEL4 LCALL DELAY LCALL SEL5 LCALL DELAY SJMP ZCXDELAY: MOV R3,#2 LP2: MOV R4,#0FFHD4: MOV R5,#0FFHD5: NOP DJNZ R5,D5 DJNZ R4,D4 DJNZ R3,LP2 RETSEL1: CLR P2.5 CLR P2.6 CLR P2.7 RETSEL2: CLR P2.5 CLR P2.6 SETB P2.7 RETSEL3: CLR P2.5 SETB P2.6 CLR P2.7 RETSEL4: CLR P2.5 SETB P2.6 SETB P2.7 RETSEL5: SETB P2.5 CLR P2.6 CLR P2.7RET NUMTAB:DB 01H,02H,04H,08H,10H,20H,40H,80H,07EH,0CH,0B6H,9EH,0CCH,0DAH,0FAH,0EH,0FEH,0DEH,0EEH,0F8H,72H,0BCH,0F2H,0E2H,0FFH键盘自检WAIT:MOVP0,#0SETBP2.3 LCALLSEL8MOVP1,#0FFHMOVA,P1 LCALLSEL7 ORL A,#0F0H CJNE A,#0FFH,W1 SJMPWAITW1:LCALLD20MS LCALLSEL8MOVP1,#0FFHMOVA,P1 LCALLSEL7 ORL A,#0F0H CJNE A,#0FFH,K1 SJMPWAITK1: CJNE A,#0FEH,K2CLRP2.3 LCALLSEL2MOVP0,#0CHLCALLD20MS JMPWAIT RETK2: CJNE A,#0FDH,K3CLRP2.3 LCALLSEL3MOVP0,#0B6HLCALLD20MSJMPWAITRETK3: CJNE A,#0FBH,K4CLRP2.3 LCALLSEL4MOVP0,#9EHLCALLD20MSJMPWAITRETK4: CJNE A,#0F7H,LPCLRP2.3 LCALLSEL5MOVP0,#0CCHLCALLD20MSJMPWAITRETSEL1: CLRP2.5CLRP2.6CLRP2.7 RETSEL2:CLRP2.5CLRP2.6SETBP2.7 RETSEL3:CLRP2.5SETBP2.6CLRP2.7 RETSEL4:CLRP2.5SETBP2.6SETBP2.7 RETSEL5:SETBP2.5CLRP2.6CLRP2.7 RETSEL7:SETBP2.5SETBP2.6CLRP2.7 RETSEL8:SETBP2.5SETBP2.6SETBP2.7 RETD20MS: MOV R5,#2 D1: MOVR6,#40 D2:MOVR7,#250DJNZR7,$DJNZR6,D2 DJNZ R5,D1RETLP: CLR P2.3 LCALL SEL1 MOVP0,#08DH LCALL DF0MS JMP WAIT RETDF0MS: MOV R5,#0FH D3: MOVR6,#40 D4:MOVR7,#250DJNZR7,$DJNZR6,D4 DJNZ R5,D3RET大任务AAEQU 20HBB EQU 30HCC EQU 40HDD EQU 60HTEMP EQU 50HMOV TEMP,#0H ;定义k1按键次数TEMP,并初始化为0MOV AA,#0H ;定义k2按键次数AA,并初始化位0MOV BB,#0H ;定义k3按键次数BB,并初始化为0MOV CC,#0H ;定义k4按键次数CC,并初始化为0MOV DD,#0H ;定义第一位LED显示器显示数值循环次数,初始化为0PP1: LCALLSEL8 MOVP1,#0FFH MOV A,P1 LCALL SEL7CJNE A,#0FEH,PP2;k1键未按下,跳到PP2,第五位LED显示器显示上次显示值 LCALL DELAY1 ;延时,再次采键值,消除键抖动 LCALLSEL8 MOV P1,#0FFH MOV A,P1 LCALL SEL7 CJNE A,#0FEH,PP2 LCALL DELAY1 LCALL DELAY1 INC TEMP ;确定k1键按下,按键次数TEMP加1 PP2:MOV A,TEMP CJNE A,#10,NEXT1; MOV TEMP,#0H INC DD ;按键次数重头计数,第一位显示计数值DD加1 MOV A,DD CJNE A,#,WW1 ;第一位有六种可能情况,相应六种代码,显示完一遍数值再次重头显示 MOV DD,#0 NEXT1: MOV A,TEMP ;查表NUMTAB MOV DPTR,#NUMTAB MOVC A,A+DPTRMOV P0,A ;查到的段码送入字形口LCALLSEL4 ;第五位LED显示器亮确认的值 ACALL DELAYWW1: MOV A,DD ;查表NUMTAB1 MOV DPTR,#NUMTAB1 MOVC A,A+DPTR MOV P0,A ;查到的段码送入字形口 LCALL SEL0 ;第一位LED显示器亮值 LCALL DELAY LCALL SEL8 ;采键值,k2键是否按下 MOV P1,#0FFH MOVA,P1 LCALL SEL7CJNE A,#0FDH,PP3 ;k2未按下,跳到PP3,第四位LED显示器显示上次显示值 LCALL DELAY1 延时,再次采键值,消除键抖动 LCALL SEL8 MOV P1,#0FFH MOVA,P1 LCALL SEL7 CJNE A,#0FDH,PP3 ;k2键未按下,跳到PP3 LCALL DELAY1 LCALL DELAY1 INCAA ;k2键按下,其按键次数值AA加1PP3: MOV A,AA CJNE A,#,NEXT2 ;第四位LED有22种可能情况,相应22种段码,显示完一遍值,重头开始再次显示 MOV AA,#0HNEXT2: MOV A,AA ;查表,第四位LED显示器显示相应值 MOV DPTR,#NUMTAB MOVC A,A+DPTR MOV P0,A LCALLSEL3 ACALL DELAY LCALLSEL8 ;采键值 MOV P1,#0FFH MOV A,P1 LCALL SEL7 CJNE A,#0FBH,PP4 ;k3键是否按下,未按下跳到PP4,第三位LED显示上次的显示值 LCALL DELAY1 ;延时,再次采键值,消除键抖动 LCALLSEL8 MOV P1,#0FFH MOV A,P1 LCALL SEL7 CJNE A,#0FBH,PP4 LCALL DELAY1 LCALL DELAY1INC BB ;确认k3键按下,其按键次数BB加1PP4: MOV A,BB CJNE A,#,NEXT3 ;第三位LED有22种可能情况,相应22种段码,若显示完一遍所有值,再次重头显示 MOV BB,#0HNEXT3: MOVA,BB MOV DPTR,#NUMTAB ;查表,第三位LED显示器显示相应值 MOVC A,A+DPTR MOV P0,A LCALLSEL2 ACALL DELAY LCALLSEL8 ;采键值 MOV P1,#0FFH MOV A,P1 LCALL SEL7 CJNE A,#0F7H,PP5 ;k4键是否按下,未按下跳到PP5,第二位LED显示器显示上次显示值 LCALL DELAY1 ;延时,再次采键值,消除键抖动 LCALLSEL8 MOV P1,#0FFH MOV A,P1 LCALL SEL7 CJNE A,#0F7H,PP5 LCALL DELAY1 LCALL DELAY1INC CC ;确认k4键按下,其按键次数CC加1PP5: MOV A,CC CJNE A,#,NEXT4 ;第三位LED有22种可能情况,相应22种段码,若显示完一遍 所有值,再次重头显示 MOV CC,#0HNEXT4: MOV A,CC ;查表,第二位LED显示器显示相应值 MOV DPTR,#NUMTAB MOVC A,A+DPTR MOV P0,A LCALLSEL1 ACALL DELAY LJMP PP1 ;k4键采完键值,第二位LED显示完相应值后,重新进行k1键采值DELAY: MOV R7,#50 ;延时 D1: MOV R6,#300 D2: DJNZ R6,$ DJNZ R7,D1 RETDELAY1:MOV R7,#0FFH ;延时1 D11: MOV R6,#03FH D22: DJNZ R6,$ DJNZ R7, D11 RETSEL8: SETB P2.5 ;SETB P2.6SETB P2.7 RETSEL7: SETB P2.5SETB P2.6CLR P2.7RETSEL0: CLR P2.5;字位1,第一位LED显示器CLR P2.6CLR P2.7RET SEL1:CLRP2.5;字位2,第二位LED显示器CLRP2.6SETB P2.7RETSEL2:CLRP2.5 ;字位3,第三位LED显示器SETB P2.6 CLRP2.7RETSEL3: CLRP2.5;字位4,第四位LED显示器SETBP2.6SETBP2.7RETSEL4:SETB P2.5 ;字位5,第五位LED显示器CLRP2.6CLRP2.7RETNUMTAB:DB7EH,0CH,0B6H,9EH,0CCH,0DAH,0FAH,0EH,0FEH,0DEH ,00H;第2,3,4位LED显示器可能显示出的22种值的段代码,又是第五位LED显示器的可能值的段代码NUMTAB1:DB 00H,0CH,8CH, 80H;第1位LED显示器可能情况的种段代码END五、 设计体会要求每个人根据自己的不同情况分别写出本人的设计体会,不得少于300字。顺序装订张乐:心得体会:经过这段时间的单片机实训,使我学到了很多知识,在以前的上课学习过程中,只是机械的学习一些字符,语句的应用,而很难有这样的机会来编写一段程序,并有这样的硬件环境来实现自己的程序,使自己编写的东西可以直观的体现出来。看到程序可以在仿真器的帮助下实现一些功能,感觉很有成就感。但是在程序的编写过程中则遇到了许多的问题,这就需要和同组同学在一起讨论,将大家好的想法结合在一起,这样才可以用最简单最少的程序来实现最多,做好的作用。这次的实践当中使我又一次更加深刻的意识到团队合作的重要性,一个人的力量毕竟是有限的,只有通过大家一起的合作,一起思考才可以取得最后的成功。在实践的过程当中遇到了这样那样的问题,在老师耐心的讲解下和组员的讨论下最终还是完成了程序,在这个过程当中也更好的掌握了所学的知识,动手出真知,通过这样的实践可以更好的使自己的能力得到提高,这段时间的实训结束啦,在老师的耐心讲解,同组组员的帮助下,使自己的知识得到了进一步的掌握,总之,这次实训对自己的帮助很大。 王红霞:通过这一个学期的单片机学习,我收获了很多关于单片机的知识,并且这些知识和日常的生活息息相关。了解了一些简单程序的录入,LED显示器、键盘、和显示器的应用和原理。LED显示器:LED显示器是由发光二管组成显示字段的器件。通常的8段LED显示器是由8个发光二极管组成,LED显示器分共阳极和共阴极两种。有段选码和和位选码。当LED显示器每段的平均电流位5MA时,就有较满意的亮度,一般选择断码5-10MA电流;位线的电流应选择40-80MA。LED显示器的显示方式有动态和静态两种。7289A芯片是具有SPI串行接口功能的显示键盘控制芯片,它可同时取得8位共阴极数码管和64个键的键盘矩阵。7289A的控制指令分为两类:8位宽度的单字节指令和16位宽度双字节指令;还有闪烁指令和消隐指令。7289A采用串行方式SPI总线与微处理器通信;7289A与AT89C52接口电路,在实际电路中无论接不接键盘,电路中连接到其各段上的8个 100千欧的下拉电阻均不可以省去,如果不接键盘而只接显示器可以省去8个10千欧电阻,若仅接键盘而不接显示器,可省去串入DP及SA-SG连线的8个220欧电阻,7289A还需要外接晶体振荡电路。液晶显示器简称LCD,其显示原理是用经过处后的液晶具有能改变光线传输方向的特性,达到显示字符和图形的目的。最简单的笔段式液晶显示器类似于LCD显示器,可以显示简单的字符和数字,而目前大量使用的是点阵式LCD显示器,既可以显示字符和数字也可以显示汉字和图形。如果把LCD显示屏、背光可变电源、接口控制逻辑、驱动集成芯片等部件构成一个整体,是的与CPU接口十分方便。键盘:键盘是最常见的计算机输入设备,它广泛应用于微型计算机和各种终端设备上。计算机操作者通过键盘向计算机输入各种指令、数据,指挥计算机的工作。按照键盘的工作原理和按键方式的不同,可以划分为四种:机械式键盘采用类似金属接触式开关,工作原理是使触点导通或断开,具有工艺简单、噪音大、易维护的特点。 塑料薄膜式键盘键盘内部共分四层,实现了无机械磨损。其特点是低价格、低噪音和低成本,已占领市场绝大部分份额。 导电橡胶式键盘触点的结构是通过导电橡胶相连。键盘内部有一层凸起带电的导电橡胶,每个按键都对应一个凸起,按下时把下面的触点接通。这种类型键盘是市场由机械键盘向薄膜键盘的过渡产品。 无接点静电电容式键盘使用类似电容式开关的原理,通过按键时改变电极间的距离引起电容容量改变从而驱动编码器。特点是无磨损且密封性较好。通过这几天的单片机的实训,我在理论的基础上更深刻的掌握了单片机的深层内容及实际生活中的应用,实训锻炼了自己动手能力和思维能力,还有在软件方面的编程能力,让我受益匪浅,同时也暴露出一些平时学习上的问题,让我深刻反思。这些问题的发现将为我以后的学习和工作找明道路,查漏补缺为进一步学习作好准备。通过实训,让我懂得了如何编写一些简单的程序,学会了如何制作单片机应用程序,并且可以在今后的日常生活中灵活运用。心得体会:这个学期一开学就参加了两周的单片机实习,让我受益匪浅,让我对这个书本里描述的这个小小的电路板有了更深刻的认识。这次实习我们使用控制电路的单片机是AT89C51。开始的时候蜂鸣器不发出声音,这可急坏了我和我们小组的成员,后来终于找出了原因,这让我认识到这次的实践不是那么简单的,之后的实习也是波折起伏,发光二级管,独立按键,程序调试无数次,从中也总结出不少调试的技巧,写好一个漂亮的程序,首先需要冷静的思考,其次需要细心的排序,排除先后主次的关系。接着逻辑性要明显,每一句要明确存在的意义。两个星期的实习很快就过去了。在此我感谢老师的教导,感谢同学们的帮助,让我对这个小小的

温馨提示

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

评论

0/150

提交评论