单片机开发板论文设计.doc_第1页
单片机开发板论文设计.doc_第2页
单片机开发板论文设计.doc_第3页
单片机开发板论文设计.doc_第4页
单片机开发板论文设计.doc_第5页
免费预览已结束,剩余15页可下载查看

下载本文档

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

文档简介

基于STC12C5A系列单片机的开发板及18B20测温系统的设计 设计人 _ 王俊河_学号 _ 0502090132_ _ 指导教师 _ 陈援峰 _2011-6-9摘要单片机发展背景简介:单片机技术自发展以来已经走了几十年的发展路程,单片机技术的发展以微处理器技术及超大规模集成电路的技术发展为先导,以广泛的应用区域拉动,表现出较微处理器更具个性的发展趋势。小到电子玩具,大到航空航天技术等电子行业都有单片机应用的影子。针对51单片机技术在电子行业的重要应用,为满足广大学生、爱好者、产品开发者迅速学会掌握单片机技术,于是产生了51单片机开发板。本单片机开发板所包含的功能:本开发板选用的单片机型号为STC12C5A32S2,但作为开发板只应用了里面局部的功能,主要包括:1LED流水灯2键盘扫描并显示(中断方式)3A/D模数转换电路(可测电压、温度、亮度)4用18B20检测温度5数码管电路6继电器模块7串口通信电路(单片机-单片机、单片机-PC)8PWM调制器9蜂鸣器模块10综合应用(结合键盘、显示、串口、A/D、等)目录摘要2引言6第一章 方案分析7第二章 方案设计72.1 方案整体结构 72.2 最小系统电路82.3 按键电路9第三章 软件设计103.1程序构架103.2流程图10第四章 开发板调试及测试11第五章18B20测温实现12总结13谢辞14参考文献14附录19引言 单片机具有高集成度,体积小,高可靠性;单片机将功能集成在一块芯片上,集成度很高,体积也很小,芯片本身按照工业测控环境要求设计,内部布线很短,抗噪音性能优于一般通用的CPU,单片机程序指令,常数及表格等固化在ROM中不易破坏,许多信号通道均在一个芯片内,所以可靠性很高。单片机控制功能强;为了满足控制要求,单片机的指令系统均有极丰富的条件,分支转移能力,I/0口的逻辑操作及处理能力,非常适用于专门的控制能力。单片机还是具有低电压,低功耗,便于生产便携的产品。 51单片机除兼容性好,还具有较高的工作频率,可以满足绝大多数的用户的应用开发需求,在开发板上具有十分方便的使用。 本课题设计的单片机开发板,具有一般的开发通用结构,并基于硬件进行相关的软件设计,利用程序开发语言开发程序实现ISP在线下载到单片机,无需配置单独的下载器;单片机使用ISP在线下载程序,加快了开发板上模块的实验,调试及相应的开发,可以提到针对不同硬件进行编程的能力,同时通过实验现象对硬件也有更深的认识,因此该开发板对于初学者来说具有很强的实用价值和现实意义。 第一章 方案分析1.1总体设计方案 本开发板分10个模块,分别是51单片机控制模块、LED模块、键盘模块、A/D模数转换模块、18B20检测温度模块、步进电机模块、串口通信模块、数码管显示模块、蜂鸣器模块和PWM调制器模块。其中以单片机为主控芯片,外围接串口通信模块下载程序,8个LED显示可实现流水灯等状态,键盘电路向单片机输入特殊数值,A/D模块实现模数转换,18B20实现对温度的检测,步进电机模块是通过继电器实现,PWM调制器模块是利用微处理器的数字输出来对模拟电路进行控制,数码管显示模块对单片机处理后的数据进行显示,蜂鸣器模块实现报警和音乐等不同方式。1.2设计原则 (1)从选芯片开始;先选择芯片,再根据芯片的功能搭建外围电路,用软件实现单片机的 功能;(2)从画PCB图开始,PCB图是实现电路板功能的基础,也是选择器件封装的重要过程, 如何选择器件的封装,影响整个电路板的器件是否能够焊接在板子上,也影响市场上是否有该种器件的封装;(3)从芯片端口选择入手,由于实现的功能较多,而单片机管脚有限,有些管脚需要共同一管脚,但是对于功能的实现又不能有影响。(4)从布局入手,单片机的布局很重要;考虑到板子的成本问题,如果所需的功能不需要那么大的板子的话,就可以选择较小的布局,这样有利于成本的降低。第二章 方案设计2.1 方案整体结构本单片机开发板的硬件主要包括:单片机控制模块、LED流灯水模块、键盘扫描模块、A/D模数转换模块、数码管模块、继电器模块、串口通信模块、蜂鸣器模块、18B20检测温模块、PWM调制单片机控制模块LED流水灯键盘扫描综合应用蜂鸣器18B20检测温A/D模数转换数码管继电器串口通信PWM调制器2.2 最小系统电路单片机最小系统包括STC单片机、电源模块、复位电路、时钟电路 如图所示:本单片机最小系统中选用MCU为STC12C5A60系列单片机,工作电压为3.3-5.5V、采用Flash16K/1280的RAM等功能,电源模块选用16V电源降压为5V电压,16V电源经过二极管整流、电容滤波、再经过7805稳压芯片,再经过电容整流,将电源降为5V电压。复位电路采用手动复位;时钟电路选用11.0592MHz的晶振,两边经过电容滤波,为单片机提供稳定的脉冲。引脚功能说明如下:VCC-电源输入端GND-接地XTAL-晶振RST-复位2.3 按键电路在键盘中按键较多,为了减少I/O口的使用,本开发板采用的按键电路为4/4矩阵按键电路,在矩阵键盘中,每条水平线和垂直线在交叉处不直接连通,而是通过按键连接,这样一个端口P2就可以构成16个按键,比直接连线多出好多端口,所以采用矩阵键盘是最常用也是最合理的。矩阵式键盘中有无键按下:将全部行线P20-P23全部置低电平,然后检测列线的状态。只要有一列为低电平,则表示按键中有键被按下,而且闭合的键位于低电平线与4根行线相交叉的四个按键中。若所有列线均为高电平,则键盘中无键按下。 判断闭合键所在的位置:在确认有键按下后,即可进入确定具体闭合键的过程;其方法是:依次将行线置低电平,即在置某跟行线为低电平时,其它线为高电平。在确定某跟行线位置为低电平后,再逐渐检测各列线的电平的行线交叉处的按键就是闭合的按键。 矩阵键盘的按键编码处理:将行线和列线依次进行数值编码,然后进行一定规则的运算,就是对键值的编码。硬件实现:矩阵电路原理图本单片机采用P2口控制识别按键。第三章 软件设计3.1程序构架 单片机软件程序结构是否合理关系到单片机工作的合理性。同一种任务,有时用主程序完成是合理的,但是有时需要子程序执行效率更高,占用CPU资源最少,对于多中断系统,他们存在矛盾时,需要区分轻重缓急,主次分明。 在单片机软件设计中,任务多、程序量大时,这种情况下,一般需要把程序分成若干功能独立的模块,分阶段进行模块化的设计和调试,一般情况下单个模块利用仿真工具调试好,最后才将他们有机的联系起来,构成一个完整的控制程序,再对他们进行联合调试。 3.2流程图较复杂的控制系统需要一份程序流程图,这样才能有效的知道程序的编写过程,使程序的编写过程中少了许多不必要的弯路,做到事半功倍的效果。开始检测串口是否可以下载中断程序实现定时器程序实现模数转换程序实现蜂鸣器实现数码管实现显示PWM测压电路八个流水灯程序全部功能实现结束18B20检测温度程序第四章 开发板调试及测试4.1开发板PCB设计在开发板设计中,应该遵循先易后难的、先大后小的原则,先选择最基本的电路模块,例如电源模块、复位、时钟等,在根据自己的需要确定其他的功能。在PCB布局是,连线应尽可能的端,信号线最短,模拟信号和数字信号要分开,主要器件的合理排布,以免引起在规定的区域内放不下器件的情况,而且布局的好坏也影响整体的美观程度。在元器件放置时要考虑调试和维修的方便,大器件之间上尽量不要放太小的器件,需要调试的器件要有足够的空间,例如串口的放置,要考虑实际情况,不能把整个封装全部放在板子里面,导致串口无法连接;发热器件周围要有一定的空间,方便散热。布线最好采用手动布线的方法,因为整个板子中,整体的线路不会太过于复杂,手动布线比自动布线更能保证板子功能的实现。4.2开发板的测试开发板测试的过程是:先将开发板的串口跟PC通过下载器连接,用编好的程序下载到单片机中,使用+5V电源供电,在下载前务必保证PC机上安装了ISP下载器,选择烧写单片机的类型,然后编程,即可把程序烧录到单片机中。根据各个模块的功能,分别烧写不同的程序,检查实验的效果十分跟预想的一致,如果一致,则该部分功能是实现了,如果不一致,则应该从程序到硬件电路分别检测,知道功能全部实现。第五章 18B20测温实现DS18B20是一种单总线温度传感器,本开发板采用3脚的封装,其具有的特点:采用单总线技术,传感器直接以二进制输出被测温度,可通过串口,也可与单片机通过I/O口连接;测温范围为:-55+125度,测温精度高达+0.5度,用户可分别对每个器件设定温度上下限;DS18B20在使用时不需要任何外围元件,全部传感元件及转换电路集成在一个类似三极管的集成电路内;电源极性接时,芯片不会因发热而烧坏,但不能正常工作;每个DS18B20器件都有一个唯一的64位长的序号,该序号值存放在ROM中,可通过序列号匹配实现多点测温。引脚说明:VCC:接电源引脚,电源供电3.05.5V;I/O:数据的输入和输出引脚;GND:接地硬件实现DS18B20测温传感器模块原理图I/O口与单片机P17引脚相连,作为数据的传输和控制端口;测温流程图开始DS18B20初始化向18B20写入一个字节读18B20的一个字节读18B20 多字节读读取温度读18B20ID18B20 测温处理数据传送到数码管显示18B20先进行初始化,再向它写入一个字节,然后读取一个字节、都多个字节、读取温度、读取18B20的ID,再将所测得的温度进行处理,将数据传送到数码管显示出来。总结在整个开发板设计的过程中,遇到的问题有很多很多,先是PCB板电源模块有问题,把+5V和VCC调换到了,导致开发板大部分功能不能实现,经过了一段时间的调试跟检查后,重新画了一个PCB图,把第一次的错误全部改正,才使开发板能够正常工作,其开发过程中遇到的问题还有许多许多,从器件的封装,到购买器件、再到焊接、器件的选择等,无不需要认真的校对,出现了一点错误,可能就会导致整个模块或整个电路板无法正常工作;其实,最关键的一项工作是对应用程序的编写,虽然老师讲解过,但是,自己真正的运用它还需要一定的过程。总之,在整个开发板的设计过程中,学到的东西很多很多,从而也发现了自己的许多不足,通过这次项目的实践,相信我会更好的掌握相关的知识,并且会更好的利用它,真正的做到学以致用!谢辞本论文的选题是老师提出的,刚开始还觉得有点吃力,导致不敢尝试,但是在老师的指导下,我们进行了尝试,虽然刚开始很迷茫,在老师的细心引导下和严谨的治学作风的感染下,从开始论文选题到论文题目,再到最终完成论文,老师都给予了我们细心的指导和不懈的支持。在半个多学期的时间里,老师不仅从单片机的各方面的应用、如何应用、从程序到硬件,都详细的为我们讲解,让我们实实在在的学到了东西,在此谨向老师致以诚挚的谢意。 感谢在我完成项目的过程中为我提供帮助的所以同学,正是你们的支持,我才能克服许多的困难,从项目的开发,到论文的完成,你们都为我提供了许多宝贵的意见。 感谢学校给我提供一个良好的学习环境,有完备的设备作为基础,让我在完成论文的整个过程的不会遇到太大的困难,为我们更好的学到知识提供了极大的帮助。 参考文献单片机原理及接口电路主编 董晓红百度百科 18B20的功能电子测量 传感器整体电路图电路原理图PCB图附录实物图:开发板整观图整体功能实现图附录1:LED灯闪烁实现程序 #include at89s53.h void delay() int i; for (i=0;i2000; i+) ; void main () while(1) P1_0 =0;delay(); P1_0 =1;delay(); 附录2 键盘模块部分程序unsigned char keypad(void) unsigned char i,jianzhi=0; unsigned char keyvalue17=0x00,0xee,0xde,0xbe,0x7e,0xed,0xdd,0xbd,0x7d,0xeb,0xdb,0xbb,0x7b,0xe7,0xd7,0xb7,0x77; P2=0xff; P20=0; if(P2&0xf0)!=0xf0) delay_ms(1); jianzhi = P2; P20=1; P2=0xff; P21=0; if(P2&0xf0)!=0xf0) delay_ms(1); jianzhi= P2; P21=1; P2=0xff; P22=0; if(P2&0xf0)!=0xf0) delay_ms(1); jianzhi= P2; P22=1; P2=0xff; P23=0; if(P2&0xf0)!=0xf0) delay_ms(1); jianzhi= P2; P23=1; for(i=0;i17;i+) if(jianzhi=keyvaluei) jianzhi=i; return jianzhi; 附录三AD转换模块部分程序uint getadcvalue(uchar ch) uint temp=0; ADC_CONTR = ADC_POWER | ADC_SPEEDLL | ch | ADC_START; delay_ms(10); /Must wait before inquiry while (!(ADC_CONTR & ADC_FLAG);/Wait complete flag ADC_CONTR &= ADC_FLAG; /Close ADC temp=(temp|ADC_RES)6; return temp; /Return ADC resultvoid shumaguan_display(void) P0=gongyangdisplay_value3; gewei=0; delay_ms(2); gewei=1; P0=gongyangdisplay_value2; shiwei=0; delay_ms(2); shiwei=1; P0=gongyangdisplay_value1; baiwei=0; delay_ms(2); baiwei=1; P0=gongyangdisplay_value0&0x7f; /0111 1111 qianwei=0; delay_ms(2); qianwei=1; P0=0xff;附录四 18B20检测温度部分程序/*Function:18B20初始化*/void Init18b20 (void)ds18b20=1;_nop_();ds18b20=0;TempDelay(250);/TempDelay(86);/delay 530 uS_nop_();ds18b20=1;TempDelay(150);/TempDelay(14);/delay 100 uS_nop_();_nop_();_nop_();if(ds18b20=0)flag = 1;/detect 1820 success!elseflag = 0;/detect 1820 fail!TempDelay(15);/TempDelay(20);/20_nop_();_nop_();ds18b20 = 1;/*Function:向18B20写入一个字节*/void WriteByte (uchar wr) /单字节写入uchar i;for (i=0;i= 1;/*Function:读18B20的一个字节*/uchar ReadByte (void) /读取单字节uchar i,u=0;for(i=0;i= 1;ds18b20 = 1;if(ds18b20=1)u |= 0x80;TempDelay(4);/TempDelay (4);_nop_();return(u);/*Function:读18B20 多字节读*/void read_bytes (uchar j)uchar i;for(i=0;i4)&0x0f;/ 舍去小数点if(temp_buff0&0x08)=0x08)/ 四舍五入temp1 += 1;temp1 = (temp_buff14)&0x70)|temp1;Temperature = temp1;TempDelay(25);/*Function:读18B20ID*/void ReadID (void)/读取器件 idInit18b20();WriteByte(0x33); /read romread_bytes(4);/*Function:18B20 测温处理*/void TemperatuerResult(void)Init18b20 ();WriteByte(0xcc); /skip romWriteByte(0x44); /温度转换指令delay_ms(50);Init18b20 ();WriteByte(0xcc); /skip ro

温馨提示

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

评论

0/150

提交评论