《单片机课设报告.doc》由会员分享,可在线阅读,更多相关《单片机课设报告.doc(24页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、- -单片机原理与接口技术课程设计报告课程设计名称:医院住院病人呼叫器设计学院: 信息工程学院班级:通信0802班:马 滔学号:2021001307同组人:童 辉- word.zl- -目 录一、课题名称及设计技术指标21课题名称22设计技术指标2二、总体方案设计与论证2三、程序设计及调试31主程序32T0中断:53暂停程序64重新显示中断7四、电路设计及器件选择81电路设计主图82器件清单83器件简介880C518七段数码管11蜂鸣器12复位电路13电源电路13五、电路仿真13六、调试运行及结果14七、课设心得14八、参考资料15九、源程序代码16- word.zl- -一、课题名称及设计技
2、术指标1课题名称医院住院病人呼叫器设计2设计技术指标1) 能同时检测8个床位的病人呼叫2) 显示病人呼叫总数3) 循环显示呼叫病人的床号4) 可以暂停显示5) 具有重新显示功能6在复位电路的作用下,复位单片机7使暂停功能的优先级高于重显功能,重显功能优先级高于定时功能二、总体方案设计与论证本方案选用80c51单片机,P1口依次连接病人床位,实时检测P1口的信号。假设与前一次的信号不一样,那么判断端口是否为0。如果没有病人呼叫那么关蜂鸣器;如果有病人呼叫翻开蜂鸣器提示一户人员, 统计病人总数同时显示总数,统计病人床位并保存。开启定时器进展循环显示床号,在显示的空闲时间继续检测P1口的端口状态。如
3、果有病人呼叫或者呼叫完毕重新开场统计总数和床号,显示床号和总数。重新显示时,只循环显示一次床号和总数。利用外中断1实现中断跳转执行重显程序。暂停功能,用外中断0引入,通过检查P3.3的值完毕暂停。使用74ls373锁存器驱动七段数码管显示器,可以不用单片机实时刷新七段数码管显示。通过输出码表中的值显示相应的数字。51单片机拥有5个中断源,其中两个定时/计数器中断,两个外部中断。能够实现上述对单片机的控制功能。同时可以通过设定PI存放器的值设定优先级。本方案可以通过参加接口扩展芯片,扩展检测病人数量。同时参加T1中断后可以实现多种蜂鸣声音报警。具有很强的扩展能力。具体思路详见程序流程图三、程序设
4、计及调试在waves6000按照流程图依次编写主程序、T0中断程序、暂停程序和重新显示程序。进展编译调试。程序附在最后程序流程图如下1主程序:2T0中断:3暂停程序:4重新显示中断:四、电路设计及器件选择1电路设计主图2器件清单器件名称80c51单片机晶体管蜂鸣器电阻七段数码管电容开关220v交流电或者5v直流电源3器件简介80C5180C51单片机属于MCS-51系列单片机,由Intel公司开发,其构造是8048的延伸,改良了8048的缺点,增加了如乘MUL、除DIV、减SUBB、比拟PUSH、16位数据指针、布尔代数运算等指令,以及串行通信能力和5个中断源。采用40引脚双列直插式DIPDu
5、al In Line Package,有128个RAM单元及4K的ROM。80C51有两个16位定时计数器,两个外中断,两个定时计数中断,及一个串行中断,并有4个8位并行输入口。80C51部有时钟电路,但需要石英晶体和微调电容外接,本系统中采用12MHz的晶振频率。由于80C51的系统性能满足系统数据采集及时间精度的要求,而且产品产量丰富来源广,应用也很成熟,故采用来作为控制核心。 选型表特性 y 80C51 核心处理单元4k 字节FLASH 89C51X2 8k 字节FLASH 89C52X2 16k 字节FLASH 89C54X2 32k 字节FLASH 89C58X2 128 字节RAM
6、 89C51X2 256 字节RAM 89C52X2/54X2/58X2 布尔处理器Vss(20脚):接地VCC40脚: 主电源+5VXTAL119脚:接外部晶体的一端。在片它是振荡电路反相放大器的输入端。在采用外部时钟时,对于HMOS单片机,该端引脚必须接地;对于CHMOS单片机,此引脚作为驱动端。XTAL218脚: 接外部晶体的另一端。在片它是一个振荡电路反相放大器的输出端,振荡电路的频率是晶体振荡频率。假设需采用外部时钟电路,对于HMOS单片机,该引脚输入外部时钟脉冲;对于CHMOS单片机,此引脚应悬浮。RST9脚: 单片机刚接上电源时,其部各存放器处于随机状态,在该脚输入24个时钟周期
7、宽度以上的高电平将使单片机复位RESETPSEN29脚: 在片外程序存储器时,此端输出负脉冲作为存储器读选通信号。CPU在向片外存储器取指令期间,PSEN信号在12个时钟周期中两次生效。不过,在片外数据存储器时,这两次有效PSEN信号不出现。PSEN端同样可驱动8个LSTTL负载。我们根据PSEN、ALE和XTAL2输出端是否有信号输出,可以判别80C51是否在工作。ALE/PROG30脚:在片外程序存储器时,此端输出负脉冲作为存储器读选通信号。CPU在向片外存储器取指令期间,PSEN信号在12个时钟周期中两次生效。不过,在片外数据存储器时,这两次有效PSEN信号不出现。PSEN端同样可驱动8
8、个LSTTL负载。我们根据PSEN、ALE和XTAL2输出端是否有信号输出,可以判别80C51是否在工作。EA/VPP31脚: 当EA端输入高电平时,CPU从片程序存储器地址0000H单元开场执行程序。当地址超出4KB时,将自动执行片外程序存储器的程序。当EA输入低电平时,CPU仅片外程序存储器。在对87C51EPROM编程时,此引脚用于施加编程电压VPP。输入/输出引脚:1P0.0P0.7 (39脚32脚)2P1.0P1.7 1脚8脚3P2.0P2.7 26脚21脚七段数码管蜂鸣器蜂鸣器是一种一体化构造的电子讯响器,采用直流电压供电,广泛应用于计算机、打印机、复印机、报警器、电子玩具、汽车电
9、子设备、机、定时器等电子产品中作发声器件。 ;蜂鸣器主要分为压电式蜂鸣器和电磁式蜂鸣器两种类型。蜂鸣器在电路中用字母“H或“HA旧标准用“FM、“LB、“JD等表示。蜂鸣器的构造原理1压电式蜂鸣器 压电式蜂鸣器主要由多谐振荡器、压电蜂鸣片、阻抗匹配器及共鸣箱、外壳等组成。有的压电式蜂鸣器外壳上还装有发光二极管。 多谐振荡器由晶体管或集成电路构成。当接通电源后1.515V直流工作电压,多谐振荡器起振,输出1.52.5kHZ的音频信号,阻抗匹配器推动压电蜂鸣片发声。 压电蜂鸣片由锆钛酸铅或铌镁酸铅压电瓷材料制成。在瓷片的两面镀上银电极,经极化和老化处理后,再与黄铜片或不锈钢片粘在一起。 2电磁式蜂
10、鸣器 电磁式蜂鸣器由振荡器、电磁线圈、磁铁、振动膜片及外壳等组成。 接通电源后,振荡器产生的音频信号电流通过电磁线圈,使电磁线圈产生磁场。振动膜片在电磁线圈和磁铁的相互作用下,周期性地振动发声。复位电路电源电路五、电路仿真采用PROTEUS仿真软件效果非常好。六、调试运行及结果当床2和4开关按下去后总数显示为2,蜂鸣器报警。循环显示床号2、4.。当按下显示开关,开场重新显示,显示完后继续主程序的执行。当按下暂停按键,暂停显示,数值保持不变。关闭床2的开关后重新显示总数和床号1与4。当全部关闭后,蜂鸣器关闭,显示总数为0,床号为0。与设计技术要求相符。七、课设心得医院住院病人呼叫器作为单片机实际
11、应用的一个例子,在日常生活中发挥着非常重要的作用。从此可以看出单片机在日常生活中得到广泛的运用。要实现意见具体的事件判断和做出反响,实现自动化。万事开头难。选定课题后,确定方案的时候让人很头痛。由于以前学习过汇编语言,所以对汇编语言没有多大困难。主要是算法确实定。通过查阅资料和自习阅读教材深刻体会单片机硬件运行原理后,思路逐渐清晰。记得花了两个晚上构思出整体算法,画出流程图。流程图在编写程序时非常必要。它可以明确思路,便于对程序进度的把握。在画流程图时选定各个端口的功能和相应器件的选择。这个过程是同步进展的。通过这次编程提高了我的编程能力和是通过程序对外部器件的控制。硬件电路设计。由于采用锁存
12、器驱动数码管的显示,这样就不用单片机实时刷新,只有当有改变时才更新数据。一些经典电路,如:电源和复位电路,我是通过查阅得到的。由于使用PROTEUS软件不是很熟练,在电路设计的过程中又学习了该软件的使用。熬夜设计电路,是我第二天成为熊猫超人,但当最后电路仿真的结果出现在眼前时,一切的付出都是值得的。与童辉的合作使得课设的进度大大加快,互相补充思路的缺陷。设计电路选择器件。这次课设恰逢“考试周,所以时间不多,做的还不够好。还可以对本设计进展扩展,如:采用无线通信,检测更多床位,通过驱动多媒体部件实现更多的功能。课设就是一次工业设计,从工程建立、方案确定、程序编写、硬件电路设计到最后产品的完成。单
13、片机的课设,我收获了很多,对单片机的认识更加透彻,感受了它在实际生活中的运用。付出就有回报。八、参考资料1?单片机原理与接口技术?牛昱光主编2?微型计算机原理与应用?学坚 周斌 编著- word.zl- -九、源程序代码主程序:ORG 0000HAJMP MAINORG 0003H LJMP PAUSEORG 000BHLJMP DINGSHI ORG 0013HLJMP SHOWORG 0030HMAIN:;显示编码初始化MOV 40H,#3FHMOV 41H,#06HMOV 42H,#5BHMOV 43H,#4FHMOV 44H,#66HMOV 45H,#6DHMOV 46H,#7DHMO
14、V 47H,#07HMOV 48H,#7FHMOV TMOD,#01HMOV TH0,#3CHMOV TL0,#0B0HSETB EA;开中断,并设定优先级SETB ET0SETB EX0SETB IT0SETB PX0SETB PX1MOV R7,#00HMOV R4,#00HMOV R1,#21HSAO1: MOV R5,P1 MOV A,R5 CLR C SUBB A,R7 JZ SAO1BTAO: MOV A,R5 ;检测到变化时,进展下一次重复判断显示 MOV R7,A JNZ NOSO CLR P2.7 ;关蜂鸣器SETB P2.1 ;显示总数0MOV P0,#3FHCLR P2.
15、1SETB P2.2 ;显示床号为0MOV P0,#3FHCLR P2.2AJMP SAO1;JI ZONG SHUNOSO: MOV R2,#8 MOV A,R7JI: ANL A,#01HJZ NOJI INC R4;加总数MOV 31H,A ;保存A中的值 MOV A,#9H CLR C SUBB A,R2 MOV R1,A;床号 INC R1MOV A,31H ;恢复ANOJI: RR ADJNZ R2,JI ;总数显示 MOV A,R4ADD A,#40HMOV R0,ASETB P2.1MOV P0,R0CLR P2.1 SETB P2.7 ;开蜂鸣MOV TMOD,#01H ;T
16、0初始化 MOV TH0,#3CH MOV TL0,#0B0H MOV R1,#21HSETB TR0 ;启动T0SMO:MOV A,R1 ;床号显示ADD A,#40HSETB P2.2MOV P0,ACLR P2.2 MOV 33H,#00H ;初始化中断返回标志,JCE:MOV A,33HCJNE A,#00H,SM0 ;T0中断返回显示床号MOV R5,P1 MOV A,R5 CLR C SUBB A,R7 JZ JCE CLR TR0 LJMP BTAO ;检测到变化,跳至开场重新判断显示 ;主程序完毕- word.zl- -暂停程序:; PAUSEORG 0900HPAUSE: C
17、LR TR0CLR EAPUSH PSW PUSH ACCMOV C,P3.3 ;检查P3.3是否恢复为0NCH:JNC NCHPOP ACCPOP PSWSETB EASETB TR0RETIT0中断程序:; T0中断 ORG 0A00HDINGSHI: PUSH PSW PUSH ACC MOV TH0,#3CH MOV TL0,#0B0H MOV 33H,#01H ;中断返回标志MOV A,R4ADD A,#20HMOV 32H,A MOV A,R1CJNE A,32H,BUXUN ;如果显示到最后一个床号那么循环显示 MOV R1,#21HAJMP TC ;循环开场显示IBUXUN:I
18、NC R1TC: POP ACC POP PSW RETI重新显示程序:;SHOWORG 0B00HSHOW:CLR PX1 ;使T0中断能引发中断MOV 34H,R1PUSH 33HMOV 35H,R4MOV 36H,R0PUSH ACCPUSH PSWMOV TMOD,#01H ;定时器T0初始化MOV TH0,#3CHMOV TL0,#0B0H; ZONG XIANMOV A,R4ADD A,#40HMOV R0,ASETB P2.1MOV P0,R0CLR P2.1 MOV R1,#21HSETB TR0 ;开定时SSS:MOV 33H,#00H ;中断返回标志位初始化MOV A,R1 ;床号显示ADD A,#40HSETB P2.2MOV P0,ACLR P2.2DJNZ R4,TTTTSSSS:MOV A,33HCJNE A,#00H,SSS ;T0中断返回,显示床号AJMP SSSSTTTT:POP PSWPOP ACCPOP 33HMOV R1,34H MOV R4,35H MOV R0,36HSETB PX1RETI- word.zl