课程设计.docx

上传人:b****1 文档编号:15030623 上传时间:2023-06-29 格式:DOCX 页数:18 大小:150.22KB
下载 相关 举报
课程设计.docx_第1页
第1页 / 共18页
课程设计.docx_第2页
第2页 / 共18页
课程设计.docx_第3页
第3页 / 共18页
课程设计.docx_第4页
第4页 / 共18页
课程设计.docx_第5页
第5页 / 共18页
课程设计.docx_第6页
第6页 / 共18页
课程设计.docx_第7页
第7页 / 共18页
课程设计.docx_第8页
第8页 / 共18页
课程设计.docx_第9页
第9页 / 共18页
课程设计.docx_第10页
第10页 / 共18页
课程设计.docx_第11页
第11页 / 共18页
课程设计.docx_第12页
第12页 / 共18页
课程设计.docx_第13页
第13页 / 共18页
课程设计.docx_第14页
第14页 / 共18页
课程设计.docx_第15页
第15页 / 共18页
课程设计.docx_第16页
第16页 / 共18页
课程设计.docx_第17页
第17页 / 共18页
课程设计.docx_第18页
第18页 / 共18页
亲,该文档总共18页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

课程设计.docx

《课程设计.docx》由会员分享,可在线阅读,更多相关《课程设计.docx(18页珍藏版)》请在冰点文库上搜索。

课程设计.docx

课程设计

 

广东工业大学华立学院

课程设计(论文)

 

课程名称______________________

题目名称______________________

学生学部(系)_________________

专业班级______________________

学   号______________________

学生姓名______________________

指导教师______________________

 

年月日

 

摘要:

用AT89C51设计一个3位LED数码显示“秒表”,显示时间为0.0~59.9秒,每秒自动加一。

另设计一个“开始”按键和一个“复位”按键,再增加一个“暂停”按键。

按键说明:

按“开始”按键,开始计数,数码管显示从0.0开始每秒自动加一;按“复位”按键,系统清零,数码管显示0.0;按“暂停”按键,系统暂停计数,数码管显示当时的计数。

 

关键词:

单片机、秒表、单片机设计、LED

1.实验内容及要求4

1.1.实验内容4

1.2.实验要求4

2.实验目的4

3.设计方案5

4.设计所需硬件(模拟硬件)5

5.硬件介绍5

5.1.LED数码显示管5

5.1.1.数码管结构5

5.1.2.数码管使用条件:

6

5.2.AT89C51芯片7

5.2.1.AT89C51简介7

5.2.2.AT89C51管脚说明7

6.设计电路原理图10

7.控制程序框图11

7.1.主程序框图11

7.2.100ms定时中断程序框图:

12

8.软件设计13

8.1.系统初始化程序13

8.2.定时/计数器0中断程序14

8.3.加1子程序15

8.4.LED显示子程序16

9.参考文献17

1.实验内容及要求

1.1.实验内容

设计一个单片机秒表,该秒表可显示0.0~59.9秒的时间。

进行相应的单片机硬件电路的设计并进行软件编程。

用AT89C51设计一个3位LED数码显示“秒表”,显示时间为0.0~59.9秒,每秒自动加一。

另设计一个“开始”按键和一个“复位”按键,再增加一个“暂停”按键。

按键说明:

按“开始”按键,开始计数,数码管显示从0.0开始每秒自动加一;按“复位”按键,系统清零,数码管显示0.0;按“暂停”按键,系统暂停计数,数码管显示当时的计数。

1.2.实验要求

了解8051芯片的的工作原理和工作方式,使用该芯片对LED数码管进行显示控制,实现用单片机的端口控制数码管,显示分、秒,并能用按钮实现秒表起动、停止、清零功能,精确到0.1秒。

要求选用定时器的工作方式,画出使用单片机控制LED数码管显示的电路图,并在实验箱实现其硬件电路,并编程完成软件部分,最后调试秒表起动、停止、清零功能。

2.实验目的

1、利用单片机定时器/计数器中断设计秒表,从而实现秒、十分之一秒的计时。

2、综合运用所学的《单片机原理与应用》理论知识,通过实践加强对所学知识的理解,具备设计单片机应用系统的能力。

3、通过本次课程设计加深对单片机掌握定时器、外部中断的设置和编程原理的全面认识复习和掌握,对单片机实际的应用作进一步的了解。

4、通过本次试验,增强自己的动手能力。

认识单片机在日常生活中的应用的广泛性,实用性。

3.设计方案

本实验利用单片机的定时器/计数器定时和记数的原理,通过采用proteus仿真软件来模拟实现。

模拟利用AT89C51单片机、LED数码管以及控件来控制秒表的计数以及计数的开启/暂停/继续与复位!

其中有两个数码管用来显示数据,一个数码管显示秒(两位),另一个数码管显示十分之一秒,十分之一秒的数码管计数从0~9,满十进一后显示秒的数码管的数字加一,并且十分之一秒显示清零重新从零计数。

计秒数码管采用两位的数码管,当计数超过范围是所有数码管全部清零重新计数。

4.设计所需硬件(模拟硬件)

AT89C51单片机芯片一个、LED数码显示管三个,低压电源、开关(按钮)两个、电阻、电容及导线若干。

采用proteus软件进行模拟设计及调试工作。

5.硬件介绍

5.1.LED数码显示管

5.1.1.数码管结构

数码管由8个发光二极管构成,通过不同的组合可用来显示数字09、字符AF、H、L、P、R、U、Y、符号“”及小数点,如图4.1(a)所示。

数码管七段管引脚图,如图4.1(b)所示。

图4.1(a)

5.2.1数码管工作原理

共阳极数码管的8个发光二极管的阳极(二极管正端)连接在一起,通常,公共阳极接高电平(一般接电源),其它管脚接段驱动电路输出端。

当某段驱动电路的输出端为低电平时,则该端所连接的字段导通并点亮,根据发光字段的不同组合可显示出各种数字或字符。

此时,要求段驱动电路能吸收额定的段导通电流,还需根据外接电源及额定段导通电流来确定相应的限流电阻。

共阴极数码管的8个发光二极管的阴极(二极管负端)连接在一起,通常,公共阴极接低电平(一般接地),其它管脚接段驱动电路输出端,当某段驱动电路的输出端为高电平时,则该端所连接的字段导通并点亮,根据发光字段的不同组合可显示出各种数字或字符。

此时,要求段驱动电路能提供额定的段导通电流,还需根据外接电源及额定段导通电流来确定相应的限流电阻。

5.1.2.数码管使用条件:

a、段及小数点上加限流电阻

b、使用电压:

段:

根据发光颜色决定;  小数点:

根据发光颜色决定

c、使用电流:

静态:

总电流80mA(每段10mA);动态:

平均电流4-5mA峰值电流100mA 

5.2.AT89C51芯片

5.2.1.AT89C51简介

基于单片机控制的秒表仿真电路图AT89C51是一种带4K字节闪烁可编程可擦除只读存储器(FPEROM—FlashProgrammableandErasableReadOnlyMemory)的低电压,高性能CMOS8位微处理器,俗称单片机。

AT89C2051是一种带2K字节闪烁可编程可擦除只读存储器的单片机。

单片机的可擦除只读存储器可以反复擦除100次。

该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。

由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,AT89C2051是它的一种精简版本。

AT89C单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。

5.2.2.AT89C51管脚说明

AT89C51单片机外部引脚图

 

  VCC:

供电电压。

  GND:

接地。

  P0口:

P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。

当P1口的管脚第一次写1时,被定义为高阻输入。

P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。

在FIASH编程时,P0口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。

  P1口:

P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。

P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。

在FLASH编程和校验时,P1口作为第八位地址接收。

  P2口:

P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。

并因此作为输入时,P2口的管脚被外部拉低,将输出电流。

这是由于内部上拉的缘故。

P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。

在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。

P2口在FLASH编程和校验时接收高八位地址信号和控制信号。

  P3口:

P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。

当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。

作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。

  P3口也可作为AT89C51的一些特殊功能口,如下表所示:

  口管脚备选功能

  P3.0RXD(串行输入口)

  P3.1TXD(串行输出口)

  P3.2/INT0(外部中断0)

  P3.3/INT1(外部中断1)

  P3.4T0(记时器0外部输入)

  P3.5T1(记时器1外部输入)

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

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

  P3口同时为闪烁编程和编程校验接收一些控制信号。

  RST:

复位输入。

当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。

  ALE/PROG:

当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。

在FLASH编程期间,此引脚用于输入编程脉冲。

在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。

因此它可用作对外部输出的脉冲或用于定时目的。

然而要注意的是:

每当用作外部数据存储器时,将跳过一个ALE脉冲。

如想禁止ALE的输出可在SFR8EH地址上置0。

此时,ALE只有在执行MOVX,MOVC指令是ALE才起作用。

另外,该引脚被略微拉高。

如果微处理器在外部执行状态ALE禁止,置位无效。

  /PSEN:

外部程序存储器的选通信号。

在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。

但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。

  /EA/VPP:

当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。

注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。

在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。

  XTAL1:

反向振荡放大器的输入及内部时钟工作电路的输入。

  XTAL2:

来自反向振荡器的输出。

6.设计电路原理图

 

7.控制程序框图

7.1.主程序框图

 

7.2.100ms定时中断程序框图:

 

8.软件设计

8.1.系统初始化程序

ORG0000H

START:

AJMPMAIN

ORG000BH

AJMPCTC0

ORG0100H

MAIN:

MOVSP,#60H

MOVDPTR,#0FF23H

MOVA,#88H

MOVX@DPTR,AMAIN1:

MOVR0,#79H

MOVR7,#06H

ML1:

MOV@R0,#00H

INCR0

DJNZR7,ML1

MOVTMOD,#01H

MOVTL0,#0B0H

MOVTH0,#3CH

SETBEA

CLRET0

CLRTR0

ML0:

LCALLDISP

MOVP0,#0FFH

JNBP1.0,KEY0

JNBP1.1,KEY1

JNBP1.2,KEY2

SJMPML0

KEY0:

SETBET0

SETBTR0

SJMPML0

KEY1:

CLRET0

CLRTR0

SJMPML0

KEY2:

CLREA

SJMPMAIN1

8.2.定时/计数器0中断程序

ORG0200H

CTC0:

PUSHPSW

PUSHACC

SETBPSW.3

MOVTL0,#0B0H

MOVTH0,#3CH

MOVR0,#79H

MOVA,@R0

INCA

MOV@R0,A

XRLA,#20

JNZRETO

CLRA

MOV@R0,A

MOVR0,#7BH

ACALLDAAD1

MOVA,R2

XRLA,#60H

JNZRETO

ACALLCLR0

MOVR0,#7DH

ACALLDAAD1

MOVA,R2

XRLA,#60H

JNZRETO

ACALLCLR0

MOVR0,#7EH

MOVA,@R

INCA

MOV@R0,A

XRLA,#0AH

JNZRETO

ACALLCLR0

RETO:

POPACC

POPPSW

RETI

8.3.加1子程序

DAAD1:

MOVA,@R0

DECR0

SWAPA

ORLA,@R0

ADDA,#01H

DAA

MOVR2,A

ANLA,#0FH

MOV@R0,A

MOVA,R2

INCR0

ANLA,#0F0H

SWAPA

MOV@R0,A

RET

CLR0:

CLRA

MOV@R0,A

DECR0

MOV@R0,A

RET

8.4.LED显示子程序

ORG0300H

DISP:

MOVR0,#79H

MOVR3,#0FEH

LD0:

MOVA,R3

MOVDPTR,#0FF20H

MOVX@DPTR,A

MOVDPTR,#SEG

MOVA,@R0

DIR0:

MOVCA,@A+DPTR

MOVDPTR,#0FF21H

DIR1:

MOVX@DPTR,A

ACALLDL

INCR0

MOVA,R3

JNBACC.5,LD1

RLA

MOVR3,A

LJMPLD0

LD1:

RET

9.参考文献

1、胡汉才编著的《单片机原理及其接口技术》清华大学出版社

2、苏家健等编的《单片机原理及应用技术》高等教育出版社 

3、DVCC系列单片机微机仿真实验系统实验指导书

4、万光毅严义编著《单片机实验与实践教程》

通过本次课程设计,我对单片机的基本知识和基本编写程序有了更深的了解,同时也尝试着用自己所学的知识应用到实践中。

在这次课程设计中,我感受最深刻得就是对已学习的模拟电子技术、数字电子技术和单片机的综合应用。

必须要把这几门课学好,否则就无从下手。

这次课程设计不仅给我们提供了一个很好的展现应用自己所掌握的知识的平台,又是检验自己所学知识的一次考核。

当然,在设计的过程中也不可避免的遇到了很多的问题。

比如说在程序设计过程中,不善于利用或参考已有程序并加以修改,得到自己想要的能够实现硬件系统功能程序。

这样浪费很多精力和时间在上面。

尽管遇到困难,但是通过网络、书籍等资源,这些困难都可以解决。

同时,通过这次设计,提高了自己的动手能力,让自己在单片机应用这方面也有了些许经验。

下面就谈谈我个人的经验。

在单片机系统设计时,必须先确定系统的技术要求,这是系统设计的依据和出发点。

在设计时遵循从整体到局部的原则,把复杂的问题分解成若干个比较简单,容易解决的问题,然后各个击破。

设计开始之后要根据设计要求提出设计方案,绘制硬件和软件的总框图,将总任务分解成若干个子任务,使得子任务足够简单,能够直接或者容易实现为止。

最后在调试程序时按各个功能模块进行调试。

总之,在这次课程设计中让我学到了很多,知道如何运用所学的知识应用到实践中,提高自己的动手能力和查找资料的能力。

 

2010年12月12日

 

年月日

 

年月日

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 经管营销 > 经济市场

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2