




已阅读5页,还剩17页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
22单片机课程设计目录一、设计要求21、环境需求22、功能需求2二、软件设计3三、硬件设计71、各芯片使用及说明72、硬件设计原理133、实验线路连接14四、程序调试与运行15五、课设小结15附A:参考资料16附B:源程序17附C:硬件原理图22一、设计要求1、环境需求 硬件方面: 一台计算机(Pentium 4 CUP 2.40GHZ,256MB 内存)、一个DVCC实验箱,主要用到了如下的芯片:一片89C51、一片8155, 6个共阳的七段发光二极管(由8155驱动),一个蜂鸣片,发光二极管2只等。 软件方面:WINDOWS XP Professional及以上dv88h实验系统,DVCC实验软件系统。2、功能需求基本功能需求如下:1)每10min用较柔和的声音提醒一次值班者,值班者按某一键后复位,计时重新开始。2)若计到11min时无人按复位键,则以较急促的声音报警,黄灯闪烁,并每隔10min计数器加1。3)当到60min时红灯闪烁,并仧尖锐的声音持续报警。以LED显示时、分、秒。则记录下这个时刻,以便管理者查看。显示格式:时、分、秒。二、软件设计本次课程设计采用的主要是模块化的设计思想,首先对夜间防睡控制/纪录器的每个功能模块进行详细的需求分析,需求分析完之后确定各个模块功能之后,建立各个需求的功能模块图,最后细化每个模块的功能。根据细化后的功能模块图对每个模块编写相应的子程序,对每个功能模块进行测试,在成功测试每一个功能模块之后,然后进行整个程序的测试。夜间防睡控制的功能模块图如下:夜班防睡控制 / 记录器计时模块发声控制记录控制时间查询关中断保存现场信息SECOND60分钟MINUTE加1MINUTE60秒钟SECOND=0小时HOUR加1分钟MINUTE=0显示时间小时HOUR=10?1-TR0 (开定时器T0)产生柔和发声脉冲COUNT=20?产生急促发声脉冲,黄灯亮按下复位键?COUNT=30?按下复位键?YNYNY继续计时COUNT=0YNY时间记录和查看时间COUNT=30S,记录该时刻的时间存放在50H,51H,52H中判断是否按下查看记录时间键1-F0 (标记查看键按下)继续计时NY查看计时 / 次数F0 = = 1显示记录时间 / 次数F0 = = 0显示当前时间NYNY三、硬件设计1、各芯片使用及说明 本次夜间防睡系统主要使用了的芯片为:80C51(CPU),8155。MCS-51 CPU中的位处理器,是一个完整的1位微计算机,它有自己的CPU、位寄存器、I/O口和指令集。这个1位机在开关决策、逻辑电路仿真 、工业控制方面很有效;而8位机在数据采集、运算处理有优势。二者相辅相成,是单片机技术上的1个突破。本次实验中主要使用了该CPU的主要使用情况及介绍如下:(A) 单片机中主要的端口主要使用情况如下:1) P0口:双向8位三态I/O口,此口为地址总线(低8位)及数据总线分时复用口,可带8个LSTTL负载。2) P1口:8位准双向I/O口,可带4个 LSTTTL负载。3) P2口:8位准双向I/O口,与地址总线 (高8位)复用。4) P3口:8位准双向I/O口,双功能复用口。 本次实验中主要用到了P0口的情况如下:P0.4作为复位键,提醒值班人员 P0.5查看值班人员睡眠次数P0.6查看夜班人员开始睡眠时间P0.0控制黄灯信号P0.1控制红灯信号P0.7作为喇叭发声的脉冲频率输出(B)定时器(T0 / T1) 定时器/计数器简称定时器,8051单片机内部有2个16位的可编程定时/计数器:定时器0(T0)和定时器1(T1)。可编程是指其功能(如工作方式、定时时间、启动方式等)可以由指令来确定和改变。 在定时器/计数器中除了有两个16位的计数器之外,还有2个特殊功能寄存器(控制寄存器TCON和方式寄存器TMOD)。 该硬件图如下:(C) 数据存储器(RAM)片内为128 B,片外最多可外扩64 KB。数据存储器来存储单片机运行期间的工作变量、运算的中间结果、数据暂存和缓冲、标志位等。片内的128 B的RAM,以高速RAM的形式集成在单片机内,可以加快单片机运行的速度,而且这种结构的RAM还可以降低功耗。本次程序中主要使用的内存情况如下:片内:R0R7(0区),30H以后的部分单元。扩展的数据存储存储器:30H3FH作为显示单元内容的存储。(D) 特殊功能寄存器(SFR)特殊功能寄存器共有21个,用于CPU对片内各功能部件进行管理、控制、监视。实际上是一些控制寄存器和状态寄存器,是一个具有特殊功能的RAM区。(D)控制显示的芯片介绍如下:8155芯片使用了地址为0FF20H,0FF21,0FF22H,0FF23H地址。主用用来驱动LED显示和扫描键盘。扫描键盘时,各个端口的使用情况如下:0FF20H为输出口,用来扫描字位口。在AL中送0,使键盘所有的行线输出为0,用来检测键盘的输入。0FF22H为输入口,用来扫描键盘输入。使用IN指令,从端口地址中读取输入键盘列号。在驱动LED显示的时候,各个端口的使用情况如下:0FF22H(B口)作为输出口,主要用来控制LED显示的字型码,驱动LED显示字型(09)。0FF21(A口)作为输出口,也叫字位口,用来控制第几个LED显示屏显示。(E)8051的各个引脚介绍如下: 电源引脚 电源引脚接入单片机的工作电源。Vcc(40引脚):接+5V电源。Vss(20引脚):接地。 时钟引脚 2个时钟引脚XTAL1、XTAL2外接晶体与片内的反相放大器构成了1个振荡器,它为单片机提供了时钟控制信号。2个时钟引脚也可外接独立的晶体振荡器。 XTAL1(19引脚):接外部晶体的1个引脚。该引脚内部是1个反相放大器的输入端。这个反相放大器构成了片内振荡器。如果采用外接晶体振荡器时,此引脚应接地。 XTAL2(18引脚):接外部晶体的另一端,在该引脚内部接至内部反相放大器的输入端。若采用外部时钟振荡器时,该引脚接收时钟振荡器的信号,即把此信号直接接到内部时钟发生器的输入端。 RST/Vpd(9引脚)RST(RESET)是复位信号输入端,高电平有效。当单片机运行时,在此引脚加上持续时间大于2个机器周期(24个时钟振荡周期)的高电平时,就可以完成复位操作。在单片机正常工作时,此引脚应为 =0.5V低电平。Vpd为本引脚的第二功能,即备用电源的输入端。当主电源Vcc发生故障,降低到某一规定值的低电平时,将+5V电源自动接入RST端,为内部RAM提供备用电源,以保证片内RAM中的信息部丢失,从而使单片机在复位后能继续正常运行。 ALE/PROG(Address Latch Enable/PROGramming,30引脚) ALE引脚输出为地址锁存允许信号,当单片机上电正常工作后,ALE引脚不断输出正脉冲信号。当单片机访问外部存储器时,ALE输出信号的负跳沿用于单片机发出的低8位地址经外部锁存器锁存的锁存控制信号。即使不访问外部锁存器,ALE端仍有正脉冲信号输出,此频率为时钟振荡器频率fosc的1/6。如果想初步判断单片机芯片的好坏,可用示波器查看ALE端是否有正脉冲信号输出。如果有脉冲信号输出,则单片机基本上是好的。 PROG为本引脚的第二功能。在对片内EPROM型单片机编程写入时,此引脚作为编程脉冲输入端。 PSEN(Program Strobe Enable,29引脚) 程序存储器允许输出控制端。在单片机访问外部程序存储器时,此引脚输出脉冲负跳沿作为读外部程序存储器的选通信号。此引脚接外部程序存储器的OE端。PSEN端可以驱动8个LS型TTL负载。 EA/Vpp(Enable Address/Voltage Pulse of Programming,31引脚) EA功能为内外程序存储器选择控制端。 当EA引脚为高电平时,单片机访问片内程序存储器,但在PC(程序计数器)值超过0FFFH时,即超出片内程序存储器的4KB地址范围时,将自动转向执行外部程序存储器内的程序。 当EA引脚为低电平时,单片机则只访问外部程序存储器,不论是否有内部程序存储器。对于8031来说,因其无内部程序存储器,所以该引脚必须接地,这样只能选择外部程序存储器。 Vpp为本引脚的第二功能。在对EPROM型单片机8751片内EPROM固化编程时,用于施加较高的编程电压。对于89C51,则加在Vpp引脚的编程电压为+12V或+5V。2、硬件设计原理 本次夜间防睡控制 / 记录的课程设计主要是利用了8031这块微处理器做为控制器来控制整个程序的执行。本次课程设计除了控制程序执行的运算器和控制器之外,主要使用了该芯片的两个定时器。 其中定时器T0主要用来做为计时的控制,在该程序中用来产生100ms频率的脉冲,每次计数10次时为1s中。采用的定时器T0的方式一。装入的计数初值为:3CB7H。每次计数完成之后执行中断程序时要重新装入计数初值。 而定时器T1主要用来产生发生频率的控制,在该程序中用来产生不同频率的脉冲。当然人儿能分辨的频率范围为:20HZ20000HZ,所以必须保证产生的频率在这个范围之内。比如说,当频率为500HZ时,该频率范围的声音比较柔和。我采用的该定时器T1的工作方式二,该方式能够自动重新装入计数初值。喇叭的发声是在计时30s值班人员还没有按键的情况下,开始发声的,如果有人按复位键的话,喇叭发声停止,并且重新开始计数。 显示部分主要使用8155芯片来控制显示。显示的LED采用的是动态扫描的显示方式动态显示。各个端口的使用见硬件介绍部分。3、实验线路连接本次课程设计的连线比较简单,采用的连线如下:1)P0.0连接开关SW1;2)P0.1连接开关SW2;3)P0.2连接开关SW3;4)P0.7连接开关SW4;5)P0.4连接开关SW5;6)P0.5连接开关SW6。四、程序调试与运行本次实时时钟设计主要采用的是模块化的设计思想。所以首先必须对每一个模块进行单独的测试连接。程序中测试的过程如下所述。首先对计时单元进行测试。首先编好计时单元模块之后进行调试。看计时的脉冲是否准确,通过P1.3引脚输出的脉冲;连接示波器,观察屏幕上显示的脉冲频率,看是否为100ms的脉冲,结果频率为100ms,说明该频率通过了测试阶段。接下来观察时钟的计时是否准确。对秒中进行测试,观察秒钟的显示是否正确;如果9加1是为10秒;如果59加1秒,则应为1分钟;如果59分,59秒加1秒中,则为1小时;通过观察所有的测试均能够通过测试。所有计时均能够通过测试的则整个计时功能模块均通过了测试。然后继续测试。测试发声模块。当10s中如果能够听到发出柔和的声音,则通过了测试;按下键喇叭停止了发声。当发生之后没有按下复位键且到了20s的话,说明值班人员还在睡觉,则发出急促的声音,并且黄灯同时闪烁;如果到了30s中还没有按键的话,则发出尖锐的声音,同时红灯开始闪烁,黄灯停止计时,直到值班人员醒来之后,在按复位键为止,同时值班人员可以查看红灯开始闪烁的时间。如果这些都通过了测试,则整个程序就通过了测试,否则的话逐个测试各个功能模块的程序。五、课设小结 通过本次单片机课程设计的实践环节,我学会了不少东西。本次课设让我对单片机原理及应用这一门课程有了更深刻的了解和认识。这是一门综合性很强的课程,要能够顺利的实现实时时钟的全部功能,不仅要把这一门课程的基本理论学好,还要有良好的编程基础,尤其是汇编程序的编写。如果没有这些基石作为铺垫,我想要夜间防睡控制的功能,将会寸步难行。当然理论基础固然重要,但是如果没有较强的实践能力的话,我想要能够实现这些基本功能也会很困难的。实验的过程中不可能是一帆风顺的。在遇到问题的时候我们总是要去不断的思考,不断的探索。如果没有刻苦钻研的精神,半途而费,那么我们将会没有收获,问题将不能得到解决。我想这次课程设计不仅让我学到了更多的知识,更重要的是学会了如何去思考问题,解决问题。实践出真知。通过本次课程设计我想在以后的学习和工作过程中我会受益匪浅。 最后,我想感谢老师的指导及帮助过我的同学。附A:参考资料1 单片机原理及应用 张毅刚 主编 高等教育出版社 2 单片机原理及应用实验指导书 华东交通大学3 电子电路Protel 98实用教程 邓胡滨 中国水利水电出版社附B:源程序ORG 0000HLJMP MAIN; 主程序ORG 000BHLJMP SLEEP; 睡眠控制和记录ORG 001BHLJMP ALARM ;发声中断子程序ORG 0030HPORT EQU 0FF20H ; 8155各端口地址PORTA EQU 0FF21HPORTB EQU 0FF22HPORTC EQU 0FF23HDISP0 EQU 30H ;定义显示缓冲区DISP1 EQU 31HDISP2 EQU 32HDISP3 EQU 33HDISP4 EQU 34HDISP5 EQU 35HHOUR EQU 3CH ;定义计时缓冲区MIN EQU 3DHSEC EQU 3EHMSEC EQU 3FHCOUNT EQU 43H ;统计计时时间MAIN: MOV SP,#50H MOV DPTR,#PORT MOV A,#03H ;8155初始化 MOVX DPTR,A MOV COUNT,#00H MOV R7,#10H MOV R0,#DISP0 CLR ALOOP: MOV R0,A INC R0DJNZ R7,LOOP ;显示缓冲区初始化;设置定时中断MOV TMOD,#21H;定时器T1用来发声控制,定时器T0用来控制时钟。;T1工作方式为二方式;T0工作方式为一方式 MOV TH0,#3CH MOV TL0,#0B7H SETB TR0 SETB ET0 MOV TH1,#06H MOV TL1,#06H SETB ET1 SETB EABEGIN: ;定义十分秒开始计时为00:00:00MOV HOUR,#00H MOV SEC,#00H MOV MIN,#00HHERE1: LCALL DISPLAY AJMP HERE1;*;发声中断程序ALARM:CPL P1.3RETI;*SLEEP: ;重新装入计数初值。MOV TL0, #0B7HMOV TH0, #3CH;保护现场 PUSH PSWPUSH ACC INC MSEC ;100ms加1 MOV A, MSEC K1:JNB P1.4,WW1SETB F0;判断1s钟到吗?WW1:CJNE A, #0AH, DONE ;计数值加1 * INC COUNT MOV A,COUNT CLR CCJNE A,#10,L2 SETB TR1 ;启动定时器,开始发声CLR C;判断是否按下复位键吗? L2: JNB P1.2,L3 CLR TR1 MOV COUNT,#00 SJMP L1L3: CJNE A,#20,L4 L4: JC L1 CJNE A,#30,SS:CJNE A,#31,L5 MOV 01H,HOUR MOV 02H,MIN MOV 03H,SECL5: JC L6;黄灯亮 CPL P1.0 MOV TH1,#50H MOV TL1,#50HSJMP L1;红灯亮L6: CPL P1.1 MOV TH1,#80H MOV TL1,#80HL1: MOV MSEC, #00H MOV A, SEC ADD A, #01H DA A MOV SEC,A CJNE A,#60H, DONE MOV SEC , #00H MOV A, MIN ADD A, #01H DA A MOV MIN , A CJNE A, #60H, DONE MOV MIN, #00H MOV A, HOUR ADD A, #01H DA A MOV HOUR, A CJNE A,#24H, DONE MOV HOUR, #00HDONE: POP ACC POP PSW RETI;*拆字程序*SEPA: PUSH PSW PUSH ACC SETB RS0 MOV R0, #DISP5 JNB P1.4,S1 MOV COUNT,#00H CLR TR1 MOV A, 03H ACALL SEPA1 MOV A, 02H ACALL SEPA1 MOV A, 01H ACALL SEPA1 SJMP S2 S1: MOV A, SEC ACALL SEPA1 MOV A,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 强筋健骨丸与钙片协同效应-洞察及研究
- 2023年公办幼儿园招聘合同制工作人员报名登记表
- 土木专业招聘试题模板及答案
- 专业眼科测试题及答案解析
- 基础俄语考研真题及答案
- 2025至2030中国零点夹紧系统行业项目调研及市场前景预测评估报告
- 销售基本礼仪培训
- 应急基础知识培训
- 党员生日活动策划
- 行政人事部年度工作总结计划
- 质子和重离子的区别
- 《GMP实务教程》 完整全套教学课件 项目1-14 GMP基础知识-药品生产行政检查
- 第二学期六年级家长会PPT名师优质课获奖市赛课一等奖课件
- 房屋租赁交接家私清单
- 公对私转账借款协议书
- 人教鄂教版六年级科学上册知识点总结
- 宇宙中的地球 1.3地球的历史(第1课时)课件
- 静脉治疗现状与发展趋势
- 如何书写个案护理报告
- 一线医务人员登记表(模板)
- GB/T 905-1994冷拉圆钢、方钢、六角钢尺寸、外形、重量及允许偏差
评论
0/150
提交评论