单片机课程设计.docx

上传人:b****2 文档编号:2258540 上传时间:2022-10-28 格式:DOCX 页数:21 大小:384.21KB
下载 相关 举报
单片机课程设计.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

单片机课程设计

目录

一、课题要求简介…………………………………………1

 

二、有关中断知识点回顾…………………………………6

三、设计方案………………………………………………7

四、硬件电路设计…………………………………………15

 

五、软件程序设计…………………………………………18

 

六、设计心得与体会………………………………………19

 

一、课题要求简介

设计要求:

以MCS51单片机为核心,辅以外围接口电路,实现一个外部中断响应、控制设计。

要求对外部4个硬件中断请求信号(下降沿信号),单片机能实时响应,并通过一位数码管分别显示1、2、3、4来反映中断信号来源。

控制软件设计与调试,包括中断系统相关初始化功能的设计、中断响应功能的实现以及显示程序的设计等。

二、有关中断知识点回顾

1.中断的定义

中断是指计算机暂时停止原程序执行转而为外部设备服务(执行中断服务程序),并在服务完后自动返回原程序执行的过程。

中断由中断源产生,中断源在需要时可以向CPU提出“中断请求”。

“中断请求”通常是一种电信号,CPU对这个电信号进行检测,一旦响应便可自动转入该中断源的中断服务程序执行,并在执行后自动返回原程序继续执行。

而且中断源不同,中断服务程序的功能也不同。

2.单片机的中断服务程序入口地址

表格2-1中断服务程序入口

3.中断请求源

图2-2中断请求

由图可见,MCS51中断系统共有5个中断请求源:

INT0*——外部中断请求0,中断请求信号由INT0*引脚输入,中断请求标志为IE0。

INT1*——外部中断请求1,中断请求信号由INT1*引脚输入,中断请求标志为IE1。

定时器/计数器T0计数溢出发出的中断请求,中断请求标志为TF0。

定时器/计数器T1计数溢出发出的中断请求,中断请求标志为TF1。

串行口中断请求,中断请求标志为发送中断TI或接收中断RI。

5个中断请求源的中断请求标志分别由TCON和SCON的相应位锁存。

4.TCON寄存器

为定时器/计数器的控制寄存器,字节地址为88H,可位寻址。

特殊功能寄存器TCON的格式如图所示。

图2-3TCON寄存器

TCON各标志位功能如下:

①TF1—定时器/计数器T1的溢出中断请求标志位。

当T1计数产生溢出时,由硬件使TF1置“1”,向CPU申请中断。

CPU响应TF1中断时,TF1标志由硬件自动清“0”,TF1也可由软件清“0”。

②TF0—定时器/计数器T0的溢出中断请求标志位,功能与TF1类似。

③IE1—外部中断请求1的中断请求标志位。

④IE0—外部中断请求0中断请求标志位,功能与IE1类似。

⑤IT1—选择外部中断请求1为跳沿触发还是电平触发。

IT1=0,电平触发方式,引脚上低电平有效,并把IE1置“1”。

转向中断服务程序时,由硬件自动把IE1清“0”。

IT1=1,跳沿触发方式,加到引脚上的外部中断请求输入信号电平从高到低的负跳变有效,并把IE1置“1”。

转向中断服务程序时,由硬件自动把IE1清“0”。

⑥IT0—选择外部中断请求0为跳沿触发方式还是电平触发方式,其意义与IT1类似。

5.SCON寄存器

串行口控制寄存器,字节地址为98H,可位寻址。

低二位锁存串行口的发送中断和接收中断的中断请求标志TI和RI,格式如图5-4所示。

图2-4SCON寄存器

各标志位的功能:

①TI—串行口的发送中断请求标志位。

每发送完一帧串行数据后,TI自动置“1”。

TI标志必须由软件清“0”。

②RI—串行口接收中断请求标志位。

串行口接收完一个串行数据帧,硬件自动使RI中断请求标志置“1”。

必须在中断服务程序中用指令对RI清“0”。

6.中断允许寄存器IE

MCS51的对各中断源的开放或屏蔽,是由中断允许寄存器IE控制的。

IE字节地址为A8H,可位寻址,格式如图所示。

图2-4中断允许寄存器IE

IE对中断的开放和关闭实现两级控制。

有一个总的开关中断控制位EA(IE.7位),EA=0时,所有的中断请求被屏蔽;EA=1时,开放中断,但5个中断源的中断请求是否允许,还要由IE中的低5位所对应的5个中断请求允许控制位的状态来决定。

IE中各位功能如下:

(1)EA—中断允许总开关控制位。

EA=0,所有的中断请求被屏蔽。

EA=1,所有的中断请求被开放。

(2)ES——串行口中断允许位。

ES=0,禁止串行口中断。

ES=1,允许串行口中断。

(3)ET1——定时器/计数器T1的溢出中断允许位。

ET1=0,禁止T1溢出中断。

ET1=1,允许T1溢出中断。

(4)EX1——外部中断1中断允许位。

EX1=0,禁止外部中断1中断。

EX1=1,允许外部中断1中断。

(5)ET0——定时器/计数器T0的溢出中断允许位。

ET0=0,禁止T0溢出中断。

ET0=1,允许T0溢出中断。

(6)EX0——外部中断0中断允许位。

EX0=0,禁止外部中断0中断。

EX0=1,允许外部中断0中断。

7.中断应用步骤及中断初始化

中断初始化应在产生中断请求前完成,一般放在主程序中,并常与主程序初始化综合考虑一起进行。

①开中断。

将控制寄存器IE中的中断控制位EA和相应的中断允许控制位置“1”。

②若是外中断,则要定义外中断触发方式,将控制寄存器TCON中相关的控制位置“1”。

③定义中断优先级。

将中断优先级控制寄存器IP中相关的控制位置“1”。

中断服务程序中除包含中断处理的程序段外,还包括以下几个方面的内容,编程时予以注意。

在相应的中断入口地址处设置一条跳转指令(SJMP、AJMP或LJMP),将中断服务程序转到合适的ROM空间。

若中断服务程序长度不大于8个字节时,可直接放置在中断入口地址处。

现场保护。

为减轻堆栈负担,保护现场的数据存储单元数量力求少。

CPU响应中断后,其硬件不能自动清除其中断请求标志位时,应考虑清除中断请求标志位的其他操作。

恢复现场最后一条指令必须是中断返回指令RETI。

8.有关单片机类型的引脚的介绍

(1)VCC(40脚):

+5V电源。

(2)VSS(20脚):

数字地。

(3)XTAL1(19脚):

片内振荡器反相放大器和时钟发生器电路输入端。

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

外接时钟源时,该脚接外部时钟振荡器的信号。

(4)XTAL2(18脚):

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

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

当使用外部时钟源时,本脚悬空。

(5)RST(RESET,9脚):

复位信号输入,在引脚加上持续时间大于2个机器周期的高电平,可使单片机复位。

正常工作,此脚电平应≤0.5V。

当看门狗定时器溢出输出时,该脚将输出长达96个时钟振荡周期的高电平。

(6)EA*/VPP(31脚):

引脚第一功能:

外部程序存储器访问允许控制端。

EA*=1,在PC值不超出0FFFH(即不超出片内4KBFlash存储器的地址范围)时,单片机读片内程序存储器(4KB)中的程序,但PC值超出0FFFH(即超出片内4KBFlash地址范围)时,将自动转向读取片外60KB(1000H-FFFFH)程序存储器空间中的程序。

EA*=0,只读取外部的程序存储器中的内容,读取的地址范围为0000H~FFFFH,片内的4KBFlash程序存储器不起作用。

VPP:

引脚第二功能,对片内Flash编程,接编程电压。

(7)ALE/PROG*(30脚):

ALE为CPU访问外部程序存储器或外部数据存储器提供地址锁存信号,将低8位地址锁存在片外的地址锁存器中。

此外,单片机正常运行时,ALE端一直有正脉冲信号输出,此频率为时钟振荡器频率fosc的1/6。

可用作外部定时或触发信号。

注意,每当AT89S51访问外部RAM时(执行MOVX类指令),要丢失一个ALE脉冲。

如需要,可将特殊功能寄存器AUXR(地址为8EH,将在后面介绍)的第0位(ALE禁止位)置1,来禁止ALE操作,但执行访问外部程序存储器或外部数据存储器指令“MOVC”或“MOVX”时,ALE仍然有效。

即ALE禁止位不影响对外部存储器的访问。

PROG*:

引脚第二功能,对片内Flash编程,为编程脉冲输入脚。

(8)PSEN*(29脚):

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

(9)①P0口:

8位,漏极开路的双向I/O口,当外扩存储器及I/O接口芯片时,P0口作为低8位地址总线及数据总线的分时复用端口。

P0口也可用作通用的I/O口,需加上拉电阻,这时为准双向口。

作为通用I/O输入,应先向端口写入1。

可驱动8个LS型TTL负载。

②P1口:

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

准双向I/O口,作为通用I/O输入时,应先向端口锁存器写1。

P1口可驱动4个LS型TTL负载。

P1.5/MOSI、P1.6/MISO和P1.7/SCK,可用于对片内Flash存储器串行编程和校验,它们分别是串行数据输入、输出和移位脉冲引脚。

③P2口:

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

当AT89S51扩展外部存储器及I/O口时,P2口作为高8位地址总线用,输出高8位地址。

P2口也可作为普通的I/O口使用。

当作为通用I/O输入时,应先向端口输出锁存器写1。

P2口可驱动4个LS型TTL负载。

④P3口:

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

可作为通用的I/O口使用。

作为通用I/O输入,应先向端口输出锁存器写入1。

可驱动4个LS型TTL负载。

图2-5单片机

 

三、设计方案

1、概述

设计包括硬件和软件两个部分。

就电路而言,即硬件由单片机、输入/输出设备、以及外围应用电路等组成,因实验箱上已经含有各部分电路,只需用导线对其进行正确的连接即可。

软件是各种工作程序的总称,通过硬件和软件实现设计需求。

 系统上电运行后,若需要复位,一般是通过手动复位来实现的。

通常采用手动复位和上电自动复位结合。

复位电路虽然简单,但其作用十分重要。

一个单片机系统能否正常运行,首先要检查是否能复位成功。

初步检查可用示波器探头监视RST引脚,按下复位键,观察是否有足够幅度的波形输出(瞬时的),还可以通过改变复位电路阻容值的方法进行检测。

 

2.Keil C51开发系统基本知识 

图3-1keilc51的运行程序

系统概述 :

Keil C51是美国Keil Software公司出品的51系列兼容单片机C语言软件开发系统,与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。

用过汇编语言后再使用C来开发,体会更加深刻。

 

Keil C51软件提供丰富的库函数和功能强大的集成开发调试工具,全Windows界面。

另外重要的一点,只要看一下编译后生成的汇编代码,就能体会到Keil C51生成的目标代码效率非常之高,多数语句生成的汇编代码很紧凑,容易理解。

在开发大型软件时更能体现高级语言的优势。

下面详细介绍Keil C51开发系统各部分功能和使用。

 

 Keil C51单片机软件开发系统的整体结构 C51工具包的整体结构,其中uVision与Ishell分别是C51 for Windows和for Dos的集成开发环境(IDE),可以完成编辑、编译、连接、调试、仿真等整个开发流程。

开发人员可用IDE本身或其它编辑器编辑C或汇编源文件。

然后分别由C51及A51编译器编译生成目标文件(.OBJ)。

目标文件可由LIB51创建生成库文件,也可以与库文件一起经L51连接定位生成绝对目标文件(.ABS)。

ABS文件由OH51转换成标准的Hex文件,以供调试器dScope51或tScope51使用进行源代码级调试,也可由仿真器使用直接对目标板进行调试,也可以直接写入程序存贮器如EPROM中。

 

使

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

当前位置:首页 > 人文社科 > 法律资料

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

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