单片机原理及系统课程设计_第1页
单片机原理及系统课程设计_第2页
单片机原理及系统课程设计_第3页
单片机原理及系统课程设计_第4页
单片机原理及系统课程设计_第5页
已阅读5页,还剩22页未读 继续免费阅读

下载本文档

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

文档简介

1、 新能源与动力工程学院课程设计报告单片机原理及系统课程设计 专业 电力工程与管理 班级 姓名 学号 指导教师 年 月 课程设计任务书课程名称: 单片机原理及系统课程设计 指导教师(签名): 班级: 姓名: 学号: 一、课程设计题目 0099计数器二、课程设计使用的原始资料(数据)及设计技术要求:1.教材2.课程设计说明书二、课程设计的目的通过课程设计,主要达到以下目的:1使学生增进对单片机的感性认识,加深对单片机理论方面的理解;2使学生掌握单片机的内部功能模块的应用,如定时器/计数器、中断、I/O口等;3使学生了解和掌握单片机应用系统的软硬件设计过程、方法及实现,为以后设计和实现单片机应用系统

2、打下良好基础。3、 课程设计的主要内容和要求(包括原始数据、技术参数、设计要求、工作量要求等) 利用单片机来制作一个手动计数器,在单片机的管脚接一个轻触开关,作为手动计数的按钮,单片机对正确识别的按键进行计数,计数满时,又从零开始计数。 四、工作进度安排时间设计内容要求星期一熟悉题目、查阅资料,拟定设计方案按要求制定出切实可行的方案星期二设计硬件电路及软件程序完成硬件设计及程序设计星期三四仿真调试及产品焊接先进行计算机仿真再完成实际焊接星期五六产品整理调试并完成设计报告实现设计要求,报告按要求装订成册星期日答辩展示产品,并简明扼要自述五分钟5、 主要参考文献 王思明等.2012.单片机原理及应

3、用系统设计.北京:科学出版社审核批准意见系主任(签字) 年月日指导教师评语及成绩评定表指导教师评语成绩设计过程(40)设计报告(50)小组答辩(10)总成绩(100)指导教师签字: 年 月 日引言计数是一种最简单的基本的运算,计数器就是实现这种运算的逻辑电路,计数器在数字系统中主要是对脉冲的个数进行计数,以实现测量,计数和控制的功能,同时兼有分频功能,计数器由基本的计数单元和一些控制门所组成,计数单元则由一系列具有存储信息功能的各类触发器构成。计数器在数字系统中应用广泛,如在电子计算机的控制中对指令的地址进行计数,以便顺序取出下一条指令,在运算中做乘法,除法运算时记下加法,减法的计数。计数器可

4、以用来显示产品的工作状态,计数器不仅能用于对时钟脉冲计数,还可以用于分频,定时,产生节拍脉冲和脉冲序列以及进行数字运算等,但是并无法显示计算结果,一般是通过外接LED和LCD才能显示,随着科学技术的不断提高,计数器的计数范围也越来越大。计数器的产生意义重大,在人类文明的进步过程中是不可缺少的。本次课程设计主要是通过自行设计硬件电路、软件程序、仿真调试、元件焊接、程序烧录,使学生增进对单片机的感性认识,加深对单片机理论方面的理解;使学生掌握单片机的内部功能模块的应用,如定时器/计数器、中断、I/O口等;使学生了解和掌握单片机应用系统的软硬件设计过程、方法及实现,为以后设计和实现单片机应用系统打下

5、良好基础。 目录 引言绪论- 1 -1 课程设计的目的和要求- 3 -1.1设计目的- 3 -1.2 课程设计题目- 3 -1.3 设计任务及要求- 3 -1.4 小组成员任务分配- 4 -2系统硬件设计- 4 -2.1硬件设计思路- 4 -2.2元器件清单- 4 -2.3 系统框图- 5 -2.4 电路原理图- 6 -3 硬件说明- 6 -3.1 主控芯片STC89C52- 6 -3.1.1 STC89C52单片机的主要特性- 6 -3.1.2 STC89C52RC 引脚功能说明- 8 -3.1.3 输入/输出(I/O)引脚P0、P1、P2、P3(共32根)- 8 -3.2 晶体振荡器- 1

6、0 -3.3排阻- 11 -4.系统软件设计- 12 -4.1 软件设计思路- 12 -4.2程序流程图设计- 12 -4.3汇编语言源程序- 14 -4.4 C语言源程序- 15 -5 结论- 19 -6个人体会- 20 -7参考文献- 21 - 绪论 本设计是根据我们所学习的单片机原理及应用系统设计课程,按照课程要求进行的课程检验。单片机技术是一种不可或缺的技术,尤其是对于我们电力工程与管理专业来说它是我们必须要掌握的技能之一,是我们未来工作和生活的根本。现在的社会是一个信息科技高速发展的社会,也是一个电子技术和微机计算机迅速发展的时代,单片机的档次和水平在不断地提高,其应用领域也越来越广

7、,成为现代电子系统中最重要的智能化核心部分。 随着计数器技术的不断发展与进步,计数器的种类越来越多,应用范围越来越广,随之而来的竞争也越来越激烈。过硬的技术也成为众多生产厂商竞争的焦点之一。厂商为了在竞争中处于不败之地,从而不断地改进技术,增加产品的种类。现计数器的种类已增加到电磁计数器、电子计数器、机械计数器(拉动机械计数器、转动机械计数器、按动机械计数器、测长机械计数器、液晶计数器等。 目前单片机渗透到我们生活的各个领域,几乎很难找到哪个领域没有单片机的踪迹。导弹的导航装置,飞机上各种仪表的控制,计算机的网络通讯与数据传输,工业自动化过程的实时控制和数据处理,广泛使用的各种智能IC卡,民用

8、豪华轿车的安全保障系统,录像机、摄像机、全自动洗衣机的控制,以及程控玩具、电子宠物等等,这些都离不开单片机。更不用说自动控制领域的机器人、智能仪表、医疗器械以及各种智能机械了。单片机广泛应用于仪器仪表、家用电器、医用设备、航空航天、专用设备的智能化管理及过程控制等领域,大致可分如下几个范畴:(1)在智能仪器仪表上的应用 ,例如精密的测量设备;(2)在工业控制中的应用 用单片机可以构成形式多样的控制系统、数据采集系统。例如工厂流水线的智能化管理,电梯智能化控制、各种报警系统,与计算机联网构成二级控制系统等;(3)在家用电器中的应用可从手机,电话机、小型程控交换机、楼宇自动通信呼叫系统、列车无线通

9、信、再到日常工作中随处可见的移动电话,集群移动通信,无线电对讲机等。 (4)单片机在医用设备领域中的应用 例如医用呼吸机,各种分析仪,监护仪,超声诊断设备及病床呼叫系统等等。(5)在各种大型电器中的模块化应用 如音乐集成单片机,看似简单的功能,微缩在纯电子芯片中(有别于磁带机的原理),就需要复杂的类似于计算机的原理。此外,单片机在工商,金融,科研、教育,国防航空航天等领域都有着十分广泛的用途。 1 课程设计的目的和要求1.1设计目的 通过课程设计,主要达到以下目的:(1)使学生增进对单片机的感性认识,加深对单片机理论方面的理解;(2)使学生掌握单片机的内部功能模块的应用,如定时器/计数器、中断

10、、I/O口等;(3)使学生了解和掌握单片机应用系统的软硬件设计过程、方法及实现,为以后设计和实现单片机应用系统打下良好基础。1.2 课程设计题目00-99加计数器:利用单片机来制作一个手动计数器,在单片机的管脚接一个轻触开关,作为手动计数的按钮,单片机对正确识别的按键进行计数,计数满时,又从零开始计数。1.3 设计任务及要求(1)本次课程设计的原始资料(数据)以教材为主,进行单片机的最小系统设计,单片机的最小系统是由电源、复位、晶振组成。 (2)利用单片机来制作一个手动计数器,在单片机的管脚接一个轻触开关,作为手动计数的按钮,单片机对正确识别的按键进行计数,计数满时,又从零开始计数。1.4 小

11、组成员任务分配 表1 小组成员任务分配情况一览表 成员 完成任务 张小虎统一综合器材说明书,报告定稿 黄巨龙报告拟定(电路图分析) 谢晨芳材料采购(程序分析) 闫元元焊接电路 吴天昊报告修正(修正错误,文献查找)2系统硬件设计2.1硬件设计思路 00-99加计数器硬件系统主要由STC89C52单片机,晶振,电容,数码管,电源等元件组成,利用单片机的P1.0口、P1.1口、P1.2口作控制信号输入端,来控制计数器的开始、暂停以及清零,从而来控制数码管的显示,通过单片中烧入程序,然后利用 P3.7口作为输入端,通过点动控制实现开关量的控制和计数,然后再通过数码显示器显示出来。通过调试仿真从而实现0

12、0-99加计数。2.2元器件清单 元件清单,见下表(表2): 表2 元件清单序号元件名称型号(规格)数量用途1单片机STC89C521控制核心2晶振12MHZ1晶振电路330P瓷片电容30PF2晶振电路4电解电容10UF1复位电路5电阻10K1复位电路6两位一体数码管F5261BH1显示电路7三极管SS85502信号放大8按键Button3发出控制信号9排阻A103J1上位电阻10开关ON/OFF1控制电路11电源座+5V1提供电源单片机2.3 系统框图数码管电子电路开关 图1 计数器系统框图2.4 电路原理图 电路原理图如图3所示:图3 电路原理图3 硬件说明3.1 主控芯片STC89C52

13、3.1.1 STC89C52单片机的主要特性 STC89C52是一种带8K字节闪烁可编程可擦除只读存储器(FPEROMFalsh Programmable and Erasable Read Only Memory)的低电压,高性能CMOS8位微处理器,俗称单片机。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,STC的STC89C52是一种高效微控制器,为很多嵌入式控制系统提供了一种灵活性高且价廉的方案,STC89C52芯片引脚图如图4所示。 图4 STC89C52芯片引脚图主要特性:&#

14、183;与MCS-51 兼容 ·8K字节可编程闪烁存储器 ·寿命:1000写/擦循环·数据保留时间:10年·全静态工作:0Hz-24Hz·三级程序存储器锁定·128*8位内部RAM·32可编程I/O线·两个16位定时器/计数器·6个中断源 ·可编程串行通道·低功耗的闲置和掉电模式·片内振荡器和时钟电路 3.1.2 STC89C52RC 引脚功能说明(1)主电源引脚VCC和VSS STC89C52芯片引脚图VCC(40脚)接+5V电压;VSS(20脚)接地。 (2)外接晶体引脚

15、XTAL1和XTAL2 XTAL1(19脚)接外部晶体的一个引脚。在单片机内部,它是一个反相放大器的输入端,这个放大器构成了片内振荡器。 XTAL2(18脚)接外晶体的另一端。在单片机内部,接至上述振荡器的反相放大器的输出端(3)复位引脚RST RST(9脚)当振荡器运行时,在此脚上出现两个机器周期的高电平将使单片机复位。推荐在此引脚与VSS引脚之间连接一个约10k的下拉电阻,与VSS引脚之间连接一个约10F的电容,以保证可靠地复位。 3.1.3 输入/输出(I/O)引脚P0、P1、P2、P3(共32根) (1)P0口(39脚至32脚):是双向8位三态I/O口,在外接存储器时,与地址总线的低8

16、位及数据总线复用,能以吸收电流的方式驱动8个LS型的TTL负载。我们将P0.1P0.7口共8个管脚共接一个排阻A103J,作为并行口的上拉电阻,在访问期间,即高电平时,激活内部的上拉电阻。(2)P1口(1脚至8脚):是准双向8位I/O口。由于这种接口输出没有高阻状态,输入也不能锁存,故不是真正的双向I/O口。P1口能驱动(吸收或输出电流)4个LS型的TTL负载。对8052、8032,P1.0引脚的第二功能为T2定时/计数器的外部输入,P1.1引脚的第二功能为T2EX捕捉、重装触发,即T2外部控制端。对EPROM编程和程序验证时,它接收低8位地址。我们在设计时,将P1.0、P1.1、P1.2管脚

17、各接一个按键开关,其中P1.0口开关发出计数器“开始”指令,P1.1口开关发出“暂停”指令,P1.2口发出“清零”指令。(3)P2口(21脚至28脚):是准双向8位I/O口。在访问外部存储器时,它可以作为扩展电路高8位地址总线送出高8位地址。在对EPROM编程和程序验证期间,它接收高8位地址。P2可以驱动(吸收或输出电流)4个LS型的TTL负载。我们将P2.6口、P2.7口各接一三极管SS8550,用于放大输出信号,将信号输出至数码管。(4)P3口(10脚至17脚):是准双向8位I/O口,在MSS-51中,这8个引脚还用于专门功能,是复用双功能口。P3能驱动(吸收或输出电流)4个LS型的TTL

18、负载。 作为第一功能使用时,就作为普通I/O口用,功能和操作方法与P1口相同。作为第二功能使用时,各引脚的定义如表所示。 值得强调的是,P3口的每一条引脚均可独立定义为第一功能的输入输出或第二功能。如表3所示.表3 P3口管脚备选功能P3.0RXD(串行输入口)P3.1TXD(串行输出口)P3.2/INT0(外部中断0)P3.3/INT1(外部中断1)P3.4T0(记时器0外部输入)P3.5T1(记时器1外部输入)P3.6/WR(外部数据存储器写选通)P3.7/RD(外部数据存储器读选通)3.2 晶体振荡器晶体振荡器,简称晶振,其作用在于产生原始的时钟频率,这个频率经过频率发生器的放大或缩小后

19、就成了电脑中各种不同的总线频率。石英晶体振荡器是一种高精度和高稳定度的振荡器,石英晶体振荡器也称石英晶体谐振器,它用来稳定频率和选择频率,是一种可以取代LC谐振回路的晶体谐振元件。石英晶体振荡器广泛地应用在电视机、影碟机、录像机、无线通讯设备、电子钟表、单片机、数字仪器仪表等电子设备中。为数据处理设备产生时钟信号和为特定系统提供基准信号。在单片机中为其提供时钟频率。石英晶体振荡器是利用石英晶体(二氧化硅的结晶体)的压电效应制成的一种谐振器件,它的基本构成大致是:从一块石英晶体上按一定方位角切下薄片(简称为晶片,它可以是正方形、矩形或圆形等),在它的两个对应面上涂敷银层作为电极,在每个电极上各焊

20、一根引线接到管脚上,再加上封装外壳就构成了石英晶体谐振器,简称为石英晶体或晶体、晶振。其产品一般用金属外壳封装,也有用玻璃壳、陶瓷或塑料封装的。只要在晶体振子板极上施加交变电压,就会使晶片产生机械变形振动,此现象即所谓逆压电效应。当外加电压频率等于晶体谐振器的固有频率时,就会发生压电谐振,从而导致机械变形的振幅突然增大。时钟信号用来提供单片机片内的各种微操作的时间基准,时钟信号通常用两种电路形式得到:内部振荡和外部振荡。MCS-51单片机内部有一个用于构成振荡器的高增益反向放大器,引脚XTAL1和XTAL2分别是此放大电器的输入端和输出端,由于采用内部方式时,电路简单,所得的时钟信号比较稳定,

21、实际使用中常采用这种方式,外接晶体振荡器(简称晶振)或陶瓷谐振器就构成了内部振荡方式,片内高增益反向放大器与作为反馈元件的片外石英晶体或陶瓷谐振器一起可构成一个自激振荡器并产生振荡时钟脉冲。外接晶体以及电容C1和C2构成并联谐振电路,它们起稳定振荡频率、快速起振的作用,其值为30pF左右,晶振频率选约12MHz 。3.3排阻所谓排阻就是若干个参数完全相同的电阻,它们的一个引脚都连到一起,作为公共引脚。其余引脚正常引出。所以如果一个排阻是由n个电阻构成的,那么它就有n+1只引脚,一般来说,最左边的那个是公共引脚。它在排阻上一般用一个色点标出来。排阻一般应用在数字电路上,比如:作为某个并行口的上拉

22、或者下拉电阻用。使用排阻比用若干只固定电阻更方便。 排阻有A型和B型的区别。A型排阻的引脚总是奇数的。它的左端有一个公共端(用白色的圆点表示),常见的排阻有4、7、8个电阻,所以引脚共有5或8或9个。 B型排阻的引脚总是偶数的。它没有公共端,常见的排阻有4个电阻,所以引脚共有8个。 排阻的阻值读法如下:“103”表示:10k,“510”表示:51。以此类推常用于显示数码管。在本次课程设计中,我们采用的是A型排阻,阻值为10K。4.系统软件设计4.1 软件设计思路实现00-99计数功能,子程序实现将高低电位转化为数码管的十进制数字,实现手动开关计数。通过手动给脉冲信号,实现计数,再加到99时,在

23、手动给脉冲时,回到初始状态,从而实现00到99计数。4.2程序流程图设计 程序流程图如下图(图5)所示:开始Count初始为0数码显示“00”显示Count计数器Count=100吗?Count=Count+1按键识别成功吗?NYN 图5 0-99计数器程序流程图4.3汇编语言源程序CountEQU 30H ;EQU 标号赋值伪指令 SP1 BIT P3.7 ORG 0 START:MOV Count,#00H NEXT:MOV A,Count MOV B,#10 DIV AB ; A除以B,商(存于)A余(下)BMOV DPTR,#TABLE MOVC A,A+DPTR MOV P0,A M

24、OV A,B MOVC A,A+DPTR MOV P2,A WT:JNB SP1,WT ;SP为0转移 /中断程序WAIT:JB SP1,WAIT ;SP为1转移LCALL DELY10MS ;调用显示子程序 JB SP1,WAIT INC Count ; Count加1MOV A,Count CJNE A,#100,NEXT ;累加器与立即数不等转移LJMP START ;返回初始值DELY10MS:MOV R6,#20 ;子程序D1:MOV R7,#248 DJNZ R7,$ DJNZ R6,D1 RET ;子程序返回TABLE:DB 3FH,06H,5BH,4FH,66H,6DH,7DH

25、,07H,7FH,6FH ;0-9/子程序END 4.4 C语言源程序#include<reg52.h>#define ui unsigned int#define uc unsigned charuc miao,n,f1,f2; /定义无符号字符型初始变量miao,n,f1,f2;Uc code tab=0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xbf; /数码管显示的段码表sbit yi=P27; /P2.7口显示yisbit er=P26; /P2.6口显示ersbit kaishi=P10; /P1.0口显示开始计

26、数sbit zanting=P11; /P1.1口显示暂停sbit qingling=P12; /P1.2口显示清零void delay(ui k) /延时函数ui i; /定义无符号整型变量i uc j; /定义无符号整型变量jfor(i=0;i<k;i+) for(j=0;j<110;j+); /for循环void xianshi() f1=miao/10; / f1显示十位数f2=miao%10; /f2表示个位数 yi=0;er=1;P0=tabf1; delay(5); yi=1; er=0;P0=tabf2; delay(5);void anjian() if(kais

27、hi=0) delay(20); if(kaishi=0) miao+; if(miao=100) miao=0; while(kaishi=0); else if(zanting=0) delay(20); if(zanting=0) miao-; if(miao=(-1) miao=0; while(zanting=0); else if(qingling=0) delay(20); if(qingling=0) miao=0; while(qingling=0); void main() miao=0;while(1) xianshi(); anjian(); 5 结论对于80C51单片机的编程,我们使用的是我们所学汇编语言,结合自己所学的及寻找大量资料,我们几个拟定了初步的程序,然后进行修改及用Keil软件进行调试, 然后进一步修改,最终在我们努力下,完成了程序。软件调试是通过对程序的编译、连接、执行来发现程序中存在的语法错误与逻辑错误并加以排除纠正的过程。先在keil中为

温馨提示

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

评论

0/150

提交评论