基于51单片机的实时时钟设计(8255扩展io口) (1)

合集下载

基于51单片机的电子时钟设计.

基于51单片机的电子时钟设计.

设计题目:基于51 单片机的电子时钟设计摘要单片机,是集CPU ,RAM ,ROM ,定时器,计数器和多种接口于一体的微控制器。

自20世纪70年代问世以来,以其极高的性能价格比,受到人们的重视和关注。

它体积小、重量轻、抗干扰能力强、环境要求不高、价格低廉、可靠性高、灵活性好、开发较为容易,广泛应用于智能生产和工业自动化上。

本系统为基于DS12C887的多功能电子钟,以STC89C51单片机作为主控芯,采用实时时钟芯片DS12C887,使用1602液晶作为显示输出。

该系统走时精确,具有闹钟设置,时间模式切换,秒表以及可同时显示时间、日期等多种功能。

本文将详细介绍STC89C51 单片机和DS12C887 时钟芯片的基本原理,从软件和硬件电路的实现两大方面进行分析【关键词】STC89C51 单片机液晶屏时钟芯片蜂鸣器目录前言 (1)一、方案选型: (2)二、系统硬件设计 (3)2.1 51单片机最小系统设计 (3)2.2 电源供电电路设计 (3)2.3 串口通信电路设计 (4)2.4 时钟芯片电路设计 (4)2.5 LCD显示电路设计 (6)2.6 报警电路设计 (6)2.7 键控电路设计 (6)三、系统软件设计 (7)3.1 系统程序流程图设计 (7)3.2 系统程序设计(见附录) (9)四、总结 (9)4.1 作品功能、特色 (9)4.2 综合设计的体会 (9)参考文献 (11)附录 (12)前言随着科学技术的不断发展 , 人们对时间计量的要求越来越高。

在当今社会,电子时钟已经得到相当广泛的应用,产品多样,发展更是多元化。

本作品是以STC89C51单片机作为主控芯片,使用12MHZ的晶振,使用专用时钟日历芯片DS12C887产生时间信息,时间精确。

软件部分以C语言为主体,用1602LCD液晶屏显示输出信息,输出信息量多,更直观、人性化。

该时钟可实现人机交互,可通过提供的键盘对其进行调整。

系统具有以下功能:年、月、日、时、分、秒显示;12 小时/24小时模式切换,在12小时模式中,用AM和PM区分上午和下午;秒表功能;整点闹铃和报时功能,且闹钟可设置多组。

基于51单片机的多功能电子钟设计

基于51单片机的多功能电子钟设计

基于51单片机的多功能电子钟设计1. 本文概述随着现代科技的发展,电子时钟已成为日常生活中不可或缺的一部分。

本文旨在介绍一种基于51单片机的多功能电子钟的设计与实现。

51单片机因其结构简单、成本低廉、易于编程等特点,在工业控制和教学实验中得到了广泛应用。

本文将重点阐述如何利用51单片机的这些特性来设计和实现一个具有基本时间显示、闹钟设定、温度显示等功能的电子钟。

本文的结构安排如下:将详细介绍51单片机的基本原理和特点,为后续的设计提供理论基础。

接着,将分析电子钟的功能需求,包括时间显示、闹钟设定、温度显示等,并基于这些需求进行系统设计。

将详细讨论电子钟的硬件设计,包括51单片机的选型、时钟电路、显示电路、温度传感器电路等。

软件设计部分将介绍如何通过编程实现电子钟的各项功能,包括时间管理、闹钟控制、温度读取等。

本文将通过实验验证所设计的电子钟的功能和性能,并对实验结果进行分析讨论。

通过本文的研究,旨在为电子钟的设计提供一种实用、经济、可靠的方法,同时也为51单片机的应用提供一个新的实践案例。

2. 51单片机概述51单片机,作为一种经典的微控制器,因其高性能、低功耗和易编程的特性而被广泛应用于工业控制、智能仪器和家用电器等领域。

它基于Intel 8051微处理器的架构,具备基本的算术逻辑单元(ALU)、程序计数器(PC)、累加器(ACC)和寄存器组等核心部件。

51单片机的核心是其8位CPU,能够处理8位数据和执行相应的指令集。

51单片机的内部结构主要包括中央处理单元(CPU)、存储器、定时器计数器、并行IO口、串行通信口等。

其存储器分为程序存储器(ROM)和数据存储器(RAM)。

程序存储器通常用于存放程序代码,而数据存储器则用于存放运行中的数据和临时变量。

51单片机还包含特殊功能寄存器(SFR),用于控制IO端口、定时器计数器和串行通信等。

51单片机的工作原理基于冯诺伊曼体系结构,即程序指令和数据存储在同一块存储器中,通过总线系统进行传输。

毕业设计基于51单片机的电子闹钟设计

毕业设计基于51单片机的电子闹钟设计

摘要这个设计时基于AT89C2051设计的电子时钟,通过对硬件资源和软件的编写,初步了解设计的思路以及实现过程。

电子闹钟是采用电子电路实现对时、分、秒进行数字显示的装置,广泛应用于个人家庭、医院、车站、码头、办公室等公共场所,成为人们日常生活中不可缺少的必需品。

本设计基于单片机技术原理,以AT89SC2051作为核心控制器,通过硬件电路的制作及软件程序的编制,设计制作了一种利用四位LED数码管动态扫描显示时间的电子闹钟系统。

整个电子闹钟系统主要由时间显示模块、时间设置、闹铃模块、闹钟响应模块。

可实现时间显示、时间调整、闹钟设置和整点闹铃功能,具有制作简单、调整方便、稳定性好、便于扩展等特点。

电子时钟还通过对比实际的数字电子时钟,来校正和调整,从而找出误差的来源,尽可能的减少误差,是系统可以达到实际数字电子时钟允许的误差范围内。

关键词:单片机AT89SC2051、电子闹钟、LED动态显示目录摘要 (I)1.引言 (1)2 系统设计 (1)2.1设计要求 (1)2.2总设计方案 (1)2.2.1 系统实现 (2)3系统硬件电路设计 (2)3.1时钟电路设计 (3)3.2显示模块的设计 (4)3.3按键模块的设计 (5)3.4复位电路设计 (5)3.5闹铃的设计 (6)3.6发光二极管闪烁电路设计 (6)4 软件设计 (7)4.1程序流程 (7)4.1.1主程序 (8)4.1.2 时钟走时模块 (9)4.1.3时间设置模块 (10)4.1.4闹钟设置模块 (11)4.1.5 奏乐模块 (11)5 系统测试 (15)5.1硬件调试 (15)5.2软件调试 (15)6 结论 (15)附录 (15)附录1器件清单 (15)附录2调试仪器 (16)附录3原理图和PCB图 (16)附录4实物 ............................................... 错误!未定义书签。

附录5程序清单 ........................................... 错误!未定义书签。

第14讲:MCS-51单片机系统的并口IO扩展(8255)

第14讲:MCS-51单片机系统的并口IO扩展(8255)

8255A 74LS373
1D ~ 8D 2Q 1Q G /OC
8 8
微型打印机
P0
PA0~PA7
A1 A0 PC0 PC7
DB0~DB7
8031
ALE /RD /WR RST /EA
BUSY /STB
D0 ~D7 /RD /WR RESET
分析:因为PC0连接BUSY,所以,PC3~PC0为输入,又因PC7连接 /DATA
STROBE ,所以PC7~PC4为输出;STROBE表示重复的意思;/DATA STROBE 数据选通信号。作用是通知打印机,8255A要给它传数。 PA口输出,PB口未用。 故 8255A的控制字可设为:1000 0001B=81H 由电路图,得PA口地址:7FFCH(地址的无关位取“1”) PB口地址:7FFDH PC口地址:7FFEH 控制口 : 7FFFH
I/O
I/O INTRA /STBA IBFA × ×
I/O
I/O INTRA × × /ACKA / OBFA
(4)8255A的4个端口的地址
①8255各端口的地址如何确定?
CS
0 0 0 0 1
②对8255各端口的操作?
A1
0 0 1 1 ×
A0
0 1 0 1 ×
选中的端口
PA PB PC 控制寄存器 芯片未选中
C口:除了单独作为8位输入、输出口使用外, 还可以按控制命令被分成两个4位端使用, 分别作为A口和B口输出控制信号和输入 状态信号。
A组控制和B组控制:这两组控制电路由 工作方式控制字来设定两组端口的工作 方式和读/写操作。 A组的控制电路管理A口和C口的高5位 (PC7~PC3)的工作方式和读/写操作。 B组的控制电路管理B口和C口的低3位 (PC2~PC0)的工作方式和读/写操作。

51单片机8255A扩展IO口解析

51单片机8255A扩展IO口解析
D7 D6 D5 D4 D3 D2 D1 D0
PC口置/复位控制字
工作方式控制字
B组
D7 D6 D5 D4 D3 D2 D1 D0
PC置/复位控制字
0:复位 1:置位 位选择 000 PC0 001 PC1 010 PC2 011 PC3 100 PC4 101 PC5 110 PC6 111 PC7
I/O PC4-PC7
B组 端口C
下半部(4)
I/O PC0-PC3
PA口 PB口 PC口低4位
PC口高四位
PC0 PC1 PC2 PC3 PC4 PC5 PC6 PC7
14 15 16 17 13 12 11 10
RD WR A0 A1 RESET
读写 控制 逻辑
B组 控制
B组 端口B (8) I/O PB0-PB7
单片机 8255A 外设
1. 8255A的结构及引脚功能
8255A为40引脚的双列直插式(DIP)封装
(1)引脚功能 ① D0~D7为数据线,与单片机的数据 总线连接,传数据、命令等。 ② PA0~PA7(PA口)、PB0~PB7(PB 口)、PC0~PC7(PC口)为3个8位并行 I/O口,用于8255A与外设之间传数据。 ③ 读写控制逻辑线
8255A
PA口: × PB口: × PC口: × 控制口:× × × × × × × × × × × × × × × × × × × × × × × × × × × × ×
CS
0 0 0 0 × × × × × × × × × × × × × × × × × × × ×
A1 0 0 1 1
A0 0 1 0 1
0 1 0 1
没接的地址线设为1,则4个端口地址为: PA=7FFCH PB=7FFDH PC=7FFEH 控制口=7FFFH

基于51单片机的电子时钟设计

基于51单片机的电子时钟设计

基于51单片机的电子时钟设计51单片机是一种广泛应用于嵌入式系统的微控制器,由于其性能稳定、易于编程和成本相对较低的特点,被广泛应用于各种电子设备中。

在现代社会,电子时钟已经成为人们日常生活中不可或缺的工具。

随着科技的不断发展,电子时钟在功能和外观上都得到了极大的提升,如今的电子时钟不仅可以显示时间,还能设置闹钟、定时、显示温湿度等功能。

本文通过对51单片机的应用和实践,设计了一款功能丰富的电子时钟,旨在探讨如何利用51单片机实现电子时钟的设计与制作过程。

首先,我们将介绍51单片机的基本原理和特点。

51单片机是一种8位微控制器,由Intel公司于1980年推出,至今已有数十年的历史。

它采用哈佛结构,具有较高的工作速度和稳定性,适合用于各种嵌入式系统。

51单片机的指令系统简单,易于学习和掌握,因此被广泛用于各种嵌入式应用中。

除此之外,51单片机的外围设备丰富,可以通过外部扩展模块实现各种功能,如串口通信、定时器、数模转换等,这也为我们设计电子时钟提供了便利。

其次,我们将详细介绍基于51单片机的电子时钟的设计和实现过程。

电子时钟主要由时钟模块、显示模块、闹钟模块等部分组成,通过合理的接线和程序设计实现各种功能。

首先,我们设计时钟模块,通过外部晶振产生时钟信号,并利用51单片机的定时器模块实现时间的精确计算和显示。

同时,我们还设计了显示模块,采用数码管或液晶屏显示时间和日期信息,通过数字或字符的组合,使信息直观清晰。

此外,闹钟模块也是电子时钟的重要功能之一,我们可以设置闹钟时间,并在设定时间触发闹钟功能,提醒用户。

通过合理的程序设计,我们可以实现电子时钟的各种功能,并提升用户体验。

最后,我们将讨论基于51单片机的电子时钟在实际生活中的应用前景和发展趋势。

随着智能家居的快速发展,电子时钟作为家庭必备的电子设备,其功能和外观需求也在不断提升。

未来,基于51单片机的电子时钟将会更加智能化,可以与手机、电视等智能设备联动,实现更多个性化的功能。

基于51单片机的实时时钟设计报告

课程设计(论文)任务书信息工程学院信息工程专业(2)班一、课程设计(论文)题目嵌入式课程设计二、课程设计(论文)工作自 2014 年 6 月 9 日起至2014年 6月15日止。

三、课程设计(论文) 地点: 5-402 单片机实验室四、课程设计(论文)内容要求:1.本课程设计的目的(1)使学生掌握单片机各功能模块的基本工作原理;(2)培养学生单片机应用系统的设计能力;(3)使学生能够较熟练地使用proteus工具完成单片机系统仿真。

(4)培养学生分析、解决问题的能力;(5)提高学生的科技论文写作能力。

2.课程设计的任务及要求1)基本要求:(1)分析所设计系统中各功能模块的工作原理;(2)选用合适的器件(芯片);(3)提出系统的设计方案(要有系统电路原理图);(4)对所设计系统进行调试。

2)创新要求:在基本要求达到后,可进行创新设计,如改善单片机应用系统的性能。

3)课程设计论文编写要求(1)要按照书稿的规格打印撰写论文。

(2)论文包括目录(自动生成)、摘要、正文、小结、参考文献、附录等。

(3)论文装订按学校的统一要求完成。

4)答辩与评分标准:(1)完成原理分析:20分;(2)完成设计过程:30分;(3)完成调试:20分;(4)回答问题:20分;(5)格式规范性(10分)。

5)参考文献:(1)张齐.《单片机原理与嵌入式系统设计》电子工业出版社(2)周润景.《PROTUES入门实用教程》机械工业出版社(3)任向民.《微机接口技术实用教程》清华大学出版社(4)/view/a5a9ceebf8c75fbfc77db2be.html6)课程设计进度安排内容天数地点构思及收集资料1图书馆系统设计与调试 4 实验室撰写论文2图书馆、实验室学生签名:2014 年6 月9日课程设计(论文)评审意见(1)完成原理分析(20分):优()、良()、中()、一般()、差();(2)设计分析(30分):优()、良()、中()、一般()、差();(3)完成调试(20分):优()、良()、中()、一般()、差();(4)回答问题(20分):优()、良()、中()、一般()、差();(5)格式规范性(10分):优()、良()、中()、一般()、差();评阅人:职称:2014 年6 月15 日目录摘要 (4)第1章设计要求 (5)1.1设计要求 (5)1.2设计内容 (5)1.3设计基本环境 (5)第2章设计方案和论证 (6)2.1总设计原理框图 (6)2.2设计方案选择 (7)第3章硬件电路 (8)3.1单片机的选择 (8)3.1.1 单片机内部原理分析 (8)3.1.2单片机的引脚及封装 (9)3.1.3单片机最小系统 (11)3.2 数码管显示工作原理 (11)3.3 8255A模块 (12)3.4时间调节模块 (13)3.4.1 时间设置 (13)3.4.2整点报时 (13)第4章软件调试 (14)4.1时间调节程序流程图 (14)4.2主程序流程图 (18)第5章仿真调试 (22)第6章总结与体会 (23)第7章参考文献 (23)摘要单片计算机即单片微型计算机。

(完整)基于51单片机电子时钟设计

(完整)基于51单片机电子时钟设计编辑整理:尊敬的读者朋友们:这里是精品文档编辑中心,本文档内容是由我和我的同事精心编辑整理后发布的,发布之前我们对文中内容进行仔细校对,但是难免会有疏漏的地方,但是任然希望((完整)基于51单片机电子时钟设计)的内容能够给您的工作和学习带来便利。

同时也真诚的希望收到您的建议和反馈,这将是我们进步的源泉,前进的动力。

本文可编辑可修改,如果觉得对您有帮助请收藏以便随时查阅,最后祝您生活愉快业绩进步,以下为(完整)基于51单片机电子时钟设计的全部内容。

基于51单片机的电子时钟设计摘要本电子时钟以STC89C52单片机作为主控芯片,采用DS12C887时钟芯片,使用1602液晶作为显示输出.该时钟走时精确,具有闹钟设置,以及可同时显示时间、日期等多种功能。

本文将详细介绍该电子时钟涉及到的一些基本原理,从硬件和软件两方面进行分析.【关键词】STC89C52单片机 DS12C887时钟芯片 1602液晶蜂鸣器目录一、绪论 (4)1.1 电子时钟功能 (4)1.2设计方案 (4)二、硬件设计 (4)2。

151单片机部分设计 (4)2.2 USB供电电路设计 (5)2.3 串行通信电路设计 (6)2.4 DS12C887时钟芯片电路的设计 (6)2。

5 1602LCD液晶屏显示电路设计 (7)2。

6蜂鸣器电路设计 (8)2。

7按键调整电路设计 (8)三、软件设计 (9)3.1系统程序流程图设计 (9)3。

2程序设计 (11)四、心得体会 (22)参考文献 (23)一、绪论1。

1电子时钟功能(1)在1602液晶上显示年、月、日、星期、时、分、秒,并且按秒实时更新显示。

(2)具有闹铃设定即到时报警功能,报警响起时按任意键可取消报警。

(3)能够使用实验板上的按键随时调节各个参数,四个有效键分别为功能选择键、数值增大键、数值减小键和闹钟查看键。

(4)每次有键按下时,蜂鸣器都以短“滴”声报警.(5)利用DS12C887自身掉电可继续走时的特性,该时钟可实现断电时间不停、再次上电时时间仍准确显示在液晶上的功能。

单片机仿真课程设计——基于51单片机的实时时钟

基于51系列单片机及DS1302时钟芯片的实时时钟仿真设计一、课程设计目的意义通过本次课程设计可以灵活运用单片机的基础知识,依据课程设计内容,能够完成从硬件电路图设计,到软件编程及系统调试实现系统功能,完成课程设计,加深对单片机基础知识的理解并灵活运用。

二、实现目标本设计主要为实现一款可正常显示时钟/日历的实时电子时钟。

对当前电子钟开发手段进行了比较和分析,最终确定了采用单片机技术实现电子时钟。

本设计应用AT89C52芯片作为核心,LCD显示屏,使用DS1302实时时钟日历芯片完成时钟/日历的基本功能。

这种实现方法的优点是电路简单,性能可靠,实时性好,时间精确,操作简单,编程容易。

三、硬件设计本设计采用具有32根I/O引脚的AT89C52单片机。

AT89C52单片机是一款低功耗,低电压,高性能CMOS 8位单片机,片内含4KB(可经受1000次擦写周期)的FLASH可编程可反复擦写的只读程序存储器(EPROM),器件采用CMOS工艺和ATMEI公司的高密度、非易失性存储器(NURAM)技术制造,其输出引脚和指令系统都与MCS-52兼容。

片内的FLASH存储器允许在系统内可改编程序或用常规的非易失性存储器编程器来编程。

因此,AT89C52是一种功能强,灵活性高且价格合理的单片机,可方便的应用在各个控制领域。

AT89C52具有以下主要性能:1.4KB可改编程序Flash存储器;2.全静态工作:0——24Hz;3.128×8字节内部RAM;4.32个外部双向输入/输出(I/O)口;5.6个中断优先级; 2个16位可编程定时计数器;6.可编程串行通道;7.片内时钟振荡器。

DS1302是美国DALLAS公司推出的一种高性能、低功耗的实时时钟日历芯片,附加31字节静态RAM,采用SPI三线接口与CPU进行同步通信,并可采用突发方式一次传送多个字节的时钟信号和RAM数据。

实时时钟可提供秒、分、时、日、星期、月和年,一个月小于31天时可以自动调整,且具有闰年补偿功能。

第一章 单片机IO接口的扩展---8255


单片机对外设的控制方式
(1)程序查询方式
这种方式下,CPU通过I/O指令询问指定 外设当前的状态,如果外设准备就绪,则进行 数据的输入或输出,否则CPU等待,循环查询。
这种方式的优点是结构简单,只需要少 量的硬件电路即可,缺点是由于CPU的速度远 远高于外设,因此通常处于等待状态,工作效 率很低
(2)中断处理方式
(1)设置数据的寄存、缓冲逻辑,以适应CPU与外设之间的速度差异,接口通常由 一些寄存器或RAM芯片组成,如果芯片足够大还可以实现批量数据的传输; (2)能够进行信息格式的转换,例如串行和并行的转换; (3)能够协调CPU和外设两者在信息的类型和电平的差异,如电平转换驱动器、数 /模或模/数转换器等; (4)协调时序差异; (5)地址译码和设备选择功能; (6)设置中断和DMA控制逻辑,以保证在中断和DMA允许的情况下产生中断和 DMA请求信号,并在接受到中断和DMA应答之后完成中断处理和DMA传输。 接口的控制方式
WR :写信号,低电平有效。当 WR 有效时,CPU
可以往8255A中写入控制字或数据。 A1、A0:端口选择信号。8255A内部有3 个数据端口和1个控制端口,当A1A0=00时选 中端口A;A1A0=01时选中端口B;A1A0=10 时选中端口C;A1A0=11时选中控制口。 A1、A0和 RD 、 WR 及 CS 组合所实 现的各种功能如表所示。
方式1下的输出时序
3. 方式2(双向模式)
8255A只有A口具有这种双向输入输 出工作方式,实际上是在方式1下A口输入 输出的结合。在这种方式下,A口为8位双 向传输口,C口的PC7~PC3用来作为输入 /输出的同步控制信号。 在这种情况下,B口和PC2~PC0只能 编程为方式0或方式1工作,而C口剩下的 3条线可作为输入或输出线使用或用作B 口方式1之下的控制线。
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

目录摘要 (1)第一章51单片机简介 (2)1.151系列单片机每部结构 (2)1.251单片机的封装及引脚 (2)第二章实时时钟的设计方案 (4)2.1单片机最先系统 (4)2.28255A模块 (4)2.3数码管显示模块 (5)2.4时间调节模块 (6)2.5整点报时 (7)第三章实时时钟的程序设计 (8)3.1时间调节程序流程图 (8)3.2主程序流程图 (9)第四章小结 (10)参考文献 (11)附录1 (12)附录2 (13)摘要单片计算机即单片微型计算机。

由RAM ,ROM,CPU构成,定时,计数和多种接口于一体的微控制器。

它体积小,成本低,功能强,广泛应用于智能产业和工业自动化上。

而51系列单片机是各单片机中最为典型和最有代表性的一种。

通过本子课程设计掌握单片机的基本原理,加深对课堂知识的理解,从而达到学习、设计、开发单片机软硬的能力。

本设计主要设计了一个基于AT89C52单片机的电子时钟,由定时器定时并在数码管上显示相应的时间,通过中断和按键扫描实现对时间的停止、启动和设置调整。

应用Proteus软件实现了单片机电子时钟系统的设计与仿真。

该方法仿真效果真实、准确,节省了硬件资源。

关键字:单片机;子时钟;键盘控制。

第一章51单片机简介单片机又称单片微控制器,它不是完成某一个逻辑功能的芯片,而是把一个计算机系统集成到一个芯片上。

概括的讲:一块芯片就成了一台计算机。

它的体积小、质量轻、价格便宜、为学习、应用和开发提供了便利条件。

同时,学习使用单片机是了解计算机原理与结构的最佳选择。

这种单片机的使用领域已十分广泛,如智能仪表、实时工控、通讯设备、导航系统、家用电器等,比方说用来控制路口红绿灯的亮灭公交车报站。

各种产品一旦用上了单片机,就能起到使产品升级换代的功效,常在产品名称前冠以形容词——“智能型”,如智能型洗衣机等。

1.1 51系列单片机每部结构51系列单片机中主要有8031、8051、8751三种机型,它们的指令系统和芯片引脚完全兼容,只是片内程序存储器(ROM)有所不同,其中8031片内没有ROM,8051片内有4k的掩膜ROM,8751片内有4k的紫外线可擦除ROM。

其主要资源有:8位CPU、片内带震荡器及时钟电路、128B片内数据存储器、4K片内程序存储器(8031无)、21B特殊功能寄存器、4个8位的IO口、一个全双工串行接口、两个16位定时器、中断系统有5个中断源、111条指令。

其内部结构如图1.1所示。

图1.1 单片机内部结构1.2 51单片机的封装及引脚在封装上,51单片机有常用的三种封装:PQFP-44、DIP-40和PLCC-44。

我们学习中最常见的封装为DIP-40型的封装,其封装图如图1.2所示。

该封装的单片机共有40个引脚,其中可分为端口线电源线和控制线三类。

端口线有32条,为4个并行的8为IO端口,由于地址或数据的传送,其中P0口为开漏输出,在作为通用IO使用时需要加上上拉电阻。

在外部扩展时分时提供系统的数据总线和地址总线;P2口可作为通用IO接口和外部扩展时的地址总线;P1口只作为通用IO口使用;P3口作为通用IO口外,还附有第二功能,如表1.1所示。

表1.1P3口的位第二功能P3.0 RXD(串行口输入)P3.1 TXD(串行口输出)P3.2 INT0(外部中断0输入)P3.3 INT1(外部中断1输入)P3.4 T0(定时器/计数器0的外部输入)P3.5 T1(定时器/计数器1的外部输入)P3.6 WR(片外数据存储器写允许)P3.7 RD(片外数据存储器读允许)电源线有两根:VCC为+5V电源线,GND为接地。

控制线有6根,其中EA为片外存储器访问选择线;PSEN为片外ROM选通线;RST为复位线;XTAL1和XTAL2为片内震荡电路输入线;ALE为地址锁存允许线。

图1.2 单片机引脚图第二章实时时钟的设计方案本课设制作的实时时钟由单片机外扩一片8255A芯片,用8255A的PA口和PB口控制6位8段共阳数码管显示时钟,并由定时器控制时钟精准的计时,中断和按键扫描共同完成对时间的初始化、启停和调整。

整体完成实时时钟的设计,精准的计时。

整体仿真原理图见附录1。

2.1单片机最先系统单片机最小系统就是能使单片机工作的最少的器件构成的系统。

对于本课设所使用的AT89C52来讲,其最小系统为AT89C52单片机芯片、时钟电路和复位电路,器仿真原理图如图2.1所示。

图2.1单片机最小系统2.28255A模块8255A是一种可编程的I/O接口芯片,可以与MCS-51系统单片机以及外设直接相连,广泛用作外部并行I/O扩展接口。

8255A内部由PA、PB、PC三个8位可编程双向I/O口,A组控制器和B组控制器,数据缓冲器及读写控制逻辑四部分电路组成。

数据总线(8条):D0~D7,用于传送CPU和8255A间的数据、命令和状态字。

控制总线(6条):RESET:复位线,高电平有效。

/CS:片选线,低电平有效。

/RD、/WR:/RD为读命令线,/WR为写命令线,皆为低电平有效。

A0、A1:地址输入线:用于选中PA、PB、PC口和控制寄存器中哪一个工作。

本次课设中8255A 的设计如图2.2。

图2.2 8255A连接图其中DO~D7连接在单片机的外扩数据总线P0口上,WR和RD分别接在单片机的WR和RD口,RESET接在单片机RST上,CS、A1和A0分别接在P2.7、P2.6和P2.5上,从而8255A的A口地址可为0000H,B口地址可为2000H,C口地址可为4000H 控制口地址可为6000H。

2.3数码管显示模块本课设采用8段共阳数码管,其中abcdefg七段构成日字形dp段位小数点位,当阳极那端为高电平时相应的段为低电平则该段点亮,从而显示不同的数字和符号。

本次利用8255A控制数码管,其连接图如图2.3所示。

图2.3 数码管显示原理图2.4时间调节模块时间调节时利用中断和按键扫描来实现的,其连接图如图2.4所示。

图2.4 按键连接图其中,定时器启停有外部中断0控制,设置时分秒由外部中断1控制,而调时间时的加减是由按键连接P1.0和P1.1口。

2.5整点报时利用蜂鸣器实现整点报时,仿真原理图如图2.5所示。

图2.5 蜂鸣器控制第三章实时时钟的程序设计程序设计中主要包括初始化,定时器0的控制,中断和按键扫描,蜂鸣器控制等。

程序清单见附录2。

3.1时间调节程序流程图时间调节程序流程图如图3.1所示。

图3.1 时间调节程序流程图3.2主程序流程图主程序流程图如图3.2所示。

否否图3.2主程序流程图第四章小结本次我和本组另外一名同学完成了这次单片机课程设计课题中的实时时钟设计,通过这次的设计使我认识到本人对单片机方面的知识知道的太少了,对于书本上的很多知识还不能灵活运用,尤其是对程序设计语句的理解和运用,不能够充分理解每个语句的具体含义,导致编程的程序过于复杂,使得需要的存储空间增大。

损耗了过多的内存资源。

本次的设计使我从中学到了一些很重要的东西,那就是如何从理论到实践的转化,怎样将我所学到的知识运用到我以后的工作中去。

在大学的课堂的学习只是在给我们灌输专业知识,而我们应把所学的用到我们现实的生活中去,此次的实时时钟设计给我奠定了一个实践基础,我会在以后的学习、生活中磨练自己,使自己适应于以后的竞争,同时在查找资料的过程中我也学到了许多新的知识,在和同学协作过程中增进同学间的友谊,使我对团队精神的积极性和重要性有了更加充分的理解。

最后,感谢老师一个学期来对我们的教育,正是由于老师的精彩的课程和对我们严格的要求,使得我的课程设计能够顺利的完成,同时在课程设计过程中,我们巩固和学习了我们的单片机知识。

相信这对我以后的课程设计和毕业设计乃至今后的工作将会有很大的帮助!参考文献(1)张齐.《单片机原理与嵌入式系统设计》电子工业出版社(2)周润景.《PROTUES入门实用教程》机械工业出版社(3)任向民.《微机接口技术实用教程》清华大学出版社(4)/view/a5a9ceebf8c75fbfc77db2be.html#include<reg52.h>#include<absacc.h>#define PA XBYTE[0x0000]#define PB XBYTE[0x2000]#define PC XBYTE[0x4000]#define CMD XBYTE[0x6000]sbit up=P1^0;sbit down=P1^1;sbit FMQ=P1^3;bit flag_TR=0;unsigned char flag_SET=0,shi=0,fen=0,miao=0,temp=0,i; unsigned char shu[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90 };void init(){IE=0x87;TMOD=0x01;TH0=0x4c;TL0=0X00;TCON=0x05;CMD=0x80;}void delay(unsigned int m){unsigned char count;while(m!=0){for(count=0;count<239;count++){}m--;}}void display(unsigned char shi,unsigned char fen,unsigned char miao) {unsigned char shi0,shi1,fen0,fen1,miao0,miao1;shi0=shi/10; shi1=shi%10;fen0=fen/10; fen1=fen%10;miao0=miao/10; miao1=miao%10;PA=0x80;PB=shu[shi0];delay(5);PA=0x40;if(flag_SET==3&&!flag_TR)PB=shu[shi1]&0x7f;elsePB=shu[shi1];delay(5);PA=0x20;PB=shu[fen0];delay(5);PA=0x10;if(flag_SET==2&&!flag_TR)PB=shu[fen1]&0x7f;elsePB=shu[fen1];delay(5);PA=0x08;PB=shu[miao0];delay(5);PA=0x04;if(flag_SET==1&&!flag_TR)PB=shu[miao1]&0x7f;elsePB=shu[miao1];delay(5);}void main(){init();while(1){display(shi,fen,miao);if(flag_SET){TR0=0;if(flag_SET==1&&up==0){while(up==0);miao++;if(miao==60)miao=0;}if(flag_SET==1&&down==0){while(down==0);miao--;if(miao>60)miao=59;}if(flag_SET==2&&up==0){while(up==0);fen++;if(fen==60)fen=0;}if(flag_SET==2&&down==0){while(down==0);fen--;if(fen>60)fen=59;}if(flag_SET==3&&up==0){while(up==0);shi++;if(shi==24)shi=0;}if(flag_SET==3&&down==0){while(down==0);shi--;if(shi>24)shi=23;}}if(flag_TR==1)TR0=1;elseTR0=0;if(flag_TR==1&&fen==0&&miao==0){for(i=0;i<shi;i++){display(shi,fen,miao);FMQ=0;delay(300);FMQ=1;delay(300);}while(miao==0);}}}void timer0() interrupt 1{EA=0;TH0=0x4c;TL0=0x00;flag_SET=0;temp++;if(temp==20){temp=0;miao++;}if(miao==60){miao=0;fen++;}if(fen==60){fen=0;shi++;}if(shi==24){shi=0;}EA=1;}void timer_run() interrupt 0 {EA=0;flag_TR=!flag_TR;EA=1;}void set_time() interrupt 2 {EA=0;if(!flag_TR)flag_SET++;flag_SET%=4;EA=1;}。

相关文档
最新文档