《单片机原理与应用》课程设计说明书.docx
- 文档编号:26272103
- 上传时间:2023-06-17
- 格式:DOCX
- 页数:11
- 大小:765.76KB
《单片机原理与应用》课程设计说明书.docx
《《单片机原理与应用》课程设计说明书.docx》由会员分享,可在线阅读,更多相关《《单片机原理与应用》课程设计说明书.docx(11页珍藏版)》请在冰豆网上搜索。
单片机原理与应用课程设计说明书单片机原理与应用课程设计说明书1前言在测量控制系统中,常常要求有一些实时时钟,以实现定时控制、定时测量或延迟动作,也往往要求有计数器能对外部事件计数,如测电机转速、频率、工件个数等。
实现定时/计数,有软件、数字电路和可编程定时/计数器3种主要方法。
软件定时,即让机器执行一个程序段,这个程序段本身没有具体的执行目的,通过正确地挑选指令和安排循环次数实现软件延时,由于执行每条指令都需要时间,执行这一程序段所需要的时间就是延时时间。
这种软件定时占用CPU的执行时间,降低了CPU利用率。
数字电路硬件定时采用如小规模集成电路器件555,外接定时部件(电阻和电容)构成。
这样的定时电路简单,但要改变定时范围,必须改变电阻和电容,这种定时电路在硬件连接好以后,修改不方便。
可编程定时/计数器是为了方便微型计算机系统的设计和应用而研制的,它是硬件定时,又能很容易地通过软件来确定和改变它的定时值,通过初始化编程,能够满足各种不同的定时和计数要求,因而在嵌入式系统的设计和应用中得到了广泛的应用。
2定时器的工作原理8XX51单片机的定时/计数器T1由寄存器TH1,TL1组成,定时/计数器T0由寄存器TH0,TL0组成,它们均为8位寄存器,在特殊功能寄存器中占地址8AH8DH。
它们用于存放定时或计数的初始值。
此外,内部还有一个8位的方式寄存器TMOD和一个8位的控制寄存器TCON,用于选择和控制定时/计数器的工作。
定时/计数器实质上是一个加1计数器,它可以工作于定时方式,也可以工作于计数方式,两种工作方式实际都是对脉冲计数,只不过所计脉冲的来源不同。
本次课程设计主要用到定时功能,在此只介绍定时方式。
在定时方式下,C/=0,开关打向上,计数器TH0、TL0的计数脉冲来自振荡器的12分频后的脉冲(),即对系统的机器周期计数,当开关受控合上时,每过一个机器周期,计数器TH0,TL0加1,当计满了预设的个数。
TH0,TL0回零,置位定时/计数器溢出中断标志位TF0(或TF1),产生溢出中断。
3与定时/计数器有关的特殊功能寄存器51系列单片机的定时/计数器为可编程定时/计数器,在定时/计数器工作之前,必须将控制命令写入定时/计数器的控制寄存器,即进行初始化。
下面介绍定时/计数器的方式寄存器TMOD及控制寄存器TCON。
3.1工作方式控制寄存器TMOD表3.1定时/计数器方式控制寄存器TMODT1T0TMODGATEC/M1M0GATEC/M1M0GATE为门控位,当GATE=0启动不受或的控制,当GATE=1启动受或的控制。
C/为外部计数器/定时器方式选择位,当C/=0为定时方式,当C/=1为计数方式。
M1M0为工作模式选择位,其模式与说明如下:
M1M0模式说明00013位定时/计数器高八位TH(70)+低五位TL(40)01116位定时/计数器TH(70)+TL(70)1028位计数初值自动重装TL(70)TH(70)113T0运行,而T1停止工作,8位定时/计数。
3.2定时/计数器控制寄存器TCON表3.2定时/计数器控制寄存器TCONTCONTR1TR0TR0为定时/计数器0运行控制位,分两种情况。
当GATE=0时,若TR0=1,开启T0计数工作,若TR0=0,停止T0计数;当GATE=1时,若TR0=1且=1时,开启T0计数。
4定时/计数器的工作方式根据对TMOD寄存器中M1和M0的设定,T0可选择四种不同的工作方式,而T1只具有三种工作方式(即方式0、方式1和方式2)。
本次课程设计采用方式0,即13位定时/计数器。
当TMOD中的M10、M00时,选定方式0工作。
方式0时,计数寄存器由13位组成,即THx高八位(作计数器)和TLx的低5位(32分频的定标器)构成。
TLx的高3位未用。
计数时,TLx的低5位溢出后向THx进位,THx溢出后将TFx置位,并向CPU申请中断。
5程序设计在原基础上,扩展了开关控制和频率选择功能,程序如下:
ORG0000HLJMPMAINORG0100HMAIN:
MOVTMOD,#00H;初始化定时器SETBTR1;启动定时器SW1:
JBP1.1,SW2;检测开关是否开启,开启则跳转到SW2CLRP1.0;开关关闭,P1.0口输出低电平WAIT:
JNBP1.1,WAIT;等待开关打开SW2:
JNBP1.2,K1;检测开关是否拨到500Hz档SW3:
JNBP1.3,K2;检测开关是否拨到1KHz档SW4:
JNBP1.4,K3;检测开关是否拨到2KHz档K1:
MOVTH1,#0E0H;装入500Hz方波的时间常数MOVTL1,#18HAJMPLOOPK2:
MOVTH1,#0F0H;装入1KHz方波的时间常数MOVTL1,#0CHAJMPLOOPK3:
MOVTH1,#0F8H;装入2KHz方波的时间常数MOVTL1,#06HAJMPLOOPLOOP:
JNBTF1,LOOP;检测溢出标记CLRTF1;溢出标记清零CPLP1.0;P1.0端口输出电平取反AJMPSW1END程序全部编译后,得到.HEX文件,作为仿真芯片的烧录文件。
6Proteus仿真本次仿真选用AT89C51单片机,选取单刀多掷开关和示波器制作仿真。
由于在Proteus中,单片机的一些端口已设置默认值,故无需再外加其他元件。
仿真电路如下图所示:
图6.1仿真电路当开关拨到下档,即程序设计中的关闭档,示波器输出波形如下图所示:
图6.2关闭档示波器波形当开关拨到左下档,即程序设计中的500Hz档,示波器输出波形如下图所示:
图6.3500Hz档示波器波形当开关拨到左上档,即程序设计中的1KHz档,示波器输出波形如下图所示:
图6.41KHz档示波器波形当开关拨到上档,即程序设计中的2KHz档,示波器输出波形如下图所示:
图6.52KHz档示波器波形7心得体会这次单片机原理与应用的课程设计,题目是单片机产生一个500Hz方波的设计,经过翻阅单片微型计算机与接口技术的课本,以及相关资料,我确定了程序设计思路和电路原理图。
这个设计主要采用AT89C51芯片。
AT89C51是一种带4K字节闪烁可编程可擦除只读存储器(FPEROMFalshProgrammableandErasableReadOnlyMemory)的低电压,高性能CMOS8位微处理器。
利用WAVE软件,通过汇编语言实现对其功能的控制。
我再次的翻阅课本及相关功能的实现程序,最后我写出了产生500Hz方波的汇编程序,并对其做了功能扩展。
接下来就是运行,修改调试以及Proteus仿真。
在程序编译过程中也出现了些小问题,如漏掉“,”,指令键入错误等,但经过检查和修改,终于编译成功了。
在阅读及学习了Proteus软件的用法及实例的相关资料后,通过设计电路和程序的设计思路,我做出了仿真电路,经仿真后得出了500Hz的方波,在此过程中还扩展了开关控制及频率选择功能,我从中感悟到了扩展的一般思路。
通过这次单片机原理与应用的课程设计,我从中不仅学到了生成方波信号的程序设计原理和基本思路,并且深入了解了AT89C51芯片的编程控制,而且也加深了对理论的认识,进一步理解了汇编语言的指令功能和用法,了解了如何通过程序去控制硬件,通过硬件测试如何发现问题并通过修改程序而解决问题,更学会了如何通过各种途径收集资料,从中获取需要的信息,并为我所用,成为自己的能力,这对于今后的学习还是工作都有着积极的影响。
参考文献1李群芳,张士军,黄建.单片微型计算机与接口技术(第2版).北京:
电子工业出版社,2005.1.2周润景,张丽娜,刘印群.PROTEUS入门实用教程.北京:
机械工业出版社,2007.9.3姚燕南,薛钧义.微型计算机原理与接口技术.北京:
高等教育出版社,2004.11.4朱清慧,张凤蕊,翟天嵩,王志奎.Proteus教程电子线路设计、制版与仿真.北京:
清华大学出版社,2008.9.5毛敏.MCS51系列单片机系统及应用实践教程.北京:
高等教育出版社,2006.7.致谢在本次课程设计中,我从中学到了不少东西,不仅加强了动手能力,也加深了对理论的认识,其中离不开同组同学的帮助和支持,在此表示感谢。
课程设计不仅能检验我们对理论知识的掌握,也了解了设计的思路,在此我要感谢学校开设的这门课程,以及对我们的培养。
在课程设计过程中,当我们遇到困难时,指导老师的认真指导指引我们成功完成设计,在此表示感谢!
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机原理与应用 单片机 原理 应用 课程设计 说明书
![提示](https://static.bdocx.com/images/bang_tan.gif)