单片机课程设计报告模板-5_第1页
单片机课程设计报告模板-5_第2页
单片机课程设计报告模板-5_第3页
单片机课程设计报告模板-5_第4页
单片机课程设计报告模板-5_第5页
已阅读5页,还剩17页未读 继续免费阅读

下载本文档

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

文档简介

PAGEPAGE18目录目录 0第1章概述 12.1基本原理 32.2设计思路 32.3设计方案 3第3章硬件电路设计 53.1按键设计电路图 53.2显示电路设计图 5第4章软件设计 74.1主程序流程及说明 74.2中断服务子程序 94.3键盘扫描程序 10第5章系统调试及软件仿真 115.1程序调试 115.2硬件电路调试 13第6章总结 14第6章总结 14参考文献 16附录A 17系统原理图: 17附录B 18程序清单: 18概述随着科学技术特别是微型计算机技术的高速发展,单片微机技术也获得了飞速发展。目前,单片机已经在日常生活和控制领域等方面得到广泛的应用,它正为我国经济的快速发展发挥着举足轻重的作用。作为自动化专业的一名工科学生应该牢牢掌握这一重要技术。而课程设计这一环节是我们提高单片机应用能力的很好机会,也是我们学好这一课程的必经环节。通过课程设计可以进一步巩固我们前面所学理论知识,使我们对单片机理论知识有一个深刻的认识和全面的掌握。另外通过这一真正意义上的实践活动,我们可以从中发现自己不足之处并能够在自己的深思下和老师的指导下得到及时的解决。再次,它能使我们的应用能力和科技创新能力得到较大的提高。本课程设计是单片机系统在测速方面的简单应用。目前单片机技术已经在电机转速等为控制对象的控制系统中得到了广泛的应用,而在这一控制过程中必须通过单片机来测量转速。基于此本课程设计利用89C51单片机及外围电路来设计一个数字转速表。通过测量转速所对应的方波脉冲来测量转速,其转速可以通过键盘输入给定,同时其具体数值也可以在LED上显示出来。单片机作为嵌入式微控制器在工业测控系统,智能仪器和家用电气中得到广泛应用。虽然单片机的品种很多,但MCS-51系列单片机仍不失为单片机中的主流机型。本课程一MCS-51系列以及派生系列单片机芯片为主介绍单片机的原理与应用,与其特点是由浅入深,注重接口技术和应用。机电一体化是当今制造技术和产品发展的主要倾向,也是我国机电工业发展的必由之路。可以认为,它是用系统工程学的观点和方法,研究在机电系统和产品中如何将机械、计算机、信息处理和自动控制技术综合应用,以求机电系统和产品达到最佳的组合。机电一体化产品所需要的是嵌入式微机,而单片机具有体积小、集成度高、功能强等特点,适于嵌入式应用。智能仪器、家用电器、数控机床、工业控制等机电设备和产品中竟相使用单片机。

就目前而言,单片机的发展势头依然不减,各种型号和功能更强的单片机和超级接口芯片不断出现,进一步向高层次发展的重要标志就是构成多机系统和分布式网络。世界上单片机芯片的产量以每年27%的速度递增,到本世纪初已达30亿片,而我国的年需求量也超过了亿片的数量,这表明单片机有着广阔的应用前景。本课程设计主要针对目前我国早期应用比较广泛的“MCS-51”单片机进行系统的讲解和分析。为使用和开发各类机电一体化设备和仪表建立基础。

第2章工作原理和设计思路及方案2.1基本原理本次课程设计用STC89C52作为主控器组成一个转速表。电机转速采用光电脉冲传感器来测量,通过设置定时器/计数器T0为1S,设置定时器/计数器T1为计数器对光电传感器传过来的脉冲进行计数,电动机测速采用测周法,即每旋转一周产生一个脉冲,则设在1s内测量的脉冲个数为n,故测到转速n就是脉冲频率,再乘以60就是电动机的转速,单位为r/min。在此期间定时1s,在1s内允许中断,每中断一次,软件计数器加1,1s后,关闭中断,则软件计数器即为1s内的脉冲数,通过计数一定时间内通过定时器的脉冲数通过软硬件结合工作即可测出电机的转速。2.2设计思路为了确定其设计方案,首先必须构思好初步的设计思路。根据设计要求和实验仿真条件,初步的设计思路可以总结如下:1)用信号发生器来产生频率为0-500Hz的方波脉冲信号。2)当前转速与电动机的状态显示用4段LED数码管。3)键盘采用独立式键盘,需要3个键。4)采样时间用定时/计数器0来实现。5)用定时/计数器1来统计采样时间内的脉冲数,进而计算转速。2.3设计方案根据设计要求和设计思路,可以确定该系统的设计方案,图1为该系统设计的硬件电路设计框图。硬件主要由四部分组成,即脉冲源、单片机、键盘、LED显示器。单片机采用STC89C52。要求测量的脉冲直接用另一个单片机产生提供。在单片机中,定时功能既可以由硬件(定时/记数器)实现,也可通过软件定时实现。硬件定时是利用单片机内定时器定时,启动以后定时器可与CPU并行工作,不占用CPU时间,CPU有较高的工作效率。采用硬件定时和软件定时并用的方式,即用T0溢出中断功能实现50ms定时,通过软件延时程序实现1s定时。定时器的TMOD用于设置定时器/计数器的工作方式0~3,并确定用于定时还是用于计数。TCON主要功能是为定时器在溢出时设定标志位,并控制定时器的运行或停止等。硬件电路设计如图2.1所示图2.1硬件电路设计

第3章硬件电路设计3.1按键设计电路图对于按键电路的设计可以有2种方式:一种方式是直接按键设计,也称独立按键,这种设计电路适用于按键较少的控制,具有按键电路简单,编程方便等优点;另一种方式是矩阵式键盘的设计,它适用于对控制按键较多的电路控制,占用较少的I/O接口,但是按键电路复杂,编程比较复杂。本课题总共需要按键,所以采用独立按键设计。设计图如3.1.1:由上到下的按键分别是复位、停止、启动图3.13.2显示电路设计图本课题所采用得是由LED(数码管)作为显示电路,用以显示由单片机所接收的脉冲转换来的BCD码,以及开始测速时的各种状态。硬件电路连接是单片机P0.0~P0.7接数码管的由A~G、DP8个各管脚,P2.0~P2.3接数码管的控制端W4、W3、W2、W1采用共阳极连接的方法连接图如图3.2.1图3.2.13.2脉冲产生电路设计图 在实际做试验是由另一块单片机产生脉冲,在本次设计中我让另一块单片机输入1Hz频率的脉冲,并把脉冲接到现实的单片机的P3.5口进行计数。

第4章软件设计4.1主程序流程及说明本次设计用T0做定时器定时时间为50ms、T1作计数器,都设置为工作方式一。如图4.1.1所示图4.1.14.2中断服务子程序图4.2.14.3键盘扫描程序数字转速表的键盘操作应具有3个功能,即:启动、停止、复位。本次采用的是直接连接的独立式按键,在键盘扫描过程中必须解决以下问题:1、是否有键按下;2、是哪一个键按下;3是不是有抖动;4、按键是不是松开。故在程序应该注意以上问题,不然会产生问题,不能正确的对按键进行识别。图4.3.1为键盘流程图:NNYNY是否有键闭合延时去抖是否有键闭合闭合键是否释放相对应操作图4.3.1按键流程图

第5章系统调试及软件仿真5.1程序调试试验所涉及的2个软件KeiluVsion2和proteus,以下是仿真步骤。程序调试部分:uVsion2先新建一个工程,选择芯片为AT89C52然后点击是,然后弹出是否加入标准启动文件,点击否,再新建一个文件,保存为“文件名.C”。然后点开工程窗口的Target右键单击出现弹出菜单,选择添加文件到工程,选到刚才新建的文件然后点击OK,输入程序,点击工程选择,选中Output中的CreatHexFile,然后编译,连接生成Hex文件,有错误修改后再编译链接。当编译结果中没出现错误时证明该程序已不存在语法错误。是否能完成课题所要求的功能则需要进行仿真。仿真部分:运行proteus的ISIS后进入仿真界面将所需元件选择好,根据原理图画出仿真图,待仿真图换好后双击AT89C52导入KeiluVsion2所产生的后缀名为.HEX文件,按开始键进行仿真。当输入脉冲为6HZ时输出为360rad/min。5.2硬件电路调试硬件调试的步骤如下:接通电源和数据线,通过软件将在KeiluVsion2中生成的HEX文件下载到单片机板子上,先对板子关电当显示请上电时按下单片机上的电源开关按钮上电下载程序到单片机中,通过按键和LED的显示进行调试。当程序下载完之后,按下电源开关,LED上显示初始状态,按下启动键显示接收数据的状态,按下停止键后显示当前所记录的数据,按下复位键则显示初始状态,关闭所有数码管,为全黑状态。

第6章总结实验表明,本系统的设计在功能上完全满足要求,说明设计是有效的。具体来说,键盘上的各键都有效果,且能实现其功能;显示器也完全能满足要求;转速的测量基本上无误差,之所以还存在很小的误差是因为在计算上计算误差。总的来说,本设计是合理的,但应当指出的是此系统还可以采用其它更好的方案,从而达到更好的效果。譬如在软件方面,键盘扫描程序和LED显示子程序等,但为了便于快速看懂程序,本程序没有进行一些复杂的处理,而是注重彰显各个部分。另外,由于时间关系和能力的局限性,错误之处难免,还请老师体谅。下面是我的一些体会与建议。通过两周的单片机课程设计的实习,在老师的指导下和自己的努力下,我成功地完成了数字转速表的设计,真正地感觉到在这段时间里受益良多,这主要表现在:一是对之前所学的理论知识得到了很大的巩固和提高;二是对单片机课程设计有了一个全面的认识,对单片机有关的设备仪器和软件的使用有了很深的认识;三是对硬件设计,特别是软件设计有了较强的掌握;四是进一步培养了自己的思维,提高了动手能力和创新能力。尽管在此之前,我已经做过不少专业课的课程设计,但这一次与前面的设计有很大的不同,其中最大的不同是,系统设计好后需在实验室调试,调试的成功与否具有直接否决权,而这一过程恰恰是我们最不敢面对的,也是最具有难度的。这一过程能够考验我们设计的系统,同时也能真正地考察我们对这门课程的应用能力。因此,突出这一环节的重要性,是完全正确的。在实验室调试过程中,我不断发现问题和解决问题。重点解决了键盘输入、调用显示和设计程序计算等问题。总之,本次设计的收获是以往任何课程设计无法相比的。因为这次课程设计是真正意义上的课程设计,在形式上更具有实际意义。另外,这次学校为我们提供了很好的设计条件,而且老师也非常负责。在这里向老师表示真心的感谢。

参考文献1、周向红、刘国繁.51系列单片机应用与实践教程. 北京航空航天大学出版社, 20082、王迎旭.单片机原理及应用.机械工业出版社,20103、张毅刚.新编MCS-51单片机应用设计.哈尔滨工业大学出版社, 20034、何立民.编单片机应用系统设计.北航出版社,2000

附录A系统原理图:附录B程序清单:#include<reg52.h> //头文件#defineucharunsignedchar //宏定义#defineuintunsignedint //宏定义uchar codetab[]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90,0x88,0x83,0xC6,0xA1,0x86,0x8E};//共阳数码管代码0-FuintCount=0; //定时器中断的次数uintKey_State,T_State; //定义键的状态和定时器的状态intsecond=0; //定时器1在1S内计数的次数sbitStop=P3^0; //停止 sbitReset=P3^1; //复位sbitkey=P3^2; //启动voiddelay(uintms) //延时子程序{uinti;while(ms--)for(i=0;i<120;i++);}voidDisplay() //显示子程序{P2=0xFE; //显示个位P0=Tab[second%10]; delay(5); P2=0xFD; //显示十位 P0=Tab[second%100/10]; delay(5); P2=0xFB; //显示百位P0=Tab[second%1000/100]; delay(5); P2=0xF7; //显示千位P0=Tab[second/1000]; delay(5);}voidScan_Key() //键盘扫描子程序{ if(key==0) //启动功能键被按下 { delay(10); //去抖 if(key==0) //启动键被按下 { if(Key_State==0|Key_State==3)//假如键状态为0或3 { TR0=1; //开启定时器/计数器0 TR1=1; //开启定时器/计数器1 Key_State=1; //把键状态设为1 } while(!key); //等待启动键释放 } } if(Stop==0) //复位键被按下 { delay(10); //延时去抖 if(Stop==0) //停止键被按下 { if(Key_State!=2) //键状态不为2 { Key_State=2; //状态设为2 TR0=0; //关闭定时器/计数器0 TR1=0; //关闭定时器/计数器1 } while(!Stop); //等待复位键释放 } } if(Reset==0) //停止键被按下 { delay(10); //延时去抖 if(Reset==0) //停止键确实被按下 { if(Key_State!=3) //键状态为不3 { Key_State=3; //键状态设为3 TR0=0; //关闭定时器/计数器0 TR1=0; //关闭定时器/计数器1 } while(!Reset); //等待停止键释放 } } }voidmain() //主函数{TMOD=0x51; //定时器1和0都工作在方式1TH0=(65536-50000)/256; //定时器0装入初值TL0=(65536-50000)%256;TH1=0; //定时器1装入初值TL1=0;EA=1; //开放总中断ET0=1; //开放定时器/计数器0中断ET1=1; //开放定时器/计数器1中断TR0=0; //关闭定时器/计数器0TR1=0; //关

温馨提示

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

评论

0/150

提交评论