MCS-51系列单片机课程设计报告-论文.doc
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- MCS 51 系列 单片机 课程设计 报告 论文
- 资源描述:
-
- - 目录 第1章概述1 1.1 MCS-51系列单片机概述1 1.2 MCS-51系列单片机的开展1 1.3 MCS-51系列单片机的应用2 第2章 MCS-51系列单片机的构造3 2.1 MCS-51系列单片机硬件构造3 2.2 MCS-51系列单片机的定时器功能4 第3章开发环境简介5 3.1 软件开发环境KEIL简介5 3.2 硬件开发环境LY-51S开发板简介5 第4章系统硬件设计6 4.1数码管显示的秒表原理6 4.2 数码管显示原理图设计6 4.3键盘的工作原理图设计7 4.4单片机的连接7 第5章系统软件设计9 5.1 系统流程图9 5.2 按键模块程序设计10 5.3 显示模块程序设计12 5.4 计时模块程序设计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)便于扩展:片具有计算机正常运行所必需的部件,片外有很多供扩展用的(总线,并行和串行的输入/输出)管脚,很容易组成一定规模的计算机应用系统。(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个。在片外:寻址围只有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系列单片机的应用 单片机主要有单机应用和多机应用。 单机应用即一个系统使用一块单片机也成为普通应用模式。如家用电器,均用单片机做自动控制。或用于智能设备,网络与通信的智能接口,在大型计算机控制的网络或通信电路与外围设备的接口电路中,用单片机来控制或管理,可大大提高系统的运行速度和接口的管理水平。对工业设备(如机床,汽车,高档中西餐厨具,锅炉,供水系统,生产自动化,自动报警系统,卫星信号接收等)进展智能测控,大降低了劳动强度和生产本钱,提高了产品质量的稳定性。 多机应用即一个系统使用多块单片机也称高科技应用模式。一般用于功能弥散系统,并行多机处理系统或局域网络系统。 第2章MCS-51系列单片机的构造 2.1 MCS-51系列单片机硬件构造 8051单片机包含中央处理器、程序存储器(ROM)、数据存储器(RAM)、定时/计数器、并行接口、串行接口和中断系统等几大单元及数据总线、地址总线和控制总线等三大总线,现在我们分别加以说明: 1.中央处理器 中央处理器(CPU)是整个单片机的核心部件,是8位数据宽度的处理器,能处理8位二进制数据或代码,CPU负责控制、指挥和调度整个单元系统协调的工作,完成运算和控制输入输出作用等操作。 2.数据存储器(RAM) 8051部有128个8位用户数据存储单元和128个专用存放器单元,它们是统一编址的,专用存放器只能用于存放控制指令数据,用户只能,而不能用于存放用户数据,所以,用户能使用的的RAM只有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的时钟电路,用于产生整个单片机运行的脉冲时序,但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系列单片机的定时器功能 定时器 /计数器实际是加1计数器,当它对外部事件计数时,由于频率不固定,此时称之为计数器,当它对部固定频率的机器周期进展计数时称之为定时器。T0或T1在做定时器使用时,输入的时钟脉冲由晶振的输出经12分频后得到,T0或T1在做计数器使用时,输入的时钟脉冲由外部的输入端P3.4(T0)和P3.5(T1)提供。当加法计数器的初值被设置后,用指令改变特殊功能存放器TMOD和TCON的容,就会在下一条指令的第一个机器周期的S1P1时刻按照设定方式自动进展工作。定时器 /计数器有四种工作模式,工作模式控制如表2-1所示: 定时器的方式存放器TMOD: GATE C/T M1 M0 GATE C/T M1 M0 TMOD D7 D6 D5 D4 D3 D2 D1 D0 T1方式控制 T0方式控制 表2-1 定时器工作方式表 M1 M0 方式 说明 0 0 0 13位定时器/计数器 0 1 1 16位定时器/计数器 1 0 2 自动装入时间常数的8位定时器/计数器 1 1 3 对T0分为两个8位计数器,对T1置方式3时停顿工作 第3章开发环境简介 3.1 软件开发环境KEIL简介 Keil C51是美国Keil Software公司出品的51系列兼容单片机C语言软件开发系统,与汇编相比,C语言在功能上、构造性、可读性、可维护性上有明显的优势,因而易学易用。Keil提供了包括C编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在的完整开发方案,通过一个集成开发环境〔uVision〕将这些局部组合在一起。运行Keil软件需要WIN98、NT、WIN2000、WINXP等操作系统。如果你使用C语言编程,那么Keil几乎就是你的不二之选,即使不使用C语言而仅用汇编语言编程,其方便易用的集成环境、强大的软件仿真调试工具也会令你事半功倍。 3.2 硬件开发环境LY-51S开发板简介 本开发板使用独立模块式构造,大局部模块都是完全独立的,仅有电源局部连接,信号接口局部默认悬空,需要用到该器件时,用杜邦线连接到对应的单片机端口,不使用时悬空即可。这种方式大大提高了自由度,这些模块完全独立,可以自由配置端口,连接其他类型单片机的最小系统板就可以组成对应的开发板。 LED显示的秒表主要用到以下模块: 1、数码管模块:数码管其实是由发光二极管组成,有共阴极和共阳极之分,对于共阳极来说,一位数码管由8个二极管组成,他们的阳极接在一起接+5v电源,而各个阴极与某个端口,如p1的8个引脚相连,当某个引脚输出低电平的时候数码管对应的二极管亮。 2、键盘模块:键盘是由假设干个按键组成的开关矩阵,由SL0-SL3输出键盘和显示器的扫描线,回复线RL0-RL7作为键盘的列线以搜索,闭合键将键盘数据送入FIFO存储器,有键闭合时数据进入FIFO存储器,使IRQ置位向CPU申请中断。 第4章系统硬件设计 4.1数码管显示的秒表原理 此次设计的数码管显示的秒表,主要是运用单片机的键盘模块对时间进展控制,并将结果显示在数码管上。其系统框图如下: 键盘 AT98C51单片机 数码管 图4-1 系统框图 4.2 数码管显示原理图设计 数码管其实是由发光二极管组成,有共阴极和共阳极之分,对于共阳极来说,一位数码管由8个二极管组成,他们的阳极接在一起接+5v电源,而各个阴极与某个端口,如p1的8个引脚相连,当某个引脚输出低电平的时候数码管对应的二极管亮。 锁存器就是把当前的状态锁存起来,使CPU 送出的数据在接口电路的输出端保持一段时间锁存后状态不再发生变化,直到解除锁定。 74hc573 就是锁存器,锁存引脚高电平表示直通状态,为低电平表示锁存状态,可以通过控制锁存器,控制74hc573 后端数据。段码控制数码管显示的容,位码控制选通哪个数码管。如送位码0x7e,表示选通第一位数码管;送段码0x3f,只有g和dp位不亮,表示显示数字0。 数码管可以静态显示数据,也可以动态扫描。由于任一时刻只能显示一种数字,当需要多为数码管显示多位数据的时候就需要动态扫描。动态扫描时间上执行的是动态显示,由于动态速度很快,人眼分辨不出,所以看上去是静态显示,这种效果正是我们所需要的。 图4-2 数码管显示原理图 4.3键盘的工作原理图设计 键盘是由假设干个按键组成的开关矩阵,由SL0-SL3输出键盘和显示器的扫描线,回复线RL0-RL7作为键盘的列线以搜索,闭合键将键盘数据送入FIFO存储器,有键闭合时数据进入FIFO存储器,使IRQ置位向CPU申请中断。 显示缓冲区〔RAM〕存放显示数据的段码,数据轮流从显示存放器输出,在SL0-SL3的配合下,实现动态显示。 键盘使用时,必须消除键抖动:检测到按键按下后,执行延时10ms子程序后再确认按键是否确实按下,消除抖动影响。 图4-3 键盘工作原理图 4.4单片机的连接 这节不要,在前面两节里分别说明 此次设计的数码管显示的秒表,主要是运用单片机的定时器功能进展时间的控制,并将结果显示在数码管上。 单片机的连接如下: (1)数码管D0~D7连接到P0^0~P0^7口; (2)段码、位码连接到P2^2、P2^3口; (3)独立按键K5~K8连接到P1^0~P1^3口。 第5章系统软件设计 5.1 系统流程图 本设计使用硬件描述语言Keil C51进展设计开发,采用μVision2的综合软件设计程序。主程序的主要功能是实现秒表的功能,并在数码管上显示。 系统流程图如下: 图5-1 系统流程图 开场 系统初始化 N Y 是否有键按下 键值判断 数码管显示时间 Key1 Key2 Key3 Key4 暂停\开场计时 存储时间 读取时间 清零重新计时 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_flag == 0){ display(min_1,min_2,second_1,second_2,msecond_1,msecond_2);//显示 } 2、存储按键: 实现存储多个时间记录的功能,代码如下: if(key2==0)//存储 { delay(10); if(key2==0) { amsecond_1[num_i] = msecond_1; amsecond_2[num_i]= msecond_2; amin_1[num_i] = min_1; amin_2[num_i] =min_2; asecond_1[num_i] = second_1; asecond_2[num_i] = second_2; } if(num_i==10)num_i=0; num_i++; } 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_1[num_i],amin_2[num_i],asecond_1[num_i],asecond_2[num_i],amsecond_1[num_i],amsecond_2[num_i]); } 4、清零按键 实现秒表清零的功能,代码如下: if(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=duanma[min_1];dula=0;P0=0xff; wela=1;P0=0xfe;wela=0; delay(2);//分的十位 wela=1;P0=0xff;wela=0; dula=1;P0=duanma[min_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=duanma[second_1];dula=0;P0=0xff; wela=1;P0=0xf7;wela=0; delay(2);//秒的十位 wela=1;P0=0xff;wela=0; dula=1;P0=duanma[second_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=duanma[msecond_1];dula=0;P0=0xff; wela=1;P0=0xbf;wela=0; delay(2); //毫秒的十位 wela=1;P0=0xff;wela=0; dula=1;P0=duanma[msecond_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 1 { TH0=(65536-10000)/256; TL0=(65536-10000)%256; aa++; if(aa==1) { aa=0; 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; } } 结论 通过本次单片机的课程设计,我不仅复习了以前学过的与单片机有关的知识,在遇到问题的过程过咨询教师和上网搜索解决了问题,同时也学习到了新的更深入的知识。 在这次设计中也遇到了很多麻烦,例如如何存取多个时间记录,不过经过反复的检查和排除,最终实现了这些功能。通过这次对秒表的设计,让我了解了秒表的设计理念和原理,而要成功的设计出成果,那么需要扎实的知识根底,熟练地掌握书本上的知识并加以运用。 通过这次课程设计,让我对单片机有了更深层次的理解,也对单片机产生了更浓厚的兴趣,在以后的学习工作中,我也会运用单片机来解决一些问题。 参考文献 [1] 蔡美琴等.MCS-51系列单片机系统及其应用.高等教育,2004.6 [2] 毅刚等.新编MCS-51单片机应用设计.工业大学,2003.7 [3] 科技编著.8051系列单片机C程序设计完全手册.人民邮电,2006.4 [4]何立民编著.MCS-51系列单片机应用系统设计: 系统配置与接口技术.航空航天大学,1990 [5]唐俊翟等.单片机原理与应用.冶金工业,2003.9 [6]齐志才等.MCS-51 系列单片机原理及接口技术.,2005.6 - word.zl展开阅读全文
咨信网温馨提示:1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前可先查看【教您几个在下载文档中可以更好的避免被坑】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时联系平台进行协调解决,联系【微信客服】、【QQ客服】,若有其他问题请点击或扫码反馈【服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【版权申诉】”,意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:0574-28810668;投诉电话:18658249818。




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



实名认证













自信AI助手
















微信客服
客服QQ
发送邮件
意见反馈



链接地址:https://www.zixin.com.cn/doc/4570774.html