单片机课设报告.doc

上传人:文库蛋蛋多 文档编号:4147756 上传时间:2023-04-07 格式:DOC 页数:18 大小:141KB
返回 下载 相关 举报
单片机课设报告.doc_第1页
第1页 / 共18页
单片机课设报告.doc_第2页
第2页 / 共18页
单片机课设报告.doc_第3页
第3页 / 共18页
单片机课设报告.doc_第4页
第4页 / 共18页
单片机课设报告.doc_第5页
第5页 / 共18页
点击查看更多>>
资源描述

《单片机课设报告.doc》由会员分享,可在线阅读,更多相关《单片机课设报告.doc(18页珍藏版)》请在三一办公上搜索。

1、 课程设计医院住院病人呼叫器设计学校:内蒙古农业大学学院:机电工程学院班级:10级农电五班姓名及学号:刘 鑫100514757 师茗绮100514777指导老师:吴利斌目 录一、课题名称及设计技术指标31)课题名称32)设计技术指标3二、总体方案设计与论证3三、程序设计及调试31)主程序42)T0中断:63)暂停程序74)重新显示中断8 5)复位电路9四、电路设计及器件选择91)电路设计主图92)器件清单10五、电路仿真10六、调试运行及结果11七、课设心得11八、参考资料12九、源程序代码13一、课题名称及设计技术指标1)课题名称医院住院病人呼叫器设计2)设计技术指标1) 能同时检测8个床位

2、的病人呼叫2) 显示病人呼叫总数3) 循环显示呼叫病人的床号4) 可以暂停显示5) 具有重新显示功能6)在复位电路的作用下,复位单片机7)使暂停功能的优先级高于重显功能,重显功能优先级高于定时功能二、总体方案设计与论证本方案选用80c51单片机,P1口依次连接病人床位,实时检测P1口的信号。若与前一次的信号不一样,则判断端口是否为0。如果没有病人呼叫则关蜂鸣器;如果有病人呼叫打开蜂鸣器提示一户人员, 统计病人总数同时显示总数,统计病人床位号码并保存。开启定时器进行循环显示床号,在显示的空闲时间继续检测P1口的端口状态。如果有病人呼叫或者呼叫结束重新开始统计总数和床号,显示床号和总数。重新显示时

3、,只循环显示一次床号和总数。利用外中断1实现中断跳转执行重显程序。暂停功能,用外中断0引入,通过检查P3.3的值结束暂停。使用74ls373锁存器驱动七段数码管显示器,可以不用单片机实时刷新七段数码管显示。通过输出码表中的值显示相应的数字。51单片机拥有5个中断源,其中两个定时/计数器中断,两个外部中断。能够实现上述对单片机的控制功能。同时可以通过设定PI寄存器的值设定优先级。本方案可以通过加入接口扩展芯片,扩展检测病人数量。同时加入T1中断后可以实现多种蜂鸣声音报警。具有很强的扩展能力。具体思路详见程序流程图三、程序设计及调试在waves6000按照流程图依次编写主程序、T0中断程序、暂停程

4、序和重新显示程序。进行编译调试。程序附在最后程序流程图如下1)主程序:2)T0中断:3)暂停程序:4)重新显示中断5)复位电路四、电路设计及器件选择1)电路设计主图2)器件清单器件名称80c51单片机晶体管蜂鸣器电阻七段数码管电容开关220v交流电或者5v直流电源、五、电路仿真采用PROTEUS仿真软件效果非常好。六、调试运行及结果当床2和4开关按下去后总数显示为2,蜂鸣器报警。循环显示床号2、4.。当按下显示开关,开始重新显示,显示完后继续主程序的执行。当按下暂停按键,暂停显示,数值保持不变。关闭床2的开关后重新显示总数和床号1与4。当全部关闭后,蜂鸣器关闭,显示总数为0,床号为0。与设计技

5、术要求相符。七、课设心得医院住院病人呼叫器作为单片机实际应用的一个例子,可以见得单片机在我们的生活中的作用之大。万事开头难。选定课题后,确定方案的时候让人很头痛。由于以前学习过汇编语言,所以对汇编语言没有多大困难。主要是算法的确定。通过咨询老师和同学深刻体会单片机硬件运行原理后理清思路。流程图在编写程序时非常必要。它可以明确思路,便于对程序进度的把握。在画流程图时选定各个端口的功能和相应器件的选择。这个过程是同步进行的。通过这次编程提高了我的编程能力和是通过程序对外部器件的控制。硬件电路设计。由于采用锁存器驱动数码管的显示,这样就不用单片机实时刷新,只有当有改变时才更新数据。一些经典电路,如:

6、复位电路,我是通过查阅得到的。由于使用PROTEUS软件不是很熟练,在电路设计的过程中又学习了该软件的使用。但当最后电路仿真的结果出现在眼前时,一切的付出都是值得的。八、参考资料1)单片机原理与接口技术牛昱光主编2)微型计算机原理与应用郑学坚 周斌 编九、源程序代码主程序: ORG 0000H AJMP MAIN ORG 0003H LJMP PAUSE ORG 000BH LJMP DINGSHI ORG 0013H LJMP SHOW ORG 0030HMAIN: ;显示编码初始化 MOV 40H,#3FH MOV 41H,#06H MOV 42H,#5BH MOV 43H,#4FH MO

7、V 44H,#66H MOV 45H,#6DH MOV 46H,#7DH MOV 47H,#07H MOV 48H,#7FH MOV TMOD,#01H MOV TH0,#3CH MOV TL0,#0B0H SETB EA;开中断,并设定优先级 SETB ET0 SETB EX0 SETB IT0 SETB PX0 SETB PX1 MOV R7,#00H MOV R4,#00H MOV R1,#21HSAO1: MOV R5,P1 MOV A,R5 CLR C SUBB A,R7 JZ SAO1BTAO: MOV A,R5 ;检测到变化时,进行下一次重复判断显示 MOV R7,A JNZ N

8、OSO CLR P2.7 ;关蜂鸣器 SETB P2.1 ;显示总数0 MOV P0,#3FH CLR P2.1 SETB P2.2 ;显示床号为0 MOV P0,#3FH CLR P2.2 AJMP SAO1 ;JI ZONG SHUNOSO: MOV R2,#8 MOV A,R7JI: ANL A,#01H JZ NOJI INC R4;加总数 MOV 31H,A ;保存A中的值 MOV A,#9H CLR C SUBB A,R2 MOV R1,A;床号 INC R1 MOV A,31H ;恢复ANOJI: RR A DJNZ R2,JI ;总数显示 MOV A,R4 ADD A,#40H

9、 MOV R0,A SETB P2.1 MOV P0,R0 CLR P2.1 SETB P2.7 ;开蜂鸣 MOV TMOD,#01H ;T0初始化 MOV TH0,#3CH MOV TL0,#0B0H MOV R1,#21H SETB TR0 ;启动T0SMO:MOV A,R1 ;床号显示 ADD A,#40H SETB P2.2 MOV P0,A CLR P2.2 MOV 33H,#00H ;初始化中断返回标志,JCE: MOV A,33H CJNE A,#00H,SM0 ;T0中断返回显示床号MOV R5,P1 MOV A,R5 CLR C SUBB A,R7 JZ JCE CLR TR

10、0 LJMP BTAO ;检测到变化,跳至开始重新判断显示 ;主程序结束暂停程序:; PAUSEORG 0900HPAUSE: CLR 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

11、A,32H,BUXUN ;如果显示到最后一个床号则循环显示 MOV R1,#21HAJMP TC ;循环开始显示IBUXUN:INC 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,#3CH MOV 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

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 办公文档 > 其他范文


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号