《大工17春《单片机原理及应用》大作业题目及答案(17页).doc》由会员分享,可在线阅读,更多相关《大工17春《单片机原理及应用》大作业题目及答案(17页).doc(17页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、-大工17春单片机原理及应用大作业题目及答案-第 16 页 网络教育学院单片机原理及应用大作业题 目: 单片机的电子时钟设计 学习中心: 浙江龙游奥鹏学习中心 层 次: 专升本 专 业: 电气工程及其自动化 年 级: 16年 春季 学 号: 201604451977 学生姓名: 李 金 阳 大工17春单片机原理及应用大作业具体要求:1 作业内容从以下五个题目中任选其一作答。2 正文格式作业正文内容统一采用宋体,字号为小四,字数在2000字以上。3. 作业提交学生需要以附件形式上交离线作业(附件的大小限制在10M以内),选择已完成的作业,点“上交”即可。如下图所示。4. 截止时间2017年9月6
2、日。在此之前,学生可随时提交离线作业,如需修改,可直接上传新文件,平台会自动覆盖原有文件。5. 注意事项请同学独立完成作业,不准抄袭其他人或者请人代做,如有雷同作业,成绩以零分计!题目一:单片机电子时钟设计准 则:设计一个基于51单片机或STM单片机的电子时钟,并且能够实现时分秒的显示和调节撰写要求:(1)首先介绍课题背景,并进行需求分析及可行性分析,包括软硬件功能分配、核心器件的选型等;(2)对系统硬件进行设计,包括硬件功能模块划分、电路原理图设计等; (3)对系统软件进行设计,选用汇编语言或C语言编写程序,给出软件开发流程;(4)总结:需要说明的问题以及设计的心得体会。目 录第一章 基于5
3、1系列单片机的电子时钟设计与制作的概述前 言目前,单片机正朝着高性能和多品种方向发展趋势将是进一步向着CMOS化、低功耗、小体积、大容量、高性能、低价格和外围电路内装化等几个方面发展。下面是单片机的主要发展趋势。单片机应用的重要意义还在于,它从根本上改变了传统的控制系统设计思想和设计方法。从前必须由模拟电路或数字电路实现的大部分功能,现在已能用单片机通过软件方法来实现了。这种软件代替硬件的控制技术也称为微控制技术,是传统控制技术的一次革命。单片机模块中最常见的是数字钟,数字钟是一种用数字电路技术实现时、分、秒计时的装置,与机械式时钟相比具有更高的准确性和直观性,且无机械装置,具有更更长的使用寿
4、命,因此得到了广泛的使用。经多方查阅资料、反复论证设计出了这款简单实用的单片机电子时钟。1设计任务与要求(1)首先介绍课题背景,并进行需求分析及可行性分析,包括软硬件功能分配、核心器件的选型等;(2)对系统硬件进行设计,包括硬件功能模块划分、电路原理图设计等; (3)对系统软件进行设计,选用汇编语言或C语言编写程序,给出软件开发流程;(4)总结:需要说明的问题以及设计的心得体会。2方案设计选择根据上述设计要求,结合现有元件,利用集成芯片完成具有以上功能的电路。1)由于需要准确显示时钟日历(年月日时分秒),这里对于显示的选择比较:(1)数码管显示,优点价格便宜,但是不能显示复杂的英文,显示出来很
5、大,布线不易,不美观。(2)LCD1602,价格适中,可以显示复杂的英文,功耗不大,外观较小,计较符合(3)LCD12864,彩屏,如果用这些,可以显示中文,还用一些图片,但是价格较高,秉着合理利用的原则,不大材小用,决定放弃。2)由于需要准确显示时钟日历(年月日时分秒),这里对应时钟的选择作出比较:(1)可以利用单片机自己自带的定时器精确定时,在通过软件控制,这样就减少了硬件的成本,但是这样需要晶振绝对的稳定,而且掉电数据不保存,还没有年月星期的自动调整功能,对程序的要求很高,不易控制.(2)DS1302它可以对年、月、日、周、日、时、分、秒进行计时,且具有闰年补偿等多种功能。不必在程序上做
6、太多的处理,与单片机的接口简单,掉电有备用电池用来供电保存数据。所以非常适合要求3)单片机的选型(1)DSP(digital signal processor)是一种独特的,是以数字信号来处理大量信息的器件。它不仅具有可编程性,而且其实时运行速度可达每秒数以千万条复杂指令程序,远远超过通用微处理器,是数字化电子世界中日益重要的电脑芯片。它的强大数据处理能力和高运行速度,是最值得称道的两大特色。但是对于我们来说,一个是它需要你熟悉它,会运用,这个我们还没有达到。就算我们会用,在一个问题是价格贵,买不起,封装不是DIP的,不易实验,所以又是大材小用,很没有必要选择这么高级的。(2)AT89S82是
7、一款非常流行的单片机了,很适合我们的任务所需,但是他的下载电路并不是那么的简单,再说这个是国外生产的,何必用呢?(3)STC89C52RC是非常值得推荐的,STC是在深圳的一家8051单片机设计生产公司。STC系列的单片机现在在中国的51单片机市场上占有较大比例。宏晶科技现已成长为全球最大的8051单片机设计公司,完完全全的中国制造,它是AT89S52的增强版本,技术成熟,运用稳定,下载电路非常方便,很适合我们选择用5V电源STC89C52RC3系统主要方框图按键液晶显示时钟芯片第二章 硬件单元电路设计与参数计算1.电源电路图中J1为电源插座,S5为带锁开关,要特别主意这来个的封装,很容易错。
8、利用外部电源直接提供5V直流电源接入电源接口,再通过带锁开关控制导通情况。图中LED起到指示作用,当通电时亮,电阻为限流作用一般接220 1 K,不接后果很严重,LED只亮一下。2单片机最小系统电路关于最小系统和STC89C52RC单片机的介绍网上有很多,非常容易搜到,这里就不累赘!这里讨论几个问题: 1)要使STC89C52RC复位需要两个机器周期的高电平,我们用的是12M晶振,那么一个机器周期为1/12M=1uS,当S4按下时,C3迅速导通通电,此时9脚为高电平,松开后电容要电,起到延时的作用,t=C3*(R8+R2)=0.11S2uS,足够为复位提供搞电平2)三点式电容震荡是单片机所用到
9、的,这里只是外面接两个电容而已,电容要求小于47P,一般晶振不大于48M3)相对余AT的单片机STC下载简单多了,这里只是引出了四条线,分别为VCC,GND,TXD,RXD,只需四根线就可以完成下载,而却可以通过引出的端口对板上供电。3按键电路按键电路主要是别忘了加上拉电阻,要不就不稳定了,这里用了四个按键作为功能键,一个按键作为复位键对应分别为:S0 功能选择,S1 减,S2 加,S3 确认,S4 复位。4时钟电路DS1302是美国DALLAS公司推出的一种高性能、低功耗的实时时钟芯片,附加31字节静态RAM,采用SPI三线接口与CPU进行同步通信,并可采用突发方式一次传送多个字节的时钟信号
10、和RAM数据。实时时钟可提供秒、分、时、日、星期、月和年,一个月小与31天时可以自动调整,且具有闰年补偿功能。工作电压宽达2.55.5V。采用双电源供电(主电源和备用电源),可设置备用电源充电方式,提供了对后背电源进行涓细电流充电的能力。DS1302的外部引脚分配如图1所示及内部结构如图2所示。DS1302用于数据记录,特别是对某些具有特殊意义的数据点的记录上,能实现数据与出现该数据的时间同时记录,因此广泛应用于测量系统中。 1.各引脚的功能为: Vcc1:主电源;Vcc2:备份电源。当Vcc2Vcc1+0.2V时,由Vcc2向DS1302供电,当Vcc2 Vcc1时,由Vcc1向DS1302
11、供电。 SCLK:串行时钟,输入,控制数据的输入与输出; I/O:三线接口时的双向数据线; CE:输入信号,在读、写数据期间,必须为高。该引脚有两个功能:第一,CE开始控制字访问移位寄存器的控制逻辑;其次,CE提供结束单字节或多字节数据传输的方法。5LCD1602显示电路LCD1602可以显示16*2=32个字符,也可以用来显示一些汉字图片(利用取模软件提取),原理图中的可调电阻是用来调节字符显示的亮度的,调节是要有耐心,应为用到的是精密可调电阻,这个需要转很多圈,不容易显示出来,注意不能跳到太亮,要不很容易烧掉液晶,下面为接口说明,一般不显示很可能是程序的问题和可调电阻没有调节好,至于介绍网
12、上很容易找到。6软件设计流程图开机开机画面显示N是否有按键按下Y检测那个按键按下减键功能选择键复位键确认键加减7总原理图第三章 仿真测试(1)首先在protues中仿真调好,在程序中要特别注意与硬件中引脚对应上(2)按键的测试比较简单,只要你对应的按键能够实现相应的功能就可以,不可以,那么肯定是硬件或者连接线的问题了。(3)元件清单原件名称数量原件名称数量STC89C52RC1103可调电阻1DS13021102排阻(9脚)1DS130214.7K电阻1LCD1602110K电阻232.768K晶振30P电容212M晶振14.7电阻1小按键110uF电容2470电阻1104电容3100uF电容
13、2470uF电容21K电阻12第四章 程序. ORG 0000H ;程序开始入口LJMP STARTORG 0003H ;外中断0中断程序入口RETIORG 000BH ;定时器T0中断程序入口LJMP INTT0 ;跳至INTTO执行ORG 0013H ;外中断1中断程序入口RETIORG 001BH ;定时器T1中断程序入口LJMP INTT1ORG 0023H ;串行中断程序入口地址RETI;-主程序-;START: MOV R0,#70H ;70给R0,清70-7FH显示内存MOV R7,#0FHCLEARDISP: MOV R0,#00H ;0给R0中的数为地址的内存中存放(70H)
14、INC R0DJNZ R7,CLEARDISPMOV 78H,#2 ;默认时间为12:00,闹钟5:00MOV 79H,#1MOV 74H,#2 ;防止上电时数码管显示00小时MOV 75H,#1MOV 66H,#1 ;中断退出时66H为1时,分、时计时单元数据移入显存标志MOV 68H,#1 ;上电默认闹钟开状态MOV 7DH,#6 ;闹钟时十位MOV 7CH,#3MOV 69H,#0MOV 7AH,#0AH ;放入熄灭符数据MOV TMOD,#11H ;设T0、T1为16位定时器MOV TL0,#0B0H ;50MS定时初值(T0计时用)MOV TH0,#3CHSETB EA ;总中断开放
15、SETB ET0 ;允许T0中断SETB TR0 ;T0定时器开始计时MOV R4,#14H ;1秒定时用初值(50MS20)START1: LCALL DISPLAY ;显示子程序LCALL BEEP ;闹钟查询JNB P1.7,SETTIME ;P1.7口为0时转时间调整程序JMP START1 ;P1.7口为1时跳回START1;-时间闹钟调整系统-;NFLAG: MOV A,68H ;设置闹钟开关状态CJNE A,#1,BEE68MOV 68H,#0JMP E6BEE68: MOV 68H,#1E6: MOV 66H,#8 ;中断退出66H不为1时分、时计时单元数据移入显存标志MOV
16、72H,7BHMOV 73H,7CHMOV 74H,7DHMOV 75H,7EHLCALL DDLLCALL DDLMOV 72H,68HMOV 73H,69HMOV 74H,7AHMOV 75H,7AHLCALL DDLLCALL DDLMOV 66H,#1LJMP START1SETTIME: LCALL DDLJB P1.7,NFLAG ;键按下时间小于1秒,设置闹钟开关状态并查看闹钟时间,不关走时,确保准确,大于1秒调时MOV TL1,#0B0H ;T1闪烁定时初值MOV TH1,#3CHMOV R2,#06H ;进入调时状态,赋闪烁定时初值MOV 66H,#8 ;调闹钟时保持走时,关
17、闭时钟显示数据SETB ET1 ;允许T1中断SETB TR1 ;开启定时器T1SET1: LCALL DISPLAY ;调用显示,防止键按下无显示JNB P1.7,SET1 ;P1.7口为0等待键释放MOV R5,#00H ;清设置类型闪烁标志SETN1: INC R5 ;闹钟分调整SET5: LCALL DISPLAYJB P1.7,SET5SEETN1: LCALL DDL ;有键按下大于1秒分时间连续加(0.5秒加1),小于1秒转调时状态JB P1.7,SET6 ;键释放查询,键释放自动转调时MOV R0,#7CHLCALL ADD1MOV A,R3CLR CCJNE A,#60H,H
18、HN1HHN1: JC SEETN1LCALL CLR0JMP SEETN1SET6: INC R5 ;闹钟时调整SEET6: LCALL DISPLAYJB P1.7,SEET6SEETNH1: LCALL DDLJB P1.7,SETFMOV R0,#7EHLCALL ADD1MOV A,R3CLR CCJNE A,#24H,HOUU1HOUU1: JC SEETNH1LCALL CLR0JMP SEETNH1SETF: LCALL DISPLAYJB P1.7,SETFLCALL DDLJNB P1.7,SETOUT ;短按调时,长按退出CLR ET0CLR TR0MOV 70H,#00
19、H ;设定后的时间从00秒开始走时MOV 71H,#00HINC R5SET3: LCALL DISPLAYJB P1.7,SET3SETMM: LCALL DDLJB P1.7,SET4MOV R0,#77HLCALL ADD1MOV A,R3CLR CCJNE A,#60H,MMHMMH: JC SETMMLCALL CLR0AJMP SETMMSET4: INC R5SEET4: LCALL DISPLAYJB P1.7,SEET4SETHH: LCALL DDLJB P1.7,SETOUT1MOV R0,#79HLCALL ADD1MOV A,R3CLR CCJNE A,#24H,HO
20、UUHOUU: JC SETHHLCALL CLR0AJMP SETHHSETOUT1: SETB ET0SETB TR0 ;计时开始SETOUT: MOV R5,#00H ;清设置类型闪烁标志CLR TR1 ;关闭T1CLR ET1 ;关T1中断MOV 66H,#1SETOUT2: LCALL DISPLAY JNB P1.7,SETOUT2LJMP START1;-延时1秒钟-;DDL: MOV 18H,#36DDL0: MOV 17H,#239DDL1: LCALL DISPLAYDJNZ 17H,DDL1DJNZ 18H,DDL0RET;-T0中断程序-;INTT0: PUSH ACC
21、 ;打包PUSH PSWCLR ET0CLR TR0MOV A,#0B7HADD A,TL0MOV TL0,AMOV A,#3CHADDC A,TH0MOV TH0,ASETB TR0DJNZ R4, OUTT0 ;20次中断未到中断退出ADDSS: MOV R4,#14H ;20次中断到(1秒)重赋初值MOV R0,#71H ;指向秒计时单元(70-71H)ACALL ADD1 ;调用加1程序(加1秒操作)MOV A,R3 ;秒数据放入A(R3为2位十进制数组合)CLR C ;清进位标志CJNE A,#60H,ADDMMADDMM: JC OUTT01 ;小于60秒退出ACALL CLR0
22、;等于或大于60秒清0MOV R0,#77H ;指向分计时单元(76H-77H)ACALL ADD1MOV A,R3CLR CCJNE A,#60H,ADDHHADDHH: JC OUTT0ACALL CLR0MOV R0,#79H ;指向小时计时单元(78H-79H)ACALL ADD1MOV A,R3CLR CCJNE A,#24H,HOURHOUR: JC OUTT0ACALL CLR0OUTT0: MOV A,66H ;查询标志CJNE A,#1,OUTT01MOV 72H,76H ;中断退出时将分、时计时单元数据移入对应显示单元MOV 73H,77HMOV 74H,78HMOV 75
23、H,79HOUTT01:POP PSW ;出栈POP ACCSETB ET0 ;开放T0RETI ;中断返回;-加1程序-;ADD1: MOV A,R0 ;取当前计时单元数据到ADEC R0 ;指向前一地址SWAP A ;A中数据高四位与低四位交换ORL A,R0 ;前一地址中数据放入A中低四位ADD A,#01H ;A加1操作DA A ;十进制调整MOV R3,A ;移入R3寄存器ANL A,#0FH ;高四位变0MOV R0,A ;放回前一地址单元MOV A,R3 ;取回R3中暂存数据INC R0 ;指向当前地址单元SWAP A ;A中数据高四位与低四位交换ANL A,#0FH ;高四位变
24、0MOV R0,A ;数据放入当削地址单元中RETCLR0: CLR CCLR A ;清累加器MOV R0,A ;清当前地址单元DEC R0 ;指向前一地址MOV R0,A ;前一地址单元清0RET ;子程序返回;-调时闪烁程序-;INTT1: PUSH ACCPUSH PSWMOV TL1,#0B0HMOV TH1,#3CHDJNZ R2,INTT1OUT ;0.3秒未到退出中断(50MS中断6次)MOV R2,#06H ;重装0.3秒定时用初值CPL 02H ;0.3秒定时到对闪烁标志取反JB 02H,FLASH1 ;02H位为1时显示单元熄灭MOV A,R5CJNE A,#01H,NLJ
25、MP NNN1NL:CJNE A,#02H,NL1LJMP NNN1NL1:CJNE A,#03H,NL2LJMP NLLNL2:CJNE A,#04H,INTT1OUTLJMP NLLNLL:MOV 72H,76HMOV 73H,77HMOV 74H,78HMOV 75H,79HAJMP INTT1OUTNNN1:MOV 72H,7BHMOV 73H,7CHMOV 74H,7DHMOV 75H,7EHINTT1OUT:POP PSW ;恢复现场POP ACCRETI ;中断退出FLASH1:MOV A,R5CJNE A,#01H,MLLJMP MNN1ML:CJNE A,#02H,ML1LJ
26、MP MNN2ML1:CJNE A,#03H,MNLJMP MLLMN:CJNE A,#04H,INTT1OUTLJMP MHLMLL:MOV 72H,7AHMOV 73H,7AH ;显示单元(72-73H),将不显示分数据MOV 74H,78HMOV 75H,79HAJMP INTT1OUTMHL:MOV 72H,76HMOV 73H,77HMOV 74H,7AH ;显示单元(74-75H),小时数据将不显示MOV 75H,7AHAJMP INTT1OUTMNN1:MOV 72H,7AHMOV 73H,7AH ;显示单元(72-73H),将不显示闹钟分数据MOV 74H,7DHMOV 75H
27、,7EHAJMP INTT1OUTMNN2:MOV 72H,7BHMOV 73H,7CHMOV 74H,7AHMOV 75H,7AH ;显示单元(74-75H),闹钟小时数据将不显示AJMP INTT1OUT;-显示-;DISPLAY:MOV DPTR,#DISDATAMOV A,70HMOVC A,A+DPTRMOV P3,ACLR P1.0NOPNOPNOPSETB P1.0MOV A,71HMOVC A,A+DPTRMOV P3,ACLR P1.1NOPNOPNOPSETB P1.1MOV A,72HMOVC A,A+DPTRMOV P3,ACLR P1.2NOPNOPNOPSETB P
28、1.2MOV A,73HMOVC A,A+DPTRMOV P3,ACLR P1.3NOPNOPNOPSETB P1.3MOV A,74HMOVC A,A+DPTRMOV P3,ACLR P1.4NOPNOPNOPSETB P1.4MOV A,75HMOVC A,A+DPTRMOV P3,ACLR P1.5NOPNOPNOPSETB P1.5RETBEEP:MOV A,68H ;查询标志CJNE A,#1,BEEREMOV A,78H ;查询闹钟时个位CJNE A,7DH,BEEREMOV A,79H ;查询闹钟时十位CJNE A,7EH,BEEREMOV A,76H ;查询闹钟分个位CJNE
29、A,7BH,BEEREMOV A,77H ;查询闹钟分十位CJNE A,7CH,BEEREBB:CLR P1.6LCALL DDLSETB P1.6LCALL DDLJNB P1.7,BEERRBEERE:RETBEERR:SETB P1.6MOV 68H,#0LCALL DISPLAYJNB P1.7,BEERRJMP BEEREDISDATA:DB 0C0H,0F9H,64H,70H,59H,52H,42H,0F8H,40H,50H,0FFH ;0123456789空白END第五章 心得体会经过这次理工的大作业设计训练让我受益匪浅。下面是这次我对大作业进行的总结,总结收获与不足,以便在今后
30、的学习工作中能有所受用。一、通过这次的大作业,让我更加明白了其重要性,也是通过这次的大作业,我去探索一些未知的或是尚未深刻理解的东西。二、思想的转变,、这次大作业给了我们很大的发挥空间,可以自己来设计电路,自己来仿真测试,至此知道了以后做事做东西都不能老靠着前面人,要做到能自己解决的就自己解决,这样才能提高自学能力,这是很有必要的。三、发现理论知识的不足,之前自己总觉得学这个没有用,学那个没处用,现在做过自己的小设计就发现其实我们所上课程,所学知识都用的上,还不够呢。做设计就是需要建立在扎实的理论知识基础上,这样才不会脱离实际,也更加的有目的,以后上课可得认真听讲,做好随堂笔记。 总之,这次大作业让我收获颇丰,同时也让我发现了自身的诸多不足。我将通过学习、实践等方式不断提高,努力改善,克服那些在学习、获得知识的前进道路上的障碍。在今后的学习、工作中有更大的收获,在不断学习,探索中,实现自己的人身价值!