资源描述
商丘学院本科毕业设计
摘 要
为使医疗人员实现更好、更便捷和病人之间的沟通,提升了医院服务水平和质量,本文主要以AT89S51为核心的病房呼叫系统,该系统主要由蜂鸣器,数码管,指示灯,按键及单片机组成。当病房的病人需要帮助时,可以按下呼叫的按钮,值班室的值班人员可在显示器上看到相对应的房号和床号,然后再安排并落实病人的需求。如果有多人同时的按下按钮的时候,可以按照实际的情况来安排,尽量先解决重病房的病人需求。另外该系统采用的是有线的,优点是安全可靠,不干扰其它医疗电子设备的正常运行,缺点是安装的时候繁琐,设备的维护不方便,时效性也比较低。
关键词:病房呼叫;单片机; 串口显示
23
Abstract
To realize better and more convenient medical staff and patients to communicate between, improve the level and quality of service in hospital, thisarticle who nasty ward calling system with AT89S51 as the core, the system is mainly composed of a buzzer, digital tube, lights, buttons and single chip microcomputer. When ward patients need help, you can press the call button, the duty room attendants can be seen on the display number corresponding to the room and bed, and then arrange and implement the patient's needs. If there are many people at the same time, press the button, can according to the actual situation to arrange, as far as possible to solve the heavy ward patients needs. Inaddition, the system USES a cable, the advantage is safe and reliable, does notinterfere with the normal operation of other medical electronic equipment, thedisadvantage is that when installing trival, equipment maintenance is not convenient, timeliness is also low.
Keywords: ward call;Single chip microcomputer; serial port display
目 录
1 绪论 1
2 系统硬件设计 1
2.1 单片机介绍 1
2.2 系统原理 2
2.3 主要元器件介绍 2
2.4 各模块设计 4
2.4.1 LED显示模块设计 4
2.4.2 键盘模块设计 4
2.4.3 声音模块设计 4
2.4.4 接口电路设计 4
2.5 单片机控制电路 5
3 系统软件设计 5
3.1 系统总流程图 5
3.2 各模块功能设计 6
3.3 系统平台 9
3.3.1 汇编语言 9
3.3.2 伟福软件 10
3.4 计数器延时设定 11
3.4.1 计数器硬件延时 11
3.4.2 软件延时 12
4 系统测试 12
4.1 系统硬件调试 12
4.2 系统软件调试 13
5 结论 13
参考文献 14
附 录 15
致 谢 22
1 绪论
随着社会的不断发展,科学技术的不断进步,越来越多的人对医疗服务行业更加的注重,想要扎根立足这个行业,首先要提高医院病人和医务人员的沟通,使之更加的及时,简单,可靠。高效便捷的呼叫系统,不仅能够提高改善医院的服务质量,增加医院的效益,而且提高了医院社会影响力,同时也为创建和谐医院打下良好的基础,有利于构建社会主义和谐社会。医院病房呼叫系统顾名思义就是为医院病人和医护人员搭建一个信息交流的平台。一个医院病人很多,若是每个病房都安排一个医护人员,显然是不现实的,该课题就是解决此问题的。例如,有的病人在打完点滴之后,医护人员若不能及时的赶到,严重时可能给病人二次伤害。现在各大医院都非常的重视病人术后的护理情况,高效便捷的数字信息化的病房呼叫系统,不仅提高了医护人员护理效率,而且也使得病人在最需要的时候及时的赶到。病房呼叫系统分为两类,有线和无线。该课题设计的为有线呼叫系统,该系统稳定性比较好,成本相对较低,但是由于布线复杂,故适合中小型的医院。而无线呼叫系统,方便快捷,时效性高,但是在传输信号的时候,会干扰其他医疗设备,电子器件的正常运行,而且成本相对较高,故适合大型的医院[1]。随着科学技术的发展,病房呼叫系统,会更加的完善和快捷,逐步的向智能化发展,语音功能,视频功能都会逐步的完善。这使得病人在病房可以直接的和医护人员进行语音沟通,而且医护人员也能够及时的了解病人病情及其周边的环境。
2 系统硬件设计
2.1 单片机介绍
单片机全称单片微型控制器,又称微控器,或者嵌入式微控器。单片机一词最初源于“Single Chip Microcomputer”,简称SCM。单片机是一个完整的计算机系统,它是集中在一个芯片上。虽然体积小,但是它具有一个完整的计算机的绝大部分的器件:CPU,内存,内部总线系统,外部总线系统,定时器,实时时钟等外部的器件设备。单片机的发展分为四个阶段:第一阶段初步得探索阶段,这一阶段科研人员主要是想如何把计算机的主要的部件镶嵌在芯片上。第二个阶段初步的完善阶段。Inter公司在MCS-48单片机的基础上进一步的完善并发展了MCS-51单片机,他在很多方面都为以后的发展做了基奠。第三个阶段是微控阶段。这一阶段主要是满足测试系统的要求的各种接口电路和外围电路,凸显其智能化的的控制能力。第四个阶段是全面的发展阶段。由于单片机在很多领域有着很好的发展有势,特别是工业领域和商业领域,好多厂家和公司,都愿意花费时间和资金来参与单片机的研发和生产,这个阶段是单片机的黄金发展阶段,根据需求的不同,单片机的功能大小各异。由最早之前的8位,发展到现在的16位,32位等。根据实际的需求,选择合适的单片机,一方面,使得功能最优化,合理分配资源另一方面,节约成本,效益最大化[2]。
2.2 系统原理
系统原理框图如图2.1所示:
图2.1 系统原理框图
2.3 主要元器件介绍
本课题主要用到了:AT89S51单片机和74HC164芯片。
(1)主要功能特性:
兼容MCS-51指令系统
4k可反复擦写(>1000次)ISP Flash ROM
32个双向I/O口
4.5-5.5V工作电压
2个16位可编程定时/计数器
时钟频率0-33MHz
全双工UART串行中断口线
128x8bit内部RAM
2个外部中断源
低功耗空闲和省电模式
中断唤醒省电模式
3级加密位
看门狗(WDT)电路
软件设置空闲和省电功能
灵活的ISP字节和分页编程
双数据寄存器指针
(3)AT89S51各引脚功能介绍:
以下是各引脚的说明。
VCC:AT89S51电源正端输入,接+5V。
VSS:电源地端。
XTAL1:单芯片系统时钟反相放大器输入端口。
XTAL2:单芯片系统时钟的反向放大器输出端口,一般情况下在设计的时候只要在 XTAL1 和 XTAL2 上连接上一个石英振荡晶体系统就能达到预期的效果了,当然了你可以在两个引脚和地之间加入一个 20PF 的小型电容,这样可以强化系统的稳定性,避免噪声干扰而死机。
RESET:AT89S51的重置引脚,高电平动作,如果要对晶片进行重置时,只需要对此引脚电平提升至高电平然后保持两个机器周期以上的时间,这个时候AT89S51就能完成系统重置的各项功能,并且使得内部特殊功能寄存器之内容均被设成已知状态,最后可以使的地址0000H处开始读入程序代码而执行程序。
EA/Vpp:"EA"为英文"External Access"的缩写,表示存取外部程序代码之意,低电平动作,也就是说当引脚为低电平后,系统会调用外部的程序代码(存于外部EPROM中)来执行程序。
其引脚分配如下:
P3.0:RXD,串行通信输入。
P3.1:TXD,串行通信输出。
P3.2:INT0,外部中断0输入。
P3.3:INT1,外部中断1输入。
P3.4:T0,计时计数器0输入。
P3.5:T1,计时计数器1输入。
P3.6:WR:外部数据存储器的写入信号。
P3.7:RD,外部数据存储器的读取信号。
MCS-51单片机串行口方式0为移位寄存器方式,外接6片 74HS164作为6位LED显示器的静态显示接口,把8031的RXD作为数据输出线,TXD作为移位时钟脉冲。74HS164为TTL单向8位移位寄存器,可实现串行输入,并行输出。其中A、B(第1、2脚)为串行数据输入端,2个引脚按逻辑与运算规律输入信号,共一个输入信号时可并接。T(第8脚)为时钟输入端,可连接到串行口的TXD端。每一个时钟信号的上升沿加到T端时,移位寄存器移一位,8个时钟脉冲过后,8位二进制数全部移入74LS164 中。R(第9脚)为复位端,当R=0时,移位寄存器各位复0,只有当R=1时,时钟脉冲才起作用。Q1…Q8(第3-6和10-13引脚)并行输出端分别接LED显示器的hg…a各段对应的引脚上[3]。
2.4 各模块设计
该系统主要包括显示模块,键盘模块,声音模块,接口电路四部分组成。
2.4.1 LED显示模块设计
LED显示模块是由74HC164和数码管组成的,通过串口输入和串口输出把相对应的号码显示到数码管上。通过74HC164来实现,在程序中主要是通过循环去实现给一个时钟信号,输入一个数据,当有病房的病人有按键按下时,数码管就会显示与此相对应的床号,并且一直在显示,直到有护士发现。
2.4.2 键盘模块设计
键盘模块有四个按键,占用了其中的四个I/O口,依次接在AT89S51单片机最小系统P1口的P1.4-P1.5引脚上。通过不间断的扫描I/O口是高电平还是低电平然后来判断是否有病人需要帮助,这是是通过循环实现的。与此同时还需要考虑到其它的一些问题,比如,当有两个或者两个以上的病人同时呼叫时,能确保它们互不干扰。
2.4.3 声音模块设计
声音模块的设计是通过蜂鸣器来实现的,蜂鸣器报警装置占用了四个I/O口, 依次接在P2口的P2.4-P2.7引脚上.蜂鸣器如图所示:
图2.2 蜂鸣器
2.4.4 接口电路设计
假设病房有4张病床(要占用8个I/O口),就需要4个数码电子显示管,4个74HC164 8位移位寄存器,然后利用S51单片机的串行端口,再结合74HC164为驱动的数码管串口显示。主要实现顺序的移动,有串行输入口跟串行输出口,依次接在AT89S51芯片的P1.0,P2.0 P1.1,P2.1 P1.2,P2.2 P1.3,P2.3),4个按钮(要占用4个I/O口P1.4-P1.7),4个指示灯(要占用4个I/O口P3.4-P3.7),4个蜂鸣器报警(P2.4-2.7) [4]。
2.5 单片机控制电路
图2.3 系统控制线路图
3 系统软件设计
3.1 系统总流程图
图3.1 系统流程图
通过不断地循环扫描按键,检查是否有病人呼叫。
3.2 各模块功能设计
1.显示模块功能设计
当病房病人按键按下时,就可以调用显示子程序,在电路图中使用得是:串行连接的方式,假设现在是2号床位上的病人呼叫,则在数码管上应显示“2”,串行连接的方式中,数码管上显示的数字是先变成二进制数,再逐次地输进去的,最后才显示数字。这里是在模拟串口,因为该单片机中只有一个串口,而这里要用多个串口。当这段程序执行完以后,再进入循环。十进制数与相应二进制数的转换表如表3.1所示。
表3.1 转换表
显示数值
dop g f e d c b a
驱动代码(16进制)
0
1 1 1 1 1 1 0 0
0fcH
1
0 1 1 0 0 0 0 0
60H
2
1 1 0 1 1 0 1 0
0dAH
3
1 1 1 1 0 0 1 0
0f2H
4
0 1 1 0 0 1 1 0
66H
5
1 0 1 1 0 1 1 0
B6H
显示子程序如下所示:
START: CLR C;病床数码管显示
MOV DPTR,#TAB
MOV A,R0
MOVC A,@A+DPTR
MOV R1,#9
S1: CJNE R0,#1,S2
SJMP SS1
S2: CJNE R0,#2,S3
SJMP SS2
S3: CJNE R0,#3,S4
SJMP SS3
S4: CJNE R0,#4,S1
LJMP SS4
FH1: LJMP BEGIN
SS1: LCALL YS10MS
JB P1.4,FH1
SSS1: CLR TXD3
RRC A
SETB TXD3
MOV RXD3,C
LCALL YANSHI;833US
DJNZ R1,SSS1
CLR P2.4
CLR P3.4
WS1: MOV A,R7
ADD A,#200
MOV 31H,A
SETB BC1
SETB FLAG1
LJMP TT2
FH2: LJMP BEGIN
SS2: LCALL YS10MS
JB P1.5,FH2
SSS2: CLR TXD4
RRC A
SETB TXD4
MOV RXD4,C
LCALL YANSHI;833US
DJNZ R1,SSS2
CLR P2.5
CLR P3.5
WS2: MOV A,R7
ADD A,#200
MOV 32H,A
SETB BC2
SETB FLAG2
LJMP TT3
FH3: LJMP BEGIN
SS3: LCALL YS10MS
JB P1.6,FH3
SSS3: CLR TXD1
RRC A
SETB TXD1
MOV RXD1,C
LCALL YANSHI;833US
DJNZ R1,SSS3
CLR P2.6
CLR P3.6
WS3: MOV A,R7
ADD A,#200
MOV 33H,A
SETB BC3
SETB FLAG3
LJMP TT4
FH4: LJMP BEGIN
SS4: LCALL YS10MS
JB P1.7,FH4
SSS4: CLR TXD2
RRC A
SETB TXD2
MOV RXD2,C
LCALL YANSHI;833US
DJNZ R1,SSS4
CLR P2.7
CLR P3.7
WS4: MOV A,R7
ADD A,#200
MOV 34H,A
SETB BC4
SETB FLAG4
LJMP TT1
TTI1: LJMP TTT1
2.声音模块功能设计
当有病人需要帮助的时候,就会按下按键,那么与此相对应的蜂鸣器所对应得端口就会变成高电平,这个时候,蜂鸣器就会发出报警的声音,与此相对应床号的指示灯也会亮。在程序中只用一条语句即可实现:CLR P2.4,因为在本电路设计时,每个引脚都是低电平有效的,所以在清零时蜂鸣器才能发出声音。
3.键盘模块功能设计
通过不断的扫描按键所接的 I/O口是高电平还是低电平来判断是否有病人呼叫,是通过循环实现的。与此同时,有的时候,还需要考虑其它的一些问题,当有两个或者两个以上的病人同时需要帮助的时候,怎样去控制信号,使它们互不干扰,这时候,就需要通过一个标志位来控制[5]。
3.3 系统平台
3.3.1 汇编语言
每一种计算机都规定了自己的基本字符,词汇,语句,及语法规则。而汇编语言是计算机提供给用户的一种高效快捷,充分利用计算机硬件特征并能直接控制硬件的唯一语言。程序设计语言可以分为:符号语言,机器语言,汇编语言,高级语言。符号语言己经具有很多优点,但符号语言中的每一个符号(这里称作助记符)可以是用户根据辨认或者记忆的需要自己来决定的。这样,通用性不是很强。汇编语言克服了上述的缺点,它是在符号语言的基础上发展起来的,相对于机器语言而言,更加的容易理解和掌握,更加的便于调试和维护。这就有了极大的灵活性,当然不同类型的计算机的汇编语言也不同。它们都必须由生产厂家提供的汇编语言来编写。另外.汇编语言还增加了宏指令的功能。
让我们比较一下汇编语言和高级语言的特点。
汇编语言从本质上来讲还是机器语言,语言较为复杂,不易理解。高级语言简单,容易上手。与高级语言相比,汇编语言有以下特点:
首先,汇编语言与处理器关系密切。每种处理器都有自己的指令系统,相应的汇编语言也各自不同。因而汇编语言程序的通用性、可移植性较差。与此相对应的高级语言通用性和移植性都比较好,它可以在不同的计算机上同时编译执行。
其次,用汇编语言编写的程序,它的时效性非常好。用汇编语言编译的程序目的性强,目标效率高。高效率主要放映在两个方面,一方面是空间,目标程序短,另一方面时间,运行速度快。采用一样的算法,其他的任何语言程序,在空间和时间的效率都不如汇编语言程序。
最后,汇编语言的编写要比高级语言程序复杂,繁琐。汇编语言是面向机器的语言,而高级语言是面向过程,对象,目标的语言。程序设计师在用汇编语言设计程序的时候,务必要考虑系统电路的程序段和硬件设施规格,例如,寄存器,寻址方式,存储单元等。如果使用高级语言则不需要考虑这么多细节。
总的来说,汇编语言可以使得计算机的硬件设施得以最直接的控制,可以使得编写的程序在空间和时间上最优化。这些优点使得汇编语言在程序设计中占有重要的地位。是不可取代的;另一方面汇编语言的不足在于与机器的契合度要求相当高,程序设计师在用汇编语言的时候,要考虑系统电路的硬件设施,这使得程序的编写更加的繁琐和困难,在后期的维护,修改,交流,和移植的过程中,变得更加的困难。因此,程序设计师在编译程序的时候,有时候会把高级语言和汇编语言结合起来,优势互补,使得实际问题得到最优化的处理。
汇编语言生要应用场合有以下几种:
l.程序要具有较短的运行时问,或者只能占用较小的存储客量。操作中的系统核心程序段,实时里面的控制系统软件等。
2.程序与计算机硬件密切相关,程序要直接控制硬件。例如to接口电路的初始化程序段,外部设备的底层驱动程序等。
3.大型的软件需要提升其性能、优化处理得部分。例如计算机系统频繁调用的子程序、动态链接库等。
4.没有适合的高级语言的时候,例如开发最新的处理器程序时。
3.3.2 伟福软件
伟福系列仿真器品种多、功能强,特点如下:
1.主机+POD的组合,通过改变POD,可以对不同的CPU进行仿真测试。
由于应用场合的不同,客户在选择CPU时,是很有针对性的。这个时候就会需要更改仿真器,而伟福仿真软件WINDOW版本就支持多种CPU的仿真。
2.双平台。
DOS版本,WINDOWS版本。其中WINDOWS版本功能强大。
3.双工作模式。
4.双CPU结构,100% 不占用户资源。
5.双集成环境。
6.强大的逻辑分析仪综合调试功能。
7.强大的追踪器功能。
3.4 计数器延时设定
3.4.1 计数器硬件延时
定时器在运行的时候务必要给计数器传送初始值,这个值是传达到TH和TL中。它是按照加法记数的,并且能够从全0到全1时自动的溢出中断产生的请求。因此,我们可以做一设定:记数初始值用TC来表示,计数器记满为0所需要的计数器设定为C,这样就能得到如下通用的计算公式:
(3.1)
式中,M为计数器模值,该值和计数器工作方式有关。在该系统中,选用的是方式1,计数器的初值为:15536,溢出是为:65536,而晶振为:12Hz,根据公式计算,
计算公式
(3.2)
或 (3.3)
T计数是单片机时钟周期TCLK的12倍,TC为定时初值,
单片机的主脉冲频率为TCLK12MHz,可得定时时间为:50ms [7]。
相应的程序代码为:
(1)BEGIN: MOV TMOD,#10H;定时器/计数器方式控制
MOV TH1,#3CH
MOV TL1,#0B0H
SETB ET1;将所指位置1
SETB TR1;ET1:定时器1(T1)的溢出中断允许位;
TR1:T1的运行控制位,置1表示启动
(2)中断服务程序:
DSD: MOV TH1, #3CH
MOV TL1, #0B0H
INC R7 ;R7的值给了A,也是为了保证报警时间的准确性
CLR TF0 ;定时器0的溢出中断标志位
RETI
3.4.2 软件延时
MCS-51单片机工作的频率为2-12MHz,而我们选用的8031单片机的工作频率也为12MHz。机器的周期与主频成正比,主频是机器周期的1/12,所以一个机器周期的时间为12*(1/12M)=1us。通过计算我们就能了解具体的每条指令的周期数,这个时候我们就能知道1秒的时间可以通过几条指令了。
具体的延时程序分析:
(1)YANSHI:MOV R5,#210;延时420 us子程序
DJNZ R5, $
RET
(2)YS10MS:MOV R3,#20;延时10毫秒子程序
SGL:MOV R4, #250
DJNZ R4, $
DJNZ R3, SGL
RET
每条指令的执行时间为:2us。YANSHI子程序中,210*2=420,所以延时为420 us。
在YS10MS子程序中,是双重循环的程序,循环次数约为:20*250=5000,所以延时时间为:5000*2=10000us,约是:10Ms。
由于单片机的运行速度很快其他的指令执行时间可以忽略不计。
4 系统测试
单片机应用系统的调试包括硬件调试和软件调试,下面分两部分进行讨论。
4.1 系统硬件调试
单片机的硬件调试主要有一下几方面:首先检查系统的线路连接是否正确,其次检查系统设计所用的元器件型号规格是否符合要求,然后再检查电源的极性是否接反,最后就是检查一下元器件的连接是否存在逻辑性的错误。
在本系统的硬件调试过程中,出现了电压不稳定而导致程序无法写入的情况,使电压稳定的方法是改用新的电池,或者是再次设计电源方案,在这里是用电源接通教学实验板,然后再把教学实验板与本系统相连接,这样,就可以得到稳定的电压了。
4.2 系统软件调试
单片机应用系统的软件调试也没有规律可循,调试时更多的是凭经验。软件调试的主要任务是排查错误。
通过在Wave E2000编译器下调试程序,有两类错误,一类是功能性错误,是指在没有语法错误的基础上,由于设计算法或思想的问题导致不能实现软件功能的一种错误;另一类是逻辑性错误,也就是通常所说的语法错误,是很容易被发现的。通过这两方面的错误,不断地调试,以及对各模块的调试,最后组成一个完整的程序[9]。
5 结论
主要工作:熟悉AT89S51单片机功能及工作特性,对矩阵键盘的硬件以及软件编程有了更加升入的了解。掌握了采用地址锁存器以及38译码器来实现两位一体,以及四位一体共阴共阳数码管的外部接线图,及其单片机驱动程序,学会了采用三极管驱动蜂鸣器,以及对单片机的最小系统硬件结构有了更加深入的了解,同时通过长时间的实物焊接练习,使自己的焊接技术有了很大的提高。
存在的问题:对硬件电路中某些芯片以及某些内部结构不够深入的了解,导致有些问题解释不了,如单片机的P0口不能作为普通I/0口,必须接5-10k的上拉电阻的原理。又如在软件编程过程中发现在循环显示病人床号时,当在响应某一个按键时,如何截获另一个按键啊键值的软件编程还存在着很大的可改善之处,没有扩展更多的外部电路,如时钟电路等[11]。
以上是这次的毕业设计的成果,在这儿做一总结和概括,另外随着科技的进步和发展,将来的病房呼叫系统会向着更加数字化,智能化的方向发展。通过对模拟病房呼叫系统的课题研究,总结并概括该课题主要有两方面的难点:一方面实现信息的优先级的处理,当有两个或者两个以上的信号同时的传输的时候,怎么去处理最先需要帮助的病人发出的信号,目前现在我所研究的课题还不能够实现该功能,希望在以后的课题中,有人能够实现并完成。另一方面,就是在实施软件的编程使得病房的床号的动态显示,这就要求我们需要对编程语言有着高超的驾驭能力,这一方面改课题已经做到位了。
参考文献
[1] 李晓林,牛昱光,闫高伟.单片机原理与接口技术(第2版)[M].北京:电子工业出版社,2011:338-339.
[2] 韩志军,王振波.单片机的应用设计[M].北京:机诫工业出版社,2005:123-138.
[3] 张志利,张晓峰,朱力. FPGA的单片机多机串行通信网络[J]. 单片机与嵌入式系统应用,2009,(03):46-49.
[4] 张俊谟.单片机的发展与应用[J].电子制作,2007,(08):25-29.
[5] 刘小芳,吕炳朝.单片机的多串口技术[J].计算机测量与控制2003,(08): 115-178.
[6] 安晓莉,AT89S51单片机开发板的设计[J].电子设计工程,2009,(09):09-12.
[7] 史培,串口技术应用概述[J].科技资讯,2013,(34):35-39.
[8] 鲍小南,单片机基础,[M].杭州:浙江大学出版社,2002,102-114.
[9] 周功明,基于AT89S51单片机的数控电源设计[N]绵阳师范学院学报2012,(05) 36-48.
[10] Texas Instruments Incorporated, ULN2803A DARLINGTON TRANSISTOR ARRAY[P]. SLRS049–FEBRUARY,1997:1-7.
[11] 徐阳,徐爱钧.虚拟仿真在单片机课程教学中的应用[J]长江大学学报2012.30(5):36-42.
附 录
RXD1 BIT P1.0
TXD1 BIT P2.0
RXD2 BIT P1.1
TXD2 BIT P2.1
RXD3 BIT P1.2
TXD3 BIT P2.2
RXD4 BIT P1.3
TXD4 BIT P2.3
BC1 BIT 31H
BC2 BIT 32H
BC3 BIT 33H
BC4 BIT 34H
FLAG1 BIT 00H
FLAG2 BIT 01H
FLAG3 BIT 02H
FLAG4 BIT 03H
ORG 0000H
LJMP BEGIN
ORG 001BH
LJMP DSD
ORG 0030H
BEGIN: MOV TMOD,#10H
MOV TH1,#3CH
MOV TL1,#0B0H
SETB ET1
SETB TR1
CLR BC1
CLR BC2
CLR BC3
CLR BC4
CLR FLAG1
CLR FLAG2
CLR FLAG3
CLR FLAG4
MOV DPTR,#TAB
MOV A,#0FCH
MOV R1,#9
A1: CLR TXD3
RRC A
SETB TXD3
MOV RXD3,C
LCALL YANSHI;833US
DJNZ R1,A1
MOV A,#0FCH
MOV R1,#9
A2: CLR TXD4
RRC A
SETB TXD4
MOV RXD4,C
LCALL YANSHI;833US
DJNZ R1,A2
MOV A,#0FCH
MOV R1,#9
A3: CLR TXD1
RRC A
SETB TXD1
MOV RXD1,C
LCALL YANSHI;833US
DJNZ R1,A3
MOV A,#0FCH
MOV R1,#9
A4: CLR TXD2
RRC A
SETB TXD2
MOV RXD2,C
LCALL YANSHI;833US
DJNZ R1,A4
SETB EA
TT1: JNB FLAG1,GG1
TTT1: MOV A,R7
CJNE A,31H,TT2
SETB P2.4
SETB P3.4
LJMP TT2
GG1: JB P1.4,TT2
MOV R0,#1
LJMP START
TT2: JNB FLAG2,GG2
TTT2: MOV A,R7
CJNE A,32H,TT3
SETB P2.5
SETB P3.5
LJMP TT3
GG2: JB P1.5,TT3
MOV R0,#2
LJMP START
TT3: JNB FLAG3,GG3
TTT3: MOV A,R7
CJNE A,33H,TT4
SETB P2.6
SETB P3.6
LJMP TT4
GG3: JB P1.6,TT4
MOV R0,#3
LJMP START
TT4: JNB FLAG4,GG5
TT5: MOV A,R7
CJNE A,34H,TT1
SETB P2.7
SETB P3.7
LJMP TT1
GG5: JB P1.7,TT1
MOV R0,#4
LJMP START
START: CLR C;病床数码管显示
MOV DPTR,#TAB
MOV A,R0
MOVC A,@A+DPTR
MOV R1,#9
S1: CJNE R0,#1,S2
SJMP SS1
S2: CJNE R0,#2,S3
SJMP SS2
S3: CJNE R0,#3,S4
SJMP SS3
S4: CJNE R0,#4,S1
LJMP SS4
FH1: LJMP BEGIN
SS1: LCALL YS10MS
JB P1.4,FH1
SSS1: CLR TXD3
RRC A
SETB TXD3
MOV RXD3,C
LCALL YANSHI;833US
DJNZ R1,SSS1
CLR P2.4
CLR P3.4
WS1: MOV A,R7
ADD A,#200
MOV 31H,A
SETB BC1
SETB FLAG1
LJMP TT2
FH2: LJMP BEGIN
SS2: LCALL YS10MS
JB P1.5,FH2
SSS2: CLR TXD4
RRC A
SETB TXD4
MOV RXD4,C
LCALL YANSHI;833US
DJNZ R1,SSS2
CLR P2.5
CLR P3.5
;SETB P2
WS2: MOV A,R7
ADD A,#200
MOV 32H,A
SETB BC2
SETB FLAG2
LJMP TT3
FH3: LJMP BEGIN
SS3: LCALL YS10MS
JB P1.6,FH3
SSS3: CLR TXD1
RRC A
SETB TXD1
MOV RXD1,C
LCALL YANSHI;833US
DJNZ R1,SSS3
CLR P2.6
CLR P3.6
WS3: MOV A,R7
ADD A,#200
MOV 33H,A
SETB BC3
SETB FLAG3
LJMP TT4
FH4: LJMP BEGIN
SS4: LCALL YS10MS
JB P1.7,FH4
SSS4: CLR TXD2
RRC A
SETB TXD2
MOV RXD2,C
LCALL YANSHI;833US
DJNZ R1,SSS4
CLR P2.7
CLR P3.7
WS4: MOV A,R7
ADD A,#200
MOV 34H,A
SETB BC4
SETB FLAG4
LJMP TT1
TTI1: LJMP TTT1
DSD: MOV TH1,#3CH
MOV TL1,#0B0H
INC R7
CLR TF0
RETI
YANSHI:MOV R5,#210
DJNZ R5,$
RET
YS10MS:MOV R3,#20
SGL: MOV R4,#250
DJNZ R4,$
DJNZ R3,SGL
RET
TAB: DB 0fCh,60h,0dAh,0f2h,66h,0b6h
TAB1: DB 3FH,06H
END
致 谢
时光匆匆,大学四年已经接近尾声,在此论文完成之际,我要向这四年来帮助我的杜伟平老师、同学表示由衷的感谢!
这几个月的毕设计,充满了忙碌,也感到学习的充实。随后开始了一系列的整体方案的设计,并投入选择器材和方案的制定。最后开始整体的实验,虽然其中经历很多的失败。在老师、同学的帮助下,我很快克服了困难。设计的系统虽不是那么完善,但也是从知识到实践的转换。时光短暂,但给我留下很多深刻的印象,这是第一次独立自主的做设计。以前只注重理论的学习,却忽略了实践。通过此次设计,对我今后的学习和工作必将有很大的帮助。对此,向帮助我的杜伟平老师、同学表示忠心的感谢和真诚的敬意,谢谢大家!
展开阅读全文