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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

单片机设计电子表的控制系统设计.docx

1、单片机设计电子表的控制系统设计6.1 调节电路部分.156.2 显示电路部分.156.3 单片机部分电路.17第1章概述 单片机又称单片微控制器,它不是完成某一个逻辑功能的芯片,而是把一个计算机系统集成到一个芯片上。我们都知道,设计系统的关键是思路,而系统通常又由各个模块所组成,所以必须先把所要设计的系统模块化,再把各个模块组合在一起,实现一个完整的系统。这就要求我们先要有扎实的理论知识,特别对芯片的各个管脚功能必须了解,这样才能进行硬件设计,同时,又必须掌握MCS51的指令功能,通过编程实现其功能,这就能让我们能更好地理解单片机原理及应用这门课程,也是一种理论在实践中的运用。 如果说我们以前

2、学的都是理论,包括C语言,微机原理,C+ +,微机接口技术,protel等等,那么这次的课程设计就是一个贯穿多学科的综合性实践。单片机自20世纪70年代问世以来,以极其高的性价比受到人们的重视和关注,所以应用很广,发展很快。单片机的有点是体积小、重量轻、抗干扰能力强,对环境要求不高,价格低廉,可靠性高,灵活性好,开发较为容易。 数字钟是一种用数字电路技术实现时、分、秒计时的装置,与机械式时钟相比具有更高的准确性和直观性,且无机械装置,具有更长的使用寿命,因此得到了广泛的使用。 数字钟从原理上讲是一种典型的数字电路,其中包括了组合逻辑电路和时序电路。目前,数字钟的功能越来越强,并且有多种专门的大

3、规模集成电路可供选择。第2章 系统总体方案设计2.1 总体思路利用52单片机的P2口作为控制单片机跑表开始,暂停,清零,返回的输入端。P3作为控制LED的显示时钟的调节时间控制信号输入端。P0,P1控制LED动态显示选择控制端控制六个LED的显示时间和显示顺序。定时器T0定时50ms。T1定时10ms,37H-39H保存时钟的变化量。41H-43H保存秒表的变化量。其中为了方便显示,每个变量对应两个单元,以便将变量拆开成两个十进制的数方便显示。 2.2 系统方案选择本系统采用AT89C52单片机、6位数码管显示(不带译码器)和7个键盘键盘操作(分别为功能键,加一键,减一键,返回键,开始键,暂停

4、键,清零键)作为调节时间的按钮构成一个单片机多功能时钟的硬件。此外包括一些必须的晶振电路和复位电路,是一个多功能时钟,具有时间显示功能和跑表功能,数码管显示时间,通过三个按钮对时间进行调整,按键1为时分秒控制按钮,2、3为加减调节按钮。(1)计数单元由单片机内部定时器/计数器T0来实现。 (2)时间显示功能通过LED数码管动态扫描来实现,其中P0口控制数码管的断选信号,P1口的低六位控制数码管的六个片选信号。(3)时间调整通过接入键盘来实现。第3章 硬件设计3.1 系统硬件结构框图对定时器T0一个50ms的定时时间,软件计数功能的单元地址R2为20,当R2减到0是秒加一。当秒、分值为60时改位

5、清零,且高位加一。当时的值达到24时,显示全部为0,然后进入新的一天。该系统是通过P2控制时分秒位的选择,通过P0口实现时分秒的显示。时分秒的调节由外接键盘的上三个按钮控制,按一下调秒、两下调分、三下调时、按四下返回。 对于定时器T1设定一个10ms的定时时间,当进入一次中断时,秒表最后一位的数字加一。在秒表的子程序中加入按键检测程序,保证在跑表运行的过程中能随时的响应外部按键的信号进行相关的操作。跑表变量储存在41H-43H的单元中,变化后,经过数据处理,经显示程序显示。3.2 按键结构按键采用的是7个独立按键,首先得按动接在P2.3口的返回键,即进入系统,显示器显示6个0,接着按下接在P2

6、.0口的开始键,使系统开始运行,P2.1口的是接的秒表的复位清零,P2.2口接得是秒表的暂停,键盘1功能切换键是接在P3.2上的,按下1键进入调秒状态每按下P3.0接得2键秒钟加一,每按下P3.1接得3键秒钟减一;按两下键盘1键进入调分状态,每按下2键分钟加一,每按下3键分钟减一;按三下键盘1键进入调时状态,每按下2键时钟加一,每按下3键时钟减一;按四下键盘1键返回计数状态。 图1 按键结构第4章 开发板焊接及其测试周二指导老师就安排我们进行单片机开发板的焊接工作,给我们讲解了许多的焊接工作中的技巧和工艺,并教我们对焊接好的开发板进行测试。在焊接过程中,如果是焊接一般电子元件(电路板上无大规模

7、集成电路或其他易击穿的器件),烙铁和电路板之间45度,焊接面光滑,焊点太大也不要太小,焊接时间不要太长,容易烧坏元器件和破坏板上的铜线。焊接顺序基本上是从内到外,先低后高,电烙铁可不接地;如是,则必须接地或带静电环。一般选30-60W外热式电烙铁,1mm以下含松香焊锡,烙铁头必须清洁,可在含水海绵上擦拭,不可用硬物刮擦。焊接时,烙铁头应同时接触器件引脚及电路板,再送入焊锡,如温度适宜时,可见焊锡融化如水银,由引脚扩散至电路板铜焊点并填满,收回烙铁及焊锡,焊接完成。注意焊接时间应尽量短,因此保证适宜的温度很重要,可预先用烙铁融化焊锡测试一下。焊接好开发板后,接下来的工作就是对其进行电气检测,看看

8、焊接过程中是否有短路、虚焊和接触不良的现象,利用万能表对一些电气节点进行测量。第5章 软件设计与说明使用单片机中的定时器中断,定时50ms,设定一计数单元R0为20,当R2减为0时(5020=1000)时秒值加一,当秒值为60时,分值加一秒值清零。分值为60时时值加一分值清零时值为24时时分秒全部清零。秒表时,采用和时钟基本一致的设计方法,只不过奖定时器T1的时间设定为10ms,然后进位的问题和时钟基本一致,不过秒表的进位应该是100个0.01S进一位。由于存在两个不同的工作状态,因此,每一个状态的后面都要加一段检测按键的程序,方便在有外部按键信号的时候及时的响应,防止进入死循环。5.1 主程

9、序流程图图5 主程序流程图5.2 显示程序流程图 图6 显示程序流程5.3 定时计数器T0中断服务流程图 图7 定时器/计数器中断流程图第6章 调试步骤、结果、使用说明把编好的程序输入到新建的04中,保存编译得到一个04.hex的文件,然后我是首先在proteus软件下把我设计的电路图画出来,因为如果直接就导入单片机中运行的话,个人觉得很难成功,因为能影响下载不成功的因素很多,很难一下子就找出来的,而使用proteus的话,在一定的程度上就可以避免了这些干扰因素,从而就使得能很好的排除故障以及干扰因素,所以我是先把生成的04.hex文件导入proteus的电路图中进行仿真,在仿真时发现程序没问

10、题仿真成功了,时钟开始显示时间,等到秒钟为59时下一秒分钟加一,秒钟清零,等分秒都为59时下一秒时钟加一分秒清零,当时为23分秒为59时下一秒时分秒全部清零,显示部分电路调试通过。控制部分调时通过。再调试秒表的过程中,由于精确到0.01S的过程,因此必须慎重考虑DELAY程序的应用以及循环次数的确定,否侧回造成显示出问题,过快或过慢都会对试验结果造成不良的影响。为此,在秒表的调试过程中,必须谨慎。仿真通过后,就开始着手把04.hex文件下载到开发板上,在调时电路过程中要认真观测合记录,一发下问题就及时调节,使用过程中时,按下返回键,就进入显示程序,按开始键时钟表开始运行,功能键有4种方式,按一

11、次就是调整秒,两次就是调分,三次就是调时,四次就是返回功能,跑秒时,有暂停和清零键。 6.1 调节电路部分 图2 调节时钟部分电路6.2 显示电路部分 图3 显示部分电路(时钟电路) 图4 显示部分电路(跑表电路)6.3 单片机部分电路 图5 单片机部分电路 第7章 设计总结课程设计是对课程的实践与总结,只要做了就会有收获。在这次设计中我加深了程序的阅读能力、程序的灵活调用、单片机的设计制作调试方法。为了能顺利的完成这次的课程设计我找了很多资料也因此知道了不少课本上没深入介绍的东西,提高了我的思维空间,拓宽了我的知识面,加深了对单片机课程的兴趣。最主要的是加强了动手的能力,遇到问题是先思考,解

12、决不了再查资料,实在弄不出来就问老师和同学们。通过这次课程设计我了解到学好一门汇编语言,最根本的应该是了解所能接触到的程序中最关键的是哪些,实际的应用编写更是非常重要,所以我们一定要自己动手试一下,尝试编写程序。因为做一个旁观者事不能够学到东西的。此外在此次设计中我对此次设计的内容有一下感触,第一,由于此次设计的过程中设计秒表和时钟的显示,即在一个数码管上显示两种变量,必须确定以下几点:1、时钟在切换的过程中不能停,秒表在切换的过程中可以停,为了简化设计,我设计的是在切换的过程中秒表停止。2、必须仔细的核对每一个变量的名字,我曾经在核对变量的名字上面花了很大的力气,由于变量的名字错了,软件编译

13、时很少能检查出,因此仿真时往往不容易发现。3、要每个子程序的调试,这样才能确认某一个部分是正确的,这样才有继续往下做的信心和勇气。十分感谢学校安排这次课程设计,他使我们对前面的知识进行了积累,也十分感谢周老师以及同学们在设计过程中对我的帮助。第8章 参考文献1、王迎旭编.单片机原理与应用M.机械工业出版社.2、楼然苗编.51系列单片机设计实例M.北京航空航天大学出版社. 3、黄勤编.计算机硬件技术基础实验教程M.重庆大学出版社4、刘乐善编.微型计算机接口技术及应用M.华中科技大学出版社.5、陈光东编.单片微型计算机原理及接口技术M.华中科技大学出版社.6、周向红 编51系列单片机应用与实践教程

14、M.北航出版社7、周坚编. 单片机C语言轻松入门M. 北京航空航天大学出版社 附录1 总体设计图附录2 程序清单MIAOL EQU 30H;存放时间的变量分别为秒钟秒钟个位,十位MIAOH EQU 31HFENL EQU 32HFENH EQU 33HSHIL EQU 34HSHIH EQU 35HSHI EQU 39H ;存放10进制的时钟信息FEN EQU 38HMIAO EQU 37HFUC EQU 36H ;功能键按键计数器,记录功能键按下的次数FANHUI1 BIT P2.0START BIT P2.1 ;跑表计时开始STOP BIT P2.2 ;跑表计时停止CLEAR BIT P2

15、.3 ;跑表清零SECOND1 EQU 41H ;保存跑表变量SECOND2 EQU 42HFENG EQU 43HSECOND1L EQU 44HFENGL EQU 48HSECOND2L EQU 46HSECOND1H EQU 45HFENGH EQU 49HSECOND2H EQU 47HORG 0000HSJMP MAINORG 000BHLJMP TIME0ORG 001BHLJMP TIME1ORG 0030HINIT: MOV TMOD,#11H ;选定时器0方式1 MOV TH0,#3CH ;置初值MOV TL0,#0B0H ;MOV TH1,#0D8H ;置初值(10MS)0

16、.01S MOV TL1,#0F0H ; MOV R2,#20 ;1秒时间50msX20 SETB ET0 ;开定时器0中断 SETB ET1SETB EA ;开中中断 SETB TR0 ;启动定时器0 MOV P3,#0ffh ;读键值,初始化 MOV P2,#0ffh RETMAIN: ACALL INIT ;调用初始化函数A1: MOV DPTR,#TAB ;查表初值ACALL KEYSCAN MOV A,P2 JNB FANHUI1 ,FANHUI JNB START, SEC_WATCH; 判断是否是跑表计时开始 JNB STOP,STOP_WATCH JNB CLEAR,CLEAR

17、_WATCHSJMP A1 ;判断设置时钟时 LJMP A1FANHUI : ACALL KEYSCAN ACALL DISP ACALL CHULI CLR TR1 JNB START,SEC_WATCH ;判断是否是跑表计时开始 JNB STOP,STOP_WATCH JNB CLEAR,CLEAR_WATCH SJMP FANHUISEC_WATCH: MOV DPTR,#TAB ACALL DELAY ACALL DISP1 ACALL CHULI1 SETB TR1 MOV SECOND1,#00 MOV SECOND2,#00 A3: LCALL DISP1 LCALL CHULI

18、1 JNB CLEAR,CLEAR_WATCHJNB STOP,STOP_WATCH JNB FANHUI1,FANHUI JNB START, SEC_WATCH AJMP A3 CLEAR_WATCH: MOV SECOND1,#00 MOV SECOND2,#00 LCALL CHULI1 ACALL DISP1LCALL DELAY AJMP A3STOP_WATCH: CLR TR1LCALL CHULI1 ACALL DISP1 SJMP A3KEYSCAN: MOV A,P3 ;读取按键 ANL A,#07H ; CJNE A,#07H,K0 ;判断是否按键 RETK0: ACA

19、LL DELAY ;有按键延时去抖动 MOV A,P3 ANL A,#07H CJNE A,#07H,K1 ; RET ;是抖动返回K1: MOV R3,A ;不是抖动,存按键K2: MOV A,P3 ; ANL A,#07H ; CJNE A,#07H,K2 ;等待松开按键 MOV A,R3 ; CJNE A,#06H,K3;键值读取看是否是P3.1被按下,加1按键 SJMP KEY1 ;K3: CJNE A,#05H,KEY3 ; 看是否是P3.2被按下,减1按键 SJMP KEY2 ;KEY3: INC FUC ;不是加1也不是减1就是功能键P3.0,被按下,功能键按下次数加1 CLR

20、TR0 ;按下功能见后进入调整时间模式,关闭定时器 MOV A,FUC ;读取功能键按下次数 CJNE A,#4,RETT ;如果按下四次了,就恢复时间模式 SETB TR0 ;打开定时器 MOV TH0,#3CH ; MOV TL0,#0B0H ; MOV FUC,#0 ;计数器清0 SJMP RETT ;KEY1: ACALL ADD1 ;如果是加1按键,调用加1函数 SJMP RETT ;KEY2: ACALL SUB1 ;如果是减1按键,调用减1函数RETT: RET、CHULI1:MOV R1,#44H ;将十进制的时间个十位分开 MOV R0,#41H ; MOV R3,#3 ;K

21、4: MOV A,R0 ;取时间 MOV B,#10 ;分离个十为 DIV AB ; MOV R1,B ;个位保存在以L(SHIL FENL MIAO L)结尾的时间变量中 INC R1 ; MOV R1,A ; INC R1 ; INC R0 ; DJNZ R3,K4 ; MOV A,FENG ;时信息更新,保证不大于23 CJNE A,#60,RET5 ; MOV FENG,#0 ;RET5: RET ;CHULI: MOV R1,#30H; MOV R0,#37H ; MOV R3,#3 ;K5: MOV A,R0 ; MOV B,#10 ; DIV AB ; MOV R1,B ; IN

22、C R1 ; MOV R1,A ; INC R1 ; INC R0 ; DJNZ R3,K4 ; MOV A,SHI ; CJNE A,#24,RET4 ; MOV SHI,#0 ;RET4: RETADD1:MOV A,FUC ; CJNE A,#3,AD0 ; MOV R0,#39H ;时存放的地址 MOV A,R0 ;取时,看是否满23 CJNE A,#23,AD1 ; MOV R0,#0 ; 如果满了23,就清0 SJMP RET0AD0: MOV A,#36H ;不是给时加1 ADD A,FUC ; MOV R0,A ;取出要加数的地址 MOV A,R0 ; CJNE A,#59,A

23、D1 ; 是否加到59了 MOV R0,#0 ; 加到了59就清0 SJMP RET0AD1: INC R0 ;时没有加到23,其他的没有加到59时,加1RET0:RETSUB1:MOV A,FUC CJNE A,#3,SU0 MOV R0,#39H MOV A,R0 CJNE A,#0,SU1 MOV R0,#23 SJMP RET1SU0: MOV A,#36H ADD A,FUC MOV R0,A MOV A,R0 CJNE A,#0,SU1 MOV R0,#59 SJMP RET1SU1: DEC R0RET1:RETDISP: MOV R3,#20DI0: MOV R0,#35H M

24、OV R4,#6 MOV R5,#01HDI1: MOV A,R0 MOVC A,A+DPTR MOV P0,A MOV A,R5 MOV P1,A RL A MOV R5,A DEC R0 ACALL DELAY MOV P1,#00H DJNZ R4,DI1 DJNZ R3,DI0 RETDISP1:MOV R3,#5DI01: MOV R0,#49H MOV R4,#6 MOV R5,#01HDI11: MOV A,R0 MOVC A,A+DPTR MOV P0,A MOV A,R5 MOV P1,A RL A MOV R5,A DEC R0 ACALL DELAY MOV P1,#00

25、H DJNZ R4,DI11 DJNZ R3,DI01 RET TIME1: MOV TH1,#0D8H ;置初值(10MS)0.01S MOV TL1,#0F0H INC SECOND1 ; MOV A, SECOND1 ; CJNE A,#100,RET2 ;看是否满100个10ms MOV SECOND1 ,#0 ;满100个秒,秒清0 INC SECOND2 ;秒加1 MOV A, SECOND2 ;是否满60秒 CJNE A,#60,RET2 ; MOV SECOND2,#0 INC FENG MOV A,FENG ;分钟加1 RET2: RETITIME0:MOV TH0,#3CH

26、 MOV TL0,#0B0H ;重置初值 DJNZ R2,RET3 ;是否满1秒 MOV R2,#20 ;秒钟加1 INC MIAO ; MOV A,MIAO ; CJNE A,#60,RET3 ;看是否满60秒 MOV MIAO ,#0 ;满60秒,秒清0 INC FEN ;分钟加1 MOV A,FEN ;是否满60分 CJNE A,#60,RET3 ; MOV FEN,#0 ;满60分 INC SHI ;时钟加1 MOV A,SHI ; CJNE A,#24,RET3 ;时钟是否满24 MOV SHI,#0 ;满24,时钟清0RET3: RETIDELAY:MOV R6,#5D0: MOV

27、 R7,#245 DJNZ R7,$ DJNZ R6,D0 RETTAB:DB 0c0H,0f9H,0a4H,0b0H,99H,92H,82H,0f8H,80HDB 90H,88H,83H,0c6H,0a1H,86H,8eH,0ffH ;共阳编码表电气信息学院课程设计评分表项 目评 价优良中及格差设计方案合理性与创造性(10%)开发板焊接及其调试完成情况*(10%)硬件设计或软件编程完成情况(20%)硬件测试或软件调试结果*(10%)设计说明书质量(20%)答辩情况(10%)完成任务情况(10%)独立工作能力(10%)出勤情况(10%)综 合 评 分 指导教师签名:_ 日 期:_ 注:表中标*号项目是硬件制作或软件编程类课题必填内容;此表装订在课程设计说明书的最后一页。课程设计说明书装订顺序:封面、任务书、目录、正文、评分表、附件(非16K大小的图纸及程序清单)。

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1