




免费预览已结束,剩余34页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
摘要目前全世界绝大多数国家都采用呼气酒精测试仪对驾驶人员进行现场检测,以确定被测量者体内酒精含量的多少,以确保驾驶员的生命财产安全。酒精浓度监测仪是一种以气敏传感器和单片机为主,监测空气酒精浓度,并具有声光报警功能的空气酒精浓度监测仪。其可监测出空气环境中酒精浓度值,并根据不同的环境设定不同的阈值,对超过的阈值进行声光报警来提示危害。此外,空气酒精浓度监测仪还能监测某一特定环境的酒精浓度如酒精生产车间可避免发生起火、爆炸及工业场地酒精中毒等恶性事故,确保环境安全。关键词:AT89C52单片机;酒精浓度监测仪;A/D转换;声光报警39目录摘要11 绪论 42 单片机最小系统介绍52.1 AT89C52简介52.2 复位电路介绍62.3 晶振电路介绍73 信号采集和AD转换过程的软硬件设计83.1 酒精浓度传感器模块简介83.2 AD转换软硬件件设计93.2.1 ADC0804简介93.2.2 本设计中ADC0804外围硬件连接103.2.3 本设计中AD转换软件实现114显示模块软硬件设计134.1 LCD1602简介134.2 本设计中LCD1602的硬件连接介绍134.3 本设计中LCD1602的软件设计144.3.1 本设计的液晶写命令子函数和写数据子函数程序分析144.3.2 本设计中用到的液晶指令介绍154.3.3 本设计中的字符串显示和数据实时更新的实现方法165 其它外围设备软硬件设计185.1 报警电路软硬设计185.1.1 硬件部分设计185.1.2 软件部分设计185.2 待机指示灯软硬件设计195.2.1 硬件部分设计195.2.2 软件部分设计195.3 按键软硬件设计205.3.1 硬件部分设计205.3.2 软件部分设计205.4 电源电路216系统总体设计226.1 硬件总体框图226.2 程序流程图236.3 硬件调试246.4 软件调试246.4.1 标志数的应用246.4.2 按键的消抖与松手检测的程序实现256.4.3 定时器与定时器中断26结束语28致谢29参考文献30附录一 硬件设计原理图31附录二 程序321 绪论近年来,我国越来越多的人有了自己的私家车,而酒后驾车造成的交通事故也频繁发生。为此,我国将酒驾列入刑法范围内,所以需要设计一智能仪器能够检测驾驶员体内酒精含量。本课程设计研究的是一种以气敏传感器和单片机A/D转换器为主,检测驾驶员呼出气体的酒精浓度,并具有声光报警功能的空气酒精浓度监测仪。其可检测出空气环境中酒精浓度值,并可根据不同的环境设定不同的阈值,对超过的阈值进行声光报警来提示危害。本课题分为两部分:硬件设计部分和软件设计部分。硬件部分为利用气敏传感器测量空气中酒精浓度,并转换为电压信号,经A/D转换器转换成数字信号后传给单片机系统,由单片机及其相应外围电路进行信号的处理,显示酒精浓度值以及超阈值声光报警。程序采用模块化设计思想,各个子程序的功能相对独立,便于调试和修改。而硬件电路又大体可分为单片机小系统电路、A/D转换电路、声光报警电路、LED显示电路,按键电路,各部分电路的设计及原理将会在硬件电路设计部分详细介绍。2 单片机最小系统介绍2.1 AT89C52简介本设计以AT89C52单片机为控制核心。单片机也就是MCU,即微控制单元,大学阶段51型和52型是同学最常使用的,用于课程设计或毕业设计的为控制单元。52型是在51型的基础上发展而来的,它兼容51指令系统,其功能更为强大,ROM和RAM存储空间也比51型更大。AT89C52是52型中最普遍的一种。它除了具备一般52型的优点以外,还具有程序无法解密,价格低,功耗低,运算高速,高可靠强性,抗静电和抗干扰能力强,功能强大等突出优点。AT89C52具有以下标准功能:8K字节Flash,256字节RAM,32位I/O口线,3个16位定时器/计数器,一个响亮2级中断结构,全双工串行口,片内晶振及时钟电路。另外,AT89C52可降至0HZ静态逻辑操作,支持2种软件可选择节电模式。空闲模式下,CPU停止工作,允许RAM、定时器/计数器、串口、中断继续工作。掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。AT89C52单片机为很多嵌入式控制系统提供了一种灵活性高且廉价的方案。故此选用AT89C52单片图2.1 AT89C52单片机各引脚图2.2 复位电路介绍图2.2 复位电路电路图单片机工作过程中有一个程序指针,它指向即将要执行的程序。单片机上电时要执行复位操作,使得程序指针指针指向程序的0000H地址处,即单片机将要执行第一条语句,以后每执行完一条语句程序指针都依次增加。这样使得单片机每次执行程序都处于确定状态,如果没有程序指针,就不知道程序一开始应该从哪里开始执行,也不知道工作时应该执行哪条语句。上电时的自动复位,使得各端口的输出输入电平不会处于不确定状态,不会使外围设备产生误动作;也能防止内部一些控制寄存器的功能紊乱。另外,在单片机工作过程中,如前所述,ATC89C52单片机的就好引脚RST若输入大于2个机器周期时间的高电平时,单片机就会执行复位操作,即程序指针将由当前指针跳回到程序的0000地址处。以上所说的上电复位,和RST按键复位正是单片机复位操作的两种基本形式。上电复位的实现方法是,在接通电源时,RST引脚获得瞬间高电平,因为电容电压不能突变,随着图3中的电容C2的充电,RST引脚所获得的高电平逐渐下降,但能保持两个机器周期以上的时间,单片机复位。RST按键复位的方法是,在图3所示的复位电路中,当轻触开关S1被按下,RST与VCC相连,也能获得瞬间高电平,因为电容电压不能突变,随着图3中的电容C2的充电,RST引脚所获得的高电平逐渐下降,但能保持两个机器周期以上的时间,单片机复位。在复位电路的设计中,要选择合适的元器件参数,电阻的阻值不宜过大或者过小,过大使得RST不可能获得高电平,过小也不能起到限流作用。另外电容容值也应该合适,要保证放电时,RST引脚上的高电平也能保持两个机器周期以上的高电平。本设计使用的电解电容容值和各电阻阻值在图3中都有标注。2.3 晶振电路介绍图2.3 晶振电路电路图单片机必须有时钟信号控制,才能使得工作时各指令在操作上有严格的时间次序,可以通过两种方法提供时钟信号,一种是外部时钟方式,另一种是内部时钟方式。外部时钟方式是在XTAL1端引入外部已有的时钟信号,而XTAL2端悬空,外部时钟信号一般是频率小于12MHZ的方波。外部时钟方式一般是用于多台单片机协同工作时,如单片机之间的通信,这样要使单片机有统一的工作节奏。本设计采用内部时钟方式,其电路结构简单,功率消耗低。本系统中为了尽量降低功耗的原则,采用了内部时钟方式。晶振全称为晶体振荡器(英文Crystal Oscillators),其作用在于产生原始的时钟频率。内部时钟方式的电路实现方法是在XTAL1和XTAL2引脚外接石英晶体,与单片机片内震荡电路形成震荡回路,图中电容C3和C4的容值为22pF,它们的作用是加快起振和稳定频率。3 信号采集和AD转换过程的软硬件设计3.1 气敏传感器模块简介图3.1 酒精浓度传感器模块示意图气敏传感器的原理:其阻值随着补测气体浓度的增大而减小,把这种电阻的变化再通过变换电路转换成电压的变化,即可把浓度的变化转换成电压的变化,经过AD转换送给MCU处理就行了。 根据以上原理,可以用一个变阻器(电位器)代替气敏传感器进行硬件电路和软件的仿真调试。3.2 AD转换软硬件件设计3.2.1 ADC0804简介图3.2 ADC0804引脚示意图ADC0804是属于连续渐进式的A/D转换器,这类型的A/D转换器除了转换速度快(几十至几百us)、分辨率高外,还有价钱便宜的优点,普遍被应用于微电脑的接口设计上。 芯片参数: 工作电压:+5V,即VCC=+5V。 模拟输入电压范围:0+5V,即0Vin+5V。 分辨率:8位,即分辨率为1/2=1/256,转换值介于0255之间。 转换时间:100us(fCK=640KHz时)。 转换误差:1LSB。 参考电压:2.5V,即Vref=2.5V。3.2.2 本设计中ADC0804外围硬件连接图3.3 ADC0804外围电路连接20号引脚角和10号引脚分别接VCC和GND,为芯片提供工作电压。在精确测量时,8号引脚模拟地和10号引脚数字地应该分开接,为芯片提供基准电压,此处把它们接在一起,同时接地。1号引脚,片选信号接入P1.5,当P1.5输出低电平时,芯片被选中处于工作状态。引脚二为外部读数据允许位,它接到P1.6,当P1.6输出低电平时,芯片处于外部许状态,转换后的数据被送入DB0到DB7引脚,DB0到DB7引脚为数据输出端口,它与单片机P3口依次相连,此时单片机可以从P3口取走。引脚三为外部写数据允许位,它与单片机P1.7口相连,当P1.7输低电平时,芯片处于外部写允许状态,此时芯片从6号和7号引脚获取电压差值,当此引脚再次拉高时,芯片便开始AD转换。6号引脚Vin(+)接传感器模块的模拟信号输出端口,其间接入的10K电阻并不影响输入电压,但可以起到限流作用,防止瞬间高电流将芯片烧坏。7号引脚Vin(-)接地,转换的原始模拟电压就是6号引脚和7号引脚的电压差值。5号引脚在转换时输出高电平信号,结束时输出低脉冲。它如果与单片机的外部中断端口(P3.2或P3.3)相连,在转换结束后给单片机一个中断,让单片机读走数据。考虑到ADC0804的转换时间还是非常快的,本设计中此引脚悬空,没有和单片机外部中断入口相连。在程序中可以用软件延时的方式等待它转换完毕,或者用定时器中断方式每隔一定时间采样,让芯片有充分转换时间。在本设计中采用了第一种做法模拟信号输出端口,具体方法在下一小节中介绍。19号引脚跨接一个10K电阻与4号引脚相连,4号引脚在与56PF的电容相接,电容另一端接地。这样电阻和电容便于芯片内部电路形成了RC震荡电路,它产生周期信号,为芯片提供时序,芯片正是在此时序的控制下有条不紊的工作。9号引脚应接入二分之一的VCC为电路提供参考基准电压,具体做法是,将两个10K电阻串联接在VCC和GND上分压,接号引脚并接在他们中间,获取参考电压。3.2.3 本设计中AD转换软件实现图3.4 ADC0804控制时序图 参考上图,CS端在初始化函数void init()中便将他拉低使芯片一直处于工作状态,在主函数中先判断是否处于检测状态,若是检测状态,不断调用检测命令和显示命令,使单片机可以实时检测。当测试值超标,则使报警电路报警,显示模块和报警电路的软硬件设计将在后面详细介绍。下面具体讲述转换过程,上电后由于RD和WR都和I/O相连,即输出默认电平,无需初始化。在转换时先将WR拉低,调用带形参子函数void delay(),用delay(1);语句延时约一毫秒,让ADC0804有足够时间读走6、7号引脚上的电压差值。RD拉高后,芯片开始转换,此时程序用delay(5);语句软件延时约五毫秒,让芯片转换完成。再让RD端拉低,同样软件延时一毫秒,让单片机读走数据。下面介绍转换原则,ACD0804有八位数据输出口,即转换精度为256,它将最高值(此处为1000ppm),分为255份,当得到一个转换数据时,用最大值除以255,再乘以该数据值便是最终转换值。AD转换子函数分析:void ad()wr=0; /将WR拉低,让芯片开始读6、7号引脚电压值delay(1); /延时约一毫秒,让芯片忙完wr=1; /将WR拉高,上升沿到来时,AD转换开始delay(5); /软件延时约五毫秒,等待AD转换完成P3=0xff; /将P3口全部拉高,等待测试数据delay(1); /延时一会,避免紊乱rd=0; /将RD拉低,芯片送出数据delay(1); /延时约一毫秒,让P3口temp=P3; /将数据存入temprd=1; /将RD拉高4 显示模块软硬件设计4.1 LCD1602简介LCD1602每行可以输出16个字符,可以显示两行,故称1602,它不带中文字库,故只能显示数字、字母和普通字符。在本设计中不检测液晶的忙与闲,用前面对待ADC0804的方法,用软件延时来等待液晶的忙操作时间。液晶显示输出D0到D7口接P0.0到 P0.7,单独使用一个口,另外还要接上10K上拉电阻来提高P0口带负载能力。当处于读状态时,RS处于低脉冲,R/W为高脉冲,E为高脉冲 ,D0D7=状态字当处于读数据时,RS为高脉冲,R/W为高脉冲,E为高脉冲,D0D7=数据。当处于写指令时,RS为低脉冲,R/W为低脉冲,D0D7=指令码,E=高脉冲。当处于写数据时,RS为高脉冲,R/W为低脉冲,E为高脉冲,D0D7=数据。4.2 本设计中LCD1602的硬件连接介绍图4.1 LCD1602硬件连接图1号引脚VSS接地2号引脚VDD接电源正,为液晶提供合适电压。15号和16号引脚也分别接电源正和地,点亮液晶背光灯,15号叫也可以串接一个5欧姆电阻,适当减小背光亮度,本设计中并未接。3号角接到10K可调电阻M103的可调端,M103另外两端接电源正和地。用于调整液晶对比度。RS、R/W、E分别与I/O口P2.5、P2.6、P2.7相连。数据口与P0口连接,外接10欧姆上拉电阻。4.3 本设计中LCD1602的软件设计4.3.1 本设计的液晶写命令子函数和写数据子函数程序分析图4.2 LCD1602写操作时序前提应注意:在初始化函数void init()中,已将R/W拉低(对应lcden=0;语句),即只对液晶进行写操作,不读液晶状态。之前有位定义sbit lcdrs=P25;sbit lcdrw=P26;sbit lcden=P27;写命令函数各语句分析:void write_com(uchar com)lcdrs=0; /将RS拉低,说明对指令操作, 上电时是默认高电平P0=com; /对P0赋值,该值是对应命令码 ,com为形参delay(5); /延时约五毫秒lcden=1; /E拉高,让液晶读P0口,写入对应命令码delay(5); /延时约五毫秒,让液晶忙完再对其操作,防止数据丢失lcden=0; /将E拉低写数据函数各语句分析:void write_com(uchar da)lcdrs=1; /将RS拉低高,说明对数据操作P0=da; /对P0赋值,该值是要写入的数据 ,da为形参delay(5); /延时约五毫秒lcden=1; /E拉高,让液晶读P0口,写入数据delay(5); /延时约五毫秒,让液晶忙完再对其操作,防止数据丢失lcden=0; /将E拉低结合图10,将对以上分析更加清楚。值得注意的是,在写数据的操作中,写入的都是字符ASCII码,例如想写1,让液晶在某处显1,可写write_data(1);或者write_data(0x30+1);4.3.2 本设计中用到的液晶指令介绍分析本设计程序,你会看到这些写指令命令:write_com(0x38);write_com(0x0c);write_com(0x06);write_com(1);write_com(0x80+); 下面对它们中的指令码做介绍:0x38:液晶初始化指令,让液晶按每行显示16个字符,显示两行,并且每个字符显示处的点阵为5X7;0x0C:不显示光标,光标不闪烁;0x06:在写入一个数据后地址自动加一,显示不移动;1即0x01:清屏指令,即将液晶内部存储数据清楚,地址指针指向零;0x80+:设置写入数据的地址,所加的就是对应地址。4.3.3 本设计中的字符串显示和数据实时更新的实现方法 写字符串子程序:void write_str(uchar *p)while(*p)write_data(*p+);这里灵巧的应用了数组指针,比传统的for嵌套循环写入方便很多。用while(*p)自动检测是否写完,当写完后指针变为零,跳出循环。如想写入AC value:,只需先定义数组uchar code str=AC value:;,再写语句write_str(str);写完后指针变为零,自动结束。数据实时更新的实现方法,检测时不断调用显示子函数,display();显示函数如下:void display()uint value; /定义局部变量valueuchar a,b,c; /定义局部变量a、b、cvalue=3.92*temp; /获得value值,它是以ppm为单位a=value/100; /a为value的百位b=value%100/10; /b为value的十位c=value%10; /c为value的个位write_com(0x80+0x40+4); /将数据写在第二行,第五个字符处write_data(0x30+a); /在第二行,第五个字符处写入value百位write_com(0x80+0x40+5); /将数据写在第二行,第六个字符处write_data(0x30+b); /在第二行,第六个字符处写入value十位write_com(0x80+0x40+6); /将数据写在第二行,第七个字符处write_data(0x30+c); /在第二行,第七个字符处写入value个位在循环语句中不断调用AD转换程序, ad();,又不断调用显示函数,数据就能实时检测更新。在待机时,循环程序中不断执行语句:write_com(0x80+6); /将数据写在第一行,第七个字符处write_data(tablea); /在第一行,第七个字符处写入时钟的分钟write_com(0x80+7); /将数据写在第一行,第八个字符处write_data(tableb); /在第一行,第八个字符处写入闪烁的冒号write_com(0x80+8); /将数据写在第一行,第九个字符处write_data(tablec); /在第一行,第九个字符处写入时钟的秒钟十位write_com(0x80+9); /将数据写在第一行,第十个字符处write_data(tabled); /在第一行,第十个字符处写入时钟的秒钟个位由于是在不断循环调用,即不断数据刷新,而a、b、c、d的改变是通过定时器零实现的。这在后面的程序调试中详细说明。5 其它外围设备软硬件设计5.1 报警电路软硬设计5.1.1 硬件部分设计图5.1 报警电路将蜂鸣器的正端接电源正,负端接P1.0。低电平有效,蜂鸣器响起。发光二极管D1为报警灯,它的正端接电源正,负端与470K电阻相连再接上P1.1。低电平有效,D1点亮。电阻限流电阻。5.1.2 软件部分设计 位定义语句:sbit beep=P10; /定义蜂鸣器sbit d1=P11; /定义报警灯 用程序让蜂鸣器响: beep=0; /低电平输出时,蜂鸣器打开 用程序让蜂鸣器关闭: beep=1; /高电平输出时,蜂鸣器关闭 用程序将D1点亮: d1=0; /低电平输出时,D1点亮 用程序将D1熄灭: d1=1; /高电平输出时,D1熄灭5.2 待机指示灯软硬件设计5.2.1 硬件部分设计图5.2 待机指示灯电路发光二极管D2为待机指示灯,它的正端接电源正,负端与470K电阻相连再接上P1.3。低电平有效,D2点亮。电阻限流电阻。5.2.2 软件部分设计 位定义语句:sbit d2=P11; /待机指示灯警灯 用程序将D2点亮: d2=0; /低电平输出时,D2点亮 用程序将D2熄灭: d2=1; /高电平输出时,D2熄灭5.3 按键软硬件设计5.3.1 硬件部分设计图5.3 按键电路S2和S3分别和P2.1和P2.0,再与GND相接。S2为待机控制按键。S3为检测控制按键。R18和R19与VCC相连再并接在开关前,是为了在松手时,使I/O获得稳定的高电平。5.3.2 软件部分设计 位定义语句:sbit k1=P20; /S3位定义sbit k2=P21; /S2位定义S2按键检测: if(k1=0) /检测按键是否按下delay(5); /消抖if(k1=0) /再检测按键是否按下flag=0; /写入要进行的操作,这里是将标志数flag置零while(!k1); /松手检测S3按键检测: if(k2=0) /检测按键是否按下delay(5); /消抖if(k2=0) /再检测按键是否按下flag=1; /写入要进行的操作,这里是将标志数flag置一while(!k2); /松手检测5.4 电源电路图5.4 电源电路如上图为本设计的电源电路。接入220V交流电后从变压器输出12V交变电压,再经过桥式整流电路整流,输出直流电。稳压芯片7805使电压稳定在5V,电解电容C5和C6滤除杂波。S4为紧锁开关,也是电源总开关。D4与R17串联,跨接在VCC与GND之间,作为电源指示灯。6 系统总体设计6.1 硬件总体框图LCD显示模块AT89C52单片机传感器模块报警电路与待机指示灯电路A/D转换模块按键图6.1 硬件总体框图 本设计以AT89C52单片机为控制核心。由酒精传感器对待测气体进行检测,转换成输出电压信号,以单片机为核心、信号采集处理、声光报警电路以及显示、键盘。测试仪进行气体检测的基本步骤是单片机采集酒精传感器的响应信号,并且进行转换,储存在数据储存其中,然后单片机通过特定的算法进行气体浓度的识别,同时将分析的值与设定值进行对比,对超出设定值进行报警,并且将结果输出到LED显示屏幕上。6.2 程序流程图 主程序流程图如下图6.2所示。开始初始化LCD显示子程序键盘扫描子程序A/D转换子程序数据处理子程序大于阈值? N Y声光报警执行酒精浓度的实时检测,显示和报警执行待机程序,液晶显示简易计时,不检测和不显示酒精浓度图6.2 主程序流程图6.3 硬件调试 在制作实物时有忘记连接、虚焊、飞线以及连接错误等情况,好在都成功检查了出来并改善了。目前硬件工作正常。制作过程中最严重的问题是将液晶的数据口与P0口连接错误,完全倒置连接。考虑到P0口与液晶数据口连接处布线密集,飞线难度大,最后既定,将8根数据线剪断,再焊上两排排针,用杜邦线连接,最后效果很好。 硬件的连接已经在前面各节中详细介绍,此处不再赘述。电路原理图和实物照片参见附录一和附录二。6.4 软件调试 本设计所用编译软件时keil。各模块的软件设计已经在前面各节中介绍,这里主要介绍下标志数的应用,按键消抖和松手检测,定时器和定时器中断,主要谈及它们的原理以及软件实现过程。6.4.1 标志数的应用(主函数运行待机程序还是检测程序的判断)为了能让主函数分清是执行执行待机程序还是检测程序报警程序,引进标志数flag。 当flag为1时执行待机程序: while(flag=1) 待机程序当flag为0时执行检测报警程序:while(flag=0) 检测报警程序在初始化函数中先将flag置一:flag=1;上电后则进入待机状态。按键k1后使flag置零,执行检测报警程序。按键k2后使flag置零,又执行待机程序。值得注意的是要在执行待机程序或检测报警程序前,执行待机程序的程序尾部,以及执行检测报警程序的程序尾部多加入按键检测程序:if(k1=0) /按键检测delay(5); /消抖if(k1=0)flag=0;while(!k1); /松手检测if(k2=0) /按键检测delay(5); /消抖if(k2=0)flag=1;while(!k2); /松手检测 这样就可以重新设置flag,再执行完待机程序或检测报警程序后,判断接下来要执行什么程序。6.4.2 按键的消抖与松手检测的程序实现为什么要消抖?主要在手刚刚按下轻触开关时,会有抖动,有抖动时,程序会快速跑走,这样有可能等同于按了两下或多下按键的效果。消抖原理:在检测到按键后,立刻延时约五毫秒,即延时消抖,这样就过了抖动时间,之后手的按键力度是非常稳定的。注意延时结束后立马在检测下按键是否还按下,以免因其它抖动误判。程序如下。k1消抖:if(k1=0) /按键检测delay(5); /延时消抖if(k1=0) /再次按键检测 k2消抖:if(k2=0) /按键检测delay(5); /延时消抖if(k2=0) /再次按键检测 其实用了连个开关k1和k2来分别将标志数flag置一或置零,此时消抖不是很重要,不消抖也不会让程序误判。松手检测,用while语句,如下。k1松手检测语句:while(!k1);k2松手检测语句:while(!k2);当还按着键时,一直执行while循环语句,等待放手,放手后跳出循环,执行下面语句。6.4.3 定时器与定时器中断本设计在待机时,执行一个简易的十分钟以内的计时程序。这时用定时器零产生中断,让其计时。定时器是独立与cpu的单独部件,与软件延时比起来,它不占用程序时间,定时很精确。当时间到了时,它就产生定时中断,让主程序让执行定时器中断函数。设置TMOD=0x01;使定时器零工作在方式一,工作方式一是十六位不能自动重装初值的方式,所以在进入定时器中断函数后要重新装初值。结束语经过一周的努力,终于完成了电气测量的课程设计。这次设计真的让我长进了很多,首先此次课程设计重点就在于软件算法的设计,需要有很巧妙的程序算法,有好多的东西,只有我们去试着做了,才能真正的掌握,只学习理论有些东西是很难理解的,更谈不上掌握。其次,就是使用到的各种元器件。这次我使用的基本上都是已经学过的元件,但真正用起来才发现自己还差的很多,所以我又重新对所用到的器件仔仔细细,认认真真的研究了一遍从引脚,到时序,再到最后的电路整体构成,下了非常大的功夫才最后弄出来。回顾起此次电气测量课程设计,我仍感慨颇多。通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。这让我学到了很多课本上没有的东西,扩展了自己的视野,增强了自己的动手能力,清醒的认识到自己的不足,培养了小心谨慎的作风,使自己对课题设计了解进一步加深。总之,此次的课程设计使我收获颇丰,也是我上大学来难忘的一次经历。致谢过这次课程设计我也发现了自身存在很多缺点。理论知识太少了,还有总是不能完全浸下心来学习,这是一个很大的缺点,但是,俗话说,有错就改善莫大焉,在今后的学习过成我会尽力改正这些点,也尽力去学习别人的优点。最后在这里忠心的感谢老师安排了这次电气测量课程设计,感谢指导老师的辛勤付出。这种综合型的设计课,不仅对我们今后的发展有着重要的影响,也是对我们过去所学的一个总结,还是非常感谢老师的指导与帮助,让我学到了很多和成长了许多。参考文献1 徐玮.51单片机综合学习系统1602字符型液晶显示篇J.电子制作,2008,2(1):1-32 苏成富.多功能音乐门铃J.电机电器技术日用电器,2000,(3):68-69 3 郇玉龙,赵宁.用单片价设计电子音乐门铃J.电子制作用单片机制作, 2007,(5):24-264 夏方林.基于AT89C2051的单户可视对讲门铃室内分机的设计J.微计算机信息,2004,5(10):96-975 胡俐蕊,朱彪. 多功能电子门铃的设计与实现J.电子元器件应用,2006.10,(8):35-38.6 冯育长等.单片机系统设计育实例分析M,西安电子科技大学出版社,2007.7 李念强等.单片机原理及应用M,机械工业出版社,2007.8 吴金戌等.8051单片机实践与应用M,清华大学出版社,2002. 11 沈红卫. 单片机实用系统设计实例与分析M. 北京:北京航空航天大学出版社.9 谢魁.一种新型的语音门铃 电子与自动化J,2000(3):46-47.10 孟利民, 张明珊. 无线可视对讲门铃系统中语音通信的设计与实现J.浙江工业大学学报,2005.2(1):24-27.附录一 硬件设计原理图附录二 程序/*定义包含reg52头文件*/#include/*/*宏定义*/#define uint unsigned int#define uchar unsigned char/*/*位定义*/sbit beep=P10;sbit d1=P11;sbit d2=P13;sbit k1=P20;sbit k2=P21;sbit lcdrs=P25;sbit lcdrw=P26;sbit lcden=P27;sbit cs=P15;sbit rd=P16;sbit wr=P17;/*/*定义字符数组*/uchar code str=AC value:;uchar code str0=ppm;uchar code table=0123456789: ;/*/*定义无符号字符型全局变量*/uchar flag,temp,a,b,c,d,tt;/*/*子函数声明*/void init(); /初始化函数void delay(uint); /有无符号整型形参的延时函数void write_str(uchar *); /向液晶写入字符串的函数void write_com(uchar); /液晶写命令函数void write_data(uchar); /液晶写数据函数void ad(); /AD转换函数void display(); /酒精浓度显示函数/*/*主函数部分*/void main()init(); /调用初始化函数while(1)if(k1=0) /按键检测delay(5); /消抖if(k1=0)flag=0;while(!k1); /松手检测if(k2=0) /按键检测delay(5); /消抖if(k2=0)flag=1;while(!k2); /松手检测while(flag=0) /执行待机程序TR0=0;d2=1;write_com(1);write_com(0x80);write_str(str);write_com(0x80+0x40+9);write_str(str0);while(flag=0)ad();display();if(temp=20)beep=0;d1=0;elsebeep=1;d1=1;if(k1=
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025广西壮族自治区药用植物园招聘高层次人才21人笔试模拟试题及答案解析
- 2025广西来宾忻城县发展和改革局招聘编外人员3人笔试备考题库及答案解析
- 2025年宠物服务行业研究报告及未来行业发展趋势预测
- 2025年粉扑行业研究报告及未来行业发展趋势预测
- 2025年外贸鞋行业研究报告及未来行业发展趋势预测
- 外贸合同中英文销售协议
- 云南省会泽县2025年上半年事业单位公开遴选试题含答案分析
- 河北省辛集市2025年上半年公开招聘村务工作者试题含答案分析
- 河北省广平县2025年上半年事业单位公开遴选试题含答案分析
- 2025年度天津二手房买卖合同风险防范指南
- (3)-2-1-药物的跨膜转运
- 幼小衔接资料合集汇总
- 八年级数学平面直角坐标系测试题
- GB/T 28575-2020YE3系列(IP55)三相异步电动机技术条件(机座号63~355)
- 储油罐有限空间作业安全技术措施表
- 传媒公司员工劳动合同(标准版)
- 缺血性肠病完整版本课件
- 《室内空间设计》第三章课件
- 学习《北方民族大学学生违纪处分规定(修订)》课件
- 设备出厂检验报告
- Matlab-Simulink模型检查验证与测试
评论
0/150
提交评论