收藏 分销(赏)

MCS-51系列单片机课程设计报告-论文.doc

上传人:二*** 文档编号:4570774 上传时间:2024-09-30 格式:DOC 页数:25 大小:306KB
下载 相关 举报
MCS-51系列单片机课程设计报告-论文.doc_第1页
第1页 / 共25页
亲,该文档总共25页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

1、- -目录第1章概述11.1 MCS-51系列单片机概述11.2 MCS-51系列单片机的开展11.3 MCS-51系列单片机的应用2第2章 MCS-51系列单片机的构造32.1 MCS-51系列单片机硬件构造32.2 MCS-51系列单片机的定时器功能4第3章开发环境简介53.1 软件开发环境KEIL简介53.2 硬件开发环境LY-51S开发板简介5第4章系统硬件设计64.1数码管显示的秒表原理64.2 数码管显示原理图设计64.3键盘的工作原理图设计74.4单片机的连接7第5章系统软件设计95.1 系统流程图95.2 按键模块程序设计105.3 显示模块程序设计125.4 计时模块程序设计

2、13结论15参考文献16第1章概述1.1 MCS-51系列单片机概述单片微型计算机(Single-Chip Microputer),简称单片计算机,就是将CPU,RAM,ROM,定时/计时器和多种接口集成在一块芯片上的微型计算机。其主要特点如下:(1)片存储容量较小,原因是受集成度的限制,ROM一般小于8KB,RAM一般小于256B,但可以在外部扩展。通常ROM,RAM可分别扩展至64KB。(2)可靠性高,因为芯片是按工业测控环境要求设计的,故抗干扰的能力优于PC机。(3)系统软件(如:程序指令,常数,表格)固化在ROM中,不易受病毒破坏。许多信号的通道均在一个芯片,故运作时系统稳定可靠。(4

3、)便于扩展:片具有计算机正常运行所必需的部件,片外有很多供扩展用的(总线,并行和串行的输入/输出)管脚,很容易组成一定规模的计算机应用系统。(5)控制功能强:具有丰富的控制指令,如条件分支转移指令,I/O口的逻辑操作指令,位处理指令。(6)实用性好:体积小,功耗低,价格廉价,易于产品化。1.2 MCS-51系列单片机的开展MCS-51系列单片机的开展经过了三个阶段。第1阶段(1971年1978年),以MCS-48系列为代表,称4位单片机。在片:CPU有4位或8位;ROM有1KB或2KB;RAM有64B或128B;只有并行接口,无串行接口;只有1个8位的定时/计时器;中断源只有2个。在片外:寻址

4、围只有4KB;芯片引脚有40个。第2阶段(1978年1983年),以MCS-51系列为代表,称8位单片机。在片:CPU有8位;ROM有4KB或8KB;RAM有128B或256B;有串/并行接口;有2个或3个16位的定时/计时器;中断源有5至7个。在片外:寻址围有64KB;芯片引脚有40个。第3阶段(1983年以后),以MCS-96系列为代表,称16位单片机。在片:CPU有16位;ROM有8KB;RAM有232B;有串/并行接口;有4个16位的定时/计时器;中断源有8个;增加了D/A和A/D转换电路。在片外:寻址围有64KB;芯片引脚有48个或68个。1.3 MCS-51系列单片机的应用单片机主

5、要有单机应用和多机应用。单机应用即一个系统使用一块单片机也成为普通应用模式。如家用电器,均用单片机做自动控制。或用于智能设备,网络与通信的智能接口,在大型计算机控制的网络或通信电路与外围设备的接口电路中,用单片机来控制或管理,可大大提高系统的运行速度和接口的管理水平。对工业设备(如机床,汽车,高档中西餐厨具,锅炉,供水系统,生产自动化,自动报警系统,卫星信号接收等)进展智能测控,大降低了劳动强度和生产本钱,提高了产品质量的稳定性。多机应用即一个系统使用多块单片机也称高科技应用模式。一般用于功能弥散系统,并行多机处理系统或局域网络系统。第2章MCS-51系列单片机的构造2.1 MCS-51系列单

6、片机硬件构造8051单片机包含中央处理器、程序存储器(ROM)、数据存储器(RAM)、定时/计数器、并行接口、串行接口和中断系统等几大单元及数据总线、地址总线和控制总线等三大总线,现在我们分别加以说明:1.中央处理器中央处理器(CPU)是整个单片机的核心部件,是8位数据宽度的处理器,能处理8位二进制数据或代码,CPU负责控制、指挥和调度整个单元系统协调的工作,完成运算和控制输入输出作用等操作。2.数据存储器(RAM)8051部有128个8位用户数据存储单元和128个专用存放器单元,它们是统一编址的,专用存放器只能用于存放控制指令数据,用户只能,而不能用于存放用户数据,所以,用户能使用的的RAM

7、只有128个,可存放读写的数据,运算的中间结果或用户定义的字型表。3.程序存储器(ROM)8051共有4096个8位掩膜ROM,用于存放用户程序,原始数据或表格。4.定时/计数器(ROM)8051有两个16位的可编程定时/计数器,以实现定时或计数产生中断用于控制程序转向。5.并行输入输出(I/O)口8051共有4组8位I/O口(P0、 P1、P2或P3),用于对外部数据的传输。6.全双工串行口8051置一个全双工串行通信口,用于和其它设备间的串行数据传送,该串行口既可以用作异步通信收发器,也可以当同步移位器使用。7.时钟电路8051置最高频率达12MHz的时钟电路,用于产生整个单片机运行的脉冲

8、时序,但8051单片机需外置振荡电容。8.中断系统8051具备较完善的中断作用,有两个外中断、两个定时/计数器中断和一个串行中断,可满足不同的控制要求,并具有2级的优先级别选择。9.外部总线(1)地址总线(AB) 宽度为16位,因此,对外接存储器可直接寻址围64KB。16位地址的高8位P2口直接输出,P0口输出低8位地址,在允许地址锁存信号ALE作用下,将低8位地址锁存到外部地址锁存器中,从而让P0口承受数据做准备。P0是地址/数据共用的端口。(2)数据总线DB宽度为8位,有P0口提供。(3)控制总线CB由上述4条控制线和P3口的第二功能状态组成。2.2 MCS-51系列单片机的定时器功能定时

9、器 /计数器实际是加1计数器,当它对外部事件计数时,由于频率不固定,此时称之为计数器,当它对部固定频率的机器周期进展计数时称之为定时器。T0或T1在做定时器使用时,输入的时钟脉冲由晶振的输出经12分频后得到,T0或T1在做计数器使用时,输入的时钟脉冲由外部的输入端P3.4(T0)和P3.5(T1)提供。当加法计数器的初值被设置后,用指令改变特殊功能存放器TMOD和TCON的容,就会在下一条指令的第一个机器周期的S1P1时刻按照设定方式自动进展工作。定时器 /计数器有四种工作模式,工作模式控制如表2-1所示: 定时器的方式存放器TMOD:GATEC/TM1M0GATEC/TM1M0TMODD7D

10、6D5D4D3D2D1D0T1方式控制T0方式控制表2-1 定时器工作方式表M1 M0方式说明0 0013位定时器/计数器0 1116位定时器/计数器1 02自动装入时间常数的8位定时器/计数器1 13对T0分为两个8位计数器,对T1置方式3时停顿工作第3章开发环境简介3.1 软件开发环境KEIL简介Keil C51是美国Keil Software公司出品的51系列兼容单片机C语言软件开发系统,与汇编相比,C语言在功能上、构造性、可读性、可维护性上有明显的优势,因而易学易用。Keil提供了包括C编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在的完整开发方案,通过一个集成开发环境uV

11、ision将这些局部组合在一起。运行Keil软件需要WIN98、NT、WIN2000、WINXP等操作系统。如果你使用C语言编程,那么Keil几乎就是你的不二之选,即使不使用C语言而仅用汇编语言编程,其方便易用的集成环境、强大的软件仿真调试工具也会令你事半功倍。3.2 硬件开发环境LY-51S开发板简介本开发板使用独立模块式构造,大局部模块都是完全独立的,仅有电源局部连接,信号接口局部默认悬空,需要用到该器件时,用杜邦线连接到对应的单片机端口,不使用时悬空即可。这种方式大大提高了自由度,这些模块完全独立,可以自由配置端口,连接其他类型单片机的最小系统板就可以组成对应的开发板。LED显示的秒表主

12、要用到以下模块:1、数码管模块:数码管其实是由发光二极管组成,有共阴极和共阳极之分,对于共阳极来说,一位数码管由8个二极管组成,他们的阳极接在一起接+5v电源,而各个阴极与某个端口,如p1的8个引脚相连,当某个引脚输出低电平的时候数码管对应的二极管亮。2、键盘模块:键盘是由假设干个按键组成的开关矩阵,由SL0-SL3输出键盘和显示器的扫描线,回复线RL0-RL7作为键盘的列线以搜索,闭合键将键盘数据送入FIFO存储器,有键闭合时数据进入FIFO存储器,使IRQ置位向CPU申请中断。第4章系统硬件设计4.1数码管显示的秒表原理此次设计的数码管显示的秒表,主要是运用单片机的键盘模块对时间进展控制,

13、并将结果显示在数码管上。其系统框图如下:键盘AT98C51单片机数码管图4-1 系统框图4.2 数码管显示原理图设计数码管其实是由发光二极管组成,有共阴极和共阳极之分,对于共阳极来说,一位数码管由8个二极管组成,他们的阳极接在一起接+5v电源,而各个阴极与某个端口,如p1的8个引脚相连,当某个引脚输出低电平的时候数码管对应的二极管亮。锁存器就是把当前的状态锁存起来,使CPU 送出的数据在接口电路的输出端保持一段时间锁存后状态不再发生变化,直到解除锁定。 74hc573 就是锁存器,锁存引脚高电平表示直通状态,为低电平表示锁存状态,可以通过控制锁存器,控制74hc573 后端数据。段码控制数码管

14、显示的容,位码控制选通哪个数码管。如送位码0x7e,表示选通第一位数码管;送段码0x3f,只有g和dp位不亮,表示显示数字0。数码管可以静态显示数据,也可以动态扫描。由于任一时刻只能显示一种数字,当需要多为数码管显示多位数据的时候就需要动态扫描。动态扫描时间上执行的是动态显示,由于动态速度很快,人眼分辨不出,所以看上去是静态显示,这种效果正是我们所需要的。图4-2 数码管显示原理图4.3键盘的工作原理图设计键盘是由假设干个按键组成的开关矩阵,由SL0-SL3输出键盘和显示器的扫描线,回复线RL0-RL7作为键盘的列线以搜索,闭合键将键盘数据送入FIFO存储器,有键闭合时数据进入FIFO存储器,

15、使IRQ置位向CPU申请中断。显示缓冲区RAM存放显示数据的段码,数据轮流从显示存放器输出,在SL0-SL3的配合下,实现动态显示。键盘使用时,必须消除键抖动:检测到按键按下后,执行延时10ms子程序后再确认按键是否确实按下,消除抖动影响。图4-3 键盘工作原理图4.4单片机的连接 这节不要,在前面两节里分别说明此次设计的数码管显示的秒表,主要是运用单片机的定时器功能进展时间的控制,并将结果显示在数码管上。单片机的连接如下:(1)数码管D0D7连接到P00P07口;(2)段码、位码连接到P22、P23口;(3)独立按键K5K8连接到P10P13口。第5章系统软件设计5.1 系统流程图本设计使用

16、硬件描述语言Keil C51进展设计开发,采用Vision2的综合软件设计程序。主程序的主要功能是实现秒表的功能,并在数码管上显示。系统流程图如下:图5-1 系统流程图开场系统初始化NY是否有键按下键值判断数码管显示时间Key1Key2Key3Key4暂停开场计时存储时间读取时间清零重新计时5.2按键模块程序设计1、暂停/开场按键:实现启动秒表和暂停秒表的功能,代码如下:if(key1=0)/暂停和开场 delay(10); if(key1=0) key_num+;if(key_num = 2)key_num=0; while(!key1);TR0=key_num;if(display_fla

17、g = 0) display(min_1,min_2,second_1,second_2,msecond_1,msecond_2);/显示2、存储按键:实现存储多个时间记录的功能,代码如下:if(key2=0)/存储delay(10);if(key2=0)amsecond_1num_i = msecond_1;amsecond_2num_i= msecond_2;amin_1num_i = min_1;amin_2num_i =min_2;asecond_1num_i = second_1;asecond_2num_i = second_2;if(num_i=10)num_i=0;num_i+

18、;while(!key2);copy_num_i = num_i;3、读取按键:实现读取所存储的时间记录的功能,代码如下:if(key3=0)/读取delay(10);if(key3=0)display_flag=1;if(num_i = 0)num_i = copy_num_i;num_i-;while(!key3);if(display_flag = 1)display(amin_1num_i,amin_2num_i,asecond_1num_i,asecond_2num_i,amsecond_1num_i,amsecond_2num_i);4、清零按键实现秒表清零的功能,代码如下:if(

19、key4=0)/清零TR0=1;number=0;min_1=0;min_2=0;second_1=0;second_2=0;msecond_1=0;msecond_2=0;num_m=0;num_s=0;display_flag = 0;5.3 显示模块程序设计显示函数代码如下:void display(uint min_1,uint min_2,uint second_1,uint second_2,uint msecond_1,uint msecond_2)wela=1;P0=0xff;wela=0;dula=1;P0=duanmamin_1;dula=0;P0=0xff;wela=1;

20、P0=0xfe;wela=0;delay(2);/分的十位wela=1;P0=0xff;wela=0;dula=1;P0=duanmamin_2;dula=0;P0=0xff;wela=1;P0=0xfd;wela=0;delay(2); /分的个位wela=1;P0=0xff;wela=0;dula=1;P0=0x40;dula=0;P0=0xff;wela=1;P0=0xfb;wela=0;delay(2); /“-wela=1;P0=0xff;wela=0;dula=1;P0=duanmasecond_1;dula=0;P0=0xff;wela=1;P0=0xf7;wela=0;dela

21、y(2);/秒的十位wela=1;P0=0xff;wela=0;dula=1;P0=duanmasecond_2;dula=0;P0=0xff;wela=1;P0=0xef;wela=0;delay(2); /秒的个位wela=1;P0=0xff;wela=0;dula=1;P0=0x40;dula=0;P0=0xff;wela=1;P0=0xdf;wela=0;delay(2); /“- wela=1;P0=0xff;wela=0;dula=1;P0=duanmamsecond_1;dula=0;P0=0xff;wela=1;P0=0xbf;wela=0;delay(2); /毫秒的十位we

22、la=1;P0=0xff;wela=0;dula=1;P0=duanmamsecond_2;dula=0;P0=0xff;wela=1;P0=0x7f;wela=0;delay(2); /毫秒的个位5.4 计时模块程序设计定义及初始化定时器代码如下:void init()TMOD=0x01;TH0=(65536-10000)/256;TL0=(65536-10000)%256;EA=1;ET0=1;TR0=1;/初始化定时器void timer0() interrupt 1TH0=(65536-10000)/256;TL0=(65536-10000)%256;aa+;if(aa=1)aa=0;

23、number+;/毫秒数if(number=100)number=0;num_s = num_s + 1;/秒数second_2 = num_s%10;second_1 = num_s/10;if(num_s = 59)num_s = 0;num_m = num_m + 1;/分数min_2 = num_m % 10;min_1 = num_m / 10;if(num_m = 60)num_m = 0; msecond_2 = number%10; msecond_1 = number/10; 结论通过本次单片机的课程设计,我不仅复习了以前学过的与单片机有关的知识,在遇到问题的过程过咨询教师和

24、上网搜索解决了问题,同时也学习到了新的更深入的知识。 在这次设计中也遇到了很多麻烦,例如如何存取多个时间记录,不过经过反复的检查和排除,最终实现了这些功能。通过这次对秒表的设计,让我了解了秒表的设计理念和原理,而要成功的设计出成果,那么需要扎实的知识根底,熟练地掌握书本上的知识并加以运用。通过这次课程设计,让我对单片机有了更深层次的理解,也对单片机产生了更浓厚的兴趣,在以后的学习工作中,我也会运用单片机来解决一些问题。参考文献1 蔡美琴等.MCS-51系列单片机系统及其应用.高等教育,2004.62 毅刚等.新编MCS-51单片机应用设计.工业大学,2003.73 科技编著.8051系列单片机C程序设计完全手册.人民邮电,2006.44何立民编著.MCS-51系列单片机应用系统设计: 系统配置与接口技术.航空航天大学,1990 5唐俊翟等.单片机原理与应用.冶金工业,2003.96齐志才等.MCS-51 系列单片机原理及接口技术.,2005.6- word.zl

展开阅读全文
相似文档                                   自信AI助手自信AI助手
猜你喜欢                                   自信AI导航自信AI导航
搜索标签

当前位置:首页 > 法律文献 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服