(601)单片机99倒计时_第1页
(601)单片机99倒计时_第2页
(601)单片机99倒计时_第3页
(601)单片机99倒计时_第4页
(601)单片机99倒计时_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

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

文档简介

?单片机?

课程设计说明书

专业班级:自动化〔四〕

姓名:陶青涂卫根何磊王林坤

学号:080310252080310251080310216080310201

指导教师:郭玉

设计时间:2023/12/17

物理与电气工程学2023年12月17日

摘要

随着计算机在社会领域的渗透,单片机的应用正在不断地走向深入,同时带动传统控制检测日新月益更新。

目的:〔1〕初步掌握单片机控制功能的根本使用方法及根本硬件电路的工作原理,包括设计任务,设计题目的方案论证。通过查阅资料,器件选择,确定方案,写出总结报告。

〔2〕培养一定的自学能力和独立分析问题、解决问题的能力。包括学会自己分析解决问题的方法,对设计中遇到的问题,能通过独立思考、查阅工具书、参考文献,寻找答案。

〔3〕通过严格的科学训练和工程设计实践,逐步树立严肃认真、一丝不苟、实事求是的科学作风,并培养自己在实际工作中应具有的生产观点,经济观点和全局观点。

方法:利用开发板和keil软件经过烧写程序在数码管上实现倒计时显示

结果:将程序烧写进开发板,99秒倒计时,按下s3键实现暂停与启动

结论:在实时检测和自动控制的单片机应用系统中,单片机往往是作为一个核心部件来使用,仅单片机方面知识是不够的,还应根据具体硬件结构,以及针对具体应用对象特点的软件结合,以作完善。

关键词

ATM89C52;共阴数码管;keil软件;晶体振荡器;

目录

1主要元器件介绍…………1

1.1AT89C52芯片概述…………2

1.2LED数码管显示器概述……………………3

1.3其他元器件介绍及参数……………………4

2单片机的最小系统与复位电路……5

2.1最小系统……………………6

2.2复位电路设计………………7

2.3显示电路设计………………8

2.4总体硬件电路设计…………9

3keil软件……………………10

4程序框图……………………11

5软件程序…………………12

6教材及参考书………………13

7感悟……………14

1主要元器件介绍

1.1ATM89C52芯片概述

ATM89C52是一种低功耗、高性能CMOS8位微控制器,具有8K在系统可编程Flash存储器。使用Atmel公司高密度非易失性存储器技术制造,与工业80C51产品指令和引脚完全兼容。片上Flash允许程序存储器在系统可编程,亦适于常规编程器。在单芯片上,拥有灵巧的8位CPU和在系统可编程Flash,使得ATM89C52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。ATM89C52具有以下标准功能:8k字节Flash,256字节RAM,32位I/O口线,看门狗定时器,2个数据指针,三个16位定时器/计数器,一个6向量2级中断结构,全双工串行口,片内晶振及时钟电路。另外,ATM89C52可降至0Hz静态逻辑操作,支持2种软件可选择节电模式。空闲模式下,CPU停止工作,允许RAM、定时器/计数器、串口、中断继续工作。掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。8位微控制器8K字节在系统可编程FlashATM89C52P0口:P0口是一个8位漏极开路的双向I/O口。作为输出口,每位能驱动8个TTL逻

辑电平。对P0端口写“1〞时,引脚用作高阻抗输入。

当访问外部程序和数据存储器时,P0口也被作为低8位地址/数据复用。在这种模式下,

P0具有内部上拉电阻。

在flash编程时,P0口也用来接收指令字节;在程序校验时,输出指令字节。程序校验

时,需要外部上拉电阻。

P1口:P1口是一个具有内部上拉电阻的8位双向I/O口,p1输出缓冲器能驱动4个

TTL逻辑电平。对P1端口写“1〞时,内部上拉电阻把端口拉高,此时可以作为输入

口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流〔IIL〕。

此外,P1.0和P1.2分别作定时器/计数器2的外部计数输入〔P1.0/T2〕和时器/计数器2

的触发输入〔P1.1/T2EX〕,具体如下表所示。

在flash编程和校验时,P1口接收低8位地址字节。

引脚号第二功能

P1.0T2〔定时器/计数器T2的外部计数输入〕,时钟输出

P1.1T2EX〔定时器/计数器T2的捕捉/重载触发信号和方向控制〕

P1.5MOSI〔在系统编程用〕

P1.6MISO〔在系统编程用〕

P1.7SCK〔在系统编程用〕

P2口:P2口是一个具有内部上拉电阻的8位双向I/O口,P2输出缓冲器能驱动4个

TTL逻辑电平。对P2端口写“1〞时,内部上拉电阻把端口拉高,此时可以作为输入

口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流〔IIL〕。

在访问外部程序存储器或用16位地址读取外部数据存储器〔例如执行MOVX@DPTR〕

时,P2口送出高八位地址。在这种应用中,P2口使用很强的内部上拉发送1。在使用

8位地址〔如MOVX@RI〕访问外部数据存储器时,P2口输出P2锁存器的内容。

在flash编程和校验时,P2口也接收高8位地址字节和一些控制信号。

P3口:P3口是一个具有内部上拉电阻的8位双向I/O口,p3输出缓冲器能驱动4个

TTL逻辑电平。对P3端口写“1〞时,内部上拉电阻把端口拉高,此时可以作为输入

口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流〔IIL〕。

P3口亦作为ATM89C52特殊功能〔第二功能〕使用,如下表所示。

在flash编程和校验时,P3口也接收一些控制信号。

端口引脚第二功能

P3.0RXD(串行输入口)

P3.1TXD(串行输出口)

P3.2INTO(外中断0)

P3.3INT1(外中断1)

P3.4TO(定时/计数器0)

P3.5T1(定时/计数器1)

P3.6WR(外部数据存储器写选通)

P3.7RD(外部数据存储器读选通)

此外,P3口还接收一些用于FLASH闪存编程和程序校验的控制信号。

RST——复位输入。当振荡器工作时,RST引脚出现两个机器周期以上高电平将是单片机复位。

ALE/PROG——当访问外部程序存储器或数据存储器时,ALE〔地址锁存允许〕输出脉冲用于锁存地址的低8位字节。一般情况下,ALE仍以时钟振荡频率的1/6输出固定的脉冲信号,因此它可对外输出时钟或用于定时目的。要注意的是:每当访问外部数据存储器时将跳过一个ALE脉冲。

对FLASH存储器编程期间,该引脚还用于输入编程脉冲〔PROG〕。

如有必要,可通过对特殊功能存放器〔SFR〕区中的8EH单元的D0位置位,可禁止ALE操作。该位置位后,只有一条MOVX和MOVC指令才能将ALE激活。此外,该引脚会被微弱拉高,单片机执行外部程序时,应设置ALE禁止位无效。

PSEN——程序储存允许〔PSEN〕输出是外部程序存储器的读选通信号,当AT89C52由外部程序存储器取指令〔或数据〕时,每个机器周期两次PSEN有效,即输出两个脉冲,在此期间,当访问外部数据存储器,将跳过两次PSEN信号。

EA/VPP——外部访问允许,欲使CPU仅访问外部程序存储器〔地址为0000H-FFFFH〕,EA端必须保持低电平〔接地〕。需注意的是:如果加密位LB1被编程,复位时内部会锁存EA端状态。

如EA端为高电平〔接Vcc端〕,CPU那么执行内部程序存储器的指令。

FLASH存储器编程时,该引脚加上+12V的编程允许电源Vpp,当然这必须是该器件是使用12V编程电压Vpp。

振荡器特性:

XTAL1和XTAL2分别为反向放大器的输入和输出。该反向放大器可以配置为片内振荡器。石晶振荡和陶瓷振荡均可采用。如采用外部时钟源驱动器件,XTAL2应不接。有余输入至内部时钟信号要通过一个二分频触发器,因此对外部时钟信号的脉宽无任何要求,但必须保证脉冲的上下电平要求的宽度。

1.2LED数码管显示器概述

本设计中采用的是共阴两位数码管

共阴数码管是指将所有发光二极管的阴极接到一起形成公共阴极(COM)的数码管。共阴数码管在应用时应将公共极COM接到地线GND上,当某一字段发光二极管的阳极为高电平时,相应字段就点亮。当某一字段的阳极为低电平时,相应字段就不亮。

段码位

D7

D6

D5

D4

D6

D2

D1

D0

显示段

pd

g

f

e

d

e

b

a

字型

共阳极段码

共阴极段码

字型

共阳极段码

0

C0H

3FH

9

90H

1

F9H

06H

A

88H

2

A4H

5BH

B

83H

3

B0H

4FH

C

C6H

4

99H

66H

D

A1H

5

92H

6DH

E

86H

6

82H

7DH

F

84H

7

F8H

07H

空白

FFH

8

80H

7FH

P

8CH

数码管的驱动方式:静态显示驱动:静态驱动也称直流驱动。静态驱动是指每个数码管的每一个段码都由一个单片机的I/O端口进行驱动,或者使用如BCD码二-十进制译码器译码进行驱动。静态驱动的优点是编程简单,显示亮度高,缺点是占用I/O端口多,如驱动5个数码管静态显示那么需要5×8=40根I/O端口来驱动,要知道一个89S51单片机可用的I/O端口才32个呢:〕,实际应用时必须增加译码驱动器进行驱动,增加了硬件电路的复杂性。

1.3其他元器件介绍及参数

晶振,电容,电阻排,电解电容,开关,asp接口,按键

晶振采用频率为12MHZ,连接的两个电容为22pF;电解电容为10uF;

2单片机的最小系统与复位电路

2.1最小系统

最小系统就是单片机在发挥具体测控功能时所必须的组成局部。为复位电路,振荡电路,单片机,I/O口,电源组成。

时钟频率电路的设计

单片机内部有一个时钟振荡电路,只要外界一个振荡源就能产生一定的时钟信号送到单片机内部的各个单元,决定单片机的工作速度。时钟电路如以下图:

外部震荡源电路

一般选用石英晶体振荡器。此电路在加电大约延迟10ms后振荡器起振,在XTAL2引脚产生幅度为3V左右的正弦波时钟信号,其振荡频率主要由石英晶振的频率确定。电路中两个电容C1、C2的作用有两个:一是帮助振荡器起振;二是对振荡器的频率进行微调。C1、C2的典型值为30pf。

单片机在工作时,有内部振荡器产生或由外直接输入的送至内部控制逻辑单元的时钟信号的周期称为时钟周期。其大小是时钟信号频率的倒数,f表示。图中的时钟频率为12MHz,即f=12MHz,那么时钟周期为1/12us。

2.2复位电路设计

单片机的第九脚RES为硬件复位端,只要将该端持续4个机器周期的高电平即可实现复位,复位后单片机的各状态都恢复到初始化状态,其电路图如下:

图中由按键S17以及电解电容C10构成了高电平复位或S18以及C11构成了低电平复位电路。其中通过跳线J13选择由于单片机是高电平复位还是低电平复位。所以当按下S17时,单片机的9脚RESET管脚处于高电平,此时单片机处于复位状态。当上电后,由于电容缓慢充电,单片机的9脚电压逐步由高向低转化,经过一段时间后,单片机的9脚处于稳定的低电平状态,此时单片机上复位完毕,系统程序从0000H开始执行。

值得注意的是,在设计当中使用到了硬件复位和软件复位两种功能,由上面的硬件复位后的各状态可知存放器及存储器的值都恢复到了初始值,而前面的功能介绍中提到的倒计时时间的记忆功能。

单片机的第九脚RES为硬件复位端,只要将该端持续4个机器周期的高电平即可实现复位,复位后单片机的各状态都恢复到初始化状态。

2.3显示电路设计

显示功能与硬件关系极大,当硬件固定后,如何在不引起操作者误解的前提下提供尽可能丰富的信息,全靠软件来解决。

数码管显示电路如以下图:

在这里我们使用的是七段数码管显示,通常在显示上我们采用的方法一般包括两种:一种是静态显示,另一种是动态显示。其中静态显示的特点是显示稳定不闪烁,程序编写简单,但占用端口资源多;动态显示的特点是显示稳定性没静态好,程序编写复杂,但是相对静态显示而言占用端口资源少。在本设计中根据实际情况采用的是动态显示方法。

2.4总体硬件电路设计

本设计系统由单片机I/O口扩展系统、LED数码显示系统、按键系统、复位系统等几大局部组成。软件上采用汇编语言编程,经过整机调试,实现了99秒倒计时及复位功能。

3keil软件使用

Keil软件用于对程序的调试和编辑。其界面如下:

Keil界面

用到了Keil软件,集成调试环境,集成了编辑器、译码器、调试器,支持软件模拟,支持工程管理功能强大的观察窗口,支持所有的数据类型。树状结构显示,一目了然,支持ASM〔汇编〕、C语言多模块源程序混合调试,在直接修改、编译、调试源程序,错误指令定位。功能很强大,

4程序框图

开始

程序初始化

是否产生外部中断

是否进入工作状态

进入设定状态

判断是否足够1秒

倒计时时间减1

是否到0

返回

设定子程序流程图〔按键处理〕按S3

初始化

按S17

暂停

返回

5软件程序

ORG0000H

LJMPMAIN

ORG0003H

LJMPINTR0

ORG000BH

LJMPINTRR1

ORG0100H

MAIN:

MOV20H,#99

MOV21H,#9

MOV22H,#9

MOVTH0,#8AH

MOVTL0,#0D8H

MOVTMOD,#01H

MOVR7,#20

SETBET0;T0中断允许

SETBEA;CPU中断允许〔总允许〕位

SETBIT0;开中断〔边沿触发〕

SETBEX0;INT0中断允许

SETBTR0

DISPLAY:

MOVR1,#01H

MOVDPTR,#TAB

MOVA,21H

MOVCA,@A+DPTR

MOVP0,A

MOVP2,R1

LCALLD10ms

MOVR1,#0

MOVDPTR,#TAB

MOVA,22H

MOVCA,@A+DPTR

MOVP0,A

MOVP2,R1

LCALLD10ms

JMPDISPLAY

;递减,溢出那么清0

INTR1:DJNZR7,L3

DEC20H

MOVA,20H

CLRC

SUBBA,#0

JZL2

;TOBCD转码

MOVA,20H

MOVB,#10

DIVAB

MOV21H,B

MOV22H,A

MOVR7,#20

JMPL3

L2:MOV20H,#99

MOV21H,#9

MOV22H,#9

MOVR7,#20

L3:MOVTH0,#8AH

MOVTL0,#0D8H

RETI

;延时程序

D10ms:MOVR6,#10

D1ms:MOVR5,#20

DL:NOP

NOP

DJNZR5,DL

DJNZR6,D1ms

RET

INTR0:CPLTR0

RETI

;显示码表

TAB:DB3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH

DB6FH,77H,7CH,39H,5EH,79H,71H,40H,00H

END

6教材及参考书

[1]胡汉才,单片机原理及其接口技术,清华大学出版社

[2]邹逢兴,微型计算机接口原理与技术,国防科技大学出版社

[3]阎凯,微型计算机硬件设计原理分析与维修,科学出版社

[4]何立民,MCS-51系列单片机应用系统设计系统配置与接口技术,北京航空航天大学出版社

[5]沈德金,MCS-51系列单片机接口电路与应用程序实例,北京航空航天大学出版社

7感悟

回忆起此次单片机课程设计,我仍感慨颇多,学到了很多的东西。同时不仅稳固了以前所学过的知识,而且还学到了很多在书本上所没有学到过的知识。在实际设计中才发现,书本上理论性的东西与在实际运用中的还是有一定的出入的,所以有些问题不但要深入地理解,而且要不断地更正以前的错误思维。一切问题必须要靠自己一点一滴的解决,而在解决的过程当中你会发现自己在飞速的提升。对于单片机设计,其硬件电路是比较简单的,主要是解决程序设计中的问题,而程序设计是一个很灵活的东西,提升了解决问题的逻辑思维和创新能力和团队合作精神,它才是一个设计的灵魂所在。因此可以说

温馨提示

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

评论

0/150

提交评论