《基于单片机的医院病床呼叫系统设计.doc》由会员分享,可在线阅读,更多相关《基于单片机的医院病床呼叫系统设计.doc(26页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、基于单片机的医院病床呼叫系统设计摘要: 本文主要应用单总线技术和单片机间串行通信技术,研究了基于单片机的一种可靠医院病床呼叫系统,并且运用Proteus和Keil软件仿真效果理想,实现了病床呼叫的功能。它不但能够有效传送呼叫信息,而且能通过数码显示求助病床号和通过蜂鸣器声音求助医护人员,还可以存储呼叫信息、以备查询,同时可以扩展到与电脑联机管理。该系统具有电路结构简单、成本低、可靠性高、布线施工方便易于维护等特点。特别是当病床数目较多时,更具有优越性。 关键词: 病床呼叫系统 串行通信 记忆存储 单总线技术中图分类号:TP36MCU Based Call System Design for H
2、ospitalAbstract: This article mainly introduced the application of the single-bus technology and inter-MCU serial communication technical, Studied a reliable call system for hospital based on MCU, and simulated the circuit with Proteus and Keil, the results are satisfactory. The system achieved the
3、function of beds calling, is able to send the call information effectively and display the number of beds through its digital display, ask doctors and nurses for help through Sound buzzer. Besides the system can store call information for query, and extended the link with computer for management. Th
4、e system has a simple circuit structure and low cost, high reliability and easy wiring construction features. The more the number of hospital beds is, the more advantages it would has.Key words: Call system; Communication; Memory storage; Single-bus technology学习文档 仅供参考目 录1前言12系统功能分析及设计要求13系统总体设计方案24
5、主要应用器件及技术原理34.1 微处理器介绍34.2 单片机双机串行通信原理5单片机串行口结构54.2.2 单片机双机通信连接64.3 单片机与PC机通信原理7串行通信总线标准及其接口连接7单片机与PC机通信与电平转换74.4 单总线技术原理85系统硬件电路设计95.1 晶振及系统复位电路105.2 呼叫器和查询电路115.3 数码显示电路115.4 报警电路126系统软件设计136.1 系统主、从机软件流程图136.2 系统程序设计146.2.1 主程序146.2.2 床号数码显示程序146.2.3 声音报警程序146.2.4 呼叫记录存储157系统测试158总结与展望179致谢1810参考
6、文献18学习文档 仅供参考基于单片机的医院病床呼叫系统设计陈继铭指导教师,梅斌湖北师范学院 教育信息与技术学院 湖北 黄石 4350021前言近年来,随着人们生活水平的不断提高,人们对医疗水平的要求也不断提高,特别是突发情况下病人请求值班医生或护士进行及时诊断或护理,这一环节对提高医院的管理服务质量显得尤其重要,这同时也大大提高了医院医护人员应对突发事件的能力。在以往医院,病人遇到突发情况时,由于向医护人员得不到及时的救助,往往错过了最正确治疗的时间,最后造成小病酿成大病,大病酿成无药可医,最后导致死亡。因此,一种新型临床呼叫仪器的研制成为近些年来的研究热点之一。为了提高医院管理水平,需要有新
7、型可靠病床呼叫仪的辅助。临床求助呼叫是传送临床信息的重要手段,病房呼叫系统可将病人的请求快速传送给值班医生或护士,并在值班室的监控中心主机上留下准确完整的记录,是提高医院和病室护理水平的必备设备之一。呼叫系统的优劣直接关系到病员的安危,历来受到各大医院的普遍重视。它要求及时、准确、可靠、简便可行、利于推广。利用电力线载波通信技术、单片机多机通信和电脑监控管理技术设计的具有呼叫、振铃、显示排队、优先权设定、存储记录等功能的病床呼叫系统,满足了医院的病房管理和护理要求。本文基于单片机的医院病床呼叫系统设计,是一种利用单总线技术和单片机间串行通信设计的有记忆可靠病床呼叫系统,他不但能够有效传送呼叫信
8、息,而且能通过数码显示求助病床号和通过蜂鸣器声音求助医护人员。因此,本课题是非常有意义的。2系统功能分析及设计要求一个很好的呼叫系统,它的功能设计首先要符合用户的习惯,同时操作方便,易学,易用。本系统应包括声音报警功能,数码显示功能,复位清零,查询功能。当医院病人有紧急情况或者打静脉点滴时,可以很方便的按下呼叫按钮,发出呼叫信号,这时医院值班室就显示病床号并报警。考虑到医护人员可能有特殊的情况离开值班室,设计时候要求主机可以存储呼叫记录、即有记忆方式。考虑到以后医院病床的无限增加,设计时采用单总线技术无疑是一种最好的选择,它可以允许在单总线上挂任意多个测控对象。整个电路要求以C51系列单片机为
9、控制核心,以串行通信方式传输数据1。要求所设计方案可以用硬件实现,具有很高应用价值,同时准确、可靠、简便可行、利于推广,可以将病人的请求快速的传递给值班医生或护士,并在值班室主机上留下完整的呼叫记录信息。从而可以有效提高医疗服务水平,适应现代社会需求。3系统总体设计方案本设计采用两个单片机系统,同时可以扩展和PC机通信,在PC机上用可视化菜单管理病房呼叫记录情况,以便于更加系统的管理医院病房和考察医院管理水平及效率。两个单片机系统之间实行串行通信。从机采用分布是控制方式7,从机单片机和呼叫器的应答改变了以前通过一根三芯导线来完成即包括电源线,信号线,地线来完成,而是采用单总线器件构成的终端呼叫
10、器和从机单片机构成呼叫系统,这样从机单片机和各病床呼叫器终端之间只有一根双绞线一根信号线,一根地线即单总线,它将地址线、数据线、控制线合为一根信号线路,允许在这根信号线上挂上百个测控对象。主机以89C51为控制中心,通过串口接受从机发来的呼叫信息,通过运算处理送译码电路数码显示及报警求助,同时存储呼叫信息2,可以实行复位记录清零,删除记录,上翻和下翻查找呼叫记录信息。因此,基于单片机的医院病床呼叫系统设计通常应该包括主机和从机、主机包括报警电路、译码显示电路、复位、查找操作电路等基本单元,而且从机包括呼叫电路,向主机和PC机发送呼叫信息电路。1、主机系统框图:图主机系统框图2、从机系统框图:图
11、3.2 从机系统框图4主要应用器件及技术原理4.1 微处理器介绍4.1.1、MCS-51单片机的特点:1小巧灵活、成本低、易于产品化。能组装成各种智能式测控设备及智能仪器仪表。2可靠性好,应用范围广。单片机芯片本身是按工业测控环境要求设计的,抗干扰性强,能适应各种恶劣的环境,这是其他机种无法比拟的。3易扩展,很容易构成各种规模的应用系统,控制功能强。单片机的逻辑控制功能很强,指令系统有各种控制功能指令,可以对逻辑功能比较复杂的系统进行控制。4具有通讯功能,可以很方便地实现多机和分布式控制,形成控制网络和远程控制。正是由于51系列单片机具有以上优点,所以成为本次毕业设计所选用的处理器。4.1 2
12、、MCS-51 单片机的结构AT89C51是一种带4K字节闪烁可编程可擦除只读存储器FPEROMFalsh Programmable and Erasable Read Only Memory的低电压,高性能CMOS8位微处理器,俗称单片机。单片机的可擦除只读存储器可以反复擦除100次。从工作原理上讲,单片机就是一种微型电脑,是一种“程序存储式”电脑。它是在一块硅片上集成了中央处理器CPU、随机存储器RAM、程序存储器ROM或EPROM、定时/计数器以及各种I/O接口,也就是集成在一块芯片上的电脑。图4.1 MCS-51单片机的结构4.2 单片机双机串行通信原理4单片机串行口结构C51单片机串
13、行接口是一个可编程的全双工串行通信接口。它可用作异步通信方式UART,与串行传送信息的外部设备相连接,或用于通过标准异步通信协议进行全双工的C51多机系统,也能通过同步方式,使用TTL或CMOS移位寄存器来扩充I/O口。C51单片机通过管脚RXDP3.0,串行数据接收端和管脚TXDP3.1,串行数据发送端与外界通信。SBUF是串行口缓冲寄存器,包括发送寄存器和接收寄存器。它们有相同名字和地址空间,但不会出现冲突,因为它们两个一个只能被CPU读出数据,一个只能被CPU写入数据。图4.2 51单片机串行口结构本设计串行口采用工作方式一,用定时器一工作在方式2做为波特率发生器,为可变的10位异步通信
14、接口方式。发送或接收一帧信息,包括1个起始位0,8个数据位和1个停止位1。是异步通信的字符帧格式:图4.3 异步通信字符帧格式输出当CPU执行一条指令将数据写入发送缓冲SBUF时,就启动发送。串行数据从TXD管脚输出,发送完一帧数据后,就由硬件置位TI。 输入 在REN=1时,串行口采样RXD管脚,当采样到1至0的跳变时,确认是开始位0,就开始接收一帧数据。只有当RI=0且停止位为1或者SM2=0时,停止位才进入RB8,8位数据才能进入接收寄存器,并由硬件置位中断标志RI;不然信息丧失。所以在方式1接收时,应先用软件清零RI和SM2标志。4.2.2 单片机双机通信连接本系统设计采用的是单工通信
15、制式,在这种制式下,通信线的一端接从机发送器,一端接主机接收器,数据只能按照一个固定的方向传送。值得说明的是,尽管多数串行通信接口电路具有全双工功能,但一般情况只工作于单工或半双工制式下,这种用法简单、实用。图4.4 双机通信示意图4.3 单片机与PC机通信原理4.3.1串行通信总线标准及其接口连接在单片机应用系统中,数据通信主要采用异步串行通信。在设计通信接口时,必须根据需要选择标准接口,并考虑传输介质、电平转换等问题。采用标准接口后,能够方便地把单片机和外设、测量仪器等有机地连接起来,从而构成一个测控系统。同样当我们需要单片机和PC机通信时,通常采用RS-232接口进行电平转换。RS-23
16、2C是使用最早、应用最多的一种异步串行通信总线标准。它是美国电子工业协会EIA1962年公布、1969年最后修定而成的。其中RS表示Recommended Standard,232是该标准的标识号,C表示最后一次修定。RS-232C主要用来定义电脑系统的一些数据终端设备DTE和数据电路终接设备DCE之间的电气性能。MCS-51单片机与PC机的通信也是采用该种类型的接口。由于MCS-51系列单片机本身有一个全双工的串行接口,因此该系列单片机用RS-232C串行接口总线非常方便。RS-232C串行接口总线适用于:设备之间的通信距离不大于15米,传输速率最大为20kB/s。RS-232C不能和TTL
17、电平直接相连,使用时必须进行电平转换,否则将使TTL电路烧坏,实际应用时必须注意。常用的电平转换集成电路是传输线驱动器MC1488和传输线接收器MC1489。另一种常用的电平转换电路是MAX232。4单片机与PC机通信与电平转换单片机从机将计算好的病床号,写入SBUF寄存器,经过MAX232电平转换后,将信号串行传输给PC机的串口。PC机接收到呼叫信号后,将呼叫记录录入VB菜单管理系统,它记录呼叫时间,次数以及是否处理、处理结果。如此医院可以完全实现对所有病床的呼叫求助管理,同时对值班医护人员的服务进行考核测评,提高了医院服务效率和质量。图4.5 PC机与单片机通信电平转换电路上图为PC机的D
18、B9接头与AT89C51单片机通过MAX232连接起来的电路原理图。4.4 单总线技术原理单总线技术即从机采用分布是控制方式,从机单片机和呼叫器的应答改变了以前通过一根三芯导线即包括电源线,信号线,地线来完成,而是采用单总线器件构成的终端呼叫器和从机单片机构成呼叫系统,这样从机单片机和各病床呼叫器终端之间只有一根双绞线一根信号线,一根地线即单总线,它将地址线、数据线、控制线合为一根信号线路,允许在这根信号线上挂上百个测控对象。从机终端呼叫器由单总线器件DS2401和开关封装在一起构成,DS2401芯片是一种符合单总线协议的ROM硅片,厂家在其中写入了唯一的序列号,用作寻址定位的标识。对他的操作
19、非常简单,只需在发完复位脉冲并检测到回复信号后,由主机发送读序列号命令,即可将序列号按单总线协议要求读回来。利用它的这种特性可以构成简单的病床终端呼叫器,并将其挂在单总线上即可7。图4.6 DS2401单总线设计如上图,当某一病床开关闭合时,DS2401对地线短路接通,此时单片机可以查询到该芯片的序列号,即病人的呼叫信号,然后经计算得到病床号,再有从机传送到主机报警显示。5系统硬件电路设计1主机PCB原理图:图中主要以AT89C51为控制核心,包括显示电路,报警电路,复位晶振电路,和查询电路。图5.1 主机PCB原理图2从机PCB原理图:图中主要以AT89C51为控制核心,包括呼叫电路,复位晶
20、振电路,和通信电平转换电路。图5.2 从机PCB原理图5.1 晶振及系统复位电路1、XTAL1是片内振荡器的反相放大器输入端,XTAL2则是输出端,使用外部振荡器时,外部振荡信号应直接加到XTAL1,而XTAL2悬空。内部方式时,时钟发生器对振荡脉冲二分频,如晶振为12MHz,时钟频率就为6MHz。晶振的频率可以在1MHz-24MHz内选择。电容取30PF左右。本系统采用内部方式,串行通信采用波特率9600,晶振选用22.1184MHz。 图5.3 晶振内部方式 图5.4 复位电路2、复位:在振荡器运行时,有两个机器周期24个振荡周期以上的高电平出现在此引脚时,将使单片机复位,只要这个脚保持高
21、电平,51芯片便循环复位。复位后P0P3口均置1引脚表现为高电平,程序计数器和特殊功能寄存器SFR全部清零。当复位脚由高电平变为低电平时,芯片为ROM的00H处开始运行程序。常用的复位电路如图所示。5.2 呼叫器和查询电路如图,由于厂家在DS2401芯片中写入了唯一序列号,当某一呼叫器开关闭合时,DS2401对地线短路接通,此时单片机可以查询到该芯片的序列号,即病人的呼叫信号,然后经计算得到病床号,再有从机传送的主机报警。同样记录复位和查询电路设计和呼叫器电路设计是一样的原理3。实际情况中要对不同病房呼叫设置不同的响应优先级,以此来处理呼叫冲突问题。图5.5 呼叫器电路设计5.3 数码显示电路
22、如图,使用P1.7端口来选通数码管,控制数码管的供电,这里只给出了一个数码管的连接方法,如果病床数目到达了两位数、甚至是三位数,就相应需要两个或者三个数码管了,数码管采取共阳极接法,当要显示某一位数时候,单片机通过P0端口送出要显示数的对应七段代码,通过锁存器可以保持数码管处于点亮的状态;在此同时,用P1.7口来送出选通信号,即高电平。但是因为单片机驱动电流是很小的,驱动LED发亮,在这里用PNP三极管来放大电流,以此来驱动数码管。当然,当数码管个数超过一个时,接法和一个数码管时接法类似,但是需要动态扫描显示;为了防止重影,每送完数据要关闭数码管,再开启下个数码管显示,同时注意有一定的延时操作
23、。图5.6 LED数码显示电路5.4 报警电路如图,实行功率放大最后产生报警声音。图中使用电容可以有效地降低直流偏压的影响,同时还可以降低电源纹波,以此使交流报警信号无失真的进入喇叭发出警报声。图5.7 报警电路设计6系统软件设计6.1 系统主、从机软件流程图1、主机软件流程图:图6.1 主机软件流程图2、从机软件流程图:图6.2 从机软件流程图6.2 系统程序设计6 主程序一、主机:程序见附录一主机开机初始化,对工作模式、波特率、串行通信以及做好设定,接受数据准备。同时开机数码管显示0,表示无呼叫信号。无呼叫信息情况下也是显示0。初始化完后,进入死循环,不断检测有无新呼叫信号发送过来,如果有
24、就显示报警并存储起来,同时循环中,不断检测有无复位,查询操作的到来;假设有,则调用数组元素呼叫记录并显示。关于通信的波特率设置。方式1的波特率是可变的,以定时器T1作波特率发生器使用,其值由定时器1的计数溢出率来决定,其公式为:其中x表示计数初值二、从机:程序见附录二从机主程序开机上电进入初始化,设定工作模式,通信波特率。然后进入死循环不断扫描单总线上有无病床呼叫信号到来,一旦有,就立刻开启中断,然后进入串行中断状态,在中端服务程序中计算键值,同时将求助信号发送给主机。6 床号数码显示程序void led_show(uchar a) P0=a; delay_ms(1); 这里以一个数码管显示为
25、例,不考虑多个数码管显示问题,由于数码管显示代码是按共阴极编写的,而硬件电路中要求发来的显示数据是共阳极的,所以要取反操作。向端口送入数据后可以延时1ms。在实际应用中在送数据同时要向选通线送入高电平才可以。送入显示的数据可以通过锁存器保持LED点亮的状态,直到下一次新的数码值的到来才会改变。6 声音报警程序void baojing( ) /报警程序 uint i,j; for(j=0;j12;j+) for(i=0;i10;i+) P22=1; delay_ms(1.2); P22=0; delay_ms(1.2); for(i=0;i10;i+) P22=1; delay_ms(2); P
26、22=0; delay_ms(2); 报警原理是通过单片机给出不同频率的混合信号,经过LM386音频放大,最后送入喇叭得到报警声音。如上图是通过软件延时得到250HZ和416HZ的两个不同频率的混合信号,当然也可以调整信号频率,从而得到不同报警声音。也可以通过控制循环的次数来控制报警声音的长短。6 呼叫记录存储uchar tore10=0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f;如上,主机主程序中定义了一个store数组,存储空间大小为10个存储单元,数组初值都是数码管显示数据“0”。主机中只要接到呼叫信号就存储起来,数组采取循环存储,最
27、多一次可以存储10个呼叫记录,超过部分将依次覆盖前面第十个记录。当有复位操作时,就置当前访问元素为数码“0”;假设有上下翻等查找操作时,就访问数组,调出将要显示的数组元素既可。7系统测试仿真调试首先需要在电脑上安装虚拟串口软件,然后用串口辅助仿真工具进行仿真,具体可以用串口软件向主机发送呼叫信号,查看主机接受情况,以此来检查主机系统性能。也可以用从机向串口软件发送求助信号,以此检查从机系统计算并发送呼叫请求的情况。图7.1 PC机虚拟串口安装:1、 从机向串口软件分别发送一、二、三、四号病床呼叫请求,结果在串口软件上依次可以接收到十六进制“06 5B 4F 66”,这刚好对应是1,2,3,4的
28、显示,说明从机计算和发送求助信号没有问题。图7.2 串口工具接收呼叫信号2、 从串口软件分别向主机发送上面接收到十六进制“06 5B 4F 66”,结果可以看到每次发送都产生报警声音,而且数码管依次显示1,2,3,4,即指示呼叫病床为1,2,3,4号病床。图7.3 主机接收呼叫信号3、 从机和主机的COM口设置比照: 图7.4 从机COM口设置 图7.5 主机COM口设置由图7.4和图7.5可知,COM3和COM4为一对连通的虚拟串口,所以从机和主机在COM口设置上一个为COM3口,另一个为COM4口,波特率都是9600。8总结与展望由于人们生活水平的提高,对医院服务质量提出的新的要求,它要求
29、高效率,高质量,高水平的服务,而本医院呼叫系统的实现可以很好的帮助医院完成医护管理。本系统设计时创新之处在与应用了单片机双机通信、单片机与PC机串行通信、及单总线技术。之所以采用主从机模式,主要是为了方便以后扩展为用PC机来管理呼叫记录和记录的处理情况,便于医院评定服务质量,提高服务质量。同时考虑到节省线路、提高线路利用率,采用三线合一的单总线技术。考虑到以后病床数目的增多,采用单总线技术配合DS2401芯片可以很好的解决这一问题,如此以来病床号可以无限扩展,新增的病床直接挂到总线上就可以了。总之本系统设计时,不仅考虑了当前主要问题,同时也考虑到以后扩展的问题,具有高瞻远瞩的眼光。当然本系统也
30、存在一定的问题,比方报警声音不够悦耳,其中夹杂着噪声,听着很不舒服。这是因为存在干扰问题,具体的有按键抖动干扰,传输干扰。希望在以后的日子里能够不断发现问题、解决问题。最后,虽然本科毕业设计已经即将结束,但是我对医院病床呼叫系统的研究并没有告一段落,我会接着研究。以后目标是,在做PC机上用VB做一个病床呼叫管理系统,实时接收从机呼叫器发来的呼叫信号,从而实现对呼叫记录的最正确管理。9致谢10参考文献1 李全虎,仲兆楠. 单片机控制的双向呼叫系统J .电子技术. 2001年 10期2 赵曙关,李增烈. 具有记忆功能的病房呼叫系统J.电子科技. 1998年 2期3 陈新岗,赵阳阳等. 基于单片机的
31、无线病房呼叫器J. 重庆工学院学报. 2008年 10期4 李长俊. 新型病床呼叫系统的研制J. 仪器仪表学报. 2004年 04期增刊5 罗伏力. 8031控制的病房呼叫系统J. 衡阳市机电工程学校. 2002年6期6 黄宇飞,秦旭. 单片机单总线技术J.单片机与嵌入式系统应用.2001年01期7 吴江,陈尚松. 单总线技术在测控系统中应用J. 年 09期 8 李仕心. 多位病床呼叫器 J. 2001年第13卷 02期9 李树雄,李拓. 基于PLC的智能病床呼叫系统设计J. 医疗卫生装备. 2008年 第09卷03期10 张华林,林达明. 无线病房呼叫系统的研制J. 国外电子元器件. 200
32、6年 08期 附录一:/主机主程序设计#define uchar unsigned char #define uint unsigned int #include sbit P20=P20; sbit P21=P21; sbit P22=P22;sbit P23=P23; sbit P24=P24; sbit P25=P25;sbit P26=P26; sbit P27=P27; code table10=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f;/09 /要显示的床号uchar k;uchar store_1,store_sign;v
33、oid delay_ms(unsigned int n) /延时nMS的程序 unsigned char j; while(n-) for(j=0;j230;j+); /230是实验测试所得!unsigned char uart_getc( ) /主机接收程序while(!RI);RI = 0;return SBUF;void baojing( ) /报警程序 uint i,j; for(j=0;j12;j+) for(i=0;i10;i+) P22=1; delay_ms(1.2); P22=0; delay_ms(1.2); for(i=0;i10;i+) P22=1; delay_ms(
34、2); P22=0; delay_ms(2); void led_show(uchar a) /数码显示程序 P0=a; delay_ms(1); void main( ) /主机主程序 uchar store10=0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f;SCON=0x50;/串口工作在方式1,异步模式PCON=0x00;/波特率翻倍TMOD=0x20; /定时器1工作在方式2TL1 =0xfa; /自动重装在赋值TR1 = 1; /启动定时器,产生波特率RI = 0; /接收标志位清零TI = 1; /发送标志位清零ES = 1;
35、/中断允许EA = 1; /总中断允许k=0;led_show(0x3f); /开机显示0store_sign=0; while(1) if(store_sign=1) if(k=9) k=0; store+k=store_1; store_sign=0; if(P23=0) storek=0x3f;led_show(storek);delay_ms(25); /复位操作 if(P24=0) if(k=0)k=10; led_show(store-k); delay_ms(25); /上翻操作 if(P25=0) if(k=9)k=0; led_show(store+k); delay_ms(
36、25); /下翻操作 void serial_int(void) interrupt 4 /串口接收中断服务程序 unsigned char temp; if (RI) temp = SBUF; RI = 0; store_1=temp; store_sign=1; switch (temp) case 0x06:led_show(temp); /收到病床一呼叫信号 baojing(); break; case 0x5B: led_show(temp); /收到病床二呼叫信号 baojing(); break; case 0x4F:led_show(temp); /收到病床三呼叫信号 baoj
37、ing(); break; case 0x66: led_show(temp); /收到病床四呼叫信号 baojing(); break; default: break; 附录二:/从机主程序设计#define uchar unsigned char #define uint unsigned int #include sbit P20=P20; sbit P21=P21; sbit P22=P22;sbit P23=P23; sbit P24=P24; sbit P25=P25;sbit P26=P26; sbit P27=P27; uchar keytest;void keyscan();
38、uchar code table10=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f;/09 /要发送的数据void delay_ms(unsigned int n) /延时nMS的程序 unsigned char j; while(n-) for(j=0;j230;j+); /230是实验测试所得!void uart_putc(unsigned char c) /从机发送程序SBUF = c;while(!TI);TI = 0;void main() / 从机主程序 SCON=0x50;/串口工作在方式1,异步模式PCON=0x00;/波特
39、率翻倍TMOD=0x20; /定时器1工作在方式2TL1 =0xfa; /自动重装在赋值TR1 = 1; /启动定时器,产生波特率RI = 1; /接收标志位置一,激活串行中断TI = 0; /发送标志位清零ES = 1; /中断允许EA = 1; /总中断允许while(1) keyscan(); void keyscan(void) keytest=P2&0x0f; if(keytest!=0x0f) delay_ms(25); if(keytest!=0x0f) /软件按键去抖动处理 keytest=P2&0x0f; void com_serv(void) interrupt 4 /串口发送中断服务程序 if(keytest=0x0E) keytest=0;uart_putc(table1); if(keytest=0x0D) keytest=0;uart_putc(table2); if(keytest=0x0B) keytest=0;uart_putc(table3); if(keytest=0x07) keytest=0;uart_putc(table4); 学习文档 仅供参考
限制150内