基于89S51单片机的无线病房呼唤系统设计

基于89S51单片机的无线病房呼唤系统设计

ID:78562483

大小:638.32 KB

页数:40页

时间:2024-02-04

上传者:灯火阑珊2019
基于89S51单片机的无线病房呼唤系统设计_第1页
基于89S51单片机的无线病房呼唤系统设计_第2页
基于89S51单片机的无线病房呼唤系统设计_第3页
基于89S51单片机的无线病房呼唤系统设计_第4页
基于89S51单片机的无线病房呼唤系统设计_第5页
基于89S51单片机的无线病房呼唤系统设计_第6页
基于89S51单片机的无线病房呼唤系统设计_第7页
基于89S51单片机的无线病房呼唤系统设计_第8页
基于89S51单片机的无线病房呼唤系统设计_第9页
基于89S51单片机的无线病房呼唤系统设计_第10页
资源描述:

《基于89S51单片机的无线病房呼唤系统设计》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

百度文库•让每个人平等地提升自我基于89s51单片机的无线病房呼唤系统软件设计第1章单片机与AT89s51芯片概述1.1单片机简介单片机全称为单片微型运算机(SingleChipMicrocomputer),又称为微控制器(MicrocontrollerUnit)或嵌入式控制器(EmbeddedController)o它是将运算机的大体部件微型化并集成到一块芯片上的微型运算机,通常片内都含有CPU、ROMsrank并行I/。、串行I/。、按时器/计数器、中断控制、系统时钟及系统总线等。随着技术的进展,单片机片内集成的功能愈来愈壮大,并朝着片上系统方向进展。单片机有着体积小、功耗低、功能强、性能价钱比高、易于推行应用等显著长处,在自动扮装置、智能仪器仪表、进程控制、通信、家用电器等许多领域取得日趋普遍的应用。1.2AT89s51介绍如图1-1为AT89s51引脚图4 百度文库•让每个人平等地提升自我?1.0CP1.1CP1.2匚P1.5cP1.4cX0SI/P1.5(:XIS0/T1.&CSCK^Pl.7CRSTCRXD/P3,0CTRD/P3.1CITO/F3.2CINTl^PS.3CT0/F3.4CT1/P3.5C酶P3.ECRD/P3.7CXTAL2CXTAL1CPDIFGiroC1io□Vee233□P0.07ADO338□P0.1/仙1437□P0.59G3P0.3/g3$35bP0.4AB47343P0.5/AD5833bP0.6^B6q32□po.van?1031bEA/VPPit30□ALE/PKOG1223□FESN1328□P2.7ZA151427□P2.6/P141526□P2.5/A1316253P2.4/Al21724JP2.3/A1118233P2.2/A101322bP2.1/J132021□P2.2k8图1-1AT89s51引脚图AT89s51是一个低功耗,高性能CMOS8位单片机,片内含4kBytes]SP(In-systcmprogrammable)的可反复擦写1000次的Flash只读程序存储器,器件采用ATMEL公司的高密度、非易失性存储技术制造,兼容标准MCS-51指令系统及80c51引脚结构,芯片内集成了通用8位中央处置器和ISPFlash存储单元,功能壮大的微型运算机的AT89s51可为许多嵌入式控制应用系统提供性价比高的解决方案。AT89s51具有如下特点:40个引脚,4kBy氏sFlash片内程序存储器,128bytes的随机存取数据存储器(RAM),32个外部双向输入/输出(I/O)口,5个中断优先级2层中断嵌套中断,2个16位可编程按时计数器,2个全双工串行通信口,看门狗(VCDT)电路,片内时钟振荡器。另外,AT89s51设计和配置了振荡频率可为0Hz并可通过软件设置省电模式。空闲模式下,CPU暂停工作,而RAM按时计数器,串行口,外中断系统可继续工作,掉电模式冻结振荡器而保留RAM的数据,停止芯片其它功能直至外中断激活或硬件复位。同时该芯片还具有PD1P、TQFP和PLCC等三种封装形式,以适应不同产品的需求。(1)主要功能特性:兼容MCS-51指令系统4k可反复擦写(>1000次)ISPFlashROM4 百度文库•让每个人平等地提升自我32个双向I/O口工作电压2个16位可编程按时/计数器时钟频率0-33MHz全双工UART串行中断口线128x8bit内部RAM2个外部中断源低功耗空闲和省电模式中断唤醒省电模式3级加密位看门狗(WDT)电路软件设置空闲和省电功能灵活的1SP字节和分页编程双数据寄放器指针(2)AT89s51各引脚功能介绍:引脚如图1-1所示,以下是各引脚的说明.VCC:AT89S51电源正端输入,接+5V。VSS:电源地端。XTAL1:单芯片系统时钟的反相放大器输入端。XTAL2:系统时钟的反向放大器输出端,一般在设计上只要在XTAL1和XTAL2上接上一只石英振荡晶体系统就可以够动作了,另外能够在两个引脚与地之间加入一20PF的小电容,能够使系统更稳固,避免噪声干扰而死机。RESET:AT89s51的重置引脚,高电平动作,当要对晶片重置时,只要对此引脚电平提升至高电平并维持两个机械周期以上的时刻,AT89s51便能完成系统重置的各项动作,使得内部特殊功能寄放器之内容均被设成已知状态,而且至地址0000H处开4 百度文库•让每个人平等地提升自我始读入程序代码而执行程序。EA/Vpp:〃EA"为英文"ExternalAccess”的缩写,表示存取外部程序代码之意,低电平动作,也就是说当引脚为低电平后,系统会挪用外部的程序代码(存于外部EPROM中)来执行程序。因此在8031及8032中,EA引脚必需接低电平,因为其内部无程序存储器空间。若是是利用8751内部程序空间时,引脚要接成高电平。另外,在将程序代码烧录至8751内部EPROM时,能够利用此引脚来输入21V的烧录高压(Vpp)oALE/PROG:ALE是英文“AddressLatchEnable〃的缩写,表示地址锁存器启用信号。AT89s51能够利用那个引脚来触发外部的8位锁存器(如74LS373),将端口0的地址总线(A0〜A7)锁进锁存器中,因为AT89s51是以多工的方式送出地址及数据。平时在程序执行时ALE引脚的输出频率约是系统工作频率的1/6,因此能够用来驱动其他周边晶片的时基输入。另外在烧录8751程序代码时,此引脚会被当做程序计划的特殊功能来利用。PSEN:此为〃ProgramStoreEnable”的缩写,其意为程序贮存启用,当8051被设成为读取外部程序代码工作模式时(EA=0),会送出此信号以便取得程序代码,通常这支脚是接到EPROM的0E脚。AT89s51能够利用PSE及RD引脚别离启用存在外部的RAM与EPROM,使得数据存储器与程序存储器能够归并在一路而共用64K的定址范围。PORTO(〜):端口0是一个8位宽的开路电极(OpenDrain)双向输出入端口,共有8个位,表示位0,表示位L依此类推。其他三个I/O端口6一、P二、P3)则不具有此电路组态,而是内部有一提升电路,P0在看成I/O历时能够推动8个LS的TTL负载。若是当EA引脚为低电平时(即取用外部程序代码或数据存储器),P0就以多工方式提供地址总线(A0〜A7)及数据总线(D0〜D7)。设计者必需外加一个锁存器将端口0送出的地址锁住成为A0〜A7,再配合端口2所送出的A8〜A15合成一个完整的16位地址总线,而定位地址到64K的外部存储器空间。P0RT2(~):端口2是具有内部提升电路的双向I/O端口,每一个引脚能够推动4个LS的TTL负载,若将端口2的输出设为高电平时,此端口便能当做输入端口4 百度文库•让每个人平等地提升自我来利用。P2除看成一般I/O端口利用外,若是在AT89s51扩充外接程序存储器或数据存储器时,也提供地址总线的高字节A8〜A15,那个时候P2便不能看成I/O来利用了。P0RT1(-):端口1也是具有内部提升电路的双向I/O端口,其输出缓冲器能够推动4个LSTTL负载,一样地,若将端口1的输出设为高电平,即是山此端口来输入数据。若是是利用8052或是8032的话,乂看成按时器2的外部脉冲输入脚,而能够有T2EX功能,能够做外部中断输入的触发引脚。PORT3(-):端口3也具有内部提升电路的双向I/O端口,其输出缓冲器能够推动4个TTL负载,同时还多工具有其他的额外特殊功能,包括串行通信、外部中断控制、计时计数控制及外部数据存储器内容的读取或写入控制等功能。其引脚分派如下::RXD,串行通信输入。:TXD,串行通信输出。:INTO,外部中断0输入。:INT1,外部中断1输入。:T0,计时计数器0输入。:T1,计时计数器1输入。:WR:外部数据存储器的写入信号。:RD,外部数据存储器的读取信号。(3)AT89s51与AT89c51比较:89s51相对于89c51而言:新增加了很多功能,性能有了较大提升,价钱大体不变,乃至比89c51更低!ISP在线编程功能,那个功能的优势在于改写单片机存储器内的程序不需要把芯片从工作环境中剥离。是一个壮大易用的功能。最高工作频率为33MHz,大家都明白89c51的极限工作频率是24M,就是说S51具有更高工作频率,从而具有了更快的计算速度。内部集成看门狗计时器,再也不需要像89c51那样外接看门狗计时器单元电路。全新的加密算法,这使得对于89s51的解密变成不可能,程序的保密性大大增强,如此就可以够有效的保护知识产权不被侵犯。兼容性方面:向下完全兼容51全数字系列产品。比如805—、89c51等等初期MCS-5140 百度文库•让每个人平等地提升自我兼容产品。也就是说所有教科书、网络教程上的程序(不论教科书上采用的单片机是8051仍是89c51仍是MCS-51等等),在89s51上一样能够照常运行,这就是所谓的向下兼容。比较结果:就犹如INTEL的P3向P4升级一样,虽然都能够跑Windows98,不过速度是不同的。从AT89c51升级到AT89s51,也是同理。和S51比起来,C51就要逊色一些,实际应用市场方面技术的进步是永久向前的。第2章系统硬件设计系统原理框图如图2-1所示为系统原理框图:40 百度文库•让每个人平等地提升自我40百度文库•让每个人平等地提升自我发射模块发光二极管、蜂鸣器”报警〃接收模块七单片机,数码管显示,图2-1系统原理框图硬件模块设计该系统主要包括无线发射模块,无线接收模块,指示灯模块设计,声音模块,显示模块五部份组成。无线发射模块编码发射模块主要由PT2262编码IC和高频调制、功率放大电路组成,发射模块的A、B、C、D四个按键别离代表不同的病床号,按下代表病人呼救。如图2-1为无线发射模块电路图。40 百度文库•让每个人平等地提升自我w发射模块图2-2无线发射模块无线同意模块outGNC接收模块图2-3无线接收模块解码接收模块包括接收头和解码芯片PT2272两部份组成。接收头将收到的信号输入PT2272的14脚(DI),PT2272再将收到的信号解码。四个数据输出口接到四个I/O口,别离接在AT89s51单片机最小系统P1口的引脚上。通过不断的扫描I/O口是高电平仍是低电平来判断是不是有病人呼唤,是通过循环实现的。同时还需要考虑到一些问题,例如,当有多个病人同时呼唤时,能使互不干扰。如图2-3为无线接收模块电路图:40 百度文库•让每个人平等地提升自我指示灯模块利用发光二极管实现,发光二极管占用了四个I/O口,别离接在P2口的引上.指示灯连接如图2-4所示:图2-4指示灯连接危路40百度文库•让每个人平等地提升自我声音模块利用蜂鸣器来实现,蜂鸣器报警占用了四个I/O口,别离接在P2口的引脚上蜂鸣器连接如图2-5所示:图2-5蜂呜君连接电路LED显示模块主要由74HC164和数码管组成的,通过串口输入和串口输出把号码显示到数码管上。主要实现顺序移动,有串行输入口和半行输出口,别离接在AT89s51芯片的,…,通过74HC164来实现,在程序中主如果用循环来实现给一个时钟信号,输入一个数据,当有按键按下时,数码管将显示出是几号床位上的病人呼唤,而且一直在显示,直到有护士发觉。图2-6为74HC164和数码管连接电路:40 百度文库•让每个人平等地提升自我40百度文库•让每个人平等地提升自我第3章系统软件设计单片机程序设计的步骤40 百度文库•让每个人平等地提升自我单片机的程序设计通常包括按照任务绘制程序流程图编写程序及汇编等儿个步骤1绘制流程图所谓流程图就是用各类符号,图形,箭头把程序的流向及进程用图形表示出来,绘制流程图是单片机程序编写前最重要的工作,通常咱们的程序就是按照流程图的指向采用适当的指令来编写的。绘制流程图时,第一画出简单的功能流程图粗框图再对功能流程图进行扩充和具体化,即对存储器,标志位等单元做具体的分派和说明,把功能图上的每一个粗框图转化为具体的存储器或地址单元从而绘制出详细的程序流程图,即细框图。在单片机的编程进程中绘制流程图能看清楚程序执行的步骤和程序的流向。事实上,程序的编写就是按照流程图的功能完成的在实际的程序设计中按照框图采用适当的指令编写出实现流程图的源程序就是咱们编写程序的最后工作。2编写程序和汇编程序编写完以后,咱们要把它汇编成机械语言,这种机械语言就是十六进制文件,后缀名为*.HEX文件。以前还要把它转换成二进制文件,后缀名为*.BIN文件,不过此刻的编程器都能直接读入十六进制文件就不需要转换了最后用编程器把程序写入单片机。单片机程序设计的方式:要想弄清楚程序设计的方式,咱们第一要明白单片机到底有哪几类程序,单片机的程序分为顺序结构,分支结构和循环结构。在单片机的程序中既有复杂的程序也有简单的程序,但不论哪一种程序,它们都是由一个个大体的程序结构组成的,这些大体结构有顺序结构,分支结构和循环结构。1顺序结构程序的设计顺序结构的程序一般用来处置比较简单的算术或逻辑问题,它的执行进程是依照程序存储器PC自动加1的顺序执行的,主要用数据传递类指令和数据运算类指令来实现。2分支结构程序的设计所谓分支结构就是利用条件转移指令使程序执行某一指令后,按照所给的条件是不是知足来改变程序执行的顺序,也就是本条指令执行完后并非是象顺序结构那样执行下一条指令,而是看本条指令所给的条件是不是知足,若是知足条件就跳转到其他的指令,若是不知足就顺序执行。固然也能够是知足条件顺序执行而不知足条件跳转执行。在51系列单片机中,能够直接用于分支程序的指令有JBJNBJCJNCJZJNZCJNEJBC等这几条,它们能够完成诸如正负判断大小判断和溢出判断40 百度文库•让每个人平等地提升自我等等。在分支结构的指令设计中大家必需注意,执行一条判断指令只能够形成两路分支,若是要形成多路分支就必需进行多次判断也就是多条指令持续判断。3循环结构程序的设计循环程序是最常常利用的程序结构形式,在单片机的程序设计中有时要碰着一段程序需要重复执行多次的情形,现在就要用到循环结构程序。循环初始化部份主要用来设置循环的初始值,包括预值数,计数器和数据指针的初值。循环处置部份循环处置部份是程序的主体部份也称为程序体,通过它能够完成程序处置的任务。循环控制部份循环控制部份能够控制程序循环的次数并修改预值数或计数器和指针的值,检查该循环是不是执行了足够的次数,若是到了足够的次数就采用条件转移指令或判断指令来控制循环的结束。循环结束部份循环结束后必需返回一般用RET或RETI指令,在循环程序设计中,循环控制部份是程序设计的关键环节。常常利用的循环控制方式有计数器控制和条件控制两种,计数器控制就是把要循环的次数即预值数放入计数器中,程序每循环一次计数器的值就减1,一直到计数器的内容为零时,循环结束一般用DJNZ指令而条件控制方式常预先不明白要循环的次数。只明白循环的有关条件现在就可以够按照给定的条件标志位来判断程序是不是继续,一般参照分支结构方式中的条件来判别指令并执行。子程序的设计方式挪用子程序的程序咱们则叫它主程序LOOP的程序段在主程序执行时,每当要用到子程序时咱们就用LCALL指令来挪用子程序,子程序执行完以后,必需返回主程序返回就用RET指令。单片机汇编语言介绍程序设计语言能够分为:符号语言,机械语言,汇编语言,高级语言。符号语言己经具有很多长处,但符号语言中的每一个符号(这里称作助记符)能够是用户按照识别或记忆的需要自己来决定的。如此,通用性不是很强。就是说,按某40 百度文库•让每个人平等地提升自我一个人的想法编写的符号语言程序,另外一个人是无法看懂的。汇编语言克服了上述的缺点,它是在符号语言的基础上进展起来的。它是针对一类(乃至几类)运算机,抽象出来的一种符号语言并把这些符号加以统一规定,使得利用同类运算机的人都了解这些符号的意义,如此,使得用汇编语言编写的程序能够在这一类型的任何一台运算机上利用。这就有了极大的灵活性,固然不同类型的运算机的汇编语言也不同。它们都必需由生产厂家提供的汇编语言来编写。另外.汇编语言还增加了宏指令的功能。让咱们比较一下汇编语言和高级语言的特点。第一,汇编语言与处置器关系紧密。每种处置器都有自己的指令系统,相应的汇编语言也各自不同。因此汇编语言程序的通用性、可移植性较差。而高级语言与具体运算机无关,高级语言程序能够在多种运算机上编译启执行。第二,汇编语言编程涉及寄放器、内存等硬件细节,程序繁琐,调试也比较困难.而高级语言采用类似自然语言的语法,容易被掌握和利用,也没必要关心诸如标志、堆栈等。可是,汇编语言本质上就是机械语言,它能够直接有效地控制运算机硬件,因此能够产生运行速度快、指令序列短的高效率目标程序。而高级语言不易直接控制运算机的各类操作,编译程序产生的目标程序庞大、程序难以优化、运行速度慢.总的来讲,汇编语言的主要长处就是能够直接控制运算机硬件,能够编写在时刻和空间两方面更有效的程序。这些长处使得汇编语言在程序设计中占有重要的地位。是不可取代的。但汇编语言的缺点也是明显的,它与处置器紧密相关,要求程序员熟悉运算机硬件系统,考虑许多细节问题,所以程序繁琐,调试、保护、交流和移植困难。因此,有时能够采用高级语言和汇编语言混合编程的方式,彼此扬长避短,更好地解决实际问题。汇编语言生要应用处合有以下几种:1.程序要具有较短的运行时问,或只能占用较小的存储客量。例如操作系统的核心程序段,实时控制系统的软件等。2.程序与运算机硬件紧密相关,程序要直接控制硬件。例如to接口电路的初始化程序段,外部设备的底层驱动程序等63.大型软件需要提高性能、优化处置的部份。例如运算机系统频繁挪用的子程序、动态链接库等。40 百度文库•让每个人平等地提升自我1.没有适合的高级语言的时候。例如开发最新的处置器程序时。系统软件框图及程序设计图3-1系统软件框图通过不断地循环扫描按键,检查是不是有病人呼唤。初始化程序主程序初始化,并使数码管全显示0。BEGIN:MOVTM0D,#10H;设置定时器为定时器1方式1MOVTH1,#3CH;按时50nlsMOVTL1,#OBOHSETBET1;开按时器1中断SETBTR1;按时开始CLRBC1CLRBC2CLRBC3CLRBC4CLRFLAG1;清除4个标志位CLRFLAG2CLRFLAG340 百度文库•让每个人平等地提升自我CLRFLAG4MOVDPTR,#TAB;送表首地址MOVA,ftOFCH;0串口代码MOVRI,#9;;串口得送9次Al:CLRTXD3;;下面为串口送数过程RRCA;带进位右移SETBTXD3MOVRXD3,CLCALLYAXSHI;833US小段延时DJXZRI,AlMOVA,#OFCHMOVRI,#9A2:CLRTXD4RRCASETBTXD4MOVRXD4,CLCALLYANSHI;833USDJXZR1,A2MOVA,#OFCHMOVRI,#9A3:CLRTXD1RRCASETBTXD1MOVRXD1,CLCALLYANSHI;833USDJNZRI,A3MOVA,#OFCHMOVRI,#940 百度文库•让每个人平等地提升自我A4:CLRTXD2RRCASETBTXD2MOVRXD2,CLCALLYANSHI;833USDJNZRI,A43.32键扫描程序设计通过不断的扫描按键所接的I/O口是高电平仍是低电平来判断是不是有病人呼唤,是通过循环实现的。同时还需要考虑到一些问题,例如,当有多个病人同时呼唤时,如何能使互不干扰,这时是通过一个标志位来控制的。指示灯控制程序设计当有病人按键呼唤时,指示灯闪烁报警,用一条指令即可实现,并用延时程序控制灯的闪烁时刻。报瞥程序设计若是有病人呼唤,即有按键按下,那么相应的蜂鸣器所接的I/O口也设置为高电平,而且每一个蜂鸣器发出的声音是不一样的。在程序中只用一条语句即可实现:CLR,因为在本电路设计时,每一个引脚都是低电平有效的,所以在清零时蜂鸣器才能发作声音。显示程序设计当有按键按下时,就会挪用显示子程序,在电路图中利用的是:串行方式,假设此刻是2号床位上的病人呼唤,则在数码管上应显示“2”,串行方式中,数码管上显示的数字是先成二进制数,再一名一名地输进去的,然后才显示数字。这里是在模拟串口,因为该单片机中只有一个串口,而这里要用多个串口。当这段程序执行完以后,再进入循环。十进制数与相应二进制数的转换表如表3-1所示。表3-1转换表显示数值dopgfedcba驱动代码(16进制)011111100OfcH10110000060H211011010OdAH3111100100f2H40 百度文库•让每个人平等地提升自我40110011066H510110110B6H显示子程序如下所示:START:CLRC;病床数码管显示MOVDPTR,#TABMOVA,ROMOVCA,©A+DPTRMOVRI,#951:CJNERO,#1,S2SJMPSSI52:CJNERO,#2,S3SJMPSS253:CJNERO,#3,S4SJMPSS354:CJNERO,#4,SILJMPSS4FH1:LJMPBEGIN551:LCALLYS1OMSJB,FH1SSS1:CLRTXD3RRCASETBTXD3MOVRXD3,CLCALLYANSHI;833USDJNZR1,SSS1CLRCLRWS1:MOVA,R7ADDA,#20040 百度文库•让每个人平等地提升自我MOV31H,ASETBBC1SETBFLAG1LJMPTT2FH2:LJMPBEGIN551:LCALLYS10MSJB,FH2SSS2:CLRTXD4RRCASETBTXD4MOVRXD4,CLCALLYAXSHI;833USDJNZRI,SSS2CLRCLRWS2:MOVA,R7ADDA,#200MOV32H,ASETBBC2SETBFLAG2LJMPTT3FH3:LJMPBEGIN552:LCALLYS10MSJB,FH3SSS3:CLRTXD1RRCASETBTXD1MOVRXD1,C40 百度文库•让每个人平等地提升自我LCALLYAXSHI;833USDJNZRI,SSS3CLRCLRWS3:MOVA,R7ADDA,#200MOV33H,ASETBBC3SETBFLAG3LJMPTT4FH4:LJMPBEGIN551:LCALLYS10MSJB,FH4SSS4:CLRTXD2RRCASETBTXD2MOVRXD2,CLCALLYANSHI;833USDJNZRI,SSS4CLRCLRWS4:MOVA,R7ADDA,#200MOV34H,ASETBBC4SETBFLAG4LJMPTT1TTI1:LJMPTTT140 百度文库•让每个人平等地提升自我延时设定中断允许控制寄放器中断的允许或禁止是由片内可进行位(什么是位,大家可别到此刻还说不明白哦)寻址的8位中断允许寄放器IE来控制的,单片机中断系统中有两种不同类型的中断:一种称为非屏蔽中断;另一种称为屏蔽中断。对于非屏蔽中断,用户不能用软件方式加以禁止,一旦有中断申请,CPU将按照自然优先级予以响应。这里主要讲屏蔽中断,对于屏蔽中断,咱们能够通过软件的方式来予以控制(允许中断咱们把它称为中断开放,不允许中断咱们把它称之为中断屏蔽),如何操作,说穿了其实很简单,就是通过对IE的相应位的置“1”或请“0”来允许或禁止某个中断,IE地址(A8H)可位寻址D7D6D5D4D3D2DIDO,EA--ESET1EXIETOEXO,EA:总控位,EA=〃O〃时关所有中断。EA=〃1〃时所有中断请求均被开放。ES:串行口,ES—1"时开,ES二〃0〃时关串行中断ET1、ETO按时计数=1时开=0时关EX1、EXO外部中断=1时开=0时关。方式寄放器TMOD方式寄放器TMOD是一个逐位概念的8位寄放器,但只能利用字节寻址的寄放器,字节地址为89H。其格式如图3-1:D7D6D5D4D3D2DID0TMOD(89H)GATEC/fMlMOGATEC/TMlMOH定时器]中定时器0H图3-1寄放若TMQD格式GATE——门控制。GATE=1时,由外部中断引脚INTO、INT1和控制寄放器的TRO,TR1来启动按时器。当INTO引脚为高电平时TRO置位,启动按时器T0;当INT1引脚为高电平时TR1置位,启动按时器T1°GATE=O时,仅由TR0,TR1置位别离启动按时器TO、T1。C/T——功能选择位置位时选择计数功能,清零时选择按时功能。MO、M1——方式选择功能由于有2位,因此有4种工作方式M1M0工作方式计数器模式TMOD(设置按时器模式)40 百度文库•让每个人平等地提升自我00方式013位计数器TMOD=OXOO01方式116位计数器TMOD=0x0110方式2自动重装8位计数器TMOD=OX0211方式3To分为2个8位计数器,T1为波特率发生器TMOD=OX03按时器/计数器控制寄放器TCON在特殊功能寄放器中,字节地址为88H格式如图3-2,位地址(由低位到高位)为88H—8FH,由于有位地址,十分便于进行位操作。8FH8EH8DH8CH8BH8AH89H88H煦FTF1TRITFOTFOID1IT1IE0IT0图3-2TCQN在特殊功能寄放若格式TCON的作用是控制按时器的启、停,标志按时器溢出和中断情形。TCON的格式如下图所示。其中,TF1,TRI,TFO和TRO位用于按时器/计数器;IE1,IT1,IE0和IT0位用于中断系统。列位概念如下:TF1:按时器1溢出标志位。当字时器1计满溢出时,由硬件使TF1置“1”,而且申请中断。进入中断服务程序后,由硬件自动清“0”,在查询方式下用软件清“0”。TR1:按时器1运行控制位。由软件清“0”关闭按时器1。当GATE=1,且INT1为高电平时,TR1置“1”启动按时器1;当GATE=0,TR1置“1”启动按时器1。TFO:按时器0溢出标志。其功能及操作情形同TF1。TRO:按时器0运行控制位。其功能及操作情形同TR1。IE1:外部中断1请求标志。IT1:外部中断1触发方式选择位。IEO:外部中断。请求标志。ITO:外部中断。触发方式选择位。TCON中低4位与中断有关,咱们将在下节课讲中断时再给予讲解。由于TCON是能够位寻址的,因此若是只清溢出或启动按时器工作,能够用位操作命令。例如:执行"CLRTFO”后则清按时器。的溢出;执行“SETBTR1”后可启动按时器1开始工作(固然前面还要设置方式定)。按时器/计数器的初始化40 百度文库•让每个人平等地提升自我由于按时器/计数器的功能是由软件编程肯定的,所以一般在利用按时/计数器前都要对其进行初始化,使其按设定的功能工作。初始货的步骤一般如下:一、肯定工作方式(即对TMOD赋值);二、预置按时或计数的初值(可直接将初值写入THO、TLO或TH—、TL1);3、按照需要开放按时器/计数器的中断(直接对IE位赋值);4、启动按时器/计数器(若已规定用软件启动,则可把TRO或TR1置“1”;若已规定由外中断引脚电平启动,则需给外引脚步加启动电平。当实现了启动要求后,按时器即按规定的工作方式和初值开始计数或按时)。按时器1:作时必需给计数器送计数器初值,那个值是送到TH和TL中的。他是以加法记数的,并能从全1到全。时自动产生溢出中断请求。因此,咱们能够把计数器记满为零所需的计数值设定为C和计数初值设定为TC可取得如下计算通式:TOM-C式中,M为计数器模值,该值和计数器工作方式有关。该系统中,选用的是方式1,计数器的初值为:15536,溢出是为:65536,而晶振为:12HZ,按照公式计算,计算公式T二(M-TC)T“数或TC=M—T/TilBi口数是单片机时钟周期Tclk的12倍,TC为按时初值,单片机的主脉冲频率为TclkI2MHz,可得按不时刻为:50mso相应的程序代码为:(1)BEGIN:MOVTMOD,#10H;按时器/计数器方式控制MOVTH1,#3CHMOVTL1,#OBOHSETBET1;将所指位置1SETBTRI;ET1:按时器1(Tl)的溢出中断允许位;TRI:H的运行控制位,置1表示启动(2)中断服务程序:DSD:MOVTH1,#3CHMOVTL1,#OBOHINCR7:R7的值给了A,也是为了保证报警时刻的准确性40 百度文库•让每个人平等地提升自我CLRTFO;按时器0的溢出中断标志位RETIMCS-51的工作频率为2-12MHZ,咱们选用的8031单片机的工作频率为12MHZ。机械周期与主频有关,机械周期是主频的12倍,所以一个机械周期的时.刻为12*(1/12M)=lus。咱们能够明白具体每条指令的周期数,如此咱们就可以够通过指令的执行条数来肯定1秒的时刻。具体的延时程序分析:(1)YANSHI:MOVR5,#210;延时420us子程序DJXZR5,3RET(2)YS10MS:M0VR3,#20;延时10毫秒子程序SGL:MOVR4,#250DJNZR4,$DJNZR3,SGLRET每条指令的执行时刻为:2us。YANSHI子程序中,210*2=420,所以延时为420USo在YS10MS子程序中,是个双重循环,循环次数为:20*250=5000,所以延不时刻为:5000*2=10000us,约是:10MS。由于单片机的运行速度专门快其他的指令执行时刻能够忽略不计。第3章系统测试单片机应用系统的调试包括硬件调试和软件调试,下面分2部份进行讨论.单片机应用系统的硬件调试单片机应用系统的硬件调试主如果排查印刷电路板的问题和连接上的一些40 百度文库•让每个人平等地提升自我问题。由干硬件电路转变很多,不同类型的电路可能出现的问题也不一样,所以没有固定的程序能够投用,所以,在该系统中,第一通过了仔细地推敲系统原理,确认无误;第二对照设计图纸查印制电路板,看是不是有粘接等工艺现象;最后,检查外围连接是不是有误,通过这几个方面的反复调试,可确保电路板的无误性。在本系统的硬件调试进程中,出现了电压不稳固而致使程序无法写入的情形,使电压稳固的方式是改用新的电池,或是再次设计电源方案,在这里是用电源接通教学实验板,然后再把教学实验板与本系统相连接,如此,就可以够取得稳固的电压了。软件调试LCA51软件简介LCA51软件是集编辑、编译/连接、加载、调试等为一体的集成开发环境(IDE)o用能够在同一界面环境中完成所有任务。主界面大致如图4-1所示。工祭叁,工叁£*口芦苴*[,金山盘口jurrrf艘“〃图4-1LCA51软件主界面编辑窗口LCA51提供一个多窗口的源文件编辑器。该编辑器不受文件大小的限制,允许无穷的撤销/重复功能。编辑器全面支持汇编、C51和PL/M51语言的语法加痉着色。用户能够自概念各类类型文本的颜色和不同语言的关键词。相应的关键词文件名为、、。这些文件都保留在LCA51安装目录下。编辑器还支持书签,拷贝、剪切、粘贴,全程查找、替换,拖动编辑等功能。工作区窗口40 百度文库•让每个人平等地提升自我工作区窗口有两个页面窗口。工程页面窗口以树型结构显示工程中的项目文件等内容。没有感动工程时,该页面窗口为空。资源管理器页面窗口和Win9x中的资源管理器中的左面的窗口相同。输出窗口输出窗口显示用户编译连接进程中的输出信息,用户双击某条编译犯错信息提示即可直接定位到源文件的对应行。观察窗口观察窗口中显示调试进程中长期观察的变量项。用户能够添加、删除、修改、刷新观察顶。相应命令在右键菜单中。数据窗口数据窗口中成批显示实验机相应存储区域的整块数据内容。用户能够观察,修改相应地址单元的数据。相应命令在右键菜单中。对话窗口用户通过对话窗口直接用监控命令和实验机对话。注意:在调试状态,当对话窗口变成不活动窗口时,要使实验机仍在监控符提示状态下,不然,PC机缘和实验机失去通信。菜单介绍LCA51有许多菜单项,主菜单包括了绝大多数操作命令。菜单比较容易掌握,用户能够通过阅读菜单项,直接掌握每一个菜单命令的具体功能。LCA51也能够利用热键和工具栏图标快速完成常常利用菜单项的功能。在LCA51主菜单栏上有11个主菜单,它们别离如下:文件(£)和文件有关的操作,如打开、关闭、打印等文件操作。编辑(£)包括拷贝、剪切、粘贴、书签、查找和替换等编辑命令。查看(丫)改变LCA51的工作界面显示。包括工具栏和有关窗口的显示等。工程(E)和工程有关的操作,如打开、关闭、保留、设置等工程操作。编译(&)包括编译和连接等编译操作。调试(目)包括加载目标文件、单步、断点、全速执行等调试命令。观察(。)包括添加观察变量或对观察变量进行修改等命令。设置(£)包括AEDK实验机型号、通信口、单文件编译器/连接器、环境参数等的设置。40 百度文库•让每个人平等地提升自我工具(。包括加载和上传程序,自概念用户界面等命令。窗口(”选择或改变当前活动窗口及窗口排列方式。帮忙(白)显示相应帮忙文文件和软件版本信息。(4)22联机在线调试1启动运行环境打开实验机电源,双击桌面上的LCA51软件的图标,运行LCA51软件。第一次启动LCA51需设置通信端口。用户选着“设置一通信口”菜单项,在弹出的对话框中,选择相应的通信口和通信波特率。做本实验时,波特率应设9600。点击测试吊口按钮,检查通信口是不是可用。退出LCA51时,会自动保留用户最后一次的设置。2实验项目并编译选取所要做的实验项目的文件(水.asm),用户选择“编译一编译当前文件“菜单项,将编译当前活动窗口中的源文件,编译结果的信息显示在输出窗口中。用户能够按照输出窗口中错误信息直接定位到源文件相应位置。编译器将生成源文件的目标代码,对于单汇编文件,编译产生的目标代码能够直接加教调试,对于高级语言的源文件,编译结束还要连接才能产生可加载的目标代码。3调试LCA51是一个集成开发环境,调试和编辑、编译都在同一界面下完成。调试时的界面如图4-2所示。图4-2测试时的界面40 百度文库•让每个人平等地提升自我在编辑状态时,界面右下角的当前状态显示为“编辑”,在调试状态时,仿真机没有运行程序时,界面右下角的当前状态显示为“停止”,仿真机运行程序时,界面右当前状态显示为“运行”。许多菜单命令只有在调试状态才有效,用户选择“调试一一加教调试”菜单项后,将加载当前的工程文件或源文件的目标代码,加载完毕,就进入调试状态.若是用户想退出调试状态,选择“调试一一退出调试”菜单项。在调试状态,最下方的状态行显示当前PC指针等常常利用的寄放器的值。仿真机运行时左上角的图标会不断变更,右下角的当前状态会显示为“运行”。当前PC指针行的背景颜色为绿色,有效断点行背景颜色为红色,无效断点行背景颜色为棕色。PC指针行和断点行相同时,背景颜色为粉红色。观察窗口中显示长期观察的变量的值在不同时候的取值情形。用户能够在对话窗口中直接通过监控命令和仿真机对话,具体监控命令参考相关仿真机利用手册。数据窗口中显示整块数据区的内容。快速观察窗口显示当前光标处变量的取值。打开调试窗口并将目标码加载到实验机。然后用户就可以够运用本系统提供的各类工具和方式进行调试。主如果观察程序是不是正常、有无走飞、各主要参数中间值是不是与设计吻合。4进行实验按如实验说明和用户编制的程序,完成连线(最好先关闭实验机电源,再进行)。通过调试软件加载、运行程序、观察实验有关现象。若现象与设计不符,则返回第三步,从头进行。单片机应用系统的软件调试也没有规律可循。软件调试的主要任务是排查错误。编译器下调试程序,有两种错误,一种逻辑错误,也就是语法错误,是很容易被发觉的,另一种是功能错误,是指在没有语法错误的基础上,由于设计思想或算法的问题致使不能实现软件功能的一种错误。通过这两方面错误,不断地调试,和对各模块的调试,最后组成一个完整的程序。在软件设计顶用了按时器而的原因是:中断一开,按时器就开始计时,当到了中断时刻时,就挪用中断程序,其实按时器的作用和延时程序的作用是一样的,只不过,按时器有一个益处就是,相等于是两个CPU在动作,互不干扰,按时器一直在计时,程序也一直在运行;而延时程序是没有那个作用的,在运行延时程序的同40 百度文库•让每个人平等地提升自我时是不能有其它操作的,延时程序的作用是让前面的操作完全运行完。为了避免呼唤时彼此干扰,在本系统中利用了标志位flagl-flag*由标志位和按键来控制。总结本系统主要利用了AT89s51单片机和74HC164芯片的串口显示来实现病房呼唤的,主要包括显示模块,键盘模块,声音模块,单片机系统,接口模块等几部份,本文介绍的病房呼唤系统具体是说,医院的病房里每一个床位边都装有一个呼唤按钮,当病人需要帮忙时,按下呼唤按钮,护士办公室里呼唤显示板上相应房间号的指示灯克,然后报警,报警时刻为10S(能够转变),值班护士一看就明白哪个房间的病人需要帮忙或需要进行抢救。当同时有两个或多个以上的病人呼唤时,彼此互不干扰。系统的不足的地方第一是没能实现循环显示,循环显示就是只有一个数码管显示,通过各个病床位的优先级的设置,最先显示的是优先级高的病人的床位号码;第二就是系统用到的器件的个数比较多,比如说数码管和蜂鸣器,指示灯都是四个,都比较繁琐;再次就是没有实现病人与护士之间的对话功能,若是能够实现那个功能那么将为病人提供更好的服务。40 百度文库•让每个人平等地提升自我参考文献[1]沈红卫.单片机应用系统设计实例与分析[M].北京:北京航空航天大学出版社,2003[2]周航慈.单片机应用程序设计技术(修订版)[M].北京:北京航空航天大学出版社,2002[3]张为民等.CS-51系列单片机系统及其应用》[M].北京:高等教育出版社,2004[4]林邦杰,陈明.汇编语言程序设计[M].北京:中国铁道出版社,2003[5]刘守义.单片机应用技术[M].西安:西安电子科技大学出版社,2002[6]秦实宏.单片机原理与应用技术[M].北京:中国水利水电出版社,2005[7]卢艳军.单片机大体原理及应用系统[M].北京:机械工业出版社,2005[8]夏继强、沈德金.单片机实验与实践指导(二)[M].北京:北京航空学院出版社,2001[9]张毅刚.单片机原理及应用[M].北京:高等教育出版社,2004[10]雷思孝.单片机原理及实用技术[M].西安:西安电子科技大学出版社,2004[11]冯建华、赵亮.单片机应用系统设计与产品开发[M].北京:人民邮电出版社,2004[12]肖来胜、冯建兰、夏术泉.单片机技术实用教程[M].武汉:华中科技大学出版社,2004[13]赵曙光,李增烈.具有记忆功能的病房呼唤系统[J].电子科技,1998(2):22—25.[14]陈新岗,赵阳阳.基于单片机的无线病房呼唤器M.重庆工学院学报,2008(10):P127-130[15]无线遥控模块应用篇[J].电子制作,2008(6)[16][17]IntegratedCircuituPD121G.[18_DesignofhospitalsickroomwirelesscallingsystemLJ].2007(6)致谢本文是在赵润林老师的精心指导和严格要求下完成的,赵老师以其严谨求实的治学态度、高度的敬业精神、兢兢业业、孜孜以求的工作作风和斗胆创新的进取精神对我产生重要影响。同时,还特别感激朱胜利,李强同窗还有物理系同窗对我的无私帮忙,使我得以顺利完成论文。通过这次设计,使我取得了丰硕的理论知识,极大地提高了实践能力。单片机领域这对我此后进一步学习运算机方面的知识有极大的帮忙。在此,我忠心感40 百度文库•让每个人平等地提升自我激赵润林老师和运算机科学与技术系列位老师的指导和支持。在未来的工作和学习中,我将以更好的成绩来回报列位领导和老师。附录附录1:元器件清单序号名字型号数量备注1单片机AT89S511双列直插240腿双列直插底座1供单片机用3电容10464品振12M140 百度文库•让每个人平等地提升自我5电容30P26电解电容10UF17电阻10K18电阻1K59发光二极管3mm红410发光二极管3mm绿111电池盒五号三连112电阻413三极管PNP9012414蜂鸣器5V直流415电解电容100UF116寸单联共阴数码管417芯片74HC164418无线发射模块PT2272119无线接收模块PT22621附录2:电路原理图40 百度文库•让每个人平等地提升自我40百度文库•让每个人平等地提升自我"■».023)一个K匚XKV(ro・tug:-vccwITTFTT:a*在设+由<?®jo/T」1・力工”m■'--X.市IF正,ir.azxr却17J2小7UF35F36就加柒蔡累n卷胃小aRysM中2।tm附录3:程序清单40 百度文库•让每个人平等地提升自我RXD1BITTXD1BITRXD2BITTXD2BITRXD3BITTXD3BITRXD4BITTXD4BITBC1BIT31HBC2BIT32HBC3BIT33HBC4BIT34HFLAG1BITOOHFLAG2BIT01HFLAG3BIT02HFLAG4BIT03HORG0000HLJMPBEGINORG001BHLJMPDSDORG0030HBEGIN:MOVTMOD,itlOHMOVTH1,#3CHMOVTL1,#OBOHMOVDPTR,iiTABMOVA,#OFCHMOVRI,#9Al:CLRTXD340 百度文库•让每个人平等地提升自我RRCASETBTXD3MOVRXD3,CLCALLYANSHI;833USDJNZRI,AlMOVA,#OFCHMOVRI,#9A2:CLRTXD4RRCASETBTXD4MOVRXD4,CLCALLYANSHI;833USDJNZR1,A2MOVA,ftOFCHMOVRI,#9A3:CLRTXD1RRCASETBTXD1MOVRXD1,CLCALLYANSHI;833USDJNZRI,A3MOVA,#OFCHMOVRI,#9A4:CLRTXD2RRCASETBTXD2MOVRXD2,CLCALLYANSHI;833US40 百度文库•让每个人平等地提升自我DJNZR1,A4SETBEATT1:JNBFLAG1,GG1TTT1:MOVA,R7CJNEA,31H,TT2SETBSETBLJMPTT2GG1:JB,TT2MOVRO,#1LJMPSTARTTT2:JNBFLAG2,GG2TTT2:MOVA,R7CJNEA,32H,TT3SETBSETBLJMPTT3GG2:JB,TT3MOVRO,#2LJMPSTARTTT3:JNBFLAG3,GG3TTT3:MOVA,R7CJNEA,33H,TT4SETBSETBLJMPTT4GG3:JB,TT440 百度文库•让每个人平等地提升自我MOVRO,#3LJMPSTARTTT4:JNBFLAG4,GG5TT5:MOVA,R7CJNEA,34H,TT1SETBSETBLJMPTT1GG5:JB,TT1MOVRO,#4LJMPSTARTSTART:CLRC;病床数码管显示MOVDPTR,STABMOVA,ROMOVCA,©A+DPTRMOVRI,#9FH1:LJMPBEGINSSI:LCALLYS1OMSJB,FH1SSS1:CLRTXD3RRCASETBTXD3MOVRXD3,CLCALLYANSHI;833USDJNZRI,SSS1CLRCLR40 百度文库•让每个人平等地提升自我WS1:MOVA,R7ADDA,#200MOV31H,ASETBBC1SETBFLAG1LJMPTT2FH2:LJMPBEGINSS2:LCALLYS10MSJB,FH2SSS2:CLRTXD4RRCASETBTXD4MOVRXD4,CLCALLYANSHI;833USDJNZRI,SSS2CLRCLR;SETBP2WS2:MOVA,R7ADDA,#200MOV32H,ASETBBC2SETBFLAG2LJMPTT3FH3:LJMPBEGINSS3:LCALLYS10MSJB,FH340 百度文库•让每个人平等地提升自我SSS3:CLRTXD1RRCASETBTXD1MOVRXD1,CLCALLYANSHI;833USDJNZRI,SSS3CLRCLRWS3:MOVA,R740 百度文库•让每个人平等地提升自我ADDA,#200MOV33H,ASETBBC3SETBFLAG3LJMPTT4FH4:LJMPBEGINSS4:LCALLYS10MSJB,FH4SSS4:CLRTXD2RRCASETBTXD2MOVRXD2,CLCALLYANSHI;833USDJNZRI,SSS4CLRCLRWS4:MOVA,R7ADDA,#200MOV34H,ASETBBC4SETBFLAG4LJMPTT1Till:LJMPTTT1DSD:MOVTH1,#3CHMOVTL1,#OBOHINCR7CLRTFO40 百度文库•让每个人平等地提升自我RETIYANSHI:MOVR5,#210DJNZR5,$RETYS10MS:M0VR3,#20SGL:MOVR4,#250DJNZR4,$DJNZR3,SGLRETTAB:DBOfCh,60h,OdAh,0f2h,66h,0b6hTABI:DB3FH,06HEND40

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。
关闭