ImageVerifierCode 换一换
格式:DOCX , 页数:10 ,大小:66.45KB ,
资源ID:10685834      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bingdoc.com/d-10685834.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(八路抢答器设计最新版.docx)为本站会员(b****1)主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(发送邮件至service@bingdoc.com或直接QQ联系客服),我们立即给予删除!

八路抢答器设计最新版.docx

1、八路抢答器设计最新版 单片机原理及应用课程设计课程名称单片机技术及系统设计设计名称八路抢答器设计学号学生姓名所在专业 电气工程及其自动化所在班级指导教师成绩教师签字年 月 日目录一、课程设计要求3二、课程论文(设计)的意义3三、元器件选择3四、设计原理3五、分部分设计特点特点3六、示意图表4七、程序框图5八、系统程序设计6九、设计过程中遇到的问题和解决方案8十、总结和心得10十一、课程设计原理图12单片机原理及应用课程设计八路抢答器设计一、课程设计要求:八路抢答器,当其中一路按下,LED显示该路,并发出声音(5秒)。当有一路按下,其他路的按键无效。二、课程论文(设计)的意义:单片机原理与应用课

2、程设计是在学生学完电子技术类基础课程和微机应用类基础课程之后,为加强对学生技术应用能力的培养而开设的体现电子技术,计算机技术综合应用的综合性课程。本课程的任务是使学生获得单片机应用系统设计的基本理论,基本知识与基本技能,掌握单片机应用系统各主要环节的设计,调试方法,并了解单片机在测量,控制等电子技术应用领域的应用。初步具备应用单片机进行设备技术改造,产品开发的能力。三、元器件选择:C51单片机,共阴极led数码管,speaker发音器,按钮若干,八路与门,电解电容,电容电阻若干,四、设计原理通过按键产生中断请求,响应中断,通过按键跳转使累加器a获得重新数码1-8,再通过查表指令获得驱动led数

3、码管的代码驱动led数码管,同时通过软件延时程序和置1及取反指令产生长度变化的方波,驱动speaker发出声音,控制发音时间5秒查表方式获得五、分部分设计特点特点1本次课程设计采用C51单片机,51单片机是八位机,虽问世很久,但现在的增强型的51单片机仍然广泛应用。本设计采用软件延时,没有使用单片机内的定计时器,只用到一个中断源,所以用c51单片机已经绰绰有余。所以选用它。2运用到其外部中断0(此设计只用到一个中断源所以比较简单),由于此处单片机的工作量不大,所以这里用软件延时,避免了相对麻烦的定计时器设定,而且时间相对容易调试,只要在程序中该数据就好。所以选用软件延时,而不用定计时器。只用了

4、一个中断,当按下键时就进入中断响应。3软件延时技术,4独立式键盘按键,用独立式键盘完全满足设计要求,所以此处没必要设计复杂的行列式键盘。5共阴极led数码管显示,采用数码管显示,方便简易。6复位电路采用的是按键复位,采用复位电路复位,使得程序设计极为简化。而且可以可靠的执行,符合设计要求。7产生方波驱动Speaker扬声器。Speaker的驱动通过改变方波的时间,可以有不同音调的声音。但要编一首歌,确实不容易,此处,仅仅让其发出声音,并控制时间。六、示意图表按键状态检测p0口响应中断关中断根据按键跳转给ACC赋值查表获得驱动led数码管显示的代码驱动led数码管显示产生矩形波驱动Speaker

5、发音中断返回1111111001H3FH1111110102H06H1111101103H5bh1111011104H4fH1110111105H66H1101111106H6DH1011111107H7DH0111111108H07H七、程序框图: 八、系统程序设计:org 0000h ajmp main org 0003h;外部中断0入口地址 ajmp serve org 0030hmain:clr p2.0;对p2.0口清零mov p1,#00h; p0口作输入口用要写一 clr it0; 选择外部中断0电平触发 setb ex0; 开外部中断0 setb ea; 开中断here:sjm

6、p here;等待中断serve:clr ea;关中断,使其他路的按键无效 mov a,p0;读输入键状态 jnb acc.0,g0;按键号跳转 jnb acc.1,g1 jnb acc.2,g2 jnb acc.3,g3 jnb acc.4,g4 jnb acc.5,g5 jnb acc.6,g6 jnb acc.7,g7g0: mov a,#01h ljmp abcg1: mov a,#02h ljmp abcg2: mov a,#03h ljmp abcg3: mov a,#04h ljmp abcg4: mov a,#05h ljmp abcg5: mov a,#06h ljmp ab

7、cg6: mov a,#07h ljmp abcg7: mov a,#08h ljmp abcabc: mov dptr,#tab;查表指令 movc a,a+dptr mov p1,a mov r4,#60; 以下是声音控制的程序段,通过控P2.0口的输loop2: mov r3,#52;出矩形波频率控制蜂鸣器的声调和时间。loop1:setb p2.0 acall delay1 cpl p2.0 acall delay2 djnz r3,loop1 djnz r4,loop2 retiDELAY1: MOV R7,#10HD1: MOV R6,#12HD2: DJNZ R6,D2DJNZ

8、R7,D1 RETDELAY2: MOV R7,#10HD4: MOV R6,#19HD3: DJNZ R6,D3 DJNZ R7,D4 RETTAB: DB 3FH,06H,5bh,4fH,66H,6DH DB 7DH,07H,7FH,6FH,77H,7CH DB 39H,5EH,79H,71HEND九、设计过程中遇到的问题和解决方案。1. 键盘的跳转,设计过程中,开始设计时,出现的问题是想寻找一种较简单的方法代替键盘跳转较简单地将p0口的内容1111 11110;1111 1101;1111 1011;1111 0111;1110 1111;1101 1111;1011 1111;0111

9、 1111对映为1,2,4,8,16,32,64,128.曾经尝试过通过查表来改变地址做出了这样的表:TAB: DB 3FH,06H;对映数码管显示1,2ds 01h; db 4fh;对映数码管3ds 03h db 5bh; 对映数码管4ds 07hdb 66h; 对映数码管5ds 0fhdb 6dh;对映数码管6ds 1fhdb 7dh; 对映数码管7ds 4fhdb 07h; 对映数码管8用mov dptr,#tabmovc a,a+dptrmov p1,a来查询但是这样占用了大量的程序存储器空间,而且最终调试不过,或许是因为查表指令对表的长度有限制吧。只能最终选用其他方法,用了经典的键盘

10、跳转程序。据了解有同学用了除法完成这样的转变,很是佩服。2.第二个难点是复位键的设计,由于按照课本的电路根本无法实现这样的功能,也就是说课本的复位电路是错误的。几次调试后屋果,我只有尝试用其他方法。我曾尝试用外部中断的方法,将复位键接在外部中断1的端口,设置其为高优先级,想着一旦按下复位键便启动外部中断1,然后再跳转回主程序,回到开机时的状态。结果调试很久没法解决,最后恍然大悟,我的程序陷入了一个死循环。无法从主程序中跳回。这让我深刻体会到中断程序的结构是要有返回的,不是随便跳就可以的。尤其是注意不要陷入死循环。最后还是回到复位电路,尝试了多种硬件接法,最终确定来了现在的接法。3.以上两个问题

11、是我设计过程中遇到的主要问题,另外还有一些小问题,小失误,花费了我很多时间。由于我没有使用keil软件调试,直接用文本写和proteus调试。所以调试难度很大。所以还是学习keil等程序对编译还是很必要的。十、总结和心得:这次课程设计我很晚才开始着手做,因为要考英语六级。所以完成的和匆忙。但我是坚持重头到尾都自己做的,也不参考其他人的程序,怕受别人影响,反而发挥不出自己的潜能。我是以这样的步骤完成的,先把觉的可能要用到的知识先复习一遍,在根据选题确定各部分硬件的结构,先在纸上写好程序,最后才上机调试。本来觉得很简单的设计,思路已经很清晰,然而一调试总出问题。有逻辑上的错误,还有粗心大意所指的。

12、但我都自己克服解决了,因为没有人能帮我,只有靠自己。比如,开始时调试了很多次,都无法完成编译,而用keil编译好之后也无法导入proteus运行。这时以前从未出现的问题。最后我关了杀毒软件金山毒霸,才可以通过编译。在设计中觉的除了必要的扎实的基础之外最最重要的是要有耐心和不断尝试的毅力。相信总会有办法的解决问题的。我的这次设计尝试了很多思路,做过很多尝试,虽然很多最终没有成功,但是真的让我对很多知识的掌握有了很大的帮助,我更加深刻的认识了单片机的应用,虽然只是完成了一个之前我觉的很简单的设计。比如,在设计从键位转换到数字1到8时,我想到了用查表除用DB定义外。我想到了用DS来留空位。这样就更熟悉的表的定义。以前我从没用过ds指令的,现在熟悉了。总之设计的过程是一个成长的过程,但要用心是前提。参考文献:1周美娟.肖来胜.单片机技术及系统设计.北京:清华大学出版社, 2谭浩强.单片机课程设计. 北京:清华大学出版社,19893余发山编著.单片机原理机机及应用技术.徐州:中国矿业大学出版社 4张淑清 娄万录等主编.单片微机计算机接口技术及其应用.科学出版社 5李朝青.单片机原理及接口技术(修订版).北京:北京航空航天大学出版社,1998

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2