单片机原理及系统课程设计.docx

上传人:b****6 文档编号:8823715 上传时间:2023-02-01 格式:DOCX 页数:21 大小:257.04KB
下载 相关 举报
单片机原理及系统课程设计.docx_第1页
第1页 / 共21页
单片机原理及系统课程设计.docx_第2页
第2页 / 共21页
单片机原理及系统课程设计.docx_第3页
第3页 / 共21页
单片机原理及系统课程设计.docx_第4页
第4页 / 共21页
单片机原理及系统课程设计.docx_第5页
第5页 / 共21页
点击查看更多>>
下载资源
资源描述

单片机原理及系统课程设计.docx

《单片机原理及系统课程设计.docx》由会员分享,可在线阅读,更多相关《单片机原理及系统课程设计.docx(21页珍藏版)》请在冰豆网上搜索。

单片机原理及系统课程设计.docx

单片机原理及系统课程设计

明德学院

 

单片机原理及系统课程设计

 

院系:

明德学院机电系

年级:

2013级

专业:

机械设计制造及自动化

班级:

机电13

学号:

姓名:

指导教师:

目录

一、设计题目和要求:

2

二、设计目的:

2

三、设计内容:

2

1.单片机的中央处理器的功能4

1.1处理器4

1.2运算器4

1.3控制器5

1.4存储器5

1.5外围接口电路5

2.引脚排列及功能5

2.1I/O口线5

2.2控制信号线6

2.3外部晶振引线6

3.存储器组织和特殊功能寄存器6

3.1时钟电路和工作时序6

3.2LED数码管的结构和工作原理7

3.3设计思路(方案)9

3.4系统总体方案及硬件设计10

3.5软件设计13

3.6秒表汇编程序14

3.7Protues软件仿真17

四、课程设计心得体会18

五、参考文献19

附件1:

秒表原理图(实际接线图)20

附件2:

仿真图121

附件3:

仿真图222

一、设计题目和要求:

1.题目三:

秒表

应用AT89C51的定时器设计一个2位的LED数码显示作为“秒表”:

显示时间为00~99s,每秒自动加1,设计一个“开始”键,按下“开始”键秒表开始计时。

设计一个“复位”键,按下“复位”键后,秒表从0开始计时。

二、设计目的:

1.进一步掌握AT89C51单片机的结构和工作原理;

2.掌握单片机的接口技术及外围芯片的工作原理及控制方法;

3.进一步掌握单片机程序编写及程序调试过程,掌握模块化程序设计方法;

4.掌握PROTEUS仿真软件的使用方法;

5.掌握LED数码管原理及使用方法。

6.掌握定时器、外部中断的设置和编程原理。

7.通过此次课程设计能够将单片机软硬件结合起来,对程序进行编辑,校验。

8.该课程设计通过单片机的定时器/计数器定时和计数原理,设计简单的计时器系统,拥有正确的计时、暂停、清零、复位功能,并同时可以用数码管显示。

 

三、设计内容:

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

AT89C51单片机的主要工作特性:

·内含4KB的FLASH存储器,擦写次数1000次;

·内含28字节的RAM;

·具有32根可编程I/O线;

·具有2个16位可编程定时器;

·具有6个中断源、5个中断矢量、2级优先权的中断结构;

·具有1个全双工的可编程串行通信接口;

·具有一个数据指针DPTR;

·两种低功耗工作模式,即空闲模式和掉电模式;

·具有可编程的3级程序锁定定位;

AT89C51的工作电源电压为5(1±0.2)V且典型值为5V,最高工作频率为24MHz.

AT89C51各部分的组成及功能:

外部中断

TXD

RXD

P0P1P2P3

扩展控制

内部总线

 

1.单片机的中央处理器的功能

1.1处理器

单片机的中央处理器(CPU)是单片机的核心,完成运算和操作控制,主要包括运算器和控制器两部分。

地址寄存器

片内ROM

PSEN

ALE

EA

RST

XTAL1

XTAL2

振荡器

定时及

控制

逻辑

指令译码器

指令寄存器

程序计数器

PC

PC增量器

 

暂存器1

B寄存器

ACCC

 

暂存器2

PSW

ALU

 

1.2运算器

运算器主要用来实现算术、逻辑运算和位操作。

其中包括算术和逻

 

辑运算单元ALU、

单片机的中央处理器(CPU)

(1)ALU是运算电路的核心,实质上是一个全加器,完成基本的算术和逻辑运算。

算术运算包括加、减、乘、除、增量、减量、BCD码运算;逻辑运算包括“与”、“或”、“异或”、左移位、右移位和半字节交换,以及位操作中的位置位、位复位等。

暂存器1和暂存器2是ALU的两个输入,用于暂存参与运算的数据。

ALU的输出也是两个:

一个是累加器,数据经运算后,其结果又通过内部总线返回到累加器;另一个是程序状态字PSW,用于存储运算和操作结果的状态。

1.3控制器

控制器是识别指令并根据指令性质协调计算机内各组成单元进行工作的部件,主要包括程序计数器PC、PC增量器、指令寄存器、指令译码器、定时及控制逻辑电路等,其功能是控制指令的读入、译码和执行,并对指令执行过程进行定时和逻辑控制。

AT89C51单片机中,PC是一个16位的计数器,可对64KB程序存储器进行寻址。

复位时PC的内容是0000H.

1.4存储器

单片机内部的存储器分为程序存储器和数据存储器。

AT89C51单片机的程序存储器采用4KB的快速擦写存储器FlashMemory,编程和擦除完全是电器实现。

1.5外围接口电路

AT89C51单片机的外围接口电路主要包括:

4个可编程并行I/O口,1个可编程串行口,2个16位的可编程定时器以及中断系统等。

AT89C51的工作原理:

2.引脚排列及功能

AT89C51的封装形式有PDIP,TQFP,PLCC等,现以PDIP为例。

2.1I/O口线

·P0口8位、漏极开路的双向I/O口。

当使用片外存储器及外扩I/O口时,P0口作为低字节地址/数据复用线。

在编程时,P0口可用于接收指令代码字节;程序校验时,可输出指令字节。

·P1口8位、准双向I/O口,具有内部上拉电阻。

P1口是为用户准备的I/O双向口。

在编程和校验时,可用作输入低8位地址。

用作输入时,应先将输出锁存器置1。

P1口可驱动4个TTL负载。

·P28位、准双向I/O口,具有内部上拉电阻。

当使用外存储器或外扩I/O口时,P2口输出高8位地址。

在编程和校验时,P2口接收高字节地址和某些控制信号。

·P38位、准双向I/O口,具有内部上拉电阻。

P3口可作为普通I/O口。

用作输入时,应先将输出锁存器置1。

在编程/校验时,P3口接收某些控制信号。

它可驱动4个TTL负载。

2.2控制信号线

·RST复位输入信号,高电平有效。

在振荡器稳定工作时,在RST脚施加两个机器周期以上的高电平,将器件复位。

·EA/VPP外部程序存储器访问允许信号EA.

当EA信号接地时,对ROM的读操作限定在外部程序存储器,地址为0000H-FFFFH;当EA接VCC时。

·PSEN片外程序存储器读选通信号PSEN,低电平有效。

在片外程序存储器取指期间,当PSEN有效时,程序存储器的内容被送至P0口;在访问外部RAM时,PSEN无效。

  

·ALE/PROG低字节锁存信号ALE.在系统扩展时,ALE的下降沿将P0口输出的低8位地址锁存在外接的地址锁存器中,以实现低字节地址和数据的分时传送。

2.3外部晶振引线

·XTAL1片内振荡器反向放大器和时钟发生线路的输入端。

使用片内振荡器时,连接外部石英晶体和微调电容。

·XTAL2片内振荡器反相放大器的输出端。

当使用片内振荡器时,外接石英晶体和微调电容。

3.存储器组织和特殊功能寄存器

AT89C51的存储器将程序存储器和数据存储器分开,并有各自的存储空间和访问指令。

它有4个存储空间:

片内存储器、片外存储器、片内数据存储器及片外存储器。

3.1时钟电路和工作时序

(1)

振荡器

振荡器电路原理

Rf

XTAL1

PD

&

÷6

÷3

Q

÷2

Q

 

(2)振荡电路的接法

 

外部振荡器信号

NC

XTAL2

XTAL1

GND

C1

C2

XTAL2

XTAL1

CND

 

3.2LED数码管的结构和工作原理

LED数码管(LEDSegmentDisplays)是由多个发光二极管封装在一起组成“8”字型的器件,引线已在内部连接完成,只需引出它们的各个笔划,公共电极。

LED数码管常用段数一般为7段有的另加一个小数点,还有一种是类似于3位“+1”型。

位数有半位,1,2,3,4,5,6,8,10位等等....,LED数码管根据LED的接法不同分为共阴和共阳两类,了解LED的这些特性,对编程是很重要的,因为不同类型的数码管,除了它们的硬件电路有差异外,编程方法也是不同的。

长等。

下面将介绍常用LED数码管内部引脚图。

图1这是一个7段两位带小数点10引脚的LED数码管

 

图2引脚定义 

  每一笔划都是对应一个字母表示DP是小数点.  

数码管分为共阳极的LED数码管、共阴极的LED数码管两种。

下图例举的是共阳极的LED数码管,共阳就是7段的显示字码共用一个电源的正。

led数码管原理图示意:

 

 

图3引脚示意图  

从上图可以看出,要是数码管显示数字,有两个条件:

1、是要在VT端(3/8脚)加正电源;2、要使(a,b,c,d,e,f,g,dp)端接低电平或“0”电平。

这样才能显示的。

 

共阳极LED数码管的内部结构原理图图4:

 

 图4共阳极LED数码管的内部结构原理图

共阴极LED数码管的内部结构原理图:

  

 

图5共阴极LED数码管的内部结构原理图

 

表1.1显示数字对应的二进制电平信号

 

LED数码管要正常显示,就要用驱动电路来驱动数码管的各个段码,从而显示出我们要的数位,因此根据LED数码管的驱动方式的不同,可以分为静态式和动态式两类。

A、静态显示驱动:

静态驱动也称直流驱动。

静态驱动是指每个数码管的每一个段码都由一个单片机的I/O口进行驱动,或者使用如BCD码二-十进位转换器进行驱动。

静态驱动的优点是编程简单,显示亮度高,缺点是占用I/O口多,如驱动5个数码管静态显示则需要5×8=40根I/O口来驱动,要知道一个89S51单片机可用的I/O口才32个呢。

 

B、动态显示驱动:

数码管动态显示介面是单片机中应用最为广泛的一种显示方式之一,动态驱动是将所有数码管的8个显示笔划"a,b,c,d,e,f,g,dp"的同名端连在一起,另外为每个数码管的公共极COM增加位选通控制电路,位选通由各自独立的I/O线控制,当单片机输出字形码时,所有数码管都接收到相同的字形码,但究竟是那个数码管会显示出字形。

3.3设计思路(方案)

该实验要求进行计时并在数码管上显示时间,则可利用DVCC系列单片机微机仿真实验系统中的芯片8032(芯片的功能类似于芯片AT89C51,其管脚功能也和AT89C51的管脚功能类似)中的P3.2管脚做为外部中断0的入口地址,并实现“开始”按键的功能;将P3.3做为外部中断1的入口地址,并实现“清零”按键的功能;将P3.0做为数据信号DATA输入的入口地址;将P3.1做为时钟信号CLK输入的入口地址。

定时器T0作为每秒加一的定时器。

3.4系统总体方案及硬件设计

3.4.1系统总体方案

本系统采用AT89C51单片机为中心器件,利用其定时器/计数器定时计数的原理,结合硬件电路如电源电路,晶振电路,复位电路和显示电路,以及一些按键电路等来设计计数器,硬件系统利用Protues强大的功能来实现,简单易于观察,在仿真中就可以观察到实际的工作状态。

 

3.4.2硬件电路设计

1)晶振电路

MCS-51单片机内部的晶振电路是一个高增益反相放大器,引用XTAL1和XTAL2分别为反向振荡放大器的输入及内部时钟工作电路的输入和来自反向振荡器的输出,该反向放大器可以配置为片内振荡器。

这里,我们选用51单片机12MHZ的内部振荡方式,电路如下:

电容器C1、C2起稳定振荡频率,快速起振的作用,C1和C2可以在20-100PF之间取值,这里取20PF,接线时要使晶体振荡器X1尽可能接近单片机。

2)按键部分电路接线

在按键电路中,我们可以在I/O口上直接按键,或者通过I/O口设计一个键盘,然后通过键盘扫描程序判断是否有按键按下等。

此系统是一个小系统,有足够的I/O口可以使用,为了使程序简化,我们采用按键电路,用部分P1口做开关,P1.0开始,P1.1暂停,P1.2清零,P1.3复位。

3)显示电路电路

显示电路我们采用的是数码管显示电路。

用2个共阴极LED显示,LED是七段式显示器,内部有7个条形发光二极管和1个小圆点发光二极管组成,根据各二极管的亮灭组合成字符。

在用数码管显示时,我们有静态和动态两种选择,静态显示程序简单,显示温度,但是占用端口比较多;动态显示所使用的端口比较少,可以节省单片机的I/O口。

在设计中,我们采用LED动态显示,用P0口驱动显示。

由于P0口的输出极是开漏电路,用它驱动时需要外接上拉电阻才能输出高电平。

3.5软件设计

3.5.1软件设计概述

在软件设计中,一般采用模块化的程序设计方法,它具有明显的优点,把一个多功能的复杂的程序划分成多个简单的、单一的程序模块,有利于程序的测试和调试,有利于程序的优化和分工,提高了程序的阅读性和可靠性,使程序的结构一目了然。

3.5.2程序流程图

Y

恢复,中断返回

1)系统主程序流程图2)定时器中断T0流程图

3.5.3子程序模块设计

1)显示精度为1秒程序

MAIN:

MOVR0,#20

MOVTMOD,#01H

MOVTH0,#3CH

MOVTL0,#0B0H

MOVDPTR,#TABLE

SETBEA

SETBET0

2)延时程序

DELAY:

;误差0us

MOVR6,#01H

DL0:

MOVR5,#61H

 

3.6秒表汇编程序

;***********************************************

;本程序实现秒表从0s计到99s

K_SBITP1.0;秒表开始控制位

Z_TBITP1.1;秒表暂停控制位

Q_LBITP1.2;秒表清零控制位

F_WBITP1.3;秒表复位控制位

SECONDEQU30H

TCNTEQU34H

ORG00H

SJMPSTART

ORG0BH

LJMPINT_T0

START:

MOVDPTR,#TABLE

MOVSECOND,#0

MOVTCNT,#0

MOVTMOD,#01H

SETBP1.0

SETBP1.1

SETBP1.2

SETBP1.3

JBK_S,$;秒表开始控制位

MOVTH0,#3CH;fosc=12MHz,定时50毫秒

MOVTL0,#0B0H

MOVIE,#82H

SETBTR0

;****************************************************

;对秒表的两位显示进行控制

A1:

LCALLDISPLAY

MOVA,SECOND

CJNEA,#99,A1;判断是否加到99秒

CLEAR:

MOVSECOND,#0

;***********************************************

;定时器中断服务程序,对秒计数

INT_T0:

JNBZ_T,ZT;秒表暂停控制位

NEXT:

MOVTH0,#3CH

MOVTL0,#0B0H

INCTCNT

MOVA,TCNT

CJNEA,#20,RETUNE;计时1秒用#20

INCSECOND

MOVTCNT,#0

MOVA,SECOND

CJNEA,#99,RETUNE

MOVSECOND,#0

RETUNE:

RETI

;******************************************

;显示控制子程序

DISPLAY:

JNBQ_L,CLEAR;秒表清零控制位

JNBF_W,START;秒表复位控制位

MOVA,SECOND;显示秒表的两位

MOVB,#10

DIVAB

CLRP3.6

MOVCA,@A+DPTR

MOVP0,A

LCALLDELAY

SETBP3.6

MOVA,B

CLRP3.7

MOVCA,@A+DPTR

MOVP2,A;片选信号

LCALLDELAY

SETBP3.7

ZT:

JNBK_S,NEXT;秒表暂停控制位

RET

TABLE:

DB3FH,06H,5BH,4FH,66H

DB6DH,7DH,07H,7FH,6FH

DELAY:

MOVR6,#10

D1:

MOVR7,#250

DJNZR7,$

DJNZR6,D1

RET

END

3.7Protues软件仿真

Protus仿真软件可以看做是构建了一个特殊的单片机系统,只要将所写程序的HEX文件导入该单片机系统,就可以它他一句句的执行所写的指令,也可以让它与Keil实现联调,程序有问题可以随时改,帮助快速调试程序。

 

四、课程设计心得体会

本文主要从软硬件两方面说明设计的总体思路和设计的实现过程,预期的设计目的是:

能够实现时钟的基本功能,正常显示分秒.在设计过程中,曾经遇到很多的障碍,设计图经过许多次的修改最后才定下来,但在调试的过程中又出现了问题,需要修改原理图;比如硬件的布局,要作到使连接的线路最短,并不没有想象中的那么容易;并且对汇编语言有了更深刻的了解。

设计过程中遇到程序设计问题,网上找到视频教程学习中断程序的编写,以及查阅C语言课本得以解决。

通过网上视频学习了Proteus,对Proteus的运用有了一定的了解,通过编程对C语言也学到了不少,更重要的是,更进一步理解了单片机的功能与用法。

五、参考文献

●《单片机原理及接口技术》,高等教育出版社出版,李全钊、迟荣强等编著。

●《Proteus教程——电子线路设计、制板与仿真》,清华大学出版社出版,朱清慧、张凤蕊、翟天嵩、王志奎编著。

●《基于Proteus的80C51单片机实例教程》,电子工业出版社出版,李学礼主编。

●《51系列单片机应用与实践教程》,北京航空航天大学出版社出版,周向红主编。

●《单片机应用及技术》,电子工业出版社

●《单片机原理及应用》,基于Proteus单片机系统设计及应用,何宏、王红君、刘瑞安、张志宏编著。

附件1:

秒表原理图(实际接线图)

 

 

附件2:

仿真图1

 

附件3:

仿真图2

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

当前位置:首页 > 高等教育 > 农学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1