数码管数字时钟电路的设计 1. 系统硬件电路的设计

Slides:



Advertisements
Similar presentations
主讲人:刘利 交通大学网络控制课程系列 上海交通大学机电控制研究所 交通大学网络控制课程系列 考试课、专业基础课、必修课
Advertisements

第7章 AT89S51单片机的 串行口 1.
6 单片机的中断与定时系统 I/O设备必须通过I/O接口与计算机连接。 I/O接口的功能: 1.速度匹配: 锁存数据、传送联络信号。
第5章 中断系统 5.1 中断的概念 5.2 MCS-51单片机的中断流程 5.3 MCS-51的中断响应条件和中断处理
本章内容: 中断的概念 MCS-51单片机中断系统 外部事件中断及应用
邵阳学院 信息工程系电子实践教学中心 江世明
第四章 指令系统及汇编语言程序设计.
8051 指令.
第四章 指令系统及汇编语言程序设计.
本章分为四节,主要介绍: 4.1 程序编制的方法和技巧 4.2 源程序的编辑和汇编 4.3 基本程序结构 4.4 常用程序举例.
项目2 2个LED发光二极管控制 知识与能力目标 熟悉单片机的I/O口功能与特性。
得技通电子 问题 1 右何者非為假指令 (1) XRL (2) EQU (3) MACRO (4) ORG.
本章小结 C51单片机指令系统概述 C51单片机寻址方式 C51单片机指令系统
单片机原理与应用.
第4章 智能仪器通信接口 4.1 GPIB通用接口总线 4.2 GPIB接口电路的设计 4.3 串行通信总线 4.4 串行通信接口电路的设计
第9章 串行扩展技术 (课时:6学时).
第9章 数模转换器与模数转换器 本章学习目标 了解数模转换器的工作原理及性能指标 掌握模数转换器的应用 掌握数模转换器的应用.
第2章 MCS-51单片机指令系统与汇编语言程序设计
報告者:朱耿育 紀翔舜 組員:詹以群 張永傑 指導老師:梁新潁
复 习 一. 计算机中的数和编码 1. 2,10,16进制数及其之间的转换(整数) 按权展开,除x取余 2
第二部分 微机原理 第4章 汇编语言 程序设计 主讲教师:喻红.
单片机应用技术 项目一 循环彩灯装置 第6讲 指令功能及汇编语言程序设计(一) 《单片机应用技术》精品课程组 湖北职业技术学院机电工程系.
本章内容: 中断的概念 MCS-51单片机中断系统 外部事件中断及应用
6.3 定时器/计数器的应用 初始化 初始化的内容如下:
第8章 模拟接口 8.1 模拟接口概述 8.2 DAC及其接口 8.3 ADC及其接口.
第二部分 微机原理 第3章 MCS-51的 指令系统 主讲教师:喻红.
一、任务描述 二、任务分析 三、任务演示 四、相关知识 五、任务布置. 一、任务描述 二、任务分析 三、任务演示 四、相关知识 五、任务布置.
第14章 单片机应用系统抗干扰 与可靠性设计 1.
第二部分 微机原理 第8章 单片机的 定时/计数器 主讲教师:喻红.
第6章 MCS - 51单片机内部定时器/ 计数器 及串行接口 6.1 定时器/计数器的结构及工作原理 6.2 方式和控制寄存器
單晶片微電腦控制實習 使用計時中斷作走馬燈 計時器的基礎實習 國立大甲高工 電機科 2018年11月21日
本章分为三节,主要介绍: 6.1 计算机串行通信基础 C51的串行口 6.3 单片机串行口应用举例.
第十一章 复位、时钟和省电方式控制.
第3章 AT89C51指令系统 3.1基本概念内部结构和引脚功能 指令、指令系统、机器代码
逻辑运算类指令 包括与、或、非、异或、清0及移位等共24条;一般不影响PSW中的标志位;助记符有:ANL、ORL、XRL、RL、RLC、RR、RRC、CLR和CPL共9种。 一、逻辑与指令 ANL A,Rn ;A←(A)∧( Rn) ANL A,direct;A←(A)∧(direct)
单片机原理及应用 MCS-51系列单片机的基本硬件结构 MCS-51指令系统 MCS-51单片机的系统扩展与应用.
4.A/D与D/A转换器 1).DAC0832与MCS-51接口
第2章 单片机的结构原理与 简单应用 (课时:10学时).
第八章 MCS-51与数码显示器和键盘的接口 一、MCS-51与数码显示器接口 数码显示器是单片机应用产品中最常用的廉价的输 出设备,它由8个发光二极管按一定规律排列而成, 当某一发光二极管导通时,则会被点亮,控制不同 组合的二极管导通,就能显示出各种字符。 1.显示器的结构.
本 章 重 点 单片机的简单I/O扩展 8255A可编程并口芯片 8279可编程键盘/显示器接口芯片 单片机键盘接口技术
单片机原理 单 片 机 单片机接口技术 单片机应用技术.
第七章 定时/计数器.
第三章 指令系统.
第3章 指令系统及程序设计举例 3.1 指令格式与寻址方式 一、指令格式 1. 指令 操作码 目标操作数,源操作数
第十章 人机交互接口 本章学习目标 掌握键盘接口技术 掌握数码、液晶显示技术 了解数码管显示驱动和键盘扫描控制专用芯片.
第10章 综合实训 课题一 水温控制系统设计 一、实训目的 二、课题要求 熟悉常用温度传感器AD590的特性及接口电路的设计方法;
第8章 MCS-51串行口 8.1 串行口及其通信方式 8.2 IBM-PC系列机与 单片机 的通信技术.
一、任务描述 二、任务分析 三、任务演示 四、相关知识 五、任务布置. 一、任务描述 二、任务分析 三、任务演示 四、相关知识 五、任务布置.
第2章 单片机系统组成原理 2.1 MCS-51单片机组成原理 2.2 单片机复位电路设计 2.3 MCS-51存储器配置
6.1 输入/输出 6.2 CPU与外设数据传送方式 6. 3 MCS-51中断系统 6. 4 中断应用举例
单元五 MCS-51单片机内部资源 5.1 任务九 单片机计数并显示 5.2 任务十 单片机流水灯控制 5.3 任务十一 两台单片机数据互传
本 章 重 点 单片机的结构特点 单片机的存储器特点 I/O端口的特点 CPU时序 课时安排:3个课时.
一、任务描述 二、任务分析 三、任务演示 四、相关知识 五、任务布置. 一、任务描述 二、任务分析 三、任务演示 四、相关知识 五、任务布置.
第四章 指令系统及汇编语言程序设计.
第4章 中断技术 一个完整的微机系统是由硬件和软件共同构成的。微机系统的硬件有CPU、存储器和I/O口,外设组成。CPU与存储器之间的信息交换比较简单,而CPU与外设之间进行信息交换之前必须确定外设是否准备好,即选择I/O传送方式。I/O传送方式有4种:无条件、查询、中断和DMA。本章学习中断传送方式的有关内容。
第3章 MCS-51指令系统 介绍MCS—51系列单片机的寻址方式 介绍MCS—51系列单片机的指令系统
第4章 80C51系列指令系统 教学目的:熟悉80C51系列单片机的寻址方式及 每一种寻址方式对应的寻址空间;掌 握每一条指令功能。
本章内容 MCS-51单片机指令系统的格式 MCS-51单片机寻址方式 指令系统的分析
5-6 串列埠模式0輸出埠擴充實習.
第三章 计算机系统的组成与工作原理.
汽车单片机应用技术 学习情景1: 汽车空调系统的单片机控制 主讲:向楠.
四、手工汇编 完成汇编的方法有两种:手工汇编和汇编程序汇编 1.手工汇编步骤 A
单片机原理与应用.
3. 逻辑运算指令 A、简单逻辑操作指令 CLR A. (不影响CY、AC、 OV标志) CPL A
简单芯片扩展I/O接口 8155可编程接口芯片及其使用 键盘及显示器接口设计 A/D和D/A转换接口技术
单片机应用技术 (C语言版) 第3章 MCS-51指令系统及 汇编程序设计
第二章 MCS-51单片机程序设计 第一章 8086程序设计 第三章 微机基本系统的设计 第四章 存贮器与接口 第五章 并行接口
第4章 MCS-51汇编语言程序设计 教学基本要求: (1)、了解MCS-51汇编语言程序设计的特点;
第1章 微型计算机基础.
Presentation transcript:

10.3.2 数码管数字时钟电路的设计 1. 系统硬件电路的设计 单片机控制的数码管时钟电路如图10-6所示,它采用的是AT89C51单片机,只用了 P1口和P2口,P0、P3口可用于扩展显示年、月、日等功能。为了简化硬件电路,LED显示采用动态扫描方式实现,P1口输出段码数据,P2.0~P2.5端作扫描输出控制端,P2.7作功能转换按键输入端。LED采用共阳极数码管,由三极管9012提供驱动电流。为了提高计时精度,所采用的晶振频率为12 MHz。

图10-6 AT89C51数字时钟电路图

2. 系统软件的设计 1) 主程序 主程序功能主要是初始化、正常显示时间和判断功能转换键。显示时间调用显示子程序。当P2.7端口按键按下时,转入调时功能程序。主程序流程图如图10-7所示。

图10-7 主程序流程图

2) 显示子程序 数码管显示的数据存放在50H~55H内存单元中,其中50H、51H单元存放秒数据,52H、53H单元存放分数据,54H、55H单元存放时数据。时间数据采用BCD码表示,对应的显示用段码表存放在ROM中。

3) 定时器T0中断服务程序 时钟的最小计时单位是秒,60 s进位1 min,60 min进位1 h。定时器T0用于产生最小单位1 s,定时时间为50 ms,中断累计20次即为1 s。计数单元中的十进制BCD数每逢60进位。程序流程图如图10-8所示。

图10-8 T0中断服务程序

4) 定时器T1中断服务程序 进行时间调整时,正在被调整的时间以闪烁形式表现,定时器T1用于产生闪烁的时间间隔,每隔0.3 s闪烁一次。程序流程图略。 5) 调时功能程序 调整时间程序的方法是:按下功能键,当按下时间小于1 s时,进入省电状态,大于1 s时,进入调分状态,等待操作,此时计时器停止走动。

6) 延时程序 系统使用三个延时程序。因为系统是动态显示,为了确保系统在有效显示时间范围内(约50 ms)必须执行显示程序,所以0.5 s的延时程序是通过执行显示程序约81遍实现的。

程序如下: ORG 0000H AJMP MAINT ;转主程序 NOP ORG 000BH AJMP INT01 ;转定时器T0中断程序 ORG 001BH AJMP INT11 ;转定时器T1中断程序

******主程序****** MAINT: MOV R0,#7FH ;00H~7FH单元清零 CLR A WZ1:MOV @R0,A DJNZ R0,WZ1 MOV SP,#30H ;置堆栈指针 MOV 5AH,#0AH ;放入“熄灭符”数据 MOV TMOD,#11H ;设T0,T1为16位定时器

MOV TL0,#0B0H ;置50 ms定时初值 MOV TH0,#3CH MOV TL1,#0B0H MOV TH1,#3CH SETB EA ;开中断 SETB ET0 ;允许T0中断 SETB TR0 ;启动T0 MOV R4,#14H ;用于产生1 s定时

MAINT1: LCALL XSZCX ;调用显示子程序 JNB P2.7,SJTZ0 ;功能键按下,进入调时程序 SJMP MAINT1 SJTZ0: LCALL XSZCX ;通过调用显示时间程序延时消抖动 JNB P2.7,SJTZ1 ;功能键没有按下,显示时间

SJTZ1: CLR ET0 ;关闭T0中断 CLR TR0 ;关闭T0 LCALL YS1S ;调用1 s延时程序 JB P2.7,KMTES ;按键时间小于1 s,进入省电状态 MOV R2,#06H ;进入调时状态,置闪烁定时初值 SETB ET1 ;允许T1中断 SETB TR1 ;启动T1

XYZ2:JNB P2.7,XYZ1 ;P2.7端为0,等待 CLR 01H ;置调分标志位为1 XYZ4:JB P2.7,XYZ3 ;等待键按下 LCALL YS05S ;延时0.5 s JNB P2.7,XYZHH ;按键时间大于0.5 s,转到调小时状态 MOV R0,#53H ;按键时间小于0.5 s,进入调分状态 LCALL ADD1 ;调时间加1子程序

MOV A,R3 ;取要调整的单元数据 CLR C CJNE A,#60,QWE ;调整单元数据与60比较 JC XYZ4 ;小于60转到XYZ4循环 QWE:CLR A ;大于或等于60,清零 MOV @R0,A DEC R0 CLR C AJMP XYZ4 ;转到XYZ4循环

KMTES: SETB ET0 ;省电状态,开T0中断 SETB TR0 ;启动T0(开时钟) KMA: JB P2.7,$ ;无按键按下,等待 LCALL XSZCX ;通过调用显示时间程序延时消抖动 JB P2.7,KMA ;是干扰返回等待 KMA1: JNB P2.7,$ ;等待键释放 LJMP MAINT1 ;返回主程序,显示时间

XYZHH: JNB P2.7,XYZ5 ;等待键释放 SETB 01H ;置调小时标志位 XYZ6: JB P2.7,XYZ7 ;等待键按下 LCALL YS05S ;有键按下,延时0.5 s JNB P2.7,XYZOUT ;按下时间大于0.5 s,退出调整状态 MOV R0,#55H ;小于0.5 s,调整小时 LCALL ADD1 ;调加1子程序 MOV A,R3

CLR C CJNE A,#24,KMB1 ;计时单元与24比较 JC XYZ6, ;小于24转XYZ6循环 KMB1: CLR A ;大于或等于24,则清零 MOV @R,A DEC R0 MOV @R0,A AJMP XYZ6 ;转XYZ6循环

XYZOUT: JNB P2.7,XYZOUT1 ;退出调时状态,等待键释放 LCALL XSZCX ;通过调用显示程序延时消抖动 JNB P2.7,XYZOUT ;是抖动,返回XYZOUT等待 MOV 20H,#00H ;清调时标志位 CLR TR1 ;关闭T1 CLR ET1 ;关T1中断 SETB TR0 ;启动T0 SETB ET0 ;开T0中断 LJMP MAINT1 ;返回主程序

XYZ1: LCALL XSZCX ;键释放等待时,调用显示子程序 AJMP XYZ2 ;防止此时无时钟显示 XYZ3: LCALL XSZCX AJMP XYZ4 XYZ5: LCALL XSZCX AJMP XYZHH XYZ7: LCALL XSZCX AJMP XYZ6 XYZOUT1: LCALL XSZCX AJMP XYZOUT

******显示子程序******   XSZCX:MOV R1,#50H ;显示数据首址 MOV R5,#0FEH ;扫描控制字初值 MAXY: MOV A,R5 ;扫描控制字送A MOV P2,A ;输出扫描控制字 MOV A,@R1 ;取显示数据 MOV DPTR,#ABC ;取段码表首地址 MOVC A,@A+DPTR ;取对应段码 MOV P1,A ;P1口输出段码 LCALL YS1MS ;延时1 ms

INC R1 ;显示地址增1 MOV A,R5 ;扫描控制字送A JNB ACC.5,ENDOUT ;ACC.5为0时一次显示结束 RL A ;控制字左移 MOV R5,A ;制字送回R5中 AJMP MAXY ;循环显示下一个数据 ENDOUT: MOV P2,#0FFH ;一次显示结束,P2口复位 MOV P1,#0FFH ;P1口复位 RET ;子程序返回

******T0中断服务程序******   INT01: PUSH ACC ;保护现场 PUSH PSW CLR ET0 ;关T0中断 CLR TR0 ;关定时器T0 MOV A,#0B7H ;修正中断响应时间 ADD A,TL0 MOV TL0,A

MOV A,#3CH ADDC A,TH0 SETB TR0 ;启动定时器T0 DJNZ R4,INT0U ;20次中断未到退出中断 AD1: MOV R4,#14H ;R4重新赋值 MOV R0,#51H ;指向秒计时单元(50H,51H) LCALL ADD1 ;调用加1 s程序 MOV A,R3 ;秒数据放入A CLR C ;清进位标志 CJNE A,#60,AD2 ;小于60 s吗 JC INT0U ;小于60 s退出中断

AD2: CLR A ;大于或等于60 s,清秒计数单元 MOV @R0,A DEC R0 MOV R0,#57H ;指向分计时单元(56H,57H) ACALL ADD1 ;调用加1 min程序 MOV A,R3 ;分数据放入A CLR C CJNE A,#60,AD3 ;小于60 min吗 JC INT0U ;小于60 min退出中断

AD3: CLR A ;大于或等于60 min,清分计数单元 MOV @R0,A DEC R0 MOV @R0,A MOV R0,#59H ;指向小时计时单元(58H,59H) ACALL ADD1 ;调用加1 h程序 MOV A,R3 ;小时数据放入A CLR C CJNE A,#24,AD4 ;小于24 h吗 JC INT0U ;小于24 h退出中断

AD4: CLR A ;大于或等于24 h清小时计数单元 MOV @R0,A DEC R0 INT0U: MOV 52H,56H ;中断退出时将分、时计时单元数据 MOV 53H,57H ;移入对应显示单元 MOV 54H,58H MOV 55H,59H

POP PSW ;恢复现场 POP ACC SETB ET0 ;开放T0中断 RETI ;中断返回

****** T1中断服务程序******   INT11: PUSH ACC ;保护现场 PUSH PSW MOV TL1,#0B0H ;装定时器T1初值 MOV TH1,#3CH DJNZ R2,INT1U ;0.3 s未到退出中断 MOV R2,#06H ;重装0.3 s定时用初值 CPL 02H ;0.3 s定时到,对闪烁标志取反

JB 02H,CCC1 ;02H位为1时显示单元“熄灭” MOV 52H,56H ;02H位为0时显示正常 MOV 53H,57H MOV 54H,58H MOV 55H,59H INT1U: POP PSW ;恢复现场 POP ACC RETI ;退出中断

CCC1: JB 01H,CCC2 ;01H位为1时转小时熄灭控制 MOV 52H,5AH ;01H位为0时“熄灭符”放入分计时单元 MOV 53H,5AH MOV 54H,58H MOV 55H,59H AJMP INT1U ;转中断退出

CCC2: MOV 52H,56H ;01H位为1时“熄灭符”放入小时计时单元 MOV 53H,57H MOV 54H,5AH MOV 55H,5AH AJMP INT1U ;转中断退出 ADD1: MOV A,@R0 ;取出现计时数据放入A DEC R0 ;指向前一单元

SWAP A ;A中高4位与低4位互换 ORL A,@R0 ;前一单元中数据放入A中低4位 ADD A,#01H ;A加1 DA A ;十进制调整 MOV R3,A ;移入R3寄存器 ANL A,#0FH ;高4位变0 MOV @R0,A ;放回前一地址单元 MOV A,R3 ;取回R3中暂存数据 INC R0 ;指向当前地址单元 SWAP A ;A中高4位与低4位互换 ANL A,#0FH ;高4位变0

MOV @R0, A ;数据存入当前地址单元 RET ;子程序返回   ******延时子程序****** YS1MS: MOV R6,#14H ;延时1 ms子程序 YS1: MOV R7,#19H YS2: DJNZ R7,YS2 DJNZ R6,YS1 RET

YS1S: LCALL YS05S ;延时1 s子程序 LCALL YS05S RET YS05S: MOV R3,#51H ;延时0.5 s子程序 YS05S1: LCALL XSZCX DJNZ R3,YS05S1 ABC: DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H,0FFH END