收藏 分销(赏)

单片机工程实践完成蜂鸣器、键盘、七段LED-显示器的自检程序设计.doc

上传人:仙人****88 文档编号:11739835 上传时间:2025-08-11 格式:DOC 页数:17 大小:311KB 下载积分:10 金币
下载 相关 举报
单片机工程实践完成蜂鸣器、键盘、七段LED-显示器的自检程序设计.doc_第1页
第1页 / 共17页
单片机工程实践完成蜂鸣器、键盘、七段LED-显示器的自检程序设计.doc_第2页
第2页 / 共17页


点击查看更多>>
资源描述
学校代码: 10128 单片机工程实践 (第11组) 题 目: 电子秒表(任务一) 组长:雷小宇 指导教师:刘伟、刘海伦、裴岩、杨传颖、 斯日古楞、高鹏 、韩海波、陈宇(研) 设计时间:2013年6月17日~2013年6月28日 一、 设计目的:(题目四号宋体字) 通过一个以8 位单片机为核心的模拟量数字表的硬件调试过程,掌握具有A/D、七段LED 显示、RS-485 通信、Watchdog 等接口电路的单片机应用系统的设计思想和方法。 学习应用系统软件的模块化设计方法,通过源程序的编辑、汇编或编译、链接、仿真调试,完成给定的任务。通过上述过程提高学生工程实践能力和素质。 二、 设计任务: 要求明确设计任务内容及任务分工等;(内容小四号宋体字) ★ 基本任务: 完成蜂鸣器、键盘、七段LED 显示器的自检程序设计。 (1)蜂鸣器自检 要求:利用程序实现两种以上声音。 (2)键盘自检 要求:确定键盘正确。 (3)七段LED 显示器自检 要求:确定LED 显示器每一段均正确。 框图(包括自检和任务的框图): 1、 硬件编程框图及相关说明 2、 主程序框图、子程序框图及相关说明 三、 程序清单: 要求有明确的程序注解、程序清单可分两栏打印 (1) 蜂鸣器自检程序 BEEP: setb p2.3 ;关喇叭 acall delay1 ;调用延时1 clr p2.3 ;开喇叭 acall DELAY2 ;调用延时2 setb p2.3 ;关喇叭 acall DELAY2 ;调用延时2 clr p2.3 ;开喇叭 acall DELAY3 ;调用延时3 setb p2.3 ;关喇叭 acall DELAY3 ;调用延时3 sjmp BEEP ;跳到 beep RET DELAY1: ;延时子程序 MOV R1,#0FFH CX0: MOV R2,#0FFH CX: DJNZ R2,CX DJNZ R1,CX0 RET DELAY2: 延时子程序 MOV R1,#0FAH CX1: MOV R2,#0FAH CX2: DJNZ R2,CX2 DJNZ R1,CX1 RET DELAY3: 延时子程序 MOV R1,#0FAH CX3: MOV R2,#0FAH CX4: DJNZ R2,CX4 DJNZ R1,CX3 RET (2)键盘自检程序 BEEP: MOV R1,#4H ;设置移位次数 LCALL SEL8 ;打开三态门 MOV P1 ,#0FFH ;将P1口设置成I/O MOV A,P1 ;采样 LCALL SEL7 ;关闭三态门 SJMP CXW1 RET CXW1: RRC A ;把键的值放到进位位 JNC CXW2 ;如果键合上,跳到CXW2,发音子程序 DJNZ R1,CXW1 ;(K1没闭合,就看K2是否闭合;K2没闭合,就看K3是否闭合;K3没闭合,就看K4是否闭合) SJMP BEEP ;四个键都没闭合,就重新采样 RET CXW2: CLR P2.3 ;开喇叭 LCALL DELAY ;调用延时 SETB P2.3 ;关喇叭 SJMP BEEP ;发音完毕,跳转到BEEP,重新采样 RET SEL7: CLR P2.7 ;(关闭三态门子程序) SETB P2.6 SETB P2.5 RET SEL8: SETB P2.7 ;(打开三态门子程序) SETB P2.6 SETB P2.5 RET DELAY: MOV R6,#0AH ;(延时子程序) CXW3: MOV R7,#0F8H CXW4: DJNZ R7,CXW4 DJNZ R6,CXW3 RET 设置移位次数 打开三态门 采样 关三态门 K1闭合? K2闭合? K4闭合? 峰鸣器发音 K3闭合? Y N N N Y Y N Y 调用延时程序 (3)七段LED 显示器自检程序 DT1: CLR P2.5 ;(使第一位LED有效,并显示从1到9) CLR P2.6 CLR P2.7 LCALL cc1 RET DT2: CLR P2.5 ;(使第二位LED有效,并显示从1到9) CLR P2.6 SETB P2.7 LCALL cc1 RET DT3: CLR P2.5 ;(使第三位LED有效,并显示从1到9) SETB P2.6 CLR P2.7 LCALL cc1 RET DT4: CLR P2.5 ;(使第四位LED有效,并显示从1到9) SETB P2.6 SETB P2.7 LCALL cc1 RET DT5: SETB P2.5 ;(使第五位LED有效,并显示从1到9) CLR P2.6 CLR P2.7 LCALL cc1 LJMP DT1 RET cc1: LCALL SEL0 ;(调用送字型的子程序,使LED显示0到9) LCALL DELAY LCALL SEL1 LCALL DELAY LCALL SEL2 LCALL DELAY LCALL SEL3 LCALL DELAY LCALL SEL4 LCALL DELAY LCALL SEL5 LCALL DELAY LCALL SEL6 LCALL DELAY LCALL SEL7 LCALL DELAY LCALL SEL8 LCALL DELAY LCALL SEL9 LCALL DELAY LCALL SEL10 LCALL DELAY RET SEL0: MOV A,#7EH ;SEL1到SEL10是送字型子程序,SEL0是送0子程序 MOV P0,A LCALL DELAY RET SEL1: MOV A,#0CH ;(SEL 1是送1子程序) MOV P0,A LCALL DELAY RET SEL2: MOV A,#0B6H MOV P0,A(SEL 2是送2子程序) LCALL DELAY RET SEL3: MOV A,#9EH(SEL3是送3子程序) MOV P0,A LCALL DELAY RET SEL4: MOV A,#0CCH(SEL 4是送4子程序) MOV P0,A LCALL DELAY RET (SEL 5是送5子程序) SEL5: MOV A,#0DAH MOV P0, A LCALL DELAY RET (SEL 6是送6子程序) SEL6: MOV A,#0FAH MOV P0,A LCALL DELAY RET (SEL 7是送7子程序) SEL7: MOV A,#0EH MOV P0,A LCALL DELAY RET (SEL8是送8子程序) SEL8: MOV A,#0FEH MOV P0,A LCALL DELAY RET (SEL9是送9子程序) SEL9: MOV A,#0DEH MOV P0,A LCALL DELAY RET (SEL 10是送小数点子程序,即使小数点亮) SEL10: MOV A,#01H MOV P0,A LCALL DELAY RET DELAY: MOV R6,#9fH(延时子程序) CXW3: MOV R7,#9fH CXW4: DJNZ R7,CXW4 DJNZ R6,CXW3 RET (4)一首歌的程序 编程思路:歌曲是由音调和节拍有机组合而成。音调是由发音的频率决定的,七种不同频率的方波来产生七种音调,我们用定时器1来控制方波的频率。节拍就是音调持续的时间,节拍用节拍(延时)程序控制。 BUZZER EQU P2.3 ;伪指令,不编译 org 0000h ;主程序起始地址 ajmp beep ;跳至主程序 org 000bh ;定时器1中断地址 jmp tim0 ;跳至timer0中断子程序 BEEP: LCALL SEL81 ;打开三态门 MOV P1 ;#0FFH(P1口设置为输入输出口) MOV A,P1 ;(采样K1键的状态) LCALL SEL71 ;关三态门 SJMP CXW1 RET CXW1: RRC A ;(K1的状态送到累加器的进位位) JNC CXW2 ;(K1闭合,跳到点亮LED并放歌的子程序) SJMP BEEP ;(如果K1没闭合,继续扫描键盘) RET CXW2: DT1: CLR P2.5 ;(选位子程序,选择第一位LED) CLR P2.6 setb P2.7 LCALL cc1 ;(调用LED显示的子程序) mov tmod,#01h ;设timer0在MODE1 mov ie,#82h ;打开定时器1中断 start0: CLR P2.5 ;(选择第一位LED) CLR P2.6 setb P2.7 LCALL cc1 ;(调用LED显示的子程序) mov 30h,#00h next: mov a,30h mov dptr,#table ;(DPTR指向歌曲的简谱码表的首地址) movc a,@a+dptr取简谱码 mov r2,a ;取到的简谱码暂存于R2 jz end0 ;判断是否取到00(结束码)? anl a,#0fh ;不是结束码,则取低4位(节拍码) mov r5,a ;将节拍码存入R5 mov a,r2 ;将取到的简谱码再载入A swap a ;高低四位交换,也就是节拍码和音调码交换位置 anl a,#0fh ;取低四位(音符码) jnz sing ;取到的音符码是否为零? clr tr0 ;音调码是0,则不发音 jmp d1 sing: dec a ;取到的音符码减1(不含0). mov 22h,a ;存入(22H). rl a ;乘2 mov dptr,#table1 ;到音调的频率表table1取相对应的定时器定时初值 movc a,@a+dptr mov th0,a ;给定时器的TH0赋定时处值 mov 21h,a ; mov a,22h ;再载入取的的音符码 rl a ;乘2 inc a ;加1 movc a,@a+dptr ; mov tl0,a ; 给定时器的TL0赋定时初值 mov 20h,a ;取到的高位字节存入(20H) setb tr0 ;启动timer0 d1: call delay ;基本单位时间1/4拍187毫秒 inc 30h ;取简谱码指针加1 jmp next ;取下一个码 end0: clr tr0 ;停止timer0 jmp start0 ;重复循环 lJMP BEEP RET SEL71: CLR P2.7 ;关三态门子程序 SETB P2.6 SETB P2.5 RET SEL81: SETB P2.7 ;开三态门子程序 SETB P2.6 SETB P2.5 RET tim0: ;;time0中断服务子程序用来产生方波(音调)的负半波。 push acc ;中断现场保护 push psw mov tl0,20h ;重设定时初值 mov th0,21h cpl BUZZER ;P2.3反相 pop psw ;至堆栈取回psw的值 pop acc ;至堆栈取回a的值 reti ;返回主程序 delay: mov r7,#02h ;187毫秒 d2: mov r4,#187 d3: mov r3,#248 CXW: djnz r3,CXW djnz r4,d3 djnz r7,d2 djnz r5,delay ;延时时间,受节拍码得控制,延时时间也就是音调持续的时间 ret cc1: LCALL SEL0 ;(使LED显示从0到9) LCALL delay1 LCALL SEL1 LCALL delay1 LCALL SEL2 LCALL delay1 LCALL SEL3 LCALL delay1 LCALL SEL4 LCALL delay1 LCALL SEL5 LCALL delay1 LCALL SEL6 LCALL delay1 LCALL SEL7 LCALL delay1 LCALL SEL8 LCALL delay1 LCALL SEL9 LCALL delay1 LCALL SEL10 LCALL delay1 ret delay1: MOV R6,#0ffH ;(LED显示0到9时的延时子程序) CXW3: MOV R7,#0ffH CXW4: DJNZ R7,CXW4 DJNZ R6,CXW3 RET RET ;SEL0到SEL10是送字型子程序,请参考LED自检的程序,此处不再重述) SEL0: MOV A,#7fH MOV P0,A LCALL delay1 RET SEL1: MOV A,#60H MOV P0,A LCALL delay1 RET SEL2: MOV A,#0B6H MOV P0,A LCALL delay1 RET SEL3: MOV A,#0f2H MOV P0,A LCALL delay1 RET SEL4: MOV A,#0e8H MOV P0,A LCALL delay1 RET SEL5: MOV A,#0dAH MOV P0,A LCALL delay1 RET SEL6: MOV A,#0dFH MOV P0,A LCALL delay1 RET SEL7: MOV A,#70H MOV P0,A LCALL delay1 RET SEL8: MOV A,#0ffH MOV P0,A LCALL delay1 RET SEL9: MOV A,#0fbH MOV P0,A LCALL delay1 RET SEL10: MOV A,#01H MOV P0,A LCALL delay1 RET table1: DW 64580,64684,64777,64820 ;(table1是各方波(音调)对应的周期表) DW 64898,64968,65030,64260 DW 64400,64524,65058,63835,64021 ;(table:是简谱码表,也就是歌曲的曲谱表,每个码的高四位是音调,低四位是节拍) table: DB 88h,14h,24h,36H,42H,34H,14H,28H,14H,94H DB 1fH,88H,14H,24H,34H,32H,42H,54H,14H DB 46H,32H,54H,22H,32H,32H,22H,2CH,38H,54H,74H DB 76H,62H,68H,54H,52H,62H,74H,62H,52H,3fH DB 46H,42H,54H,64H,54H,42H,32H,28H,0a4H,0a2H DB 92H,84H,94H,1fH,0b8H,68H,46H,52H,68H DB 74H,72H,72H,74H,62H,52H,3fH,0b8H,68H DB 46H,52H,68H,64H,62H,62H,64H,42H,32H,2fH DB 58H,14H,24H,36H,42H,34H,12H,12H,26H,22H,24H,22H,12H DB 94H,9cH,0a8H,0a6H,92H,84H,64H,54H,22H,22H,46H,42H,44H,32H,22H,5fH DB 00 子程序: 七个子程序,采样子程序,打开三态门子程序,关闭三态门子程序,定时器中断程序,LED显示子程序,LED显示延时子程序,音调延时(节拍)子程序。 六、 设计体会 要求每个人根据自己的不同情况分别写出本人的设计体会,不得少于300字。 顺序装订 我们组的任务是便一首歌,我们对这个程序是这样理解的。歌曲就是音调和节拍的有机组成。音调就是DAO,LAI,MI,FA,SAO,LA,XI,节拍就是音调的持续时间。我们所用的单片机只能输出方波,方波的频率不同,所以就产生了七种音调。 我们小组用定时器一来定时方波的频率,用延时程序来控制音调的持续时间。做完基本任务后,又添加了键盘和LED的程序。 编程序时要结合硬件,如果不匹配,那将无法下手编。经过这几天的实训,我对单片机有了理性的认识。总而言之就是编程之前要了解硬件的接线,否则就是瞎编。 印象最深的是做LED自检时,一开始送字型送的是教材上的字型编码,显示出来后乱七八糟的,于是我又重新找七段LED管和字型码的第0位,第一位,第二位直到第七位的对应关系,依次输入0000 0001,0000 00010,直到1000 0000,找到对应关系后重新编字型码,使得LED显示从0到9。 三个人一组,古代的人说三个臭皮匠赛过一个诸葛亮,可我却觉得不一定是那样,因为三个人的编程思路有时候非常不统一。每个人都试图说服对方,但这一般是说服不了的。幸亏刘老师要求先做程序流程图,然后照图施工,然后调试解决失真。两周的时间太短了,我觉得应该加长单片机实习的时间。单片机是很实用的,如果学好学精通,找工作就不用费心了。还有就是我觉得实习应该按这样的流程进行:先熟悉各种指令,然后熟悉硬件的环境,最后布置任务。另外我建议实验室下午可以开放,学生可以来也可以不来,我想来的人虽然不多,但是肯定有学生会来。因为在寝室虽然可以编程,但却不能用硬件来验证程序是否可行。刘老师要求是非常严格的,要求外行人能通过流程图就能了解编程思想,是按公司企业验收项目的“交钥匙工程”标准来要求学生的,虽然很累,但是我觉得很充实。 七、参考资料 1、《单片机系统综合设计与实践》教材 主编:裴岩 刘利民 内蒙古大学出版社。 2、《单片机应用及原理》教材 主编:李建忠 西安电子科技大学出版社 3、《单片机原理及应用(MCS-51)教材 主编:蒋廷彪 刘电霆 高富强 方华 重庆大学出版社 开题报告、文献综述、外文翻译、论文反抄袭软件、论文目录,就差论文正文了,其他都全了!! 开题报告主要包括以下几个方面: (一)论文名称 论文名称就是课题的名字 第一,名称要准确、规范。准确就是论文的名称要把论文研究的问题是什么,研究的对象是什么交待清楚,论文的名称一定要和研究的内容相一致,不能太大,也不能太小,要准确地把你研究的对象、问题概括出来。 第二,名称要简洁,不能太长。不管是论文或者课题,名称都不能太长,能不要的字就尽量不要,一般不要超过20个字。 (二) 论文研究的目的、意义 研究的目的、意义也就是为什么要研究、研究它有什么价值。这一般可以先从现实需要方面去论述,指出现实当中存在这个问题,需要去研究,去解决,本论文的研究有什么实际作用,然后,再写论文的理论和学术价值。这些都要写得具体一点,有针对性一点,不能漫无边际地空喊口号。主要内容包括:⑴ 研究的有关背景(课题的提出): 即根据什么、受什么启发而搞这项研究。 ⑵ 通过分析本地(校) 的教育教学实际,指出为什么要研究该课题,研究的价值,要解决的问题。 (三) 本论文国内外研究的历史和现状(文献综述)。 规范些应该有,如果是小课题可以省略。一般包括:掌握其研究的广度、深度、已取得的成果;寻找有待进一步研究的问题,从而确定本课题研究的平台(起点)、研究的特色或突破点。 (四)论文研究的指导思想 指导思想就是在宏观上应坚持什么方向,符合什么要求等,这个方向或要求可以是哲学、政治理论,也可以是政府的教育发展规划,也可以是有关研究问题的指导性意见等。 (五) 论文写作的目标 论文写作的目标也就是课题最后要达到的具体目的,要解决哪些具体问题,也就是本论文研究要达到的预定目标:即本论文写作的目标定位,确定目标时要紧扣课题,用词要准确、精练、明了。 常见存在问题是:不写研究目标;目标扣题不紧;目标用词不准确; 目标定得过高, 对预定的目标没有进行研究或无法进行研究。 确定论文写作目标时,一方面要考虑课题本身的要求,另一方面要考率实际的工作条件与工作水平。 (六)论文的基本内容 研究内容要更具体、明确。并且一个目标可能要通过几方面的研究内容来实现,他们不一定是一一对应的关系。大家在确定研究内容的时候,往往考虑的不是很具体,写出来的研究内容特别笼统、模糊,把写作的目的、意义当作研究内容。 基本内容一般包括:⑴对论文名称的界说。应尽可能明确三点:研究的对象、研究的问题、研究的方法。⑵本论文写作有关的理论、名词、术语、概念的界说。 (七)论文写作的方法 具体的写作方法可从下面选定: 观察法、调查法、实验法、经验总结法、 个案法、比较研究法、文献资料法等。 (八)论文写作的步骤 论文写作的步骤,也就是论文写作在时间和顺序上的安排。论文写作的步骤要充分考虑研究内容的相互关系和难易程度,一般情况下,都是从基础问题开始,分阶段进行,每个阶段从什么时间开始,至什么时间结束都要有规定。课题研究的主要步骤和时间安排包括:整个研究拟分为哪几个阶段;各阶段的起止时间 文献综述怎么写 1) 什么是文献综述? 文献综述是研究者在其提前阅读过某一主题的文献后,经过理解、整理、融会贯通,综合分析和评价而组成的一种不同于研究论文的文体。 2) 文献综述的写作要求 1、文献综述的格式 文献综述的格式与一般研究性论文的格式有所不同。这是因为研究性的论文注重研究的方法和结果,而文献综述介绍与主题有关的详细资料、动态、进展、展望以及对以上方面的评述。因此文献综述的格式相对多样,但总的来说,一般都包含以下四部分:即前言、主题、总结和参考文献。撰写文献综述时可按这四部分拟写提纲,再根据提纲进行撰写工作。 前言,要用简明扼要的文字说明写作的目的、必要性、有关概念的定义,综述的范围,阐述有关问题的现状和动态,以及目前对主要问题争论的焦点等。前言一般200-300字为宜,不宜超过500字。 正文,是综述的重点,写法上没有固定的格式,只要能较好地表达综合的内容,作者可创造性采用诸多形式。正文主要包括论据和论证两个部分,通过提出问题、分析问题和解决问题,比较不同学者对同一问题的看法及其理论依据,进一步阐明问题的来龙去脉和作者自己的见解。当然,作者也可从问题发生的历史背景、目前现状、发展方向等提出文献的不同观点。正文部分可根据内容的多少可分为若干个小标题分别论述。 小结,是结综述正文部分作扼要的总结,作者应对各种观点进行综合评价,提出自己的看法,指出存在的问题及今后发展的方向和展望。内容单纯的综述也可不写小结。 参考文献,是综述的重要组成部分。一般参考文献的多少可体现作者阅读文献的广度和深度。对综述类论文参考文献的数量不同杂志有不同的要求,一般以30条以内为宜,以最近3-5年内的最新文献为主。 2、文献综述规定 1. 为了使选题报告有较充分的依据,要求硕士研究生在论文开题之前作文献综述。 2. 在文献综述时,研究生应系统地查阅与自己的研究方向有关的国内外文献。通常阅读文献不少于30篇,且文献搜集要客观全面 3. 在文献综述中,研究生应说明自己研究方向的发展历史,前人的主要研究成果,存在的问题及发展趋势等。 4. 文献综述要条理清晰,文字通顺简练。 5. 资料运用恰当、合理。文献引用用方括号[ ]括起来置于引用词的右上角。 6. 文献综述中要有自己的观点和见解。不能混淆作者与文献的观点。鼓励研究生多发现问题、多提出问题、并指出分析、解决问题的可能途径,针对性强。 7. 文献综述不少于3000字。 3、注意事项 ⒈ 搜集文献应尽量全。掌握全面、大量的文献资料是写好综述的前提,否则,随便搜集一点资料就动手撰写是不可能写出好的综述。 ⒉ 注意引用文献的代表性、可靠性和科学性。在搜集到的文献中可能出现观点雷同,有的文献在可靠性及科学性方面存在着差异,因此在引用文献时应注意选用代表性、可靠性和科学性较好的文献。 ⒊ 引用文献要忠实文献内容。由于文献综述有作者自己的评论分析,因此在撰写时应分清作者的观点和文献的内容,不能篡改文献的内容。引用文献不过多。文献综述的作者引用间接文献的现象时有所见。如果综述作者从他人引用的参考文献转引过来,这些文献在他人引用时是否恰当,有无谬误,综述作者是不知道的,所以最好不要间接转引文献。 ⒋ 参考文献不能省略。有的科研论文可以将参考文献省略,但文献综述绝对不能省略,而且应是文中引用过的,能反映主题全貌的并且是作者直接阅读过的文献资料。 5.综述篇幅不可太长。杂志编辑部对综述的字数一般都有一定数量的约定。作者在初写综述时,往往不注意这点,造成虚话、空话较多,重点不突出。综述一般不宜超过4000字。 综述并
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服