毕业设计说明书短距无线寻呼系统设计_第1页
毕业设计说明书短距无线寻呼系统设计_第2页
毕业设计说明书短距无线寻呼系统设计_第3页
毕业设计说明书短距无线寻呼系统设计_第4页
毕业设计说明书短距无线寻呼系统设计_第5页
已阅读5页,还剩33页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、编号: 毕业设计(论文)说明书题 目:短距无线寻呼系统设计 专 业: 计算机科学与技术 题目类型: 理论研究 实验研究 工程设计 工程技术研究 软件开发2008 年6月 15 日 摘 要本文介绍了利用无线收发模块srwf-1100db实现与pc机之间的无线数据通讯。呼叫器和接收器之间可实现一对多关系,接受灵敏度高。接收器通过pc机可输出声音、文字,并指示出是哪个呼叫器寻呼。短距无线寻呼系统的实现利用了c51单片机、单片机最小系统、max232电压转换芯片,将ttl电平转换成可以和电脑串口匹配的电压、无线收发模块srwf-1100db、按钮驱动中断通过外部引角触发串口通讯发送讯号,当利用delp

2、hi制作的串口通讯上位机接受到讯号之后显示出是哪个发射器传过来的信号。本文重点讨论了通信协议的制定和具体实现,无线侧控系统的硬件及通信协议的设计思路和实现方法,实践证明该通信系统在环境比较恶劣的工业现场工作可靠稳定,传输距离比较远。关键词:最小系统;串口通讯;c51;无线收发abstractthis article recommended the wireless communications between pc and wireless transceiver module srwf-1100db. transmitter and receiver can implementation o

3、ne-to-many relationships, accept with the high sensitivity. receiver can output voice, text,which is also point out which transmitter are sending data by pc.implementation the short-range wireless transmitter system use scm, minimum system for scm, max232 chip voltage conversion, ttl level will be c

4、onverted into computer serial port and match the voltage. wireless transceiver module srwf-1100db, button drive interrupted by external trigger serial communication with kok sentting signals.when serial communication pc which made by delphi received the signal and show the single is send by which tr

5、ansmitter.this article focused on the develop communication protocol and concrete realization. wireless side of the control system communication protocol and hardware design ideas and methods to achieve. practice has proved that the communication system in the industrial environment is relatively po

6、or at the scene of reliable stability,transmission distance distant.keywords: minimum system, serial communication, c51, wireless transceiver目 录引言11 系统设计21.1 工作流程22 硬件设计32.1 芯片说明32.1.1 max23232.1.2 srwf-1100db无线数传模块32.1.3 mcs-8051芯片42.2 接收模块说明52.2.1 电源显示模块52.2.2 usb供电模块62.2.3 无线接收模块62.2.4 串口电平转换模块72

7、.3 发射模块说明82.3.1 复位模块82.3.2 无线发射模块82.3.3 供电模块92.3.4 晶振102.3.5 开关发射模块102.3.6 烧录程序模块112.3.7 c51芯片模块113 程序设计123.1 c51芯片程序123.1.1 keilc介绍123.1.1 程序实现133.2 上位机程序133.2.1 delphi介绍133.2.2 程序实现143.2.3 附加功能163.2.3 数据库设计173.2.4 闪烁模块184 理论分析194.1 发射干扰194.2 不足之处19结论20谢辞21参考文献22附录123附录225附录331引言当今社会的住宅小区医院、酒店、宾馆、大

8、型运动场馆的规模日益扩大,内部服务人员也日益增多、流动性大,为了提高工作效率,节约办公开支,开发无线呼叫系统的必要性日益凸显。由于工作流动率高,寻找服务人员困难。如使用手机联络,累计的通讯费用将十分昂贵。使用对讲机则有体积大、不便携带、成本高、对环境有噪声影响等缺点。使用 内部寻呼+内部分机应答 的通讯模式,可快速、高效地寻找服务人员,使有限的工作人员通过合理、及时有效的调度,发挥最大的工作效能,极大地提高工作效率。而传统模式的有线寻呼布线成本高,结构复杂,使用相当不方便。无线寻呼是一种单向传递信息的移动通信方式。用户携带的寻呼机为一个信号接收器,接收信息发送者通过寻呼台发出的字符、图形等多种

9、信息。寻呼机体积小、重量轻、能耗低、使用方便,寻呼网络覆盖面广、传输速率高。借助公众固定电话网,无线寻呼用户可及时与信息发送者进行双向通信。本次作者制作的短距无线通讯具有发射和接受两个模块,接受模块连接pc串口,上位机程序实时打开监控。无线通讯模块理论上在空旷的地方传输距离为300米,发射模块发出讯号,接收上位机收到信号发出文字和音乐提示,知道用户注意到有人寻呼。本系统可实现一对多的收发模块对应,工作可靠稳定。1 系统设计本系统由发射和接收两部分构成,发射部分由按钮驱动c51外部中断源通过无线发射模块发送数据,按下按钮,给系统一个下降延触发,单片机下降沿触发给发射模块信号,发射模块立即发送一个

10、字符串符号,即机号。接收部分由max232电压转换芯片连接接收模块接收数据,接受模块接收到字符串,通过串口把数据发送到上位机,上位机通过串口发来的字符串判断发送过来的数据在pc上显示出是哪个寻呼机正在寻呼主机。图1-1系统设计总图1.1 工作流程制动和主机有一定距离的的发射器上的按钮,此时接受器接收到信号,通过串口发送到上位机,上位机通过判断发送过来的数据在pc上显示出是哪个寻呼机正在寻呼主机。图1-2 系统工作流程2 硬件设计2.1 芯片说明2.1.1 max232max232是一种双组驱动器/接收器,片内含有一个电容性电压发生器以便在单5v电源供电时提供eia/tia-232-e电平。每个

11、接收器将eia/tia-232-e电平输入转换为5v ttl/cmos电平。这些接收器具有1.3v的典型门限值及0.5v的典型迟滞,而且可以接收30v的输入。每个驱动器将ttl/cmos输入电平转换为tmeia/tia-232-e电平。 max232的工作温度范围为0至70,max232i的工作温度范围为-40至85。图2-1 max232引脚2.1.2 srwf-1100db无线数传模块引脚说明序号srwf-1100db端说明电平连接到终端备注1gnd电源地电源地2vcc电源dc3.65.0v3rxd/ttl串行数据接收端ttltxd4txd/ttl串行数据发射端ttlrxd5sleep休眠

12、控制(输入)ttl休眠信号低有效t15ms6reset复位控制(输入)ttl复位信号负脉冲1ms图2-2 srwf-1100db引脚应用电表等低成本近距离通信,3v-5.5v供电 ,波特率1200-57600bps,ttl接口 。视距可靠传输距离可达350m/1200bps。2.1.3 mcs-8051芯片单片机的40个引脚大致可分为4类:电源、时钟、控制和i/o引脚。 电源: vcc - 芯片电源,接+5v; vss - 接地端; 时钟:xtal1、xtal2 - 晶体振荡电路反相输入端和输出端。 控制线:控制线共有4根, ale/prog:地址锁存允许/片内eprom编程脉冲 ale功能:

13、用来锁存p0口送出的低8位地址 prog功能:片内有eprom的芯片,在eprom编程期间,此引脚输入编程脉冲。 psen:外rom读选通信号。 rst/vpd:复位/备用电源。 rst(reset)功能:复位信号输入端。 vpd功能:在vcc掉电情况下,接备用电源。 ea/vpp:内外rom选择/片内eprom编程电源。 ea功能:内外rom选择端。 vpp功能:片内有eprom的芯片,在eprom编程期间,施加编程电源vpp。 i/o线80c51共有4个8位并行i/o端口:p0、p1、p2、p3口,共32个引脚。p3口还具有第二功能,用于特殊信号输入输出和控制信号(属控制总线)。 图2-3

14、 单片机80c51引脚2.2 接收模块说明2.2.1 电源显示模块发光二极管内部是具有发光特性的pn结。当pn结导通时,依靠少数载流子的注入以及随后的复合而辐射发光。led正向伏安特性曲线比较陡,在正向导通之前几乎有电流。当电压超过开启电压时,电流就急剧上升。,led属于电流控制型半导体器件,其发光亮度l(单位cd/m2,读作坎德拉每平方米)与正向电流if近似成正比。图2-4 发光二极管电路发光二极管工作必须限制在ifm(最大工作电流)以内, 一般工作电流应选择在0.6ifm以内。接上一个10k电阻限流,电流为0.41ma左右,在接通电源后发光二极管亮红灯,说明电路有电源。2.2.2 usb供

15、电模块usb接口有四个触点,分别是电源+5v、数据、数据+、电源地,usb设备与计算机通过“数据+”和“数据”通道进行数据传输,“+5v”、“电源地”具有为外部设备供电的能力。图2-5 usb供电电路2.2.3 无线接收模块srwf-1100db无线数传模块,3v-5.5v供电 ,波特率1200,串行数据接收端rxd连接到max232的txd,即r2 out引脚;串行数据发射端txd连接到max232的rxd,即t2 in引脚,作用是无线发射数据。1、2口分别接电源和地。实现的功能是无线接收数据。图2-6 无线接收模块电路考虑到无线通信的特点,系统采用短帧格式,每1帧最多包含固定的8个字节的有

16、效数据,数据的确切长度由地址及控制字段的后3位确定。差错控制方法采用出错重传,校验方法采用循环冗余校验crc,格式如下:先导字段贞头部地址及控制有效字段效验和 a.先导字段。它的作用是使通信链路内部达到位同步,标志有效信息的开始。 b.帧头部。其作用主要是使帧内数据达到同步,因而也称作同步字段,它还有一个作用是稳定接收机,在这里我们通过实验测试选择的是ffhoc.地址及控制字段的格式如下:a3a3a1d3d2k2k1 a3, a2, a1是地址位,用于区别不同的从器件发来的数据;d3, d2, d1是数据长度字段,说明有效数据的字节数,最大为8,最小为1;k2,kl用来指明帧类型,k2k1二0

17、1表示数据帧,k2k1=10表示正确接收确认帧ack, k2k1=11表示错误接收确认帧nack, k2k1 = 00表示命令帧,从机接收到命令帧表示主站要求与其通信。 d.有效数字字段。需要传送的有效数据,最多为8个字节。不够8个字节填充55 h,e.校验和字段。它的作用是检测传输过程中出现的错误,保证所传输数据的正确可靠,这里采用8位crc校验。需要注意的是所校验的内容从帧头部字段开始,不能包括先导字段。2.2.4 串口电平转换模块max232的v-管脚通过一个10uf电容接负电源(地) ,max232的v+管脚通过一个10uf电容接正电源,他们是电荷泵,用于产生+10/-10v电压。外接

18、的四个电容的作用是升压,232与电脑交换数据的的峰值电压极高,电压小了大了数据串都变形无法识别。其他两组收发,一组接无线发射模块,一组接串口。连接串口时,串口上接收是3脚,发送是2脚,5脚要接地。实现的功能是把接收到的数据通过串口发送到pc上位机。图2-7 max232接串口电路2.3 发射模块说明2.3.1 复位模块由电容串联电阻构成,由图结合电容电压不能突变的性质,可以知道,当系统一上电,rst脚将会出现高电平,并且,这个高电平持续的时间由电路的rc值来决定.典型的51单片机当rst脚的高电平持续两个机器周期以上就将复位,所以,适当组合rc的取值就可以保证可靠的复位。输出为高的时候是通过内

19、部一个很大的电阻上拉的,输出高电平时驱动能力很差,所以就通过外部上拉来提高电平输出驱动能力。电路为低电平触发,接一个电容到低,再接一个电阻到电源。上电时,电容开始充电,电压缓慢上升。所以可以保持一段时间的低电平。这个低电平就是用来复位的。一段时间过后,电容上电压达到一定程度,这时复位就完成了,进入正常工作状态。图2-8 复位电路2.3.2 无线发射模块srwf-1100db无线数传模块,3v-5.5v供电 ,波特率1200,串行数据接收端rxd连接到c51的txd,即p31引脚;串行数据发射端txd连接到c51的rxd,即p30引脚,作用是无线发射数据。1、2口分别接电源和地。实现的功能是无线

20、发射数据。无线通信从本质上讲是不可靠的,因而合理通信协议的制定是至关重要的,它直接关系到传输系统的效率和可靠性。设计的协议采用主从方式,需要通信时主机先向某个从站发送命令帧,之后切换到接收状态,接着被选中的从站将需要发送的数据以上述的帧格式打包发出,发送完 1帧数据之后切换到接收状态,等待主机的确认;主机收到先导字段格式的信号后,产生串行中断,中断程序负责接收数据帧,最后对收到的数据帧的进行crc校验和计算,与收到的校验和比较,并且马上切换到发射状态,如果两者相同说明已经正确地接收到1帧,发送正确接收确认信号(ack),如果计算得到的校验和与收到的校验和不相同,则发送错误接收信号(nack)。

21、从机收到ack后说明1帧数据发送成功,如果收到了nack信号或是在规定的时间内没有收到从机的任何确认,则说明1帧数据发送失败,需要重新发送。这样的协议设计虽然看上去效率不是很高,收发机在状态切换时需要3一5 ms的等待时间,所以实际的数据传输速率要低于9.6 kbit/s,但是却可以有效地保证传输系统的可靠性和正确性,而这一点在实际运用中是至关重要的。图2-9 无线发射模块电路2.3.3 供电模块由于发射模块体积小,为了方便携带,所以供电是由三节干电池总共4.5v电源提供。有关功耗问题引起的设计反复和消费类电子产品中低功率器件所带来的成本节省的统计资料表明,在今后的asic设计中必须更多地考虑

22、功率设计问题。功耗已开始变为造成设计反复的一个重要原因,尽管它引起的反复次数比功能错误引起的少得多。低功耗设计可降低功率,无需昂贵的风扇、散热器和陶瓷封装,从而实现较低的成本。功耗的增加会带来一系列问题,例如温度升高、电路参数漂移、可靠性下降、芯片封装成本增加,使用散热设备导致的成本增加、电池寿命的缩短等等。图2-10 干电池供电电路由于此电路比较简单,发射器几乎就是最小系统,所以要降低本来就不高的功率难度实在不小,从整个系统来看,要降低功耗也只能从无线收发模块下手。在srwf-1100db上有两个管脚,一个是sleep,一个是reset,所以低功耗是这样设计的:当开关未接通时,收发模块是处于

23、休眠状态的。一旦接通发射开关,就重制整个模块 ,让他处于工作状态。如果想要更底的功耗,甚至在没有发送数据时候让整个模块不工作。这样,他工作时、休眠时、不工作时的耗电量差别很多,因为无线模块发送数据时,他将耗费大量的功率。理论上收发模块的发射电流:65ma;接收电流:25ma;睡眠电流:3ua;2.3.4 晶振在单片机系统里晶振的作用非常大,他结合单片机内部的电路,产生单片机所必须的时钟频率,单片机的一切指令的执行都是建立在这个基础上的,晶振的提供的时钟频率越高,那单片机的运行速度也就越快。晶振用一种能把电能和机械能相互转化的晶体在共振的状态下工作,以提供稳定,精确的单频振荡。晶振的作用是为系统

24、提供基本的时钟信号。通常一个系统共用一个晶振,便于各部分保持同步。有些通讯系统的基频和射频使用不同的晶振,而通过电子调整频率的方法保持同步。晶振频率为22.1184mhz。图2-11 晶振电路2.3.5 开关发射模块开关的作用是用按钮来控制数据的发射与否,按下按钮,低电平触发发送出数据,即发射器的编号,除了不用电容来保持一个低电平的过程,其他的设计都和复位电路相同。详情请查看复位电路部分。图2-11 开关电路2.3.6 烧录程序模块因为要把程序烧录到单片机芯片里,所以单片机要接出几个端口(p15,p16,p17,rst),要保证在系统可编程,指电路板上的空白器件可以编程写入最终用户代码, 而不

25、需要从电路板上取下器件,已经编程的器件也可以用isp方式擦除或再编程。图2-12烧录程序电路2.3.7 c51芯片模块总共40个脚,电源用2个(vcc和gnd),晶振用2个,复位1个,ea/vpp用1个,29脚psen,30脚ale为外扩数据/程序存储器时才有特定用处,一般情况下不用考虑。剩下32个引脚,p0到p3口各8个。对于31脚(ea/vpp),当接高电平时,单片机在复位后从内部rom的0000h开始执行;当接低电平时,复位后直接从外部rom的0000h开始执行。p1口是一个内部提供上拉电阻的8位双向i/o口,p1口缓冲器能接收输出4ttl门电流。p1口管脚写入1后,被内部上拉为高,可用

26、作输入,p1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在flash编程和校验时,p1口作为第八位地址接收。p3口也可作为at89c51的一些特殊功能口:l p3.0 rxd(串行输入口)l p3.1 txd(串行输出口)l p3.2 /int0(外部中断0)l p3.3 /int1(外部中断1)l p3.4 t0(记时器0外部输入)l p3.5 t1(记时器1外部输入)l p3.6 /wr(外部数据存储器写选通)l p3.7 /rd(外部数据存储器读选通)图2-13 c51电路3 程序设计3.1 c51芯片程序3.1.1 keilc介绍keilc51是美国keilsoftwa

27、re公司出品的51系列兼容单片机c语言软件开发系统,与汇编相比,c语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。用过汇编语言后再使用c来开发,体会更加深刻。 keilc51软件提供丰富的库函数和功能强大的集成开发调试工具,全windows界面。另外重要的一点,只要看一下编译后生成的汇编代码,就能体会到keilc51生成的目标代码效率非常之高,多数语句生成的汇编代码很紧凑,容易理解。在开发大型软件时更能体现高级语言的优势。3.1.1 程序实现图3-1 芯片程序流程本系统单片机程序设计得很简单,一个延时的函数,在主程序里确定定时器工作方式、晶振频率、定义波特率,启动定时器,初

28、始化串口,开中断。然后定义开关,导通开关后将数据送到串口sbuf中,最后发送回车换行字符到串口sbuf=0x0d,重新装入初值到定时器t0,程序基本结束。原码见附录。3.2 上位机程序3.2.1 delphi介绍delphi是著名的borland(现在已和inprise合并)公司开发的可视化软件开发工具。“真正的程序员用c,聪明的程序员用delphi”,这句话是对delphi最经典、最实在的描述。delphi被称为第四代编程语言,它具有简单、高效、功能强大的特点。和vc相比,delphi更简单、更易于掌握,而在功能上却丝毫不逊色;和vb相比,delphi则功能更强大、更实用。delphi具有以

29、下的特性:基于窗体和面向对象的方法,高速的编译器,强大的数据库支持,与windows编程紧密结合,强大而成熟的组件技术。但最重要的还是object pascal语言,它才是一切的根本。3.2.2 程序实现图3-2 上位机流程在formcreate里打开串口,即当应用程序一打开,串口也就随之打开,之后等待数据发送过来,在comm1receivedata里实现数据接受move(buffer,pchar(s),bufferlength),把接受到的数据用一个edit来显示,这里相当于保存数据用。之后判断edit里的数据,是哪一号机发送过来的,就是屏幕上显示出该机相关信息,以此来判断是哪一号发射器正在

30、呼叫。所有的机子的信息都有对用的编号,都事先保存在上位机的程序里面。详细的代码见附录。图3-3 未接收时界面表面上看很平静,没有按钮,不细心观察的人还以为是一张图片,其实他的数字按键充满了按钮,把鼠标划过他们上面都会有很详细的提示。图3-4 接收时接收时,系统会响起音乐提示,屏幕会闪烁,在屏幕上显示时间,呼叫器持有者的相片,以及提示您有一条新的信息,此时您需要按ok按钮查看呼叫者的信息。 图3-5 查看时屏幕上出现呼叫器一号发来的信息,当然,这些都是事先保存在程序里面的,因为程序接受到的只是一个记号而已。此外,还可以查看呼叫记录,变化程序色彩,选择被叫时的音乐等多种功能。3.2.3 附加功能图

31、3-6 选择呼叫音乐当鼠标右键点中按键5会立即弹出选择菜单,可以选择呼叫提示时的音乐,当接收到数据时mediaplayer1.play;当选中菜单中的歌曲时,把mediaplayer1的文件名mediaplayer1.filename属性设置到音乐文件所在的相对路径即可。图3-7 选择界面皮肤当鼠标右键点中按键0会立即弹出选择菜单,可以选择上位机的皮肤,给乏味的生活带来很多乐趣。本程序主要是控件tskindata ,主要用于美化程序, 只要把tskindata控件放下去,它就能自动美化所有窗体。skinfile: skin(皮肤)文件的包含路径的文件名,在运行时加载。本程序主要是用的到此属性。

32、3.2.3 数据库设计字段名称数据类型大小记录编号自动编号长整型时间文本50呼叫者文本50表1 数据表连接上数据库之后,每接受到一次串口发送过来的数据,就保存到access数据表里面,在查看的时候把数据都显示出来。每一次呼叫,comm1receivedata都会把记录录入数据库,其中包括呼叫的时间和呼叫的机号。每次查看记录是都查看数据库显示所有的呼叫记录。图3-8 呼叫日志图3-9 呼叫日志流程3.2.4 闪烁模块图3-10 呼叫日志流程当上位机接收到数据之后,定时器打开,设置标志位i,根据标志位的值在定时器里的panal里变换颜色。4 理论分析4.1 发射干扰当有两个发射器同时给接受器发送数

33、据,即同时寻呼。因为是同一波特率,同一发射频率,所以信号之间的干扰特别大,而且程序里面也没有判断此情况。但是考虑到出现此情况的几率十分之小,小到可以忽略不记,所以不考虑也是解决此方法的最优方法。4.2 不足之处l 此系统虽然理论上可以做到呼叫器和接收器之间可实现多对一关系,但是由于无线通讯模块价格太高,所以本系统只实现了一对一的关系。l 对低功耗的实现只停留在理论分析之上,但是由于系统总的功耗不高,最终的测试结果是发射器电压4.3v,在发射时功耗和平均电流分别是41ma和33ma。l 本系统在发射器设计时由于设计失误,接上指示灯之后造成电路短路,电路不可用,后面把指示灯卸下,造成发射器没有电源

34、指示灯,给携带者造成很大的不便。结论本次毕业设计是我首次接触到嵌入式方向从画电路图到最终制作成成品的整个过程,毕业设计之所以选择不同方向的来做主要是考虑到整个学期的时间来做一个自己会的东西太浪费了,想多接触点不同的方向。但是理想和现实之间总存在很大的差距,整整在很长的一段时间内自己都无从下手,甚至不知道该看些什么内容的书籍。实验怎么做,电路图怎么画,什么是c51等等,幸亏有很多硬件方向的同学愿意帮助我,在他们一步步的指导下,先从点亮实验板上的发光二极管开始,到一个个实验的做下来,到选电子元件、画板,步线等等,做硬件的确是一件很有趣的事情,看着一个个零散的元气件,一块被氧化到不行的铜板被制作成一

35、个具有一定功能的电路板,还是相当有成就感的。本次毕业设计总的来说系统功能不算强大,但是还算是实现了毕设的基本要求。通过这次的毕业设计,使我对单片机有了更深的认识,从理论和实践上都得到了很大的提高,所以这次任务的完成是我学到了很多东西。首先,丰富了自己的知识面,学到了以前没能学通的东西,具体了解了怎样去完成一个电路的设计:从流程图、电路图、焊接电路板、检查电路板、仿真到烧片一整套东西。从毕业设计中,学到了单片机at89c51的内部结构及其工作原理,了解了时钟电路和控制电路的工作原理,还有共阳极数码管的工作原理,巩固了汇编语言的使用能力,提高了自己动手的能力,学到了很多经验,并且提高了自己分析问题

36、的能力和创新能力,得到了理论联系实际的机会,做出了成果。使自己在硬件设计方面树立了信心,为以后从事这方面的工作打好了基础,这也是这次毕业设计的最大收获。谢辞本文是在我的导师xxx老师的精心指导下完成的。论文从选题、资料收集、分析到完成的整个过程中,无不倾注着导师的大量心血和智慧。张老师严谨的治学态度、渊博的专业知识、勤勉踏实的治学作风、诲人不倦的师者风范、平易近人的师表情怀都值得我毕生铭记和学习。在论文完成之际,本人要感谢xxx老师平素对我的关怀。他们不仅在学业上给我以指导和教诲,而且在思想和生活上也给予了极大的关心和帮助,在此向张老师表示深深的敬意和感谢! 衷心感谢在我完成论文的过程中给予帮

37、助和支持的所有老师、同学和朋友。 感谢一直以来给我关怀和鼓励的家人。最后,谨向百忙之中抽出宝贵时间审阅论文的老师表示由衷的谢意!参考文献1. 何立民. 单片机应用系统设计m. 北京: 北京航空航天大学出版社, 2001.2. 胡伟,季晓衡编著.单片机c程序设计及应用实例m. 北京: 人民邮电出版社,20033. 卢艳军主编.单片机基本原理及应用系统m.北京:机械工业出版社,20054. 赵亮, 侯国锐编著.单片机c语言编程与实例m.北京:人民邮电出版社,20035. 孙育才, 孙华芳,王荣兴编著.单片机原理及其应用m.北京:电子工业出版社,20066. 李启炎. protel 99se应用教程

38、:印刷电路板设计m. 上海:同济大学出版社,20057. mc9s12dt128 device user guide v02.098. 邵贝贝.单片机嵌入式应用的在线开发方法m.北京: 清华大学出版社,20049. codewarrior 使用教程.10.张立强,于伟,柴东.电路原理图与pcb板设计教程:protel dxpm.北京:科学出版社,200511.杨文龙,古天龙.软件工程(第二版)m.北京:电子工业出版社,2004.12 邓良松,刘海岩.软件工程(第二版)m西安:西安电子科技大学出版社,2000.11附录1#include #define key_int0 p3_2const un

39、signed char sendstring=1;sbit test=p10;void key_delay(unsigned int t)/延时子程序 while(t)t-;void main(void) unsigned char i; tmod=0x21;/fosc=22.1184mhz,t1工作于方式2,定时功能,t0工作于方式1,定时功能 th1=0xd0;/t1用于串口的波特率发生器,1200baud tl1=0xd0; tr1=1;/启动t1定时开始工作 th0=(65536-1843)/256;/t0定时1ms的初值装入th0,tl0 tl0=(65536-1843)%256;

40、tr0=1;/启动t0定时开始工作 et0=1;/允许t0溢出中断 scon=0x50;/初始化串口工作于方式1,允许串口发送及接收 ea=1;/cpu开中断 while(1) if(key_int0=0) key_delay(10000); if(key_int0=0) i=0; while(sendstringi)/循环从表格读取数据,直到最后一个数据为结束符0 sbuf=sendstringi;/将数据送到串口sbuf中 while(ti=0);/等待发送完毕 ti=0;/清发送标志,必须的 i+;/指向一下要发送的数据 test=test;/测试标志取反 sbuf=0x0d;/最后发送

41、回车换行字符到串口 while(ti=0); ti=0; test=test; sbuf=0x0a; while(ti=0); ti=0; test=test; while(key_int0=0);void t0_isr(void) interrupt 1/t0定时1ms溢出中断服务程序 th0=(65536-1843)/256;/重新装入初值 tl0=(65536-1843)%256;附录2unit unit1;interfaceuses windows, messages, sysutils, variants, classes, graphics, controls, forms, di

42、alogs, stdctrls, spcomm, skincaption, winskindata, extctrls, buttons, menus, mplayer,unit2;type tform1 = class(tform) comm1: tcomm; edit1: tedit; skindata1: tskindata; skincaption1: tskincaption; image1: timage; panel1: tpanel; timer1: ttimer; speedbutton1: tspeedbutton; speedbutton2: tspeedbutton;

43、popupmenu1: tpopupmenu; n1: tmenuitem; n2: tmenuitem; n3: tmenuitem; n4: tmenuitem; label1: tlabel; image2: timage; memo1: tmemo; mediaplayer1: tmediaplayer; speedbutton3: tspeedbutton; popupmenu2: tpopupmenu; n5: tmenuitem; n6: tmenuitem; n7: tmenuitem; n8: tmenuitem; speedbutton4: tspeedbutton; la

44、bel2: tlabel; speedbutton5: tspeedbutton; procedure formcreate(sender: tobject); procedure formclose(sender: tobject; var action: tcloseaction); procedure comm1receivedata(sender: tobject; buffer: pointer; bufferlength: word); procedure timer1timer(sender: tobject); procedure speedbutton1click(sende

45、r: tobject); procedure n1click(sender: tobject); procedure n2click(sender: tobject); procedure n3click(sender: tobject); procedure n4click(sender: tobject); procedure n5click(sender: tobject); procedure n6click(sender: tobject); procedure n7click(sender: tobject); procedure n8click(sender: tobject);

46、 procedure speedbutton4click(sender: tobject); procedure speedbutton5click(sender: tobject); private private declarations public public declarations end;var form1: tform1; i:integer;implementation$r *.dfmprocedure tform1.formcreate(sender: tobject);begin comm1.startcomm;end;procedure tform1.formclos

47、e(sender: tobject; var action: tcloseaction);begin comm1.stopcomm;end;procedure tform1.comm1receivedata(sender: tobject; buffer: pointer; bufferlength: word); var s: string;begin setlength(s, bufferlength); move(buffer,pchar(s),bufferlength); edit1.text:=s; if edit1.text then begin image2.visible:=t

48、rue; label1.visible:=true; timer1.enabled:=true; memo1.visible:=false; mediaplayer1.play; speedbutton1.enabled:=true; label2.visible:=true; form2.adoquery1.close; form2.adoquery1.sql.clear; form2.adoquery1.sql.add(insert into call(时间,呼叫者) values (+timetostr(now)+,呼叫器一号); form2.adoquery1.execsql; end

49、;end;procedure tform1.timer1timer(sender: tobject);begin label2.caption:=timetostr(now); if i0 then begin i:=0; panel1.color:=clwhite; end else begin panel1.color:=clsilver; i:=1 endend;procedure tform1.speedbutton1click(sender: tobject);begin timer1.enabled:=false; label1.visible:=false; image2.visible:=false; panel1.color:=clwhite; memo1.visible:=true; mediaplayer1.stop; edit1.clear;end;procedure tform1.n1click(sender: tobject);begin skindata1.skinfile:=.skinslonghorn.skn; panel1.color:=clfuchsia;end;procedure tform1.n2click(sender: tobject);begin skindat

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论