单片机及应用课程设计报告定时器实验

上传人:无*** 文档编号:41371238 上传时间:2021-11-20 格式:DOC 页数:28 大小:342KB
收藏 版权申诉 举报 下载
单片机及应用课程设计报告定时器实验_第1页
第1页 / 共28页
单片机及应用课程设计报告定时器实验_第2页
第2页 / 共28页
单片机及应用课程设计报告定时器实验_第3页
第3页 / 共28页
资源描述:

《单片机及应用课程设计报告定时器实验》由会员分享,可在线阅读,更多相关《单片机及应用课程设计报告定时器实验(28页珍藏版)》请在装配图网上搜索。

1、摘要单片机,一个集成在一块芯片上的完整计算机系统。尽管它的大部分功能集成在一块小芯片上,但是它具有一个完整计算机所需要的大部分部件:CPU、内存、内部和外部总线系统,目前大部分还会具有外存。同时集成诸如通讯接口、定时器,实时时钟等外围设备。而现在最强大的单片机系统甚至可以将声音、图像、网络、复杂的输入输出系统集成在一块芯片上。单片机89C52 中有两个 16 位定时器/计数器,分别为定时器/计数器 0 和定时器/计数器1,简称为定时器 0(T0)和定时器 1(T1) 。定时器/计数器具有计数和定时功能,拥有 4 种工作方式,即工作方式 03。本次课程设计采用的是定时器 0 的工作方式 2 来实

2、现定时功能。利用工作方式 2 的区别于定时工作方式 0 和 1 的自动重新加载功能,循环定时,通过软件和硬件的结合达到定时 2 秒的目的。在单片机外部接连适当的电路,通过开关按键启停定时功能,通过蜂鸣器响与否判断定时时间到。其中涉及按键的去抖动问题,通过编程实现适当的延时可有效减轻抖动的影响以使观察效果更加明显。关键词 单片机 ,89C52 ,定时器 0 ,工作方式 2 单片机课程设计报告目 录1 引言引言11.1 课题意义课题意义11.2 设计目的设计目的11.3 设计内容设计内容 11.4 设计方法设计方法 12 课程设计题目描述和要求课程设计题目描述和要求22.12.1 微处理器微处理器

3、 AT89S52AT89S52 单片机单片机2 22.22.2 AT89S52AT89S52 各引脚及功能各引脚及功能2 2 2.32.3 课题概述课题概述 8 8 2.42.4 系统主要功能系统主要功能 8 83 方案的论证与比较方案的论证与比较93.1 控制部分的设计方案论证与选择控制部分的设计方案论证与选择93.2 键盘设计方案与选择键盘设计方案与选择103.3 数字显示设计方案与选择数字显示设计方案与选择104 课程设计报告内容课程设计报告内容 1010 4.14.1 背景知识背景知识 1010 4.1.1 相关控制寄存器 10 4.1.2 定时器工作方式 210 4.24.2 总体设

4、计总体设计 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 课题意义在我们平时的生活中,有许多地方可以看到定时的影子,如手表定时、电脑电视定时、工厂车间零件制作定时等等。定时不仅让我们的生活变得时间化和规律化,也从一定程度上提高了生产力,提高了人民的生活水平。基于单片机的定时,轻巧简便,利于携带和操作,在当今物质文化飞速发

5、展的今天更是必不可少的。所以研究基于单片机的定时器设计很有意义。1.2 设计目的通过本次课题设计,应用单片机原理及应用等所学相关知识及查阅资料,完成简易 30S 定时器的设计,以达到理论与实践更好的结合、进一步提高综合运用所学知识和设计的能力的目的。通过本次设计的训练,可以使我在基本思路和基本方法上对基于 MCS-51 单片机的嵌入式系统设计有一个比较感性和理性上的认识,并具备一定程度的设计能力,分析和解决具体问题的能力,把理论和时间结合起来,也让我感觉到理论也是相当重要,实践总是建立在理论的基础上的;但也是我看到了理论和实践的一些差距,有些东西在实际中不需要考虑,但有的时候也不得不考虑。1.

6、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 口做为数码管的位控制端,动态显示是每

7、次数码管只显示一位,由于人的视觉停留是0.05 到 0.2 秒之间,当数码管依次点亮各个位时,使循环的频率高于人的视觉单片机课程设计报告停留时间,人们就会认为数码管是同时点亮的,就可以达到动态显示的效果。输入键盘采用独立键盘。采用软件识别键值并执行相应的操作,程序运行时依次扫描各行,查询是否有键按下,如果有则进入键盘识别处理程序,实现相应的运算,然后通过数码管输出结果,如果没有按键就调用显示程序显示一个 0,等待按键按下,在进入按键扫描程序。这样循环执行。2 课程设计题目描述和要求2.1 微处理器 AT89S52 单片机AT89S52 单片机是低功耗,高性能,采用 COMS 工艺的 8 位单片

8、机。其片内具有 8KB 的可在线编程的 Flash 存储器。该单片机采用了 ATMEL 公司的高密度、非易失性存储器技术,与工业标准型 80C51 单片机的指令系统和引脚完全兼容;片内的 Flash 存储器可在线重新编程,或使用通用的非易失性存储器编程器;通用的 8 位 CPU 与在线可编程 Flash 集成在一块芯片上,从而是AT89S52 功能更加完善,应用更加灵活;具有较高的性能价格比,使其在嵌入式控制系统中有着广泛的应用前景。AT89S52 单片机具有如下的特征:片内存储器包含 8KB 的 Flash,可在线编程,擦写次数不少于 1000 次;具有 256 字节的片内 RAM,具有可编

9、程的 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-3MHz2.2 AT89S52 各引脚及功能AT89S52 具有 PDIP,PLCC 和 TQFP3 种封装形式。该设计使用的是 PDIP封装,其引脚功能如图

10、 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 和

11、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.

12、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外部程序存储器读

13、选通,低电平有效。当 AT89S52 执行片外程序存储器的指令代码时,PSEN 在每个机器周期内两次有效。在访问外部数据存储器时无效。EA/Vpp片外程序存储器访问允许。如果 EA 接地,则单片机只有执行外部程序存储器的指令,地址 0000H-FFFFH。如果 EA 接 Vcc,则单片机执行片内程序存储器的指令(0000H-1FFFH) ;如果需要,可自动转到执行片外程序存储器的、中的指令(2000H-FFFFH) 。XTAL1 和 XTAL2XTAL1 是片内振荡器反相放大器和时钟发生器的输入端,XTAL2 是片内振荡器反相放大器的输出端。单片机内部结构图如图 3.2 所示:单片机课程设计报

14、告P P0 0 驱驱动动器器P P2 2 驱驱动动器器P P0 0 驱驱动动器器P P2 2 驱驱动动器器R RA AM M地地址址锁锁存存器器R RA AM ME EP PR RO OM M或或R RO OM MB B寄寄存存器器暂暂存存器器2 2暂暂存存器器1 1A AS SP P1 16 6位位地地址址寄寄存存器器缓缓冲冲器器P PC C加加1 1P PC CD DP PT TR RA AL LU UP PS SW W中中断断系系统统串串行行口口定定时时器器/ /计计数数器器定定时时及及控控制制指指令令寄寄存存器器振振荡荡器器P P1 1 锁锁存存器器P P1 1 驱驱动动器器P P3

15、3 锁锁存存器器P P3 3 驱驱动动器器P PS SE EN NA AL LE EE EA AR RS ST TP P1 1. .0 0- - -P P1 1. .7 7P P3 3. .0 0- - -P P3 3. .7 7P P0 0. .0 0- - -P P0 0. .7 7P P2 2. .0 0- - -P P2 2. .7 7V VC CC CG GN ND DX XT TA AL L1 1X XT TA AL L2 2图 3.2 AT89S52 单片机内部结构框图由图 3.2 可知,AT89S52 单片机由运算器和控制器组成的微处理器、片内存储器 RAM/ROM、P0P3

16、组成的 I/O 端口以及各种存储器组成的特殊功能寄存器 SFR 和串行接口、定时/计数器、中断系统、振荡器构成。要使单片机转入程序后能够正常工作,单片机外围必须要接相应电路,以构成单片机最小系统。构成单片机最小系统的必备条件为:电源、EA 引脚、晶体振荡电路和复位电路。最小系统如图 3.3 所示:EAVppXTAL1XTAL2RESETAT89S52VccGND3 30 0pf3 30 0pf1 12 2MHzVccVcc1 10 0uf1 10 0kGNDGND图 3.3 单片机最小系统单片机课程设计报告2.3 课题概述在单片机控制应用的定时和计数的需求很多,为此在单片机中都有定时器/计数器

17、。89C52 的两个定时器/计数器都是 16 位加法计数结构。由于在 89C52中只能使用 8 为字节寄存器,所以把两个 16 位定时器分解为 4 个 8 位定时器,依次为 TL0、TL1、TH0 和 TH1。它们均属于专用寄存器之列。单片机的定时功能是通过计数器的计数来实现的,不过此时的计数脉冲来自单片机芯片内部,每个机器周期有一个计数脉冲,即每个机器周期计数器加1。由于一个机器周期等于 12 个振荡脉冲周期,因此,计数频率为振荡频率的1/12。如果单片机采用 12MHz 晶振,则计数频率为 1MHz,即每微妙计数器加1。这样,在使用定时器是既可以根据计数值计算出定时时间,也可以通过定时时间

18、的要求算出计数器的预置值。要实现定时器的功能,需要用到与定时器/计数器应用有关的控制寄存器,它们分别是:定时器控制寄存器(TCON)、定时器方式选择寄存器(TMOD)、中断允许控制寄存器(IE)。2.4 系统主要功能此课题所要设计的系统比较简易,其主要功能是:利用定时器/计数器定时50ms,每到 50ms 定时计数器变量加 1,当变量的值等于 20 时,定时 1S,按下去开始键开始计时,再按下停止则停止计时。另外当定时时间到,蜂鸣器响:本次课程设计设计的是 30 秒定时器实验,当定时时间到 30S 蜂鸣器响,能达到定时器实验的目的。单片机课程设计报告3 方案论证与比较3.1 控制部分的设计方案

19、论证与选择根据设计要求,控制器主要用于数码管显示的控制和定时时间的处理。对于控制器的选择有以下三种方案。方案一:定时器芯片实现。这种设计方案计算效率高、速度快、而且成本也相对较低,但是元器件难找,显示和键盘部分比较难实现。所以对实现我所要的功能比较麻烦,所以舍弃这个方案。方案二:采用 FPGA(现场可编程门阵列)作为系统的控制器。FPGA 将所有器件集成到一块芯片上,体积小,节省空间,提高了稳定性;直接面向用户,具有极大的灵活性和通用性,使用方便,硬件测试和实现快捷,开发效率高,工作可靠性好。可以实现各种复杂的逻辑功能,规模大,密度高,采用并行的输入输出方式,系统处理速度高,适合作为大规模实时

20、系统的控制核心。由 FPGA 本设计对数据处理速度的要求不是很高,FPGA 的高速处理的优势得不到充分的体现,由于其集成度高,使其成本偏高,同时由于芯片的引脚较多,实物电路板布线复杂,加重了电路设计和实际焊接的工作。并且 FPGA 的价格相对较高,性价比太低。方案三、用 AT89s52 单片机实现。由于单片机集成了运算器电路、控制电路、存储器、中断系统、定时器/计数器以及输入/输出口电路等,所以用单片机设计控制电路省去了很多分立元器件。由于单片机是可编程芯片,并且它可以运用 C 语言编写,对于一些复杂的计算功能,可以调用 C 语言库函数。使编写程序变得非常简单。所以该课题用单片机实现,不仅功能

21、易于实现,而且精确度高,稳定性好,抗干扰能力强。并且由于其成本低、体积小、技术成熟和功耗小等优点,且技术比较成熟。性价比也相当高。更重要的是本人经过两年年的学习,对单片机已有深刻的理解,并且可以灵活运用。综上所述,并通过各个方面综合比较为达到最佳效果。我们采用方案三利用单片机控制器。单片机课程设计报告3.2 键盘设计方案与选择 方案一:独立键盘。独立键盘为一端接地,另一端接 I/O 口,并且要接上拉电阻。这种键盘的硬件都很容易实现,但每一个按键就要用一个 I/O 口,非常的浪费单片机的 I/O 口资源。方案二:自制编码键盘。这个得使用编码器,译码器,元器件也很难找,且增加了不必要的麻烦,舍弃这

22、个方案; 方案三:4*4 矩阵式键盘。这种键盘的硬件简单,使用的 I/O 口也不多,而且这种键盘的编程方法已很成熟。所以本次设计所需要的键盘比较少,所以采用这种独立式键盘。3.3 数字显示设计方案与选择方案一:采用数码管显示:数码管价格便宜,适合于比较单一的数值显示,对于比较简单的数值显示可以采用此方案;方案二:LCD 显示:LCD 显示占用的 I/O 口比较少,能显示的内容比较丰富,且耗能能比较少,但是价格比较贵,对一般的设计没有太大的必要。由于本次设计的显示部分比较单一,且显示的数值比较少,所以选择方案一。4 课程设计报告内容4.1 背景知识4.1.1 相关控制寄存器在 89C52 中,与

23、定时器/计数器应用有关的控制寄存器共有 3 个,分别是定时控制寄存器、工作方式控制寄存器和中断允许控制寄存器。本次课程设计将会涉及这三个控制寄存器,现对它们说明如下。(1) 定时器控制寄存器(TCON)TCON 寄存器地址为 88H,位地址为 8FH88H。该寄存器位定义及位地址表示如表 3-1 所示。表 3-1 TCON 寄存器表示位地址8FH8EH8DH8CH8BH8AH89H88H单片机课程设计报告位符号TF1TR1TF0TR0IE1IT1IE0IT0定时器控制寄存器中,与定时器/计数器有关的控制位共 4 位,即TF1、TR1、TF0 和 TR0,它们的作用分别为:TR0 和 TR1运行

24、控制位。TR0(TR1)=0,停止定时器/计数器工作;TR0(TR1)=1,启动定时器/计数器工作。控制计数启停只需用软件方法使其置 1或清 0 即可。TF0 和 TF1计数溢出标志位。当计数器产生计数溢出时,相应溢出标志位由硬件置 1。计数溢出标志用于表示定时/计数是否完成,因此,它是供查询的状态位。当采用查询方法是,溢出标志位被查询,并在后续处理程序中应以软件方法及时将其清 0。而当采用中断方法是,溢出标志位不但能自动产生中断请求,而且连清 0 操作也能在转向中断服务程序时由硬件自动进行。(2) 定时器方式选择寄存器(TMOD)TMOD 寄存器用于设定定时器/计数器的工作方式。寄存器地址为

25、 89H,但它没有位地址,不能进行位寻址,只能用字节传送指令设置其内容。该寄存器的位定义如表 3-2 所示。表 3-2 TMOD 寄存器表示B7HB6HB5HB4HB3HB2HB1HB0HGATETC /M1M0GATETC /M1M0定时器/计数器 1定时器/计数器 0它的低半字节对应定时器/计数器 0,高半字节对应定时器/计数器 1,前后半字节的位格式完全对应。位定义如下:GATE门控位。GATE=0,以运行控制位 TR 启动定时器;GATE=1,以外中断请求信号(或)启动定时器,这可以用于外部脉冲宽度测量。0INT1INT定时方式或计数方式选择为。TC/=0,定时工作方式; =1,计数工

26、作方式。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 定时器工作方式 289C52 的两个定时器/计数器都有 4 种工作方式是,即工作方式 03。由于本次

27、课程设计主要涉及定时器/计数器 0 的工作方式 2,所以以下将重点介绍定时器/计数器 0 的工作方式 2。本次课程设计使用定时器工作方式 2,是由于其相对定时器工作方式 0 和工作方式 1 有一定的长处。工作方式 0 和工作方式 1 有一个共同点,就是计数溢出后计数器全为 0,因此循环定时应用时就需要反复设置计数初值。这不但影响定时精度,而且也给程序设计带来麻烦。工作方式 2 就是针对此问题而设置的,它具有自动重新加载计数初值的功能,免去了反复设置计数初值的麻烦。定时器/计数器 0 的工作方式 0 和工作方式 2 所对应的电路逻辑结构图分别如图 3-1 和图 3-2 所示。TF0TH0(8 位

28、)TL0(低 5 位)&11控制T0(P3.4)TR0GATEINT0(P3.2)OSC12分频1/0/TCTC单片机课程设计报告图 3-1 定时器/计数器 0 的工作方式 0 逻辑结构 图 3-2 定时器/计数器 0 的工作方式 2 逻辑结构对比上述两图,我们可以发现工作方式 0 和工作方式 2 对应的逻辑结构还是有许多部分相同的,如两图的右半部分,而两图左半部分则有所差异。下面将对其相同点和不同点作简要分析,这也是为什么这次课程设计选择工作方式2 的原因。相同点:两种工作方式,计数脉冲既可以来自芯片内部,也可以来自外部。来自内部的是机器周期脉冲,图中 OSC 是英文 Oscilla

29、tor(振荡器)的缩写,表示芯片的晶振脉冲,经 12 分频后,即为单片机的机器周期脉冲。来自外部的计数脉冲由 T0(P3.4)引脚输入,计数脉冲由控制寄存器 TMOD 的位进行控制。TC/当=0 时,接通机器周期脉冲,计数器每个机器周期进行一次加 1,这就是TC/定时器工作方式;当=1 时,接通外部计数引脚 T0(P3.4),从 T0 引入计数脉TC/冲输入,这就是计数工作方式。不同点:如图 3-1 所示的左半部分,工作方式 0 条件下,TL0 使用了 5 位,当 TL0 的低 5 位计数溢出时,向 TH0 进位;而全部 13 位计数溢出时,向计数溢出标志位 TF0 进位,将其置 1。如图 3

30、-2 所示的左半部分,工作方式 2 条件下,16 位计数器被分成两部分,TL 作为计数器使用,TH 作为预置寄存器使用,&11控制T0(P3.4)TR0GATEINT0(P3.2)OSC12分频TL0(8 位)TH0(8 位)TF0重新载入1/0/TCTC单片机课程设计报告初始化时把计数初值分别装入 TL 和 TH 中。当计数溢出后,由预置寄存器 TH以硬件方法自动给计数器 TL 重新加载。变软件加载为硬件加载。更详细点,初始化时,8 位计数初值同时装入 TL0 和 TH0。当 TL0 计数溢出时,置位TF0,并用保存在预置寄存器 TH0 中的计数初值自动加载 TL0,然后开始重新计数

31、。如此重复,这样不但省去了用户程序中的重装指令,而且也有利于提高定时精度。4.2 总体设计 如图 3-3 所示是此次课题设计的总体框架图。 图 3-3 定时器总体框架图4.3 详细设计4.3.1 硬件设计(2) 定时器设计电路图本次课程设计采用 protell DXP 设计的电路图如图 3-4 所示。图中单片机采用 AT89C52,由图可见:复位单片机按下停止键停止计时定时停止,数码管显示所计时间按下清零开关定时开始数码管显示和时间的值单片机课程设计报告图 3-4 定时器电路图(3) Protues 仿真实验效果实验效果图:单片机课程设计报告4.3.2 软件设计(1)计数初值计算根据定时器/

32、计数器 0 的工作方式 2 逻辑结构图可知,使用工作方式 2 的计数范围是 1255,定时时间的计算公式为: (28-计数初值)*晶振周期*12或 (28-计数初值)*机器周期本次课题设计的晶振频率为 12MHz,所以机器周期为 1 微秒。由于工作方式 2 计数最高限值为 255,所以这里选定定时时间为 250 微秒,这样可计算出计数初值。设计数初值为 x,则 (28- x)*1*10-6s=250*10-6s 计算得 x=6D=06H。所以寄存器 TL0 和 TH0 都设置初值为 06H。总定时时间要求是 2 秒,所以可利用软件方法实现 8000 次 250 微秒的定时,这就是循环定时。(2

33、)详细流程图定时器设计的详细流程图如图 3-5 所示。送 TH0 和 TH1 初值,配置T/C0 相应的寄存器是否按下?开始定时YN初始化Y累加器加 1N50ms 到了?单片机课程设计报告图 3-5 定时器设计详细流程图累加器清 0R0=0 吗?N数码管显示是否按下?Ni=20 ?停止计时,数码管停止计时单片机课程设计报告(3)定时器实验程序源代码:#include/头文件#include/头文件#define uchar unsigned char/宏定义#define uint unsigned int/宏定义uint aa, bai,shi,ge,bb; /定义变量/*数码管显示 0-9

34、*/Uint code table=0 x3f,0 x06,0 x5b,0 x4f,0 x66,0 x6d,0 x7d,0 x07,0 x7f,0 x6f;/*子函数声明*/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 中断

35、IT0=0;/定义 INT0 触发方式单片机课程设计报告PX0=1;/中断优先级高EX1=1;/允许外部中断 INT1 中断IT1=0;/定义 INT1 触发方式PX1=1;/中断优先级高P0=0XFF;P1=0 xFF; P2=0 xFF; while(1) init(); /*定时器的初始化-相关寄存器的配置*/void init()temp=31;/变量赋初值TMOD=0 x01;/定时器 T0 工作于方式 1TH0=0 x4c;TL0=0 x00;/定时器赋初值EA=1;/开中断ET0=1;/开定时中断TR0=1;/开定时器 T0while(1) if(aa=20)/定时 20*50M

36、S=1Saa=0;/定时完成一次后清 0temp-;/变量自减if(temp0)单片机课程设计报告LED=LED;speaker();delay(2);LED=1;while(1)shi=0;ge=0;display(ge,shi);shi=temp%100/10;/显示十位ge=temp%10;/显示个位display(ge,shi);/*数码管显示子函数*/void display(uint ge,uint shi)P0=0 xfd;P2=tableshi;/显示十位delay0(5);P0=0 xfe;P2=tablege;/显示个位delay0(5);单片机课程设计报告void xin

37、t0() interrupt 0 /外部中断 INT0display(ge,shi);void xint1() interrupt 2 /外部中断 INT1shi=0;ge=0;display(ge,shi);temp=31;delay0(1);/*声音子函数*/void speaker()int i;for(i=0;i800;i+)sound=0;delay1();sound=1;delay1();/*定时中断子函数*/单片机课程设计报告void xtimer0() interrupt 1TH0=0 x4c;TL0=0 x00;aa+;/*延时子函数*/void delay0(uint z)

38、uint i,j;for(i=0;iz;i+)for(j=0;j110;j+);/*延时子函数*/void delay1()unsigned char i;for(i=0;i0;j-) for(i=1250;i0;i-) for(k=180;k0;k-); 4.4 结果分析此次课程设计主要利用中断法,运用中断嵌套循环的方法,简单的说是运用几个中断,按照不同的中断优先级来处里键盘和定时器计数的功能;课程设计硬件和软件设计结束后,可以看到当开关按键按下计时开始后,数码管开始倒计时,再按暂停按键。但实际操作过程中,由于消除开关抖动及代码执行所需时间的影响,设计后的效果并不精准,还有改进的空间。单片机

39、课程设计报告总总 结结这次的单片机课程设计是自己的一次亲手设计电路以及实现相关硬件仿真功能的一次经历。 “定时器实验”设计的课题,这个课题和课本联系得很紧密,较其它课题简单多了。但许多问题还得同样得仔细对待。在我设计电路和调试电路遇到了很多问题,但这些问题都得到了自己的解决,感觉很有成就感。尽管课本上已提供给了我们非常详尽的信息,但在应用时我们还是感觉理论和实践的差别,理论离不开实践,实践也更离不开理论,也许时间很仓促,在这方面还有很多得完善,这个小东西也让自己学到了很多东西,自己会更加努力学习,弥补自己欠缺的东西。在代码的编辑上对于我来说还是很顺手的,因为之前弄过单片机,所以弄起来毫不费劲,

40、代码编辑完后,调试中还遇到了很多问题,虽然程序没有语法错误,但是在具体功能上还是不能实现的,最后通过自己耐心的调试,在网上找相应问题的答案,问题得到了最终的解决,心里有点小小的成就感。总结起来,这次课题设计不仅培养或者说提高了我的动手能力,也让我们在单片机理论理解方面有了新的加深与突破。相信这次宝贵的经历,会是我们以后自己动手设计实现硬件的重要台阶!致致 谢谢这次课程设计,首先感谢学校和学院给我们这次实践的机会,锻炼了我们,让我们在实践过程中总结了经验和教训,相信这对我们以后的从业生涯会有很大的帮助!最后要感谢这次我所参考的资料的作者们,你们的总结与心得对我的帮助很大。正是由于资料的正确与完整

41、,让我能够更快地完成这次的课程设计,从中也收获了许多课余之外的经验。另一个助手,那就是网络了。网络在快速获取知识方面挺管用的,但也或多或少反映出自己在单片机理论知识以及把它与实践相结合的能力等方面的不足,希望以后会得到提高!单片机课程设计报告参考文献参考文献1 周兴华.手把手教你学单片机 C 语言版.北京:航空航天大学出版社,20062 王建华.Mcs51 单片机原理及其应用. 北京:机械工业出版社,20083 张春光.微型计算机控制技术.北京:化学工业出版社,20024 李贵山.微型计算机测控技术.北京:机械工业出版社,20025 AT89S52 单片机数据手册 6 Protel DXP 范

42、例入门与提高.北京:清华大学出版社 7 单片机 C 语言与 protues 仿真技能实训单片机课程设计报告附录 A:定时器 protell DXP 原理图单片机课程设计报告附录 B:Protues 仿真效果图单片机课程设计报告致致 谢谢这次课程设计,首先感谢学校和学院给我们这次实践的机会,锻炼了我们,让我们在实践过程中总结了经验和教训,相信这对我们以后的从业生涯会有很大的帮助!最后要感谢这次我所参考的资料的作者们,你们的总结与心得对我的帮助很大。正是由于资料的正确与完整,让我能够更快地完成这次的课程设计,从中也收获了许多课余之外的经验。另一个助手,那就是网络了。网络在快速获取知识方面挺管用的,但也或多或少反映出自己在单片机理论知识以及把它与实践相结合的能力等方面的不足,希望以后会得到提高!

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

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!