单片机课程设计Word文件下载.docx

上传人:b****2 文档编号:15353012 上传时间:2022-10-29 格式:DOCX 页数:22 大小:212.69KB
下载 相关 举报
单片机课程设计Word文件下载.docx_第1页
第1页 / 共22页
单片机课程设计Word文件下载.docx_第2页
第2页 / 共22页
单片机课程设计Word文件下载.docx_第3页
第3页 / 共22页
单片机课程设计Word文件下载.docx_第4页
第4页 / 共22页
单片机课程设计Word文件下载.docx_第5页
第5页 / 共22页
点击查看更多>>
下载资源
资源描述

单片机课程设计Word文件下载.docx

《单片机课程设计Word文件下载.docx》由会员分享,可在线阅读,更多相关《单片机课程设计Word文件下载.docx(22页珍藏版)》请在冰豆网上搜索。

单片机课程设计Word文件下载.docx

二、设计方案和论证

本次设计时钟电路,使用了ATC89C51单片机芯片控制电路,单片机控制电路简单且省去了很多复杂的线路,使得电路简明易懂,使用键盘键上的按键来调整时钟的时、分、秒,用一扬声器来进行定时提醒,同时使用汇编语言程序来控制整个时钟显示,使得编程变得更容易,这样通过四个模块:

键盘、芯片、扬声器、LED显示即可满足设计要求。

(一)总设计原理框图如下图所示:

(二)设计方案的选择

1.计时方案

方案1:

采用实时时钟芯片

现在市场上有很多实时时钟集成电路,如DS1287、DS12887、DS1302等。

这些实时时钟芯片具备年、月、日、时、分、秒计时功能和多点定时功能,计时数据的更新每秒自动进行一次,不需要程序干预。

因此,在工业实时测控系统中多采用这一类专用芯片来实现实时时钟功能。

方案2:

使用单片机内部的可编程定时器。

利用单片机内部的定时计数器进行中端定时,配合软件延时实现时、分、秒的计时。

该方案节省硬件成本,但程序设计较为复杂。

2.显示方案

对于实时时钟而言,显示显然是另一个重要的环节。

通常LED显示有两种方式:

动态显示和静态显示。

静态显示的优点是程序简单、显示亮度有保证、单片机CPU的开销小,节约CPU的工作时间。

但占有I/O口线多,每一个LED都要占有一个I/O口,硬件开销大,电路复杂。

需要几个LED就必须占有几个并行口,比较适用于LED数量较少的场合。

当然当LED数量较多的时候,可以使用单片机的串行口通过移位寄存器的方式加以解决,但程序编写比较麻烦。

LED动态显示硬件连接简单,但动态扫描的显示方式需要占有CPU较多的时间,在单片机没有太多实时测控任务的情况下可以采用。

本系统需要采用6位LED数码管来分别显示时、分、秒,因数码管个数较多,故本系统选择动态显示方式。

目录

一.电路原理图和设计程序流程图1

1.单片机芯片选择方案1

2.时钟主程序流程图2

3.按键扫描程序流程图2

4.时钟程序流程图3

二.设计方案分析3

1.时钟电路3

2.复位电路4

3.按键电路4

4.显示电路5

5.LED的结构与原理5

三.程序仿真6

四.心得体会7

附一:

参考书目9

附二:

源程序9

一.电路原理图和设计程序流程图

图一流程图

系统由51系列单片机AT89C51、按键、数码管显示、电源等部分构成。

单片机部分包括时钟电路、复位电路;

按键部分能够实现对时间的调整、设定。

三个按键的功能分别为:

小时的调整,分钟的调整,复位。

电源部分(USB充电器)可输出5V电压,给系统供电。

1.单片机芯片选择方案

方案一:

AT89S51是一个低功耗,高性能CMOS8位单片机,片内含4kBytesISP(In-systemprogrammable)的可反复擦写1000次的Flash只读程序存储器。

主要性能有:

与MCS-51单片机产品兼容、全静态操作:

0Hz~33Hz、三级加密程序存储器、32个可编程I/O口线、三个16位定时器/计数器、八个中断源、全双工UART串行通道、掉电后中断可唤醒、看门狗定时器、双数据指针、掉电标识符、易编程。

方案二:

AT89C52是一个低电压,高性能CMOS8位单片机,片内含8kbytes的可反复擦写的Flash只读程序存储器和256bytes的随机存取数据存储器(RAM)。

兼容MCS51指令系统、32个双向I/O口、256x8bit内部RAM、3个16位可编程定时/计数器中断、时钟频率0-24MHz、2个串行中断、可编程UART串行通道、2个外部中断源、6个中断源、2个读写中断口线、3级加密位、低功耗空闲和掉电模式、软件设置睡眠和唤醒功能。

从单片机芯片主要性能角度出发,本数字电子钟单片机芯片选择设计采用方案一。

2.时钟主程序流程图

时钟主程序流程图如图二所示。

进入系统后首先实现程序的初始化,然后进入主程序,定时器开始计时,当定时器发生中断时刷新数码管同时显示,之后实现中断与显示的循环。

图二时钟主程序流程图

3.按键扫描程序流程图

按键扫描程序流程图如图三所示。

主程序进入键盘扫描程序后判断是否按下了P1.0。

若是按下了P1.0为了去除抖动再进行确认是否按下P1.0,当确认按下了P1.0后判断按下P1.0的次数,若按了一次则进行秒调整,若按了两次则进行分调整,若按了三次则进行时调整。

然后进入显示程序段进行显示刷新。

图三按键扫描流程图

4.时钟程序流程图

时钟程序流程如图四所示。

设计中,采用51单片机的定时器的方式一定时,所以如图所示,当程序产生定时溢出中断时要重新赋初值。

然后进行是否到一秒的判断,若到一秒则秒加一,若未到则直接退出中断。

一秒到了加一以后进行是否秒到六十的判断,若秒到六十则秒清零,同时分加一,若秒未到六十则退出中断。

分加一以后进行分是否到六十的判断,若未到六十则退出中断,若分到六十则分清零,同时小时加一。

小时加一后进行小时是否到二十四的判断,若未到二十四则退出中断,若到二十四则清零,然后退出中断。

图四时钟程序流程图

二.设计方案分析

1.时钟电路

时钟电路由外接谐振器的时钟振荡器、时钟发生器及关断控制信号等组成。

时钟振荡器是单片机的时钟源,时钟发生器对振荡器的输出信号进行二分频。

CPU的时钟振荡信号有两个来源:

一是采用内部振荡器,此时需要在XTAL1和XTAL2脚连接一只频率范围为0—33MHZ的晶体振荡或陶瓷振荡器及两只30pf电容。

二是采用外部振荡,此时应将外部振荡器的输出信号接至XTAL1脚,将XTAL2脚浮空。

利用单片机内部的定时功能来实现时钟的走时,通过编程实现每50毫秒产生一次中断,中断20次后,秒单元加1,秒单元加到60时,跳回到零再继续加,同时分单元加1;

当分单元加到60时,跳到零再继续加,同时时单元的个位加1,以次类推,从而实现秒、分、小时的走时。

本次设计中采用的是内部振荡器,频率为12MHZ的晶体振荡器及30pf瓷片电容。

2.复位电路

复位是指在规定的条件下,单片机自动将CPU以及与程序运行相关的主要功能部件、I/O口等设置为确定初始状态的过程。

如果电路参数不符合规定的条件或干扰导致单片机不能正确的复位,系统将无法进行正常的工作,因此,复位电路除了要符合厂家规定的参数外,还要滤除可能的干扰。

AT89S51单片机内部有一个由施密特触发器等组成的复位电路。

复位信号是从其9脚,即RST脚输入的。

AT89S51单片机规定,当其处于正常工作基于51单片机的数字时钟的设计状态,且振荡器工作稳定后,在RST端有从高电平到低电平,且高电平时间大于两个机器周期的复位信号时,CPU将完成对系统的复位。

有两点需要注意:

一、复位信号是高电平有效,二、高电平的保持时间必须大于两个机器周期,可见高电平保持时间与振荡频率有关。

上电复位是指在系统上电时,RST端自动产生复位所需要的信号将单片机复位。

上电时,RST端高电平的维持时间取决于R(1k)和C(22uF)的值。

要使单片机可靠的复位,设计中使其维持的时间足够长。

(三)硬件部分

1、STC89C51单片机介绍

STC89C51单片机是由深圳宏晶公司代理销售的一款MCU,是由美国设计生产的一种低电压、高性能CMOS8位单片机,片内含8kbytes的可反复写的FlashROM和128bytes的RAM,2个16位定时计数器[5]。

STC89C51单片机内部主要包括累加器ACC(有时也简称为A)、程序状态字PSW、地址指示器DPTR、只读存储器ROM、随机存取存储器RAM、寄存器、并行I/O接口P0~P3、定时器/计数器、串行I/O接口以及定时控制逻辑电路等。

这些部件通过内部总线联接起来,构成一个完整的微型计算机。

其管脚图如图所示。

STC89C51单片机管脚结构图

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

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

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

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

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