1、多路呼叫器课程设计 课程设计说明书2011/2012 学年第 2 学期学 院:电子与计算机科学技术学院专 业:微电子学学 生 姓 名: 学 号: 课程设计题目:多路呼叫器起 迄 日 期:2012年5月 28日 2012年6月22日课程设计地点:电子科学与技术专业实验室指 导 教 师: 系主任: 下达任务书日期: 2012 年 5 月 28日目录一、 课程设计目的.3二、 课程设计内容与要求.3三、 设计方案.31、整体设计. .32、硬件设计. .42.1 电路原理图. .42.2 元器件列表. .63、软件设计. .63.1程序流程图. .63.2程序源代码. .7四、 实验结果. .104
2、.1仿真图与仿真结果. .104.2印刷板图. . .144.33D板图. . .14五、 课程设计总结.15六、 参考文献.15一、课程设计目的:1 掌握电子系统的一般设计方法和设计流程;2 学习使用PROTEL软件绘制电路原理图及印刷板图;3 掌握应用Protues等软件对所设计的电路进行仿真,通过仿真结果验证设计的正确性。二、课程设计内容与要求设计一个多路呼叫器,具体要求如下:1. N个按键模拟N个呼叫源(N=4)。2当有一个按键按下时,由数码管显示呼叫源号码。3. 当有多个呼叫同时发生时,用指示灯指明多个呼叫源在同时呼叫,并按优先级顺序由数码管显示多个呼叫源号码。1号呼叫源优先级最高,
3、按顺序N号呼叫源优先级最低。三、设计方案1、整体设计临床求助呼叫(监护)是传送临床信息的重要手段,病房呼叫系统是病人请求值班医生或护士进行诊断和护理的紧急呼叫工具,可将病人的请求快速传送给值班医生或护士,并在值班室的监控中心电脑上留下准确完整的记录,是提高医院和病室护理水平的必备设备之一。呼叫系统的优劣直接关系到病员的安危,历来受到各大医院的普遍重视。它要求及时、准确、可靠、简便可行。本呼叫系统基于Ateml89C51单片机,振荡电路的晶振采用12MHz,由控制核心Ateml89C51单片机、电源电路、振荡电路、复位电路、数码管解码芯片、病房选择和七段数码管等部分组成,系统框图3.1.1:图3
4、.1.12、硬件设计2.1 电路原理图工作原理为:电源电路为单片机以及其他模块提供5V电源。晶振模块为单片机提供时钟标准,使系统各部分能协调工作。复位电路模块为单片机系统提供复位功能。单片机作为主控制器,根据输入信号对系统进行相应的控制。病房一共为四个,从1号病房到4号病房病人的情况由重到轻,即1号病房的优先级最高,4号病房的优先级最低。所以,当有两个病房一起呼叫时,优先级高的病房号显示;当低优先级的病房呼叫完毕后高优先级的病房呼叫,系统显示的号码改变;当优先级高的病房呼叫完毕后工作人员未复位的情况下,低优先级的病房呼叫无效。另外,当有病房呼叫时蜂鸣器响直至复位。此次设计的电路如附录图2.1.
5、1,图2.1.2图2.1.1图2.1.22.2 元器件列表如表2.2.1表2.2.13、软件设计3.1程序流程图程序流程图如图3.1.1:图3.1.13.2程序源代码:#include #define uchar unsigned charsbit key4=P30;/定义按键位置 sbit key3=P31;sbit key2=P32;sbit key1=P33;sbit reset=P15;/复位sbit BEEP=P17;/定义蜂鸣器端口sbit leed=P16;/定义指示灯uchar flag,i;uchar flag,j;void choice();void clean();voi
6、d delay();void de();void ring();void main() while(1) P3=0xff;/定义P3口为高电平 leed=0;/指示灯为低电平 reset=0;/定义P3.4口为低电平 BEEP=0;/定义P1.7口为低电平 flag=0; choice(); delay(); clean(); void choice()/确定病人 while(reset!=1&flag=0) if(key1=0) de(); if(key1=0) P0=0X86;flag=1; /OX86=10000110B,数码管显示1 else if(key2=0) de(); if(k
7、ey2=0&key1!=0) P0=0Xdb;flag=1;/OXdb=11011011,数码管显示2 else if(key3=0) de(); if(key3=0&key1!=0&key2!=0) P0=0Xcf; flag=1;/OXcf=11001111,数码管显示3 else if(key4=0) de(); if(key4=0&key1!=0&key2!=0&key3!=0) P0=0Xe6;flag=1;/OXe6=11100110,数码管显示4 void clean()/RESET 为高的时候复位 if(reset=1) BEEP=0;/蜂鸣器端口置0,停止蜂鸣 P0=0x3f
8、;/OX3f=00111111,数码管显示0 leed=0; void delay() /RESET为低的时候延时 while(!reset) ring();/复位端为低电平时延时 void ring() for(i=0;reset=0;i+)/喇叭发声的时间循环,直到复位端为低电平停止发声 de(); BEEP=!BEEP;/蜂鸣 if(key1=0|key2=0|key3=0)/第二次呼叫 if(P3=0Xf7|P3=0Xfb|P3=0Xfd|P3=0Xfe|P3=0Xff) leed=0; else leed=1; if( P0=0X86)/如果数码管显示1,无论键任何键 P0=0X86
9、;/显示1不变 else if(P0=0Xdb&key1=0)/如果数码管显示2 ,键k1 P0=0X86;/数码管显示1 else if(P0=0Xcf&key1=0)/如果数码管显示3 ,键k1 P0=0X86;/数码管显示1 else if(P0=0Xcf&key1=1&key2=0)/如果数码管显示3 ,不键k1,键k2 P0=0Xdb;/数码管显示2 else if(P0=0Xe6&key1=0)/如果数码管显示4,键k1 P0=0X86;/数码管显示1 else if(P0=0Xe6&key1=1&key2=0)/如果数码管显示4,不键k1,键k2 P0=0Xdb;/数码管显示2
10、else if(P0=0Xe6&key1=1&key2=1&key3=0)/如果数码管显示4,不键k1,不键k2 ,键k3 P0=0Xcf;/数码管显示3 void de() for(i=300;i0;i-);四、 实验结果4.1、仿真图与仿真结果1、未通电,如图4.1.1:图4.1.12、通电:初始状态晶体管显示0,如图4.1.2图4.1.23、低优先级病房先呼叫:键4,晶体管显示4,蜂鸣器响,表示4号有呼叫,如图4.1.3。图4.1.3高优先级病房后呼叫:按4后,再键3,晶体管显示3,蜂鸣器响,指示灯D2亮,表示有多个呼叫,如图4.1.4。图4.1.44、高优先级病房先呼叫:键1,晶体管显
11、示1,蜂鸣器响,如图4.1.5。图4.1.5低优先级病房后呼叫:1的优先级最高,键K1后,显示管显示1,蜂鸣器响,由于2,3的优先级均比1低,故键K2、K3后仍显示1 ,指示灯亮,表示有多个呼叫,如图4.1.6。图4.1.65、有多个病房同时呼叫:键K1,K2,K3,K4,表示1,2,3,4号同时呼叫,蜂鸣器响,晶体管按最优先级顺序显示,即显示1,指示灯亮,表示有多个呼叫,如图4.1.7。图4.1.74.2、印刷板图图4.2.14.3、3D板图图4.3.1五、总结本呼叫系统基于Ateml89C51单片机,振荡电路的晶振采用12MHz,由控制核心Ateml89C51单片机、电源电路、振荡电路、复
12、位电路、数码管解码芯片、病房选择和七段数码管等部分组成,此次编程我全部采用了C语言,是因为相对于汇编语言而言,C语言思路更加清晰。在做的过程中也出现过一些错误,但通过实验老师的指导和自己的反复修改,最终仿真结果符合要求。六、参考文献主要参考文献: 童诗白模拟电子技术基础北京:高等教育出版社,2002 张建华数字电子技术北京:机械工业出版社,2004 陈汝全电子技术常用器件应用手册北京:机械工业出版社,2005 毕满清电子技术实验与课程设计北京:机械工业出版社,2005 潘永雄电子线路CAD实用教程西安:西安电子科技大学出版社,2002 张亚华电子电路计算机辅助分析和辅助设计北京:航空工业出版社,2004
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1