单片机及应用课程设计报告-定时器实验.doc_第1页
单片机及应用课程设计报告-定时器实验.doc_第2页
单片机及应用课程设计报告-定时器实验.doc_第3页
单片机及应用课程设计报告-定时器实验.doc_第4页
单片机及应用课程设计报告-定时器实验.doc_第5页
已阅读5页,还剩23页未读 继续免费阅读

下载本文档

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

文档简介

摘要 单片机,一个集成在一块芯片上的完整计算机系统。尽管它的大部分功能 集成在一块小芯片上,但是它具有一个完整计算机所需要的大部分部件: cpu、内存、内部和外部总线系统,目前大部分还会具有外存。同时集成诸如 通讯接口、定时器,实时时钟等外围设备。而现在最强大的单片机系统甚至可 以将声音、图像、网络、复杂的输入输出系统集成在一块芯片上。单片机 89c52 中有两个 16 位定时器/计数器,分别为定时器/计数器 0 和定时器/计数器 1,简称为定时器 0(t0)和定时器 1(t1) 。定时器/计数器具有计数和定时功 能,拥有 4 种工作方式,即工作方式 03。本次课程设计采用的是定时器 0 的 工作方式 2 来实现定时功能。利用工作方式 2 的区别于定时工作方式 0 和 1 的 自动重新加载功能,循环定时,通过软件和硬件的结合达到定时 2 秒的目的。 在单片机外部接连适当的电路,通过开关按键启停定时功能,通过蜂鸣器响与 否判断定时时间到。其中涉及按键的去抖动问题,通过编程实现适当的延时可 有效减轻抖动的影响以使观察效果更加明显。 关键词 单片机 ,89c52 ,定时器 0 ,工作方式 2 单片机课程设计报告 目 录 1 引言引言1 1.1 课题意义课题意义1 1.2 设计目的设计目的1 1.3 设计内容设计内容 1 1.4 设计方法设计方法 1 2 课程设计题目描述和要求课程设计题目描述和要求2 2.12.1 微处理器微处理器 at89s52at89s52 单片机单片机2 2 2.22.2 at89s52at89s52 各引脚及功能各引脚及功能2 2 2.32.3 课题概述课题概述 8 8 2.42.4 系统主要功能系统主要功能 8 8 3 方案的论证与比较方案的论证与比较9 3.1 控制部分的设计方案论证与选择控制部分的设计方案论证与选择9 3.2 键盘设计方案与选择键盘设计方案与选择10 3.3 数字显示设计方案与选择数字显示设计方案与选择10 4 课程设计报告内容课程设计报告内容 1010 4.14.1 背景知识背景知识 1010 4.1.1 相关控制寄存器 10 4.1.2 定时器工作方式 210 4.24.2 总体设计总体设计 4.34.3 详细设计详细设计 4.3.1 硬件设计 4.3.2 软件设计 4.44.4 结果分析结果分析 总总 结结11 参考文献参考文献13 附录附录 a a:定时器:定时器 protellprotell dxpdxp 原理图原理图 附录附录 b b:protuesprotues 仿真效果图仿真效果图 致谢致谢 1 1 引言 1.1 课题意义 在我们平时的生活中,有许多地方可以看到定时的影子,如手表定时、电 脑电视定时、工厂车间零件制作定时等等。定时不仅让我们的生活变得时间化 和规律化,也从一定程度上提高了生产力,提高了人民的生活水平。基于单片 机的定时,轻巧简便,利于携带和操作,在当今物质文化飞速发展的今天更是 必不可少的。所以研究基于单片机的定时器设计很有意义。 1.2 设计目的 通过本次课题设计,应用单片机原理及应用等所学相关知识及查阅资 料,完成简易 30s 定时器的设计,以达到理论与实践更好的结合、进一步提高 综合运用所学知识和设计的能力的目的。 通过本次设计的训练,可以使我在基本思路和基本方法上对基于 mcs-51 单 片机的嵌入式系统设计有一个比较感性和理性上的认识,并具备一定程度的设 计能力,分析和解决具体问题的能力,把理论和时间结合起来,也让我感觉到 理论也是相当重要,实践总是建立在理论的基础上的;但也是我看到了理论和 实践的一些差距,有些东西在实际中不需要考虑,但有的时候也不得不考虑。 1.3 设计内容 (1)本课题以单片机为核心,设计出定时器,具有以下功能: (2)具有 30 秒定时功能; (3)做时钟时在 2 位 led 显示器上显示 30-00 秒,实现到时报警的功能; (4)当按下清零按钮跑表开始倒计时,按下停止按钮停止计时; (5)完成 proteus 中的仿真和程序的调试,实现定时功能。 1.4 设计方法 电路采用动态显示,由八位共阳极数码管通过 p0 口,p2 口与单片机分别 相连,且数码管 a,b,c,d,e,f,g 分别依次与单片机的 p2 口相连,p2 口做为字 码控制端,数码管的 1,2 各引脚分别与单片机的 p0.0p0.1 相连,p0 口做为 数码管的位控制端,动态显示是每次数码管只显示一位,由于人的视觉停留是 0.05 到 0.2 秒之间,当数码管依次点亮各个位时,使循环的频率高于人的视觉 单片机课程设计报告 停留时间,人们就会认为数码管是同时点亮的,就可以达到动态显示的效果。 输入键盘采用独立键盘。采用软件识别键值并执行相应的操作,程序运行 时依次扫描各行,查询是否有键按下,如果有则进入键盘识别处理程序,实现 相应的运算,然后通过数码管输出结果,如果没有按键就调用显示程序显示一 个 0,等待按键按下,在进入按键扫描程序。这样循环执行。 2 课程设计题目描述和要求 2.1 微处理器 at89s52 单片机 at89s52 单片机是低功耗,高性能,采用 coms 工艺的 8 位单片机。其片 内具有 8kb 的可在线编程的 flash 存储器。该单片机采用了 atmel 公司的高 密度、非易失性存储器技术,与工业标准型 80c51 单片机的指令系统和引脚完 全兼容;片内的 flash 存储器可在线重新编程,或使用通用的非易失性存储器 编程器;通用的 8 位 cpu 与在线可编程 flash 集成在一块芯片上,从而是 at89s52 功能更加完善,应用更加灵活;具有较高的性能价格比,使其在嵌入 式控制系统中有着广泛的应用前景。 at89s52 单片机具有如下的特征: 片内存储器包含 8kb 的 flash,可在线编程,擦写次数不少于 1000 次; 具有 256 字节的片内 ram,具有可编程的 32 根 i/o 口线(p0,p1,p2 和 p3) ; 具有 3 个可编程定时器 t0、t1 和 t2,内含 2 个数据指针 tptr0 和 tptr1; 中断系统是具有 8 个中断源、6 个中断矢量、2 级优先权的中断结构; 串行通信是一个全双工的 uart 串行口; 2 个低功耗节电工作方式为空闲模式和掉电模式; 具有 3 级程序锁定位,含有 1 个看门狗定时器,具有断电标志 pof; 工作电源电压为 4.0-5.5v,全静态工作模式为 0-3mhz 2.2 at89s52 各引脚及功能 at89s52 具有 pdip,plcc 和 tqfp3 种封装形式。该设计使用的是 pdip 封装,其引脚功能如图 3.1 所示: 单片机课程设计报告 (t2) (t2ex) 图 3.1 at89s52 单片机引脚图 vcc:芯片主电源,外接 dc5v。gnd:芯片地,外接电源地。 (1) p0 口8 位、开漏极、双向 i/o 口。 当用做通用 i/o 口是,每个引脚可驱动 8 个 ttl 负载;当用作输入口 时,每个端口首先置 1。p0 口也可用做访问片外数据存储器和程序存 储器时的地 8 位地址/数据总线的复用口。这种情况下,p0 口内含上拉 电阻。 p1 口8 位、双向 i/o 口,内含上拉电阻。 p1 口为用户使用的通用 i/o 口,每个引脚可驱动 4 个 ttl 负载。当用 做输入时,每个端口首先置 1。p1.0 和 p1.1 也用做定时器 2 的外部计 数输入(p1.0/t2)和触发器输入(p1.1/t2ex) 。在编程时可作为低字 节地址。 p2 口8 位、双向 i/o 口,内部具有上拉电阻。 p2 口可用做通用 i/o 口,可以驱动 4 个 ttl 负载。对 p2 口各位写入 1,可以做位输入。p2 口可作为访问外部程序和数据存储器的高 8 位地 址。 p3 口8 位、双向 i/o 口,内部含有上拉电阻。 p3 口用做通用 i/o 口时,可以驱动 4 个 ttl 负载。当用做输入时,要 现将 p3 口各位置 1。若外部负载将 p3 口拉低,则经过上拉电阻向外输 出电流。p3 口也具有第二功能。如表 3.1 所示: 表 3.1 p3 口的第二功能 引 脚第二功能 功能含义 p3.0 rxd串行数据发送 p3.1 txd串行数据接受 p3.2 int0外部中断 0 申请 单片机课程设计报告 p3.3 int1外部中断 1 申请 p3.4 t0定时器/计数器 0 计数输入 p3.5 t1定时器/计数器 1 计数输入 p3.6 wr外部 ram 写选通 p3.7 rd外部 ram 读选通 ale/prog地址锁存允许/编程脉冲输入 在访问外部程序存储器和外部数据存储器时,该引脚输出一个地址锁 存脉冲 ale,其下降沿可将低 8 位地址锁存于片外地址锁存器中,在 编程时,向该引脚输入一个编程负脉冲 prog。 psen外部程序存储器读选通,低电平有效。 当 at89s52 执行片外程序存储器的指令代码时,psen 在每个机器周 期内两次有效。在访问外部数据存储器时无效。 ea/vpp片外程序存储器访问允许。 如果 ea 接地,则单片机只有执行外部程序存储器的指令,地址 0000h-ffffh。如果 ea 接 vcc,则单片机执行片内程序存储器的指令 (0000h-1fffh) ;如果需要,可自动转到执行片外程序存储器的、中 的指令(2000h-ffffh) 。 xtal1 和 xtal2xtal1 是片内振荡器反相放大器和时钟发生器 的输入端,xtal2 是片内振荡器反相放大器的输出端。 单片机内部结构图如图 3.2 所示: 单片机课程设计报告 p p0 0 驱驱动动器器p p2 2 驱驱动动器器 p p0 0 驱驱动动器器p p2 2 驱驱动动器器 r ra am m地地址址 锁锁存存器器 r ra am m e ep pr ro om m或或 r ro om m b b寄寄存存器器暂暂存存器器2 2暂暂存存器器1 1 a a s sp p1 16 6位位地地址址寄寄存存器器 缓缓冲冲器器 p pc c加加1 1 p pc c d dp pt tr r a al lu u p ps sw w 中中断断系系统统 串串行行口口 定定时时器器/ /计计数数 器器 定定时时 及及 控控制制 指指 令令 寄寄 存存 器器 振振荡荡器器 p p1 1 锁锁存存器器 p p1 1 驱驱动动器器 p p3 3 锁锁存存器器 p p3 3 驱驱动动器器 p ps se en n a al le e e ea a r rs st t p p1 1. .0 0- - -p p1 1. .7 7 p p3 3. .0 0- - -p p3 3. .7 7 p p0 0. .0 0- - -p p0 0. .7 7p p2 2. .0 0- - -p p2 2. .7 7 v vc cc c g gn nd d x xt ta al l1 1x xt ta al l2 2 图 3.2 at89s52 单片机内部结构框图 由图 3.2 可知,at89s52 单片机由运算器和控制器组成的微处理器、片内 存储器 ram/rom、p0p3 组成的 i/o 端口以及各种存储器组成的特殊功能寄 存器 sfr 和串行接口、定时/计数器、中断系统、振荡器构成。 要使单片机转入程序后能够正常工作,单片机外围必须要接相应电路,以 构成单片机最小系统。构成单片机最小系统的必备条件为:电源、ea 引脚、晶 体振荡电路和复位电路。最小系统如图 3.3 所示: eavpp xtal1 xtal2 reset at89s52 vcc gnd 3 30 0pf 3 30 0pf 1 12 2mhz vcc vcc 1 10 0uf 1 10 0k gnd gnd 图 3.3 单片机最小系统 单片机课程设计报告 2.3 课题概述 在单片机控制应用的定时和计数的需求很多,为此在单片机中都有定时器/ 计数器。89c52 的两个定时器/计数器都是 16 位加法计数结构。由于在 89c52 中只能使用 8 为字节寄存器,所以把两个 16 位定时器分解为 4 个 8 位定时器, 依次为 tl0、tl1、th0 和 th1。它们均属于专用寄存器之列。 单片机的定时功能是通过计数器的计数来实现的,不过此时的计数脉冲来 自单片机芯片内部,每个机器周期有一个计数脉冲,即每个机器周期计数器加 1。由于一个机器周期等于 12 个振荡脉冲周期,因此,计数频率为振荡频率的 1/12。如果单片机采用 12mhz 晶振,则计数频率为 1mhz,即每微妙计数器加 1。这样,在使用定时器是既可以根据计数值计算出定时时间,也可以通过定时 时间的要求算出计数器的预置值。 要实现定时器的功能,需要用到与定时器/计数器应用有关的控制寄存器, 它们分别是:定时器控制寄存器(tcon)、定时器方式选择寄存器(tmod)、中 断允许控制寄存器(ie)。 2.4 系统主要功能 此课题所要设计的系统比较简易,其主要功能是:利用定时器/计数器定时 50ms,每到 50ms 定时计数器变量加 1,当变量的值等于 20 时,定时 1s,按下 去开始键开始计时,再按下停止则停止计时。 另外当定时时间到,蜂鸣器响:本次课程设计设计的是 30 秒定时器实验, 当定时时间到 30s 蜂鸣器响,能达到定时器实验的目的。 单片机课程设计报告 3 方案论证与比较 3.1 控制部分的设计方案论证与选择 根据设计要求,控制器主要用于数码管显示的控制和定时时间的处理。对 于控制器的选择有以下三种方案。 方案一:定时器芯片实现。 这种设计方案计算效率高、速度快、而且成本也相对较低,但是元器件难 找,显示和键盘部分比较难实现。所以对实现我所要的功能比较麻烦,所以舍 弃这个方案。 方案二:采用 fpga(现场可编程门阵列)作为系统的控制器。 fpga 将所有器件集成到一块芯片上,体积小,节省空间,提高了稳定性; 直接面向用户,具有极大的灵活性和通用性,使用方便,硬件测试和实现快捷, 开发效率高,工作可靠性好。可以实现各种复杂的逻辑功能,规模大,密度高, 采用并行的输入输出方式,系统处理速度高,适合作为大规模实时系统的控制 核心。由 fpga 本设计对数据处理速度的要求不是很高,fpga 的高速处理的优 势得不到充分的体现,由于其集成度高,使其成本偏高,同时由于芯片的引脚 较多,实物电路板布线复杂,加重了电路设计和实际焊接的工作。并且 fpga 的 价格相对较高,性价比太低。 方案三、用 at89s52 单片机实现。 由于单片机集成了运算器电路、控制电路、存储器、中断系统、定时器/计 数器以及输入/输出口电路等,所以用单片机设计控制电路省去了很多分立元器 件。由于单片机是可编程芯片,并且它可以运用 c 语言编写,对于一些复杂的 计算功能,可以调用 c 语言库函数。使编写程序变得非常简单。所以该课题用 单片机实现,不仅功能易于实现,而且精确度高,稳定性好,抗干扰能力强。 并且由于其成本低、体积小、技术成熟和功耗小等优点,且技术比较成熟。性 价比也相当高。更重要的是本人经过两年年的学习,对单片机已有深刻的理解, 并且可以灵活运用。 综上所述,并通过各个方面综合比较为达到最佳效果。我们采用方案三利用 单片机控制器。 单片机课程设计报告 3.2 键盘设计方案与选择 方案一:独立键盘。独立键盘为一端接地,另一端接 i/o 口,并且要接上拉 电阻。这种键盘的硬件都很容易实现,但每一个按键就要用一个 i/o 口,非常 的浪费单片机的 i/o 口资源。 方案二:自制编码键盘。这个得使用编码器,译码器,元器件也很难找,且 增加了不必要的麻烦,舍弃这个方案; 方案三:4*4 矩阵式键盘。这种键盘的硬件简单,使用的 i/o 口也不多,而 且这种键盘的编程方法已很成熟。 所以本次设计所需要的键盘比较少,所以采用这种独立式键盘。 3.3 数字显示设计方案与选择 方案一:采用数码管显示:数码管价格便宜,适合于比较单一的数值显示, 对于比较简单的数值显示可以采用此方案; 方案二:lcd 显示:lcd 显示占用的 i/o 口比较少,能显示的内容比较丰富, 且耗能能比较少,但是价格比较贵,对一般的设计没有太大的必要。 由于本次设计的显示部分比较单一,且显示的数值比较少,所以选择方案 一。 4 课程设计报告内容 4.1 背景知识 4.1.1 相关控制寄存器 在 89c52 中,与定时器/计数器应用有关的控制寄存器共有 3 个,分别是定 时控制寄存器、工作方式控制寄存器和中断允许控制寄存器。本次课程设计将 会涉及这三个控制寄存器,现对它们说明如下。 (1) 定时器控制寄存器(tcon) tcon 寄存器地址为 88h,位地址为 8fh88h。该寄存器位定义及位地 址表示如表 3-1 所示。 表 3-1 tcon 寄存器表示 位地址8fh8eh8dh8ch8bh8ah89h88h 单片机课程设计报告 位符号tf1tr1tf0tr0ie1it1ie0it0 定时器控制寄存器中,与定时器/计数器有关的控制位共 4 位,即 tf1、tr1、tf0 和 tr0,它们的作用分别为: tr0 和 tr1运行控制位。tr0(tr1)=0,停止定时器/计数器工作; tr0(tr1)=1,启动定时器/计数器工作。控制计数启停只需用软件方法使其置 1 或清 0 即可。 tf0 和 tf1计数溢出标志位。当计数器产生计数溢出时,相应溢出标志 位由硬件置 1。计数溢出标志用于表示定时/计数是否完成,因此,它是供查询 的状态位。当采用查询方法是,溢出标志位被查询,并在后续处理程序中应以 软件方法及时将其清 0。而当采用中断方法是,溢出标志位不但能自动产生中 断请求,而且连清 0 操作也能在转向中断服务程序时由硬件自动进行。 (2) 定时器方式选择寄存器(tmod) tmod 寄存器用于设定定时器/计数器的工作方式。寄存器地址为 89h,但 它没有位地址,不能进行位寻址,只能用字节传送指令设置其内容。该寄存器 的位定义如表 3-2 所示。 表 3-2 tmod 寄存器表示 b7hb6hb5hb4hb3hb2hb1hb0h gate tc / m1m0gate tc / m1m0 定时器/计数器 1定时器/计数器 0 它的低半字节对应定时器/计数器 0,高半字节对应定时器/计数器 1,前后 半字节的位格式完全对应。位定义如下: gate门控位。gate=0,以运行控制位 tr 启动定时器;gate=1, 以外中断请求信号(或)启动定时器,这可以用于外部脉冲宽度测量。0int1int 定时方式或计数方式选择为。tc/ =0,定时工作方式; =1,计数工作方式。tc/tc/ m1m0工作方式选择位。 单片机课程设计报告 m1m0=00,工作方式 0;m1m0=01,工作方式 1; m1m0=10,工作方式 2;m1m0=11,工作方式 3。 (3) 中断允许控制寄存器(ie) 表 3-3 ie 寄存器表示 位地址afhaehadhachabhaaha9ha8h 位符号eaeset1ex1et0ex0 其中与定时器/计数器有关的是定时器/计数器中断允许控制位 et0 和 et1。 et0(et1)=0,禁止定时器中断; et0(et1)=1,允许定时器中断。 4.1.2 定时器工作方式 2 89c52 的两个定时器/计数器都有 4 种工作方式是,即工作方式 03。由于 本次课程设计主要涉及定时器/计数器 0 的工作方式 2,所以以下将重点介绍定 时器/计数器 0 的工作方式 2。 本次课程设计使用定时器工作方式 2,是由于其相对定时器工作方式 0 和 工作方式 1 有一定的长处。工作方式 0 和工作方式 1 有一个共同点,就是计数 溢出后计数器全为 0,因此循环定时应用时就需要反复设置计数初值。这不但 影响定时精度,而且也给程序设计带来麻烦。工作方式 2 就是针对此问题而设 置的,它具有自动重新加载计数初值的功能,免去了反复设置计数初值的麻烦。 定时器/计数器 0 的工作方式 0 和工作方式 2 所对应的电路逻辑结构图分别 如图 3-1 和图 3-2 所示。 tf0 th0 (8 位) tl0 (低 5 位) /定义变量 /*数码管显示 0-9*/ uint code table=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f; /*子函数声明*/ void delay0(uint z); void delay1(); void delay(uchar j); void display(uint ge,uint shi); void init(); void speaker(); uint pause; int temp; sbit led = p17; sbit sound = p37; /* 主函数 */ void main() ea=1;/开中断 ex0=1;/允许外部中断 int0 中断 it0=0;/定义 int0 触发方式 单片机课程设计报告 px0=1;/中断优先级高 ex1=1;/允许外部中断 int1 中断 it1=0;/定义 int1 触发方式 px1=1;/中断优先级高 p0=0xff; p1=0xff; p2=0xff; while(1) init(); /*定时器的初始化-相关寄存器的配置*/ void init() temp=31;/变量赋初值 tmod=0x01;/定时器 t0 工作于方式 1 th0=0x4c; tl0=0x00;/定时器赋初值 ea=1;/开中断 et0=1;/开定时中断 tr0=1;/开定时器 t0 while(1) if(aa=20)/定时 20*50ms=1s aa=0;/定时完成一次后清 0 temp-;/变量自减 if(temp0;j-) for(i=1250;i0;i-) for(k=180;k0;k-); 4.4 结果分析 此次课程设计主要利用中断法,运用中断嵌套循环的方法,简单的说是运 用几个中断,按照不同的中断优先级来处里键盘和定时器计数的功能; 课程设计硬件和软件设计结束后,可以看到当开关按键按下计时开始后, 数码管开始倒计时,再按暂停按键。但实际操作过程中,由于消除开关抖动及 代码执行所需时间的影响,设计后的效果并不精准,还有改进的空间。 单片机课程设计报告 总总 结结 这次的单片机课程设计是自己的一次亲手设计电路以及实现相关硬件仿真 功能的一次经历。 “定时器实验”设计的课题,这个课题和课本联系得很紧密,较 其它课题简单多了。但许多问题还得同样得仔细对待。 在我设计电路和调试电路遇到了很多问题,但这些问题都得到了自己的解 决,感觉很有成就感。尽管课本上已提供给了我们非常详尽的信息,但在应用 时我们还是感觉理论和实践的差别,理论离不开实践,实践也更离不开理论, 也许时间很仓促,在这方面还有很多得完善,这个小

温馨提示

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

最新文档

评论

0/150

提交评论