设计方案论证_第1页
设计方案论证_第2页
设计方案论证_第3页
设计方案论证_第4页
设计方案论证_第5页
已阅读5页,还剩69页未读 继续免费阅读

下载本文档

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

文档简介

第二章设计方案论证2.1整个系统的原理整个系统的设计方案如下面的介绍,主要是,系统原理,控制芯片介绍和管脚的说明。X从上面的框图我们很容易的可以看出,CPU是整个电路的核心,它受电源驱动,然后驱动555电路和液晶屏,并且反馈到上位机。整个设计的大体思想就是这样,CPU作为最核心的部件,是这给那个电路的P89V5RD2HBA单片机芯片。芯片的引脚图如图2.2所示。本设计工作,我主要负责的是软件的编程的工作,这就需要对所用的主芯片要有一个详实的了解,下面是我们在此次设计中用到的芯片口的详细资料,(说明,本次设计中P2口没有用到,作为红外线报警器的扩展口来用,以备今后对红外线的升级之用.)序以传统的80C51时钟频率(每个机器周期包含12个时钟)或X2方式(每个机器周期包含6个时钟)的时钟频率运行,选择X2方式可在相同时钟频率下获得2倍的吞降低电磁干扰(EMI)。Flash程序存储器支持并行和串行在系统编程(ISP)。并行编程方式提供了高速的分组编程(页编程)方式,可节省编程成本和上市时间。ISP允许在(1)80C51核心处理单元;(2)5V的工作电压,操作频率为0~40MHz;(4)通过软件或ISP选择支持12时钟(默认)或6时钟模式;(5)SPI(串行外围接口)和增强型UART;(6)PCA(可编程计数器阵列),具有PWM和捕获/比较功能;(9)可编程看门狗定时器(WDT);(12)低EMI方式(ALE禁能);(14)掉电检测;(15)低功耗模式(17)空闲模式;DIPPLCCTQFP封装;本次设计中对芯片的使用管脚(注:本次只对设计中所用的管脚作介绍)如表2.1P89V51RD2的管脚说明描述P0.0—P0.7P1.0—P1.7P1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7P2.0—P2.7P3.0—P3.7P3.1II拉拉IO拉低时将吸收电流(IIL)。此外,P1.5,P1.6,P1.7还有16mA的高电流驱动II拉低时将吸收电流(IIL)。在取指外部程序存储器或访问16位地址(MOVXP3.2P3.3P3.4P3.5P3.6P3.7ALEIIIIOOIIIOIID存。该引脚也用作Flash的编程脉冲输入(/PROG)。通常,ALE在1/6的振地综上所述P89V51RD2单片机既具有通用单片机的特点又有一些独特之处,因此,图2.4(液晶显示模块的反面视图)2.216x2字符型带背光液晶显示模块图2.3(液晶显示模块的正面视图)图2.5(液晶显示模块的引脚插槽)其中,各个引脚所对应的含义如下表所示。功功能:电源电压GND液晶驱动电源寄存器选择信号:L指令寄存器H:数据寄存器读写选择信号L:写操作H:读操作使能信号数据总线备光驱动电压电源电压GND电平:--------------H/LH/LH\H-LH/L--------标记:VCCV0VCCGND端自号:123456本次设计中所编写的液晶显示模块程序如附录一所示:读操作时序写操作时序:液晶模块的流程图、程序见附录一。2.3.串口通信随着计算机的广泛应用市,场上很多电气产品应用串口通信技术作为对外数据交串口通信在本次的软件设计中担任传输的作用,即上位机和下位机的数据传输。(包括程序的下载和数据的传输)具体连接如图2.6所示。图2.6RS-232串口通信连接图串口控制程序一般分为查询和中断两者方式。查询方式适用于简单的应用,简单可靠,但是缺点是需要占用处理器资源,在发送或者接收数据的时候不能做其它的事情,处理器利用率低。中断方式下,在发送或者接受数据的时候处理器还可以做其它的工作,效率较高。对于稍微复杂的系统来说,中断方式管理串口程序将会更加有效。中断处理方式也可分为几种,其中采用循环缓冲区的方式比较高效。循环缓冲区为定义的一定长度的RAM区间,对于接受数据来说,中断中收到的数据将存入RAM中,然后等待主程序来读取。其中会涉及到数据见的协调问题,写数据的时候不能把还没有读取的数据覆盖掉,读数据的时候应该读取的是缓冲区中最老的数据。当缓冲区已满的时候,写入的新数据应该覆盖掉最老的数据。这些问题的处理可以使用两个指针来实现。2.4VisualBasic与串口通信随着计算机的广泛应用,市场上很多电气产品应用串口通信技术作为对外数据交换的桥梁,串口通信受到如此的重视,主要原因就是这个技术简单而且容易VisualBasic集成开发环境主要由以下元素组成:工具窗口、工程窗口、属性窗口、对象窗口以及代码组成等。图2.7VisualBasic集成开发环境VisualBasic是一般程序设计人员在Windows环境下最常用的串口编程语言。利用VisualBasic开发串口通信程序主要有两种方法:一是使用MSComm串口控件,二是利用WindowsAPI函数。在查阅了大量的资料和在实践资料中,使用VisualBasic串口控件实现通信的方法比调用API动态链接库的方法更加方便、快捷,而且用较少的代码可以实现相同的功能,从而使编程效率大大提高,也减少了因编程不当而导致的系统不稳定。所以本次的设计采用了串口控件实现。MSComm控件全称为MicrosoftCommunicationsControl,是Microsoft公司提ActiveX目的是为了简化Windows下串行通信编程,它既可以用来提供简单的串行通信功能,也可以用来创建功能完备的、事件驱动的高级通信工具。MSComm控件在串口通信时非常方便,程序员不必花时间去了解较为复杂的API函数,而且在VisualBasic、VisualC++、Delphi等语言中均可使用。使用他可以建立与串行端口的连接,通过串行端口连接到其他通信设备(如调制解调器),发出命令,交换数据,以及监视和响应串行连接中发生的时间和错误。利用它可以进行诸如拨打电话号码、监视串行端口的输入数据乃至创建功能完备的终端程序等。“引用(3)”MSComm控件处理通信的方式有两种:一种是事件驱动方式,另一种是查询方式。MSComm控件有许多属性,这将会在上位机设计中作具体说明。工程的具体包括如下:(注意:下面的jia.*是本次设计的上位机的文件名)⑴.工程文件(jia.vbp)一个工程只有一个工程文件,他管理着该工程的所有部件。工程文件中含有该工程的所有窗体文件以及其他的相关信息(如其他部件的名称、在磁盘上的位置等)。此外,每个工程还会生成一个扩展名为.vbw的附属工程文件,它保存了工程在集成环境中各窗体的状态。⑵.窗体文件(jia.frm)添加到工程中的每个窗体都会单独地保存为一个文件。工程中有几个窗体就会产生几个窗体文件。窗体文件中保存了所有该窗体和放置在该窗体中控件的信息,包括对象名、对象类型、对象的属性设置、对象的事件过程代码和通用过程代码。也就是说,一个窗体文件保存了这个窗体所对应的对象窗口和代码窗口所有的内容。这些内容在VisualBasic中被总称为“窗体模块”。一个工程有几个窗体就有几个窗体模块和几个窗体模块文件。⑶.二进制窗体文件(jia.frx)如果一个窗体中包括了图片等二进制信息(如在属性窗口中设置了窗体的Icon属性、Pircture属性),则会产生一个与窗体*.frm文件同文件名的*.frx文⑷.标准模块文件(jia.bas)标准模块是用来保存公共变量、常量、数据类型、过程的地方,其他的模块可以调用标准模块中的代码。一个工程中有多个标准模块,也可以没有。工程文件(jia.vbp)、窗体模块文件(jia.frm)和标准模块文件(jia.bas)都是纯文本文件,有经验的编程者可以使用“记事本”这类文本编辑软件打开、查看并进行修改。VisualBasic允许编程者创建新类,新类的定义保存在类模块中。一个工程中可以有多个类模块,也可以没有。前面执行应用程序的时候是选择“运行”菜单的“启动”命令来执行的,这种执行是解释执行,解释执行只能在VisualBasic开发环境中进行,不能脱离开发环境。为了使应用程序能脱离开发环境而直接在Windows环境下运行,就必须将应用程序编译成可执行文件(5.6.21.44.exe文件,这个是此次毕业设计的上位机的运行界面的名称。意思是:五月六日9点44分完成)。生成的方法是:依次选择“文件”菜单的“生成工程1.exe”命令(这里的“工程1”是工程名),弹出“生成工程”对话框时,选定保存位置,输入可执行文件的名字,单击“确定”按钮即可在指定位置建立一个可执行文件。第三章设计和计算3.1上位机设计(VB的设计)定定义声明函数设置连接按钮YYY执行相应操作Y退出按钮按结束退出初始化串口各参数NNNY图3.1VB程序的流程图程序一:DimCOMBUFAsStringPrivateSubCommand3_Click()MSComm1.settings="600,N,8,1"位八位,一位停止位。MSComm1.InputLen=0节数,0表示一次读取所有数据MSComm1.InBufferSize=512MSComm1.InBufferCount=0字符到接收缓冲区触发接收事件PrivateSubCommand1_Click()'设置数据传输率,没有奇偶校验,和数据'设置通讯串口COM6'设置或返回一次从接收缓冲区中读取字'设置接收缓冲区为512Byte'读取整个缓冲区的数据。'每个字符到接收缓冲区都触发接收事件'打开串口rRGBText1.BackColor=RGB(0,255,0)WindowsMediaPlayer1.Controls.stop'关闭串口'绿色PrivateSubCommand2_Click()'退出Unload'退出DimiAsVariantCOMBUF=Asc(MSComm1.Input)Print"苗家祥.张勇提醒:"&COMBUF&"区报警"&"-"&NowText1.BackColor=RGB(255,0,0)'红色ColorRGBWindowsMediaPlayer1.URL="E:\音乐\哈.mp3"PrivateSubTimer1_Timer()Text1.Text=Now‘Timer控件PrivateSubTimer2_Timer()PrivateSubTimer3_Timer()当报警的时候就在上位机的界面上执行下面一句:Print"苗家祥.张勇提醒:"&COMBUF&"区报警"&"-"&Now这样报警的信息就显示在界面上了。如下图所示。图3.2报警信息图上述程序中的Timer控件即定时器控件主要用来控制界面中的闪烁的红色小球。如下图所示:绿绿色红色正常检测状态图3.3报警状态开始检测的时候,他是绿颜色的,当触发报警的时候,他就变成红颜色的并且是在不断闪烁的小球,给人以视觉冲击起到报警的作用。条。条Timer2和Timer3主要用来控制小球,设计的时候把Timer2的interval属性定义成500,Timer3的interval属性定义成1000.这样再触发下面的事件。PrivateSubTimer2_Timer()PrivateSubTimer3_Timer()就实现了小球的不断闪烁。同时触发WindowsMediaPlayer1发生报警信号。这样上位机的声光报警就实现3.2下位机设计主程序分析:我们的目标是,当红外线检测到有人闯入时:(1)由P3.4输出高低电平间隔0.5s的脉冲信号去驱动声光报警电路,产生声光报警。这可通过使P3.4每隔0.5s取反一次实现,而0.5s时间可同时定时器T0(工作于定时方式1)重复定时100ms十次来实现。用工作寄存器R1作循环计数器,初值为10(0AH)。(采用中断方式编程)。(50ms*10=500ms=0.5s)(2)由P0口输出数据到液晶屏显示报警所在位置的区号(1、2、3、4)。这要通过在主程序中对液晶模块的调用来实现。显示什么字符,就调用该字符函(3)通过RS232串口(由是程序的下载线,当下载线不用时)上传到上位机,并在上位机当中显示报警所在位置的区号(1234)。上位机部分要通过VisualBasic软件来实现。主要功能是对系统进行初始化和对系统进行监视,看是否有人闯入。其程序流程图如图3.3所示。开开始系统初始化NY启动定时等待时间到NY报警实现声光报警液晶显示上位机显示整个设计的主程序如下面的“程序一”所示:下面是中断程序流程图。开开始定义重设定时初值图3.5声光报警中断程序流程图程序一:#include<reg51.h>#include<intrins.h>#defineucharunsignedchar#defineuintunsignedintsbitP10=P1^0;sbitP11=P1^1;sbitP12=P1^2;sbitP13=P1^3;sbitP14=P1^4;sbitP15=P1^5;sbitP16=P1^6;sbitP17=P1^7;sbitP34=P3^4;voidfun0(void);voidfun1(void);Uart_Init();Uart1_Init();externvoidlcd_init(void);externvoiddisplay_string(unsignedcharx,unsignedchary,unsignedchar*s);externvoiddisplay_char(unsignedcharx,unsignedchary,unsignedchardat);unsignedcharcodestr1[]={"BAOJING"};ucharcodeTable_Count[4]={1,2,3,4};//要显示的数字或者字母,放在此区域voidmain(void){uchartemp=0;P10=0;P11=0;P12=0;P13=0;Uart_Init();Uart1_Init();lcd_init();display_string(8,0,str1);//显示(baojing)while(1){if(P1!=0){TR0=1;if(P1!=temp){fun0();temp=P1;fun1();}}}}voidTR0_SER(void)interrupt1//中断{staticucharnum=0;TH0=0x3c;TL0=0xb0;num++;if(num==10){num=0;P34=~P34;}}voidfun0(void)//液晶显示模块{if(P14==1){display_char(1,0,'1');//液晶屏显示字符"1"}if(P15==1){display_char(2,0,'2');//液晶屏显示字符"2"}if(P16==1){display_char(3,0,'3');//液晶屏显示字符"3"}if(P17==1){display_char(4,0,'4');//液晶屏显示字符"4"}}voidfun1(void){if(P14==1){//向串口发送字符模块//PC机上显示字符"1"SBUF=Table_Count[0];while(!TI);//等待发送完成}if(P15==1){TI=0;//清除TI标志,准备下一次发送。//PC机上显示字符"2"SBUF=Table_Count[1];while(!TI);TI=0;}if(P16==1)//PC机上显示字符"3"{SBUF=Table_Count[2];while(!TI);TI=0;}if(P17==1)//PC机上显示字符"4"{SBUF=Table_Count[3];while(!TI);}}Uart_Init(){TMOD=(TMOD&0x00)PCON=0x00;SCON=0x50;TH1=0xcc;TL1=0xcc;TR1=1;}Uart1_Init()TI=0;//串口初始化。|0x20;//定时器1使用方式2//SMOD为0//工作于方式1,波特率600,允许接受//204参考文献《12》-P140-表10.12//主程序初始化{TMOD=TMOD|0x01;TH0=0x3c;TL0=0xb0;//定时器0,方式一;ET0=1;EA=1;P34=0;}//定时器0允许中断;//CPU允许中断;分析说明:①.主程序初始化的设计的计算:TMOD:0000,0001定时器0,方式一,16位(0--65536)Num==1012MHZ/12=1µs0.5s=500000µs500000/10=5000065536-50000=15536=(3CB0H)即:TH0=0x3c;TL0=0xb0;②.串口初始化的设计的计算:综合上面的优劣,本次的毕业设计采用中断的方式比较合理。所以在本次软件设计中采用了中断方式的编程。在其中应注意的是初始化串口。初始化串口的程序和下面的相似。根据“常用波特率对应的初始值表”知因为工作频率为12M,波特率为600,由查表知:初始值应该是0XCCxP初始化串口,波特率600Uart_Init()//串口初始化。{TMOD=(TMOD&0x00)|0x20;//定时器1使用方式2PCON=0x00;SCON=0x50;TH1=0XCC;TL1=0XCC;//和串口相关的只有第七位-SMOD为0.//工作于方式1,允许接受。波特率600,TR1=1;}第四章软硬件调试及方案校验软件设计的工具主要是Keil软件和VisualBasic软件.4.1上位机软件的调试VisualBasic的一大优势在与可视化编程,良好、美观的编程界面对用户来说是必要的,应用程序的界面用户有着极大的影响,界面不好将直接影响到应用程序的易用性。对于程序员来讲,需要考虑的是如何将窗体、控件、对话框、菜单和工具栏等界面元素有机地组合在一起,从而构成一个完整的易学易用的应用运行VisualBasic程序,出现“新建工程”对话框,如图4-1图4.1“新建工程”对话框选择新建“标准EXE”,执行“打开”命令,进入VisualBasic工程集成开发环境,窗体设计器中会自动出现一个名为Form1的空白窗体。然后在这里建立工程编辑界面和编写程序。编程完成后的程序和界面如下所从图4.2可以看出。图4.2编辑完成后图程序的编写,以及界面的编辑要有所讲究。要简洁明了的表达要实现的功有三个定时器控件,和一个声音播放控件,还有一个TEXT1文本框。说明二:程序中有些属性都在属性窗口中设置完成的。说明三:运行时,运行正常时,时钟框和小球是绿色的。但当报警时同为红颜色。说明四:报警时还伴有报警的声音。下面是本次设计的日常监控时的界面------如图4.3所示。触发报警时所显示的界面---------------------如图4.4所示。绿绿色点击“设置连接”按钮后,触发报警实现的界面如.所示:红色红色图4.4说明(报警时小球在不断闪烁,且有报警声音出现)4.1.2上位机调试的问题实践当中我们发现当(MSComm1.settings="600,N,7,1")时,发现的是十六进制的。经过不断的调试,对数据进行改进,我们发现把数据位改为7位问题三:对串口的了解,仅存在与学过的书本上一点不知道。实际应用是时候不知道数据怎么传送,不知道数据放在哪里合适,开始以为问题出在VB这部分。解决方法后来去图书馆查阅资料发现要把传送的数据送到串口:ucharcodeTable_Count[4]={1,2,3,4};SBUF=Table_Count[0];这两句比较重要。把字符(1,2,3,4)放到数组里面,再从主程序里面调用数组,这样比较简单。然后再在VB程序中用下面的程序:COMBUF=Asc(MSComm1.Input);PrintCOMBUF这样问题就解决了。4.2下位机软件的调试步骤和问题Keil软件是目前最流行开发MCS-51系列单片机的软件,这从近年来各仿真机厂商纷纷宣布全面支持Keil即可看出。要实现调试,首先要建立工程文件,程序在软件中调试成功后,并且要可以生成*.HEX文件。这要才可以进一步的进行下面的调试工作。⑴.点击“Project->NewProject…”菜单,出现一个对话框,要求给将要建立的工程起一个名字,你可以在编缉框中输入一个名字(设为miao),不需要扩展名。点击“保存”按钮,出现第二个对话框,这个对话框要求选择目标CPU(即你所用芯片的型号),Keil支持的CPU很多,点击ATMEL前面的“+”号,展开该层,这里我们要选择飞利浦公司生产的P89V5RD然后再点击“确定”按钮。⑵.此时,在工程窗口的文件页中,出现了“Target1”,前面有“+”号,toGroup”SourceGroup1”,出现一个对话框,要求寻找源文件(①主程序.C\②液晶.C).“Close”即可返回主界面,返回后,点击“SourceGroup1”前的加号,会发现①主程序.C和②液晶.C文件已在其中。双击文件名,打开该源程序。红外线防盗报警器主程序编辑完成以后,调试没问题时。要注意以下步骤:①.miao.hex.要注意必须生成miao.hex文件,以便烧录程序(下载程序到硬件)以实现需要的功能。②.下载线.下载之前要连接好下载线(这里用的是USB转RS-232下载线),注意电脑上的相应驱动要安装完成才可以使用这样的转接线,并打开硬件上的开关。③.擦除文件.运行“FlashMagic”,选择界面上的参数,注意:参数不正确无Flash”→选中“EraseallFlash”→点击“Erase”→按一下硬件上的黑色→擦除完成。④.烧录.烧录程序,步骤是:点击”Browse”→选择路径找到先前Keil中生成的“miao.hex”文件→点击“Start”→程序下载完成,(Finished).准备硬件调试。具体如下图所示:图4.5FlashMagic界面图⑤.液晶屏.根据设计的要求调试555声光报警电路,调试液晶屏。⑥.上位机.调试上位机时,要注意的是硬件上的串口通信开关不能断开,要保持在连接状态。(即白色按钮要按下去)。然后保持串口线连接正常后,打开上位机的监控界面。点击“设置连接”按钮,进行调试。工程建立后出现的问题,我们的程序有两个模快,一个是主程序模块,另一个是液晶屏模快。在编译时出现下面的错误“Targetnotcreated”。结果在生成*.HEX文件的时候,怎么也生成不了。最后在查阅资料后发现问题。仔细阅读程序后才发现,在液晶模快里面也有一个主程序main()而在主程序模快同样也有一个main()。犯了一个本不应该犯的错误。我们的解决方法是把液晶部分的main()去掉,把相应的主程序操作,移动主程序模块进行实现。这样再对程序进行相应的调试,问题就可以解决了。设计当中的液晶屏的显示,开始怎么也调试不出,那个液晶屏不出字符?分析:经过我们的不断发现,不断地从软硬件上改善,最终完整实现了报警。结果是软件上所传送的字符(1改成‘1’)不对,硬件上的V0(背光驱动电源)根本没加上去。查出问题后,我们有效的进行调节,给硬件上的V0(背光驱动电源)加上一个电问题三:烧录软件时遇到如下图中的问题,解决不了。经过不断的调试,这种情况在我们的软件调试中经常遇到,具体有以下几点口和单片机之间的一个白色的开关没有连接好,或者根本就没有按下去导致无法下载。④.还有可能是烧录软件上面的波特率没选好,此次的设计中波特率应该选择600。⑤.有可能COM口没选择好,要注意的是烧录器上的COM口要和电脑硬件的接口相对应。问题四:有的时候在下载程序不成功的时候会出现电脑上面的画面停滞导致无法继续操作。分析:这样的情况应该是我们的误操作所致,和电脑上的问题差不多。经过我们的调试和经验可知,处理的最好的方法就是,关掉硬件电源,然后拔掉电脑上的USB下载线,重新插上,问题迎刃而解。注意出现这样的问题可能是下载的步骤不正确所致。只要注意设计中上面的步骤,再重新进行调试,问题就迎刃而解了。第五章结论和改进意见此次的毕业设计,应该说是这几年来的一个结果的体现吧,从开始的选题到最后的完稿,中间经历了许多,从毫无头绪到一点点的梳理完成,再到成竹在胸,是要付出许多的。我们有过许多不眠之夜,有过几天不出宿舍的设计。本次的设计完全完成了老师布置的任务,而且在此基础上我们又作出了拓展。改善了以往的单调的报警,同时在价值上也不可小计,我们的红外线报警已经在理论和实践中达到了和市面上的报警器相同的功能,甚至在有些地方已经有所超越。我们的红外线报警器不仅有现场声光报警(这个报警是利用比较传统的555电路做成的),而且还添加了上位机的部分。并且可以在上位机上实现声音报警,和屏面报警(显示界面上有个红色圆形报警区域在报警时会不断闪烁),我们设计的红外线报警器设计的还比较的细致,他的功能很强大,它可以捕捉到一分一秒的报警,每一区的报警我们设计的报警器可以精确到几点几分几秒。还有在报警的时候,我们还利用其他的软件和音频设备自己制作出了报警的声音。这个给我们的设计可以说是增光添彩了。我们的红外报警器有了这些优点特色以后,完全可以有效防止不法分子的不法行为。完全完成了毕业设计的任务。欣喜之情自不必说。付出了努力才会有所回报。此次的设计不仅在能力上得到了提升。而且在心理素质上也得到了许多的锻炼。当然,人无完人,事无完事,我们设计的东西也一样。此次的设计的产品由于时间的关系,只在实验设计中得以实现,它的有效传播距离由于条件限制,我们无法测量。在传播距离这一块,可以通过软件实现,也可以通过硬件实现。在软件上我的主要思路就是利用PWM脉冲,发射红外线去控制相应的受控装置时,其控制的距离与发射功率成正比。为了增加红外线的控制距离,红外发光二极管工作于脉冲状态,因为脉动光(调制光)的有效传送距离与脉冲的峰值电流成正比,只需尽量提高峰值Ip,就能增加红外光的发射距离。提高Ip的方法,是减小脉冲占空比,即压缩脉冲的宽度т,一些彩电红外遥控器,其红外发光管的工作脉冲占空比约为1/4~1/3;一些电气产品红外遥控器,其占空比是1/10。减小冲占空比还可使小功率红外发光二极管的发射距离大大增加。常见的红外发光二极管,其功率分为小功率(1mW~10mW)、中功率(20mW~50mW)和大功率(50mW~100mW以上)三大类。要使红外发光二极管产生调制光,只需在驱动管上加上一定频率的脉冲电压。由于时间的原因,我们做的还不够完美,许多好的想法都没来得及实现,比如,我们的液晶屏当在某一区报警的时候,如果能实现字符的闪动,那就更好了,更能表达报警的效果。还有下面的字符,如果能够实现下面的固定的字符的滚动,那就会使,报警器“活”起来了,那样看上去效果会更好。希望将来在有机会的话能够完善它。理论和实践的结合是需要时间的,这将在以后的社会实践中再去完善吧。参考文献1.周兴华编著《单片机智能化产品――C语言设计实例详解》北京:北京航空航天大学出版社3.李江全岑红雷编著《VisualBasic串口通信与测控应用技术实战详解》北京:人民邮电出版社20074.毛玉良张赤斌编著《微机系统原理及应用》南京:东南大学出版社20065.魏立峰王宝兴编著《单片机原理与应用》北京:北京大学出版社2006年8月6.杨将新.李震华编著《单片机程序设计及应用从基础到实践》电子工业出版社2006年3月8.万光毅遍著《单片机实验与实践教程一》北京航空航天大学出版社2006年3月附录一设置显示模式设置关闭模式清屏光标移动位置显示开及光标移动位置调用写字符函数c设置光标移动位置调用写字符串函数c设置光标移动位置液晶模块流程图//****************液晶显示模块******************//#include<reg52.h>//调用头文件(单片机内部的寄存器定义)sbitLCD_RS=P3^7;sbitLCD_RW=P3^6;sbitLCD_E=P3^5;#defineLCD_DATAP0//LCDDATAvoidlcd_init(void);playstringunsignedcharxunsignedcharyunsignedchars/**************************************************函数名称:dellay**入口参数:h(unsignedint型)**出口参数:无**功能描述:短暂延时,使用12M晶体,约0.01MS**/voiddellay(unsignedinth){while(h--);//0.01MS}/**************************************************函数名称:WriteDataLcd**入口参数:wdata(unsignedchar型)**出口参数:无**功能描述:写数据到LCD************************************************/voidWriteDataLcd(unsignedcharwdata){LCD_DATA=wdata;LCD_RS=1;LCD_RW=0;LCD_E=0;dellay(100);//短暂延时,代替检测忙状态LCD_E=1;}/****************************************************函数名称:WriteCommandLcd**入口参数:wdata(unsignedchar型)**出口参数:无**功能描述:写

温馨提示

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

评论

0/150

提交评论