《基于单片机的无线病床呼叫系统5304.docx》由会员分享,可在线阅读,更多相关《基于单片机的无线病床呼叫系统5304.docx(32页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、无线病床呼叫系统专 业 电 气 自 动 化 学生姓名 匡 策 意 班 组 13自动化01 学 号 201310070115 指导教师 袁 泉 完成日期 II目 录第一章 绪 论11.1课题设计的背景及意义11.2设计要求及预期目标11.3设计可行性11.4 设计方案及步骤2第二章 系统硬件设计32.1 系统原理框图32.2 单片机STC89C51芯片简介32.3 硬件模块设计72.3.1无线发射模块72.3.2无线接收模块92.3.3液晶显示模块112.3.4声音报警模块122.3.5应答电路13第三章 系统软件设计153.1设计的软件环境简介153.1.1 Keil_c51153.1.2 P
2、rotel99SE153.2 主函数程序设计183.3 初始化程序设计183.4 延时子程序设定223.5 液晶显示子程序22结束语24参考文献25致谢26附录27附录一:Protel原理图27附录二:C语言源程序28基于单片机的无线病床呼叫系统摘 要随着科技的发展,无线应用技术已经渗透到生活的各个领域,无线传输技术也越来越成熟。本设计是将无线传输技术应用到临床上的研究型课题,实现基于单片机的无线传输模块构成的无线多路病床呼叫系统。本文以STC89C51单片机为控制核心,通过无线发射模块发射传输信号,无线接收模块接收信号,经STC89C51处理后显示输出,从而实现病人与医护的无线远距离沟通。本
3、病床呼叫系统能够实现100米的远距离发射接收,也能绕过障碍物传输,其性能稳定、占用空间小、使用材料少、传输速度快、距离远,能够满足临床应用的要求。关键词: 单片机STC89C51,无线传输模块,病床呼叫*学院毕业设计说明书第一章 绪 论1.1课题设计的背景及意义目前大多医院的病床呼叫系统采用有线传输方式,有线传输占用空间较大,耗材多,而且不易移动,因此现今需要对病床呼叫系统进行升级,近年来在我国无线领域有了大的进展,这为此提供了有力的技术支持。有的一些简易无线发射接收模块传输距离近,效率低,可靠性差,不适合用于产品的设计。本设计是基于单片机实现的医用无线多路病床呼叫系统,分为无线发射模块、无线
4、接收模块、单片机控制模块、显示模块、呼叫报警部分和复位应答部分。本系统通过无线电实现信号的传递,单片机作为控制部件协调处理整个系统的工作,实现无线信号的远距离传输,减少了材料的耗费,安装简单,使医患沟通更加灵活,是无线网络技术在医学临床上的大胆应用,具有创新性。1.2设计要求及预期目标设计要求:设计出稳定高效的运行系统,并且有一定的抗干扰能力,能够实现多路呼叫且互不干扰。距离在100m范围内,实现多路无线病床呼叫,并留有扩展空间。预期目标:病人按呼叫键时,无线发射器发射信号,无线接收器接收无线信号,通过单片机控制处理,护士值班室发出呼叫警报,同时1602液晶上显示相应的床位号,当护士按键应答,
5、呼叫报警停止,液晶显示以应答,警报由定时器控制关闭。当有多个病人呼叫没有及时应答时,对应显示各床床位号,同时报警。1.3设计可行性有线呼叫器受位置的制约不能很好的达到医患沟通,无线呼叫系统就显示其很大的优越性,可移动,不受位置制约,现今无线传输技术有了突飞猛进的发展,技术越来越成熟,普遍应用到生活、娱乐、学习和军工等领域,这为无线传输技术与医学临床的结合提供了技术支持。在校期间也学习了与单片机相关的课程,有了一定的理论基础。因此,本课题具有可行性,能够得到实现。281.4 设计方案及步骤针对单片机的无线病床呼叫系统,制定以下方案及步骤:第一步,根据设计目的构想设计的原理图框架,学习设计中要用到
6、的知识,如无线发射模块的原理、编码解码,单片机C语言编程设计,液晶1602的显示,使用的芯片引脚工作原理, Protel软件使用等。第二步,对硬件模块进行设计。如无线发射模块、无线接收模块、1602显示模块、声音呼叫模块。在Protel中绘制原理图。第三步,对系统软件进行设计。如主函数程序设计、初始化程序设计、延时子程序设计、液晶显示子程序设计、定时器中断服务子程序设计。第二章 系统硬件设计2.1 系统原理框图根据单片机的无线病床呼叫系统要求初步绘制出系统原理框图如图2-1所示。应答按键发射模块接收模块液晶显示单片机声音报警图2-1 系统原理框图2.2 单片机STC89C51芯片简介STC89
7、C51是一种低功耗、高性能CMOS8位微控制器,具有 8K 在系统可编程Flash 存储器。在单芯片上,拥有灵巧的8 位CPU 和在系统可编程Flash,使得STC89C51为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。 具有以下标准功能: 8k字节Flash,512字节RAM, 32 位I/O 口线,看门狗定时器,内置4KB EEPROM,MAX810复位电路,三个16 位 定时器/计数器,一个6向量2级中断结构,全双工串行口。另外 STC89X51 可降至0Hz 静态逻辑操作,支持2种软件可选择节电模式。空闲模式下,CPU 停止工作,允许RAM、定时器/计数器、串口、中断继续工作。
8、掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。最高运作频率35Mhz,6T/12T可选。图2-2 STC89C51单片机引脚图单片机是美国STC公司最新推出的一种新型51内核的单片机。片内含有Flash程序存储器、SRAM、UART、SPI、PWM等模块。(一)STC89C51主要功能、性能参数如下:(1)内置标准51内核,机器周期:增强型为6时钟,普通型为12时钟;(2)工作频率范围:040MHZ,相当于普通8051的080MHZ;(3)STC89C51RC对应Flash空间:4KB;(4)内部存储器(RAM):512B;(5)定时器计数器
9、:3个16位;(6)通用异步通信口(UART)1个;(7)中断源:8个;(8)有ISP(在系统可编程)IAP(在应用可编程),无需专用编程器仿真器;(9)通用IO口:3236个;(10)工作电压:3.85.5V;(11)外形封装:40脚PDIP、44脚PLCC和PQFP等。(二)STC89C51单片机的引脚说明:VCC:供电电压。 GND:接地。 P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。当P1口的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。在FIASH编程时,P0 口作为原码输入口,当FIASH进行校验时
10、,P0输出原码,此时P0外部必须被拉高。 P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在FLASH编程和校验时,P1口作为第八位地址接收。 P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P
11、2口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。P2口在FLASH编程和校验时接收高八位地址信号和控制信号。 P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。 P3.0 RXD(串行输入口) P3.1 TXD(串行输出口) P3.2 /INT0(外部中断0) P3.3 /INT1(外部中断1) P3.4 T0(记时器0外部输入) P3.5 T
12、1(记时器1外部输入) P3.6 /WR(外部数据存储器写选通) P3.7 /RD(外部数据存储器读选通) P3口同时为闪烁编程和编程校验接收一些控制信号。 I/O口作为输入口时有两种工作方式,即所谓的读端口与读引脚。读端口时实际上并不从外部读入数据,而是把端口锁存器的内容读入到内部总线,经过某种运算或变换后再写回到端口锁存器。只有读端口时才真正地把外部的数据读入到内部总线。上面图中的两个三角形表示的就是输入缓冲器CPU将根据不同的指令分别发出读端口或读引脚信号以完成不同的操作。这是由硬件自动完成的,不需要我们操心,1然后再实行读引脚操作,否则就可能读入出错,为什么看上面的图,如果不对端口置1
13、端口锁存器原来的状态有可能为0Q端为0Q为1加到场效应管栅极的信号为1,该场效应管就导通对地呈现低阻抗,此时即使引脚上输入的信号为1,也会因端口的低阻抗而使信号变低使得外加的1信号读入后不一定是1。若先执行置1操作,则可以使场效应管截止引脚信号直接加到三态缓冲器中实现正确的读入,由于在输入操作时还必须附加一个准备动作,所以这类I/O口被称为准双向口。89C51的P0/P1/P2/P3口作为输入时都是准双向口。RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。 ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在FLASH编程期间,此
14、引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE脉冲。如想禁止ALE的输出可在SFR8EH地址上置0。此时, ALE只有在执行MOVX,MOVC指令是ALE才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ALE禁止,置位无效。 /PSEN:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。 /EA/VPP:当/EA保持低电平时,则在此期
15、间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。 XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。 XTAL2:来自反向振荡器的输出。(三)STC89C51单片机最小系统:最小系统包括单片机及其所需的必要的电源、时钟、复位等部件,能使单片机始终处于正常的运行状态。电源、时钟等电路是使单片机能运行的必备条件,可以将最小系统作为应用系统的核心部分,通过对其进行存储器扩展、A/D扩展等,使单片机完成较复杂的功能。S
16、TC89C51是片内有ROM/EPROM的单片机,因此,这种芯片构成的最小系统简单可靠。用STC89C52单片机构成最小应用系统时,只要将单片机接上时钟电路和复位电路即可,结构如图2-3所示,由于集成度的限制,最小应用系统只能用作一些小型的控制单元。时钟电路复位电路51系列单片机I/O接口时钟电路复位电路STC89C51单片机I/O口图2-3 单片机最小系统原理框图(1) 时钟电路STC89C51单片机的时钟信号通常有两种方式产生:一是内部时钟方式,二是外部时钟方式。内部时钟方式如图2-4所示。在STC89C51单片机内部有一振荡电路,只要在单片机的XTAL1(18)和XTAL2(19)引脚外
17、接石英晶体(简称晶振),就构成了自激振荡器并在单片机内部产生时钟脉冲信号。图中电容C1和C2的作用是稳定频率和快速起振,电容值在530pF,典型值为30pF。晶振CYS的振荡频率范围在1.212MHz间选择,典型值为12MHz和6MHz。图2-4 STC89C51内部时钟电路(2) 复位电路当在STC89C51单片机的RST引脚引入高电平并保持2个机器周期时,单片机内部就执行复位操作(若该引脚持续保持高电平,单片机就处于循环复位状态)。复位电路通常采用上电自动复位和按钮复位两种方式。最简单的上电自动复位电路中上电自动复位是通过外部复位电路的电容充放电来实现的。只要Vcc的上升时间不超过1ms,
18、就可以实现自动上电复位。除了上电复位外,有时还需要按键手动复位。本设计就是用的按键手动复位。按键手动复位有电平方式和脉冲方式两种。其中电平复位是通过RST(9)端与电源Vcc接通而实现的。按键手动复位电路见图2-5。时钟频率用11.0592MHZ时C取10uF,R取10k。图2-5 STC89C51复位电路(四) STC89C51中断技术概述中断技术主要用于实时监测与控制,要求单片机能及时地响应中断请求源提出的服务请求,并作出快速响应、及时处理。这是由片内的中断系统来实现的。当中断请求源发出中断请求时,如果中断请求被允许,单片机暂时中止当前正在执行的主程序,转到中断服务处理程序处理中断服务请求
19、。中断服务处理程序处理完中断服务请求后,再回到原来被中止的程序之处(断点),继续执行被中断的主程序。图2-6为整个中断响应和处理过程。图2-6 中断响应和处理过程如果单片机没有中断系统,单片机的大量时间可能会浪费在查询是否有服务请求发生的定时查询操作上。采用中断技术完全消除了单片机在查询方式中的等待现象,大大地提高了单片机的工作效率和实时性。 2.3 硬件模块设计由图2-1系统原理框图可知,整个系统分为五个模块:无线发射模块、无线接收模块、声音报警模块、液晶显示模块、按键应答模块。下面将简单的介绍各个模块设计方案。2.3.1无线发射模块PT2262是一种CMOS 工艺制造的低功耗低价位通用编码
20、电路,PT2262最多可有12 位(A0-A11)三态地址端管脚(悬空,接高电平,接低电平),任意组合可提供531441 地址码,PT2262 最多可有6 位(D0-D5)数据端管脚,设定的地址码和数据码从17 脚串行输出,可用于无线遥控发射电路。PT2262 管脚说明如表2-4表2-4 PT2262管脚说明名称管脚说明A0-A111-8,10-13 地址管脚,用于进行地址编码,可置为“0”、 “1” 、“悬空”。 D0-D57-8,10-13数据输入端,有一个为“1”即有编码发出,内部下拉。VCC18电源正端()GND9电源负端()TE14编码启动端,用于多数据的编码发射,低电平有效;OSC
21、116振荡电阻输入端,与OSC2所接电阻决定振荡频率;OSC215振荡电阻振荡器输出端;DOUT17编码输出端(正常时为低电平)T10A发射模块(如表2-5)采用SMD技术,在稳频处理上采用最先进声表谐振器(SAW)元件,电路板(PCB)采用介质损耗最小的材料,体积小巧。表2-5 T10A发射模块技术指标参数工作电压3V-12V工作电流25mA(12V); 2mA(3V)谐振方式声表谐振(SAW)调制方式AM/ASK/OOK工作频率315MHz、433.92MHz可选频率误差150kHz(max)发射功率25mW(315MHz, 12V时)图2-6所示为无线发射模块图,由PT2262编码,发射
22、模块的四个按键分别代表不同的病床号,按下表示病人呼叫。图2-6 无线发射模块图发射模块有密码保证功能,最多可以编6个数据码和6561个地址码,使重复的机会大大减少。其性能参数如下: 电源电压: DC3VDC12V 静态电流:0.02uA 发射频率:315MHz 发射电流:550mA 发射距离:50800m 调制方式:ASK在通常使用中,一般采用8位地址码和4位数据码,这时编码芯片PT2262和解码芯片PT2272的第18脚为地址设定脚,有三种状态可供选择:悬空、接正电源、接地三种状态,3的8次方为6561,所以地址编码不重复度为6561组,只有发射端PT2262和接收端PT2272的地址编码完
23、全相同,才能配对使用,一般生产厂家都把地址编码端悬空,用户可以自己设置编码。设置地址码的原则是:同一个系统地址码必须一致;不同的系统可以依靠不同的地址码加以区分。2.3.2无线接收模块解码接收模块包括接收头和解码芯片PT2272两部分。接收头将接收的信号输入PT2272的14引脚(DIN),PT2272对接收到的信号解码。无线接收模块如图2-7所示。图2-7 无线接收模块图编码芯片PT2262 发出的编码信号由:地址码、数据码、同步码组成一个完整的码字,解码芯片PT2272 接收到信号后,其地址码经过两次比较核对后,VT 脚才输出高电平,与此同时相应的数据脚也输出高电平,如果发送端一直按住按键
24、,编码芯片也会连续发射。当发射机没有按键按下时,PT2262 不接通电源,其17 脚为低电平,所以315MHz 的高频发射电路不工作,当有按键按下时,PT2262 得电工作,其第17 脚输出经调制的串行数据信号,当17 脚为高电平期间315MHz 的高频发射电路起振并发射等幅高频信号,当17 脚为低平期间315MHz 的高频发射电路停止振荡,所以高频发射电路完全收控于PT2262 的17 脚输出的数字信号,从而对高频电路完成幅度键控(ASK 调制)相当于调制度为100的调幅。PT2272管脚说明如表2-9表2-8 PT2272管脚说明名称管脚说明A0-A111-8,10-13地址管脚,用于进行
25、地址编码,可置为 “0”,“1”,“f”(悬空),必须与2262一致,否则不解码D0-D57-8,10-13地址或数据管脚,当做为数据管脚时,只有在地址码与2262一致一致,数据管脚才能输出与2262数据端对应的高电平,否则输出为低电平,锁存型只有在接收到下一数据才能转换VCC18电源正端()GND9电源负端()DIN14数据信号输入端,来自接收模块输出端OSC116振荡电阻输入端,与OSC2所接电阻决定振荡频率;OSC215振荡电阻振荡器输出端;VT17解码有效确认 输出端(常低)解码有效变成高电平(瞬态)PT2262和PT2272除地址编码必须完全一致外,振荡电阻还必须匹配,一般要求译码器
26、振荡频率要高于编码器振荡频率的2.58倍,否则接收距离会变近甚至无法接收,随着技术的发展市场上出现一批兼容芯片,在实际使用中只要对振荡电阻稍做改动就能配套使用。在具体的应用中,外接振荡电阻可根据需要进行适当的调节,阻值越大振荡频率越慢,编码的宽度越大,发码一帧的时间越长。市场上大部分产品都是用2262/1.2M2272/200K组合的,少量产品用2262/4.7M2272/820K。解码接收模块包括接收头和解码芯片PT2272两部分组成。接收头将收到的信号输入PT2272的14脚(DIN),PT2272再将收到的信号解码。 接收板工作电压为DC 5V,接收灵敏度: -103dBm ,尺寸(mm
27、): 49*20*7 ,工作频率:315MHz,工作电流:5mA ,编码类型:固定码(板上焊盘跳接设置) 应用说明:与各类型遥控器配合使用,解码输出后进行相应控制,在通常使用中,我们一般采用8位地址码和4位数据码,这时编码芯片PT2262和解码芯片PT2272的第18脚为地址设定脚,有三种状态可供选择:悬空、接正电源、接地三种状态,地址编码不重复度为38=6561组,只有发射端PT2262和接收端PT2272的地址编码完全相同,才能配对使用,遥控模块的生产厂家为了便于生产管理,出厂时遥控模块的PT2262和PT2272的八位地址编码端全部悬空,这样用户可以很方便选择各种编码状态,用户如果想改变
28、地址编码,只要将PT2262和PT2272的18脚设置相同即可,例如将发射机的PT2262的第2脚接地,第3脚接正电源,其它引脚悬空,那么接收机的PT2272只要也第2脚接地,第3脚接正电源,其它引脚悬空就能实现配对接收。当两者地址编码完全一致时,接收机对应的D1D4端输出约4V互锁高电平控制信号,同时VT端也输出解码有效高电平信号。2.3.3液晶显示模块图2-10 1602实物图1602LCD的基本参数及引脚功能1602LCD分为带背光和不带背光两种,基控制器大部分为HD44780,带背光的比不带背光的厚,是否带背光在应用中并无差别,两者尺寸差别如下图10-54所示:图2-11 1602LC
29、D尺寸图1602LCD主要技术参数:显示容量:162个字符芯片工作电压:4.55.5V工作电流:2.0mA(5.0V)模块最佳工作电压:5.0V字符尺寸:2.954.35(WH)mm引脚功能说明1602LCD采用标准的14脚(无背光)或16脚(带背光)接口,各引脚接口说明如表10-13所示:编号符号引脚说明编号符号引脚说明1VSS电源地9D2数据2VDD电源正极10D3数据3VL液晶显示偏压11D4数据4RS数据/命令选择12D5数据5R/W读/写选择13D6数据6E使能信号14D7数据7D0数据15BLA背光源正极8D1数据16BLK背光源负极表2-12:引脚接口说明表第1脚:VSS为地电源
30、。第2脚:VDD接5V正电源。第3脚:VL为液晶显示器对比度调整端,接正电源时对比度最弱,接地时对比度最高,对比度过高时会产生“鬼影”,使用时可以通过一个10K的电位器调整对比度。第4脚:RS为寄存器选择,高电平时选择数据寄存器、低电平时选择指令寄存器。第5脚:R/W为读写信号线,高电平时进行读操作,低电平时进行写操作。当RS和R/W共同为低电平时可以写入指令或者显示地址,当RS为低电平R/W为高电平时可以读忙信号,当RS为高电平R/W为低电平时可以写入数据。第6脚:E端为使能端,当E端由高电平跳变成低电平时,液晶模块执行命令。第714脚:D0D7为8位双向数据线。第15脚:背光源正极。第16
31、脚:背光源负极。2.3.4声音报警模块该设计有声音报警,当有病人呼叫时,蜂鸣器就会大声提示,直到护士应答回复,才会停止鸣叫,控制引脚接在P3.4引脚上,利用三极管当做开关电路可以保护单片机,还可以起到放大电流的作用,当三极管基极为高电平时,发射极截止,为低电平时,发射极导通。报警模块如图2-13所示。图2-13声音报警模块2.3.5应答电路本设计中四个床位使用一个应答按钮,接在P3.3引脚上,当有病人按下按钮,报警开始时,按下应答按钮,即可停止报警,声音模块图如图2-14所示图2-14应答电路第三章 系统软件设计3.1设计的软件环境简介3.1.1 Keil_c51Keil C51是美国Keil
32、 Software公司出品的51系列兼容单片机C语言软件开发系统,与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。用过汇编语言后再使用C来开发,体会更加深刻。 Keil C51软件提供丰富的库函数和功能强大的集成开发调试工具,全Windows界面。另外重要的一点,只要看一下编译后生成的汇编代码,就能体会到Keil C51生成的目标代码效率非常之高,多数语句生成的汇编代码很紧凑,容易理解。在开发大型软件时更能体现高级语言的优势。下面详细介绍Keil C51开发系统各部分功能和使用。 Keil_c软件界面如图3-1-1:图3-1-1Keil_c软件界面该软件是一款
33、集编程和仿真于一体的软件,它支持汇编、C语言及二者的混合编程。3.1.2 Protel99SEProtel99SE是PORTEL公司在80年代末推出的EDA软件。Protel99SE是应用于Windows9X/2000/NT操作系统下的EDA设计软件,采用设计库管理模式,可以网设计,具有很强的数据交换能力和开放性及3D模拟功能,是一个32位的设计软件,可以完成电路原理图设计,印制电路板设计和可编程逻辑器件设计等工作,可以设计32个信号层,16个电源-地层和16个机加工层。Protel99SE软件的特点:(1) 可生成30多种格式的电气连接网络表; (2) 强大的全局编辑功能; (3) 在原理图
34、中选择一级器件,PCB中同样的器件也将被选中; (4) 同时运行原理图和PCB,在打开的原理图和PCB图间允许双向交叉查找元器件、引脚、网络 (5) 既可以进行正向注释元器件标号(由原理图到PCB),也可以进行反向注释(由PCB到原理图),以保持电气原理图和PCB在设计上的一致性; (6) 满足国际化设计要求(包括国标标题栏输出,GB4728国标库); * 方便易用的数模混合仿真(兼容SPICE 3f5); (7) 支持用CUPL语言和原理图设计PLD,生成标准的JED下载文件; * PCB可设计32个信号层,16个电源-地层和16个机加工层; (8) 强大的“规则驱动”设计环境,符合在线的和
35、批处理的设计规则检查; (9) 智能覆铜功能,覆铀可以自动重铺; (10) 提供大量的工业化标准电路板做为设计模版; (11) 放置汉字功能; (12) 可以输入和输出DXF、DWG格式文件,实现和AutoCAD等软件的数据交换; (13) 智能封装导航(对于建立复杂的PGA、BGA封装很有用); (14) 方便的打印预览功能,不用修改PCB文件就可以直接控制打印结果; (15) 独特的3D显示可以在制板之前看到装配事物的效果; (16) 强大的CAM处理使您轻松实现输出光绘文件、材料清单、钻孔文件、贴片机文件、测试点报告等; (17) 经过充分验证的传输线特性和仿真精确计算的算法,信号完整性
36、分析直接从PCB启动; (18) 反射和串扰仿真的波形显示结果与便利的测量工具相结合; Protel99SE的工作界面是一种标准的Windows界面,如图所示,包括:标题栏、主菜单、标准工具栏、绘图工具栏、状态栏、对象选择按钮、预览对象方位控制按钮、仿真进程控制按钮、预览窗口、对象选择器窗口、图形编辑窗口。Protel99SE软件界面如图3-1-2。图3-1-2Prtel99SE软件界面运行Protel99SE程序后,进入软件的主界面。通过左侧工具栏中的Browse(从库中选择元件命令)命令。3.2 主函数程序设计一个完整的程序中只有一个main函数,首先调用初始化函数进行初始化,然后判断并调
37、用显示子程序使液晶1602显示、蜂鸣器鸣响报警。程序流程如图3-2所示。开始调用初始化子程序液晶显示欢迎语否判断是否有床位报警是报警器打开,液晶显示对应床位号否判断应答按键是否按下是关闭报警器液晶显示知晓结束图3-2 主程序流程图3.3 初始化程序设计初始化程序包括液晶初始化显示、定时器中断系统初始化。(一)、液晶初始化根据液晶使用手册,在液晶使用之前,要对其设置显示模式,光标设置,然后进行清屏操作。方便之后使用。(二)、定时器中断系统初始化STC89C51有两个定时/计数器,都有定时和计数两种工作模式,四种工作方式(方式0、方式1、方式2、方式3),属于增一计数器。特殊功能寄存器TMOD用于
38、选择定时器/计数器T0、T1的工作模式和工作方式。但无论是工作在定时器模式还是计数器模式,实质都是对脉冲信号进行计数,只是计数的来源不同,计数器模式是对加在T0(P3.4)和T1(P3.5)两个引脚的外部脉冲进行计数,而定时器模式是对单片机的时钟振荡器信号经片内12分频后的内部脉冲信号计数。3、 工作方式控制寄存器TMOD,不能位寻址,其格式如图3-3所示。 图3-3 寄存器TMOD的格式(1) GATE :门控位。(2) M0、M1:工作方式选择位。(3) C/T:计数器和定时器模式选择位。C/T=0,为定时器模式;C/T=1为计数器模式。M0、M1共有4种编码,对应于4种工作方式的选择,见
39、表3-4。表3-4 M1、M0工作方式选择M1 M0工作方式0 0方式0,为13位定时器/计数器0 1方式1,为16位定时器/计数器1 0方式2,8位的常数自动重装的定时器/计数器1 1方式3,仅用于T0,此时T0分为两个8位计数器,T1停止计数定时器的工作方式设置好以后就要给定时器装入初值,工作方式不同初值也不同。1、下面介绍一下单片机的时钟周期、机器周期和指令周期。(1) 时钟周期是单片机时钟控制信号的基本时间单位。若时钟晶体的震荡频率为f0sc ,则时钟周期Tosc=1/fosc 。(2) 机器周期是CPU完成一个基本操作所需要的时间。AT89C51单片机的每12个时钟周期为一个机器周期
40、,即TCY=12/fOSC 。(3) 指令周期是执行一条指令所需的时间。AT89C51单片机中指令按字节来分,可分为单字节、双字节和三字节指令,单字节和双字节指令一般为单机器周期和双机器周期,三字节指令都是双机器周期,只有乘、除指令占4个机器周期。本设计中,时钟晶体的频率为11.0592MHZ,所以时钟周期为1/12M。T0作为定时器使用,工作方式为方式1,作为16位计数器。设计数个数为N,计数初值为X,那么X=216-N, 定时时间=N12/晶振频率,所以,定时时间=(216-X)12/晶振频率。本设计设置每隔50ms中断一次,那么得出初值X=0x4BFF,定时器T0的高8位TH0赋值0x4
41、B,低8位TL0赋值0xFF。2、定时器/计数器控制寄存器TCON,可位寻址,其格式见表3-5。表3-5 特殊寄存器TCON的格式D7D6D5D4D3D2D1D0TCONTF1TR1TF0TR0IE1IT1IE0IT0位地址8FH_8DH_8BH8AH89H88H TR0:定时器启动位。TR0=0,关闭定时器0;TR0=1,开启定时器0. IT0:选择外部中断0为跳沿触发方式还是电平触发方式。IT0=0,为电平触发方式;IT0=1,为跳沿触发方式。4、单片机对各中断源的开放或屏蔽是由片内的中断允许寄存器IE控制的,可位寻址,其格式见表3-6。表3-6 中断允许寄存器IE的格式D7D6D5D4D
42、3D2D1D0IEEA_ESET1EX1ET0EX0位地址AFH_ACHANHAAHA9HA8H(1) EA:中断允许总开关控制位。EA=0,所有的中断请求被屏蔽;EA=1,所有的中断请求被开放。(2) ES:串行口中断允许位。ES=0,禁止串行口中断;ES=1,允许串行口中断。(3) ET0:定时器/计数器T0的溢出中断允许位。ETO=0,禁止T0溢出中断;ETO=1,允许T0溢出中断。(4) EX0:外部中断0中断允许位。EX=0,禁止外部中断0中断;ES=1,允许外部中断0中断。STC89C51复位后,IE被清零,所有的中断请求被禁止。所以在初始化时,要令EA=1,EX0=1,ET0=1
43、,开放总中断、允许T0中断。初始化程序如下:void init()bg_1602=0;TMOD=0x01; TL0=0x4b; TH0=0xff; EA=1; ET0=1; TR0=1;E=0;com_1602(0x38);com_1602(0x0c); com_1602(0x06);com_1602(0x80); com_1602(0x01);3.4 延时子程序设定延时子程序作为方便其他程序调用,避免程序繁琐重复。我将延时子程序定为有参函数,延时1ms,程序如下:void delay(ui x)ui i,j;for(i=0;ix;i+)for(j=0;j121;j+);3.5 液晶显示子程序
44、void display()if(num_D0|num_D1|num_D2|num_D3)if(num_D0=1)dis_1602(1,0,2,0,1);dis_1602(1,0,3,0,10);if(num_D1=2)dis_1602(1,0,4,0,2);dis_1602(1,0,5,0,10);if(num_D2=3)dis_1602(1,0,6,0,3);dis_1602(1,0,7,0,10);if(num_D3=4)dis_1602(1,0,8,0,4);dis_1602(1,0,9,0,10);dis_1602(10,1,5,1,0);elsedis_1602(15,0,0,3,0);结束语至此,本设计的主要内容已经完成。本章是在对前面完成的工作进行总结的基础上,提出今后进一步工作的建议