51单片机课程设计_第1页
51单片机课程设计_第2页
51单片机课程设计_第3页
51单片机课程设计_第4页
51单片机课程设计_第5页
已阅读5页,还剩48页未读 继续免费阅读

下载本文档

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

文档简介

1、51单片机课程设计我春X才女舂IJ课程设计说明书课程设计名称单片机原理及应用课程设计专业电子信息工程班级140405学号20211329学生姓名李延琦指导教师胡黄水2021 年12月26日课程设计任务书课程设计 题目酒精测试仪起止日期2021年12月26日2021年1月6日设计地点计算机科学与工程学 院单片机实验室3409设计任务及日程安排:设计任务:分两局部:一、设计实现类:进行软、硬件设计,并上机编程、联线、调试、 实现;1.电子钟的设计 2.交通灯的设计 3.温度计的设计 4.点阵显示5.电机调速6.电子音乐发声自己选曲7.键盘液晶显示系统二、应用系统设计类:不须上机,查资料完成软、硬件

2、设计画图.查资料选定题目.说明:第1-7题任选其二即可.二里题目自拟.日程安排:本次设计共二周时间,日程安排如下:第1天:查阅资料,确定题目.第2-4天:进实验室做实验,连接硬件并编写程序作相关的模块实验.第5-7天:编写程序,并调试通过.观察及总结硬件实验现象和结果.第8-9天:整理资料,撰写课程设计报告,准备辩论.第10天:上交课程设计报告,辩论.设计报告要求:1 .设计报告里有两个内容,自选题目内容 +附录实验内容,每 位同学独立完成.2 .自选题目不须上机实现,要求能正确完成硬件电路和软件程序 设计.内容包括:1设计题目、任务与要求2硬件框图与电路图3软件及流程图a主要模块流程图 b源

3、程序清单与注释4总结5 参考资料6 附录实验上机调试内容注:此任务书由指导教师在课程设计前填写,发给学生做为本门课程设计的依据.目录第一局部:自主设计课设:酒精测试仪 01总体方案设计 01.1 设计要求01.2 优点及意义11.3 系统硬件电路设计.11.4 初步设计思路22硬件电路设计 32.1 酒精检测模块32.2 显示模块42.3 报警模块42.4 CPU限制模块63应用软件设计 83.1 主程序设计83.2 子程序设计93.2.1 显示子程序设计.93.2.2 报警子程序设计 103.2.3 酒精检测子程序设计.124系统调试与性能分析134.1 开机界面134.2 浓度判断134.

4、3 阈值修改14总结: 14参考文献 15附录 17附录A硬件电路图17附录B程序清单18第二局部:课堂设计内容:温度测量系统 311实验目的 312实验内容 313实验原理 314实验步骤315流程图:336程序清单:34第一局部:自主设计课设:酒精测试仪1总体方案设计1.1 设计要求本课题要求以单片机为核心,设 计一个酒精测试仪,由四局部组成:酒 精检测模块,显示模块,报警模块,CPU 限制模块.CPU制模块采用STC89C52 单片机进行限制.酒精传感器采用 MQ-Sensor传感器模块和ADC0809莫数 转换模块用于对人呼出酒精气体的酒 精度检测,显示模块采用1602液晶显 示,报警

5、电路采用蜂鸣器.要求酒精测 试仪有以下功能:(1)酒精浓度通过1602液晶显示 模块显示出来(2)酒精浓度超过设定的阈值那么 蜂鸣器发声进行报警.1.2 优点及意义本课题采用51单片机进行限制,51 单片机具有体积小、运行速度快的特 点,用其作为主控芯片进行限制会十分 的方便.使用MQ-Sensor气体传感器模 块能够快速,准确的检测到酒精浓度, 使用1602模块进行显示,直观,方便. 1.3系统硬件电路设计系统硬件设计框图.根据设计要求, 确定系统的设计方案,硬件由四局部组 成.采用STC89c52单品机为CP四制 模块,以 MQ-Sensor传感器模块和 ADC0809模块组成检测模块,以

6、 1602 液晶显示组成显示模块,以蜂鸣器组成 报警模块.1.4 初步设计思路(1)定义三组数组表,方便 1602 显示时进行调用(2)将adc0809的数据输出端接 在单片机的P2 口(3)将MQ-Sensor酒精传感器的 TTL输出端接在单片机P1.7 口, 将AO模拟量输出端接到 adc0809 的 IN0 通道.(4)将1602的数据输入端接到单 片机P0 口(5)将蜂鸣器接到单片机P3.32硬件电路设计2.1酒精检测模块传感器模块采用MQ-Sensor酒精传 感器,其模拟量输送给ADC080胧行模 数转换,将输出数据发给单片机.II 泛 =山u运言封 电路中酒精检测传感器的模拟量输

7、出端接在adc0809的IN0通道.Adc0809的start引脚接到单片机的P1A2 口 , oe引脚接到单片机的pi0引 脚上,EOC引脚接到了单片机的p1A1口,ciock时钟信号接到了单片机的 P1A6引脚上.数字量输出端接到了单 片机的P2 口.将传感器采集到的酒精 浓度经过adc0809输送到单片机中.2.2 显示模块显示模块采用1602液晶显示屏进行 显示,液晶显示具有低功耗,应用接口 少,显示量大的特点,所以应用很广. 将单片机收到adc0809数字量发送给 1602中,进行显示.Q手将1602的数据输入端接到单片机的P0 口,RS引脚接到单片机的 P3A5 口,将EN使能接口

8、接到单片机的P3A4 口,单片机发送数据给1602,1602进行 显示酒精的浓度.2.3 报警模块报警模块采用蜂鸣器进行报警,直观,方便f IL=11-CZ)-1-a- 丁将蜂鸣器接到单片机的 P3A3 口, 当酒精检测传感器模块 TTL电平输出 端时证实酒精浓度已经超过了阈值, 那么 启动报警,给蜂鸣器以低电平,蜂鸣器 响.否那么,给蜂鸣器低电平,蜂鸣器不 响.2.4 CPU限制模块CPU采用STC89c52单片机,负责 整套系统的运行.它包含时钟电路和复 位电路.(1) 时钟电路单片机工作的时间基准 是由时钟电路提供的,在单片机 的XTAL1和XTAL2两个引脚间, 接一只晶振及两只电容就

9、构成 了单片机的时钟电路.电路中,电容器C1和C2对 振荡频率有微调作用,同时帮助 晶振起振,通常取值范围在22土 0.1PF , 一般晶振为 11.0592MHZ电容取22PR石英 晶体选择11.0592MHZ(2) 复位电路单片机系统的复位电路在可以采用 的是按钮式上电复位电路形式,其中电 阻R采用10KQ的阻值,电容采22 “F 的电容值.3应用软件设计3.1 主程序设计酒精测试仪的根本功能是通过酒 精传感器采集到气体的酒精浓度,之后 经过ADC080嗷模转换发送给单片机, 之后单片机发送给 1602液晶进行显 示.当检测到的酒精浓度值超过了所 设计的阈值,那么酒精传感器模块将输出 低电

10、平,将其接到单片机PM7引脚上, 当单片机检测到该引脚为低电平时,那么 驱动蜂鸣器发生进行报警.流程图:3.2 子程序设计3.2.1 显示子程序设计米用1602液晶屏进行显示,将液晶 数据输入端接到单片机P0 口,单片机 驱动液晶进行显示.流程图:3.2.2 报警子程序设计报警电路采用蜂鸣器进行报警, 当酒精浓度超过了设定值,那么蜂鸣器发 声进行报警,将蜂鸣器接到单片机的 P3八3引脚.流程图:3.2.3 酒精检测子程序设计酒精检测模块采用 MQ-Snsor酒精 气体传感器和ADC080曲成,将采集到 的酒精浓度经过模数转换器发给单片 机.流程图:AdcO8094系统调试与性能分析4.1 开机

11、界面开机之后1602界面显示,酒精检测模块气体中酒精度发送给单片 机.4.2 浓度判断当检测到的酒精浓度大于设定的阈值时,那么单片机驱动蜂鸣器发生进行 报警,提示检测者酒精浓度已经超标.4.3 阈值修改(1)硬件修改通过改变酒精传感器 的电阻值来改变传感器对 气体酒精度的检测灵敏 度,来修改阈值.(2)软件修改通过对系统运行程序进行阈 值设定,检测到的酒精浓度,进 行人为的软件设定阈值,进行判 另I.总结:本作品针对生活中因醉酒驾驶引发 交通事故日益严重,明确研究方向,制 定方案方案.深入研究酒精传感器、模 数转换器等器件原理,查阅相关酒驾标 准.为制作出满足实际要求的作品, 做 好充分的准备

12、.在此期间所遇到的问 题,通过最有效、最准确的渠道进行解 决,为成功扫清障碍.随着对单片机、ADC0809 LCD显示器 的加深了解,对信号采集和数据算法处 理的进一步学习;参加温度、湿度和气 压的影响,在现有根底上进行改良,一 定会使测得的数据更加准确,使作品与 预期目标更接近.使其能成为商品,进 入家庭,实现我们以此为课题的最终目 的.参考文献1单成祥.传感器的理论与设计根底 及其应用M.北京:国防工业出版社, 2张福学.现代传感器电路M.北京:中国计量出版社,2000, 4413吴兴惠,王彩君.传感器与信号传 感器M.北京:电子工业出版社,1998 4万隆,巴奉丽.单片机原理及应用 技术

13、M.北京:清华大学出版社,2021 5汤竟南,沈国琴.51单片机C语言 开发与实例M.人民邮电出版社6雷伏容,张小林,崔浩.51单片机 常用模块设计查询手册M.北京: 清华大学出版社,20217韩成,张延拿了就用单片机M. 北京:人民邮电出版社,20218赵建领.51系列单片机开发宝典 M.北京:电子工业出版社,2007-04 9张毅刚 单片机原理及接口技术: 人民邮电出版社附录附录A硬件电路图的-5理 pb Ro口 PPDPPOITEKABq 肥取带眼腺fcs哈本VJYflRSRWE 国DID2D!国Djxx附录B程序清单/*/工程名称:酒精测试仪程序内容:通过酒精模块将采集到的酒精浓度显示

14、到1602上/如果浓度超过设定值,那么进行报警./*/#include /头文件#define uchar unsigned char/宏定义无符号字符型#define uint unsigned int/宏定义无符号整型uchar code table尸0123456789;uchar code table1=voltage:;uchar code table2= alcohol tester ;/位限制码sbit ST=P1八2; /A/D 启动转换信号 sbit OE=P1A0; / 数据输出允许信 号sbit EOC=P1A3; /A/D转换结束信号sbit CLK=P1A6; /时钟

15、脉冲sbit dula = P2A6;sbit wela = P2A7;sbit rs = P3A5;sbit lcden = P3A4;sbit DOUT=P1A7;sbit beep=P3A3;uint 乙x,c,v,AD0809, date,a,i;/定义数据类型/延时子void yanshi(uchar z)函数(uint x,y;x=0;y=o;for(x=z;x0;x-)for(y=110;y0;y-);/ 延时函)void delay(uint x)数,参数x(uint a,b;for(a = x;a 0;a-)(for(b = 10;b 0;b-)(;/*/*/*/*/*/ /

16、*/*/函数名称 :write_com函数描述 :1602写命令函数输入参数: com参数描述 :限制命令返回值: 无/* void write_com(uchar com)P0 = com;rs = 0;Icden = 0;delay(10);Icden = 1;delay(10);Icden = 0;)/*/* 函数名称 :write_date*/*函数描述 :1602写数据函数*/* 输入参数 : date*/*参数描述:要写入的数据*/* 返回值:无*/*/void write_date(uchar date)(P0 = date;rs = 1;Icden = 0;delay(10);

17、lcden = 1;delay(10);lcden = 0;void initLCD(void)/1602 初始化函数(dula = 0;wela = 0;write_com(0x38);delay(20);write_com(0x0f);delay(20);write_com(0x06);delay(20);write_com(0x01);delay(20);/*液晶显示程序*/void xianshi() /显示函数uint 乙x,c,v;z=date/1000;/ 求千位x=date%1000/100;/ 求百位c=date%100/10;/ 求十位v=date%10; / 求个位for

18、(a=20;a0;a-)/液晶1602显示write_com(0x80+0x40+9);write_date(tablez);write_com(0x80+0x40+10);write_date(tablex);write_com(0x80+0x40+11);write_date(.);write_com(0x80+0x40+12); write_date(tablec);write_com(0x80+0x40+13);write_date(tablev);)/*CLK振荡信号*/void timer0( ) interrupt 1 /定时器0工作方式1TH0=(65536-2)/256;/

19、重装计数初值TL0=(65536-2)%256;/ 重装计数初值CLK=!CLK; / 取反/* *主函数 */ void main() (TMOD=0X01; /定时器中断0CLK=0;/脉冲信号初始值为0TH0=(65536-2)/256;/ 定时时间高八位初值TL0=(65536-2)%256;/ 定时时间低八位初值EA=1;/ 开 CPU中断ET0=1;/ 开 T/C0 中断TR0=1;initLCD();write_com(0x80);for(i=0;i16;i+)write_date(table2i);yanshi(5);write_com(0x80+0x40);for(i=0;i

20、=251)能超过5VAD0809=250;date=AD0809*20; xianshi();数if(DOUT=0)/时,执行条件函数/电压显示不/液晶显示显示函当浓度高于设定值yanshi(5);/ 延时抗干扰if(DOUT=0)/确定浓度高于设 定值时,执行条件函数(beep=0;yanshi(2000);beep=1;第二局部:课堂设计内容:温度测量系统1实验目的根据温度限制系统的要求和特点, 设计了一种基于51单片机的温度显示 系统.该系统以单片机为限制核心,结 合外围信号采集电路、LCD显示电路、 报警电路,实现对温度的测量报警控 制.2实验内容温度限制装置由单片机最小系统、 LCD

21、夜晶显示电路、报警电路、温度传 感器.等四局部组成.3实验原理将温度传感器采集的数据输入单 片机,单片机与程序内预先设定好电压 阈值进行比拟,如果温度数据大于所设 定的温度阈值,那么蜂鸣器发生进行报 警,整个过程LCD实时显示:温度阈值、 实际温度值.4实验步骤主程序主要完成初始化、以及调用显示、指示灯、温度采集等等.具体模块 包括:显示程序设计温度采集程序设计温度处理程序设计 显示程序设计主要将几个数组的内容通过 LCD1602的写数据指令显示在 LCD屏 上.温度采集程序通过18B20温度传感器实时采集 温度并发送给单片机.温度处理程序设计将采集到的实时温度与设定温度 阈值进行比拟,如果温

22、度大于预先设定 的阈值,那么蜂鸣器发生进行报警.5流程图:土口6程序清单:/将DS18B20所采集到的温度实时显示到1602上./温度超过阈值那么报警#include #include #include #define uchar unsigned char#define uint unsigned int/宏定义uchar value,aa;unsigned int tmp;sbit dula = P2八6;/数码 管段选引脚sbit wela = P2八7;/数码管位选引脚sbit ds = P2八2;/18b20 引脚定义sbit RS = P3八5;sbit LCDEN = P3八4;

23、/1602 引脚定义sbit beep=P2八3;void delayUs() / 延时函数(_nop_(); /延时一个机器周期,包含在intrins.h 文件中)void delayMs(uint a) / 延时函 数,参数a(uint i, j;for(i = a; i 0; i-)for(j = 100; j 0; j-);)void writeComm(uchar comm) /写命令RS = 0;写命令是RS需给低电平P0 = comm;LCDEN = 1;/写命令时LCDENT给高电平delayUs();/ 延时一个机器周期LCDEN = 0;delayMs(1);dat) /)void writeData(uchar写数据:RS=1, RW=0;(RS = 1;写数据时RS=1P0 = dat;LCDEN = 1;写数据时LCDEN=1delayUs();/ 延时一个机器周期LCDEN = 0;delayMs(1);void init()/初值函数(dula = wela =

温馨提示

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

评论

0/150

提交评论