第4章 89C51汇编语言程序设计

合集下载

第三章--89C51汇编语言指令系统

第三章--89C51汇编语言指令系统
在 MOV x,y 格式中 y为源操作数,可以是: A、立即数、工作寄存器、 直接地址、间接地址。 x为目的操作数,可以是:A、工作寄存器、直接地 址、间接地址。 注意(1)立即数不能是目的操作数 (2)不存在 MOV R1,R2 MOV @R1,@R0 MOV A,@R2
指令举例
MOV A,#05H MOV A,@R0 MOV R3,A MOV R5,33H MOV 22H,A MOV 40H,41H MOV 43H,#3AH MOV MOV A,R7 A,40H
A
(A=7CH)
3.3.5 控制转移类(使用较少但很重要)
共16种助记符:
无条件小类 JMP @A+DPTR 间接转移(散转) SJMP rel 一字节补码短跳转 AJMP 11位地址标号 2K空间 LJMP 16位地址标号 64K空间 条件转移小类 JZ rel / JNZ rel 为0/非0转 JC rel / JNC rel 有/无进位转 JB bit,rel / JNB bit,rel 置位/复位转 CJNE [x],[y],rel 比较不等转 DJNZ x, rel 减1不为0转 调用和返回小类 ACALL / LCALL 短调用/长调用 RET / RETI 子程序返回/中断返回
3.3.2 数据传送类
共8种助记符: MOV CPU与内部RAM和SFR之间传送 MOVX CPU与外部RAM和I/O之间传送 MOVC CPU对程序存储器ROM读操作 PUSH 压栈 POP 弹栈 XCH 字节交换 XCHD 半字节交换 SWAP 累加器自身半字节交换
MOV 指令详解(使用最频繁)
3.3 89C51单片机指令系统
要求:了解汇编指令按功能分类 能读懂简单程序片段
3.3.1 5种指令类别:

Keil创建一个汇编程序地步骤

Keil创建一个汇编程序地步骤

Keil创建一个汇编程序的步骤1、在C盘新建文件夹“实验一”,启动Keil2、建立一个新工程,单击Project菜单,在弹出的下拉菜单中选中NewProject选项,如图1 - 1所示。

Fih Edit Yi的'■■ 1 ■ ■project Bebu( Ptriph«rtls Tools SVCS Yindor Htlpijt £00窟圏|©|| 1憾皆幽昌■ HarProject?^ |[■port J1 Visionl Projects"Qp«i Project图1 - 13、然后选择你要保存的路径“ C:/实验一”,输入工程文件的名字“实验一”,然后点击保存。

4、这时会弹出一个对话框,要求你选择单片机的型号,这里选择Atmel89C51,如图1 - 2所示,选择89C51之后,右边栏是对这个单片机的基本的说明,然后点击确定。

完成后,屏幕如图 1 —3所示。

CPU |Vendor:Atm«lDevic«:AT89CS2rFamily:■CS-S1rQ.*t«・tpti on:Select Devi c* for Tar1"Us* E M• *nd«d [ink" CLX51 ) i nxt «*d BIS IUst E KTL dc-<1 AxsfefftbLtr (AXH〕i tiEr lE.d. ◎£ J M-» 1Ell. Edu 0“C«buc PtL>pb*rdl looli SVCS findow ]|tlp窗aH 0 融・1© 口 JS1 B B^"|「°. 宰塞>4%戈怡鹽TI「— - ----------------- --- -----■_ -——■—— …’ ----------------------------- ---- - ------------ 一― J -ss5sa^» [f^—r■*■胴ow5、在图1- 3中,单击“ File ”菜单,再在下拉菜单中单击“NeW'选项。

单片机最后复习 2014-2015(1)end

单片机最后复习 2014-2015(1)end

目标代码;而指令由 CPU 执行,在汇编过程中,产生可执行
的目标代码,完成对数据的运算与处理。 (2)常用的伪指令: ORG END DB DW DS EQU BIT
3、单片机基本程序结构
入口 入口 否 过程 否 入口 P1 条件满足?

P2 过程A P3 出口 出口 出口 过程B 条件满足?

(a) 顺序结构
1、答案: SP=60H DPTR=5030H
某程序段如下,假设SP=30H,DPTR=4455H。 PUSH DPL PUSH DPH POP 08H 程序执行后,SP = (08H) =
单片机的其他资源
6、引脚 单片机的引脚除了我们前面介绍的4个并I/O口,两根时钟 引脚(18、19脚),一根复位引脚(9脚),两根电源脚(40、 20脚)外,还有PSEN、EA、ALE、RESET等引脚。
MCS-51 单片机片内RAM的配置图
特殊功能寄存器名称、 标识符、 地址一览表
返回
返回
注意
数据指针(DPTR):
数据指针为16位寄存器,编程时,既可以按16位 寄存器来使用,也可以按两个8位寄存器来使用,即 高位字节寄存器DPH和低位字节DPL。 DPTR主要是用来保存16位地址,当对64kB外部 数据存储器寻址时,可作为间址寄存器使用,此时, 使用如下两条指令: MOVX A, @DPTR MOVX @DPTR, A 在访问程序存储器时,DPTR可用来作基址寄存 器,采用基址+变址寻址方式访问程序存储器,这条 指令常用于读取程序存储器内的表格数据。 MOVC A, @A+@DPTR
80H 7FH
真正RAM区
00H
MCS-51 单片机片内RAM的配置图

第2章89C51单片机硬件结构和原理2010

第2章89C51单片机硬件结构和原理2010

89C51有四个8位并行I/O接口P0~P3。 它们都是双向端口,每个端口各有8条I/O线。 P0~P3口四个锁存器同RAM统一编址,可作为SFR来寻址。
返回
2.2 MCS-51单片机引脚及其功能
§2.2.1 MCS-51单片机引脚

89C51单片机引脚如图2-3所示。
§2.2.2 MCS-51单片机引脚功能
返回
三、寻址方式:

1、当 EA=“1”时:

在0000~0FFFH范围内执行片内ROM中的程序,
当指令地址超过0FFFH 后就自动转向片外ROM
中取指令。

2、当 EA=”0”时:

片内ROM不起作用,CPU只能从片外ROM/EPROM 中取指令,可从 0000H 开始寻址。

3、片内ROBiblioteka 和片外ROM取指的速度相同。规定的操作。
返回
(3)振荡器和定时电路

89C51单片机片内有振荡电路,只需外接石英晶体和频率
微调电容(2个30pF左右),其频率范围为1.2MHz~12MHz。
该信号作为89C51工作的基本节拍即时间的最小单位。
返回
(二)、存储器的组成部分
1、程序存储器(ROM)

地址从0000H开始。

用于存放程序和表格常数。
程序存储器 4KBROM
数据存储器 256B RAM/SFR
2×16位 定时器/计数器
89C51 CPU 64KB 总线 扩展控制器 内中断 外中断 控制 并行口 可编程全双工 串行口
可编程I/O
串行通信 返回
一、组成 一个8位的微处理器CPU。
片内数据存储器(RAM128B/256B):

单片机程序设计—电子密码锁

单片机程序设计—电子密码锁

目录目录 (1)中文摘要 (2)第一章概述 (5)第二章系统总体方案设计 (6)第三章硬件电路设计 (10)3.1键盘电路设计 (10)3.2 LED显示电路 (12)3.3 开锁警电路 (15)第四章软件设计 (17)4.1 软件设计思路 (17)4.2各子程序设计 (17)第五章系统调试 (22)第六章心得体会 (23)第七章参考文献 (24)附录 (25)源程序清单 (25)中文摘要摘要:在日常生活和工作中,住宅与部门的安全防范、单位的文件档案、财务报表以及一些个人资料的保存多以加锁的办法来解决。

若使用传统的机械式钥匙开锁,人们常需携带多把钥匙,使用极不方便,且钥匙丢失后安全性即大打折扣,随着科学技术的不断发展,人们对日常生活中的安全保险器件的要求越来越高。

为满足人们对锁得使用要求,增加其安全性,用密码代替钥匙的密码锁应运而生。

密码锁具有安全性高、成本低、功耗低、易操作等优点。

在安全技术防范领域,具有防盗报警功能的电子密码锁逐渐替代传统的机械式密码锁,克服了机械式密码锁密码量少、安全性能差的缺点,使密码锁无论在技术上还是在性能上都大大提高一步。

随着大规模集成电路技术的发展,特别是单片机的问世,出现了带微处理器的只能密码锁,它除了具有电子密码锁的功能外,还引进了智能化管理、专家分析系统等功能,从而使密码锁具有很高的安全性、可靠性,应用日益广泛。

随着人们对安全的重视和科技的发展,许多电子智能锁(指纹识别、IC卡辨认)已在国内外相继面世。

但是,这些产品的特点是针对特定的指纹和有效卡,只能适用于保密要求的箱、柜、门等。

而且指纹识别器若在公共场所使用存在容易机械损坏,IC卡还存在容易丢失、损坏等特点。

加上其成本较高,一定程度上限制了这类产品的普及和推广。

鉴于目前的技术水平与市场的接收程度,电子密码锁是这类电子防盗产品的主流。

基于以上思路,本次设计使用ATMEL公司的AT89C51实现—基于单片机的电子密码锁的设计,其主要具有如下功能:密码通过键盘输入,若密码正确,则将锁打开。

自动往返小车电路图及汇编程序-论文

自动往返小车电路图及汇编程序-论文

自动往返小车电路图及汇编程序-论文自动往返小车电路图及汇编程序目录前言自动往返行驶小汽车的设计 (摘要) (4)第一章系统方案选择和论证............................................................5 第二章系统的硬件设计与实现.........................................................10 第三章系统的软件设计..................................................................14 第四章系统的汇编程序..................................................................19 第五章系统调试...........................................................................30 第六章技术参数...........................................................................31 结束语................................................................................. 33 参考文献 (34)前言伴随着电子信息技术的飞速发展,单片机的应用越来越广泛,电子这个原本没有生命的东西越来越具有智慧了,而单片机在这当中充当着“大脑”的作用,指挥着系统完成其工作。

单片机通过用汇编语言或者C语言编程,可以实现不同情况下的,不同电路的自动控制,用它可以开发很多智能的玩具,如机器人、遥控飞机、智能车,实际生活中的很多电器,例如电冰箱、全自动洗衣机、空调等,还有就是很多测量仪器以及高科技的空间探测,孙宙探索等都用到单片机,可以说现在生活中大多数的智能物品都用到单片机,围绕单片机以及嵌入式系统形成的电子产业将会是一个持续发展,愈来愈具有竞争力,愈来愈具有生命力的产业,电子世界将会更具有魅力。

基于AT89C51的无线数据采集系统 毕业设计

职业技术学院中文摘要近年来,单片机以其功能强、体积小、使用方便、性能价格比较高等优点,在实时控制、自动测试、智能仪表、计算机终端、遥测通讯、家用电器等许多方面得到了广泛的应用。

温度是工业生产中最常见和最基本的工业参数之一,是与人类的生活、工作关系最密切的物理量,也是各学科与工程研究设计中经常遇到和必须精确测量的物理量。

本设计采用单片机AT89C51系列作为控制核心,进行无线数据采集,通过智能温度传感器DS18b20将温度值转换,经过单片机处理后,使数据显示在数码管上。

单片机应用系统开发技术是当前最流行的实用技术之一,大多数电子产品与设备都采用单片机技术的支持。

本文从应用出发,以实际项目数字温度计为开发背景,介绍了一种基于单片机控制的数字温度计的设计与制作的具体过程。

除此之外,还具备了LED 显示功能。

【关键词】单片机;传感器;数码管。

-目录第1章绪论 (1)1.1课题背景 (1)1.2 开发意义 (1)1.3 课题完成的功能 (1)第2章硬件电路的设计 (2)2.1 传感器简介 (2)2.1.1 DS18B20的特性 (2)2.1.2 DS18B20的引脚及特性 (3)2.1.3 DS18B20的内部结构 (3)2.1.4 DS18B20的工作原理 (4)2.1.5温度检测系统原理流程图 (7)2.1.6 DS1820使用中注意事项 (8)2.2单片机系统 (8)2.2.1 单片机介绍 (9)2.2.2 管脚说明 (12)2.3 数码管简介 (15)2.3.1 数码管工作原理及引脚 (15)2.3.2 共阳极数码管简介 (16)2.3.3 数码管编码方法 (16)2.3.4 显示数字对应的二进制电平信号 (17)2.3.5 数码管使用条件: (17)2.4 数码管显示图 (18)第3章软件设计 (19)3.1流程图 (19)第4章系统软硬件调试 (20)第5章结论 (20)5.1 社会经济效益分析 (20)5.2 收获与体会 (20)参考文献 (21)致谢 (23)附录 (24)1.元器件清单 (24)2.89C51控制程序设计: (24)3.电路原理图 (29)第1章绪论1.1课题背景温度是工业生产中最常见和最基本的工业参数之一,是与人类的生活、工作关系最密切的物理量,也是各学科与工程研究设计中经常遇到和必须精确测量的物理量。

单片机原理及接口技术期末复习资料

第一章微机基础知识1、微处理器:又称中央处理单元CPU,是小型计算机或微型计算机的控制和处理部分。

2、微型计算机:简称微机C,是具有完整运算及控制功能的计算机。

包括:微处理器(CPU)、存储器、接口适配器(输入输出接口电路)、输入/输出(I/O)设备。

3、单片机:是将微处理器、一定容量RAM和ROM以及I/O口、定时器等电路集成在一块芯片上,构成单片微型计算机。

4、单片微型计算机包括:微处理器、RAM、ROM、I/O口、定时器5、微处理器(机)的组成:运算器&控制器㈠运算器的组成:算术逻辑单元(简称ALU)、累加器、寄存器ALU的作用:是把传送到微处理器的数据进行运算或逻辑运算。

运算器的两个主要功能:(1)执行各种算术运算。

(2)执行各种逻辑运算,并进行逻辑测试。

如零值测试或两个值的比较。

㈡控制器的组成:程序计数器、指令寄存器、指令译码器、时序发生器、操作控制器6、CPU中的主要寄存器:累加器(A)、数据寄存器(DR)、指令寄存器(IR)和指令译码器(ID)、程序计数器(PC)、地址寄存器(AR)7、BCD码:用二进制对十进制0-9进行编码——BCD码。

用四位二进制数0000-1001表示0-9。

例如:13 D=0001 0011 BCD例如:1001 0111 BCD=97 D第二章89C51单片机的结构和原理1、运算器包括:ALU(算术运算和逻辑运算单元)TMP(8位的暂存器)ACC(累加器)B(寄存器)PSW(程序状态寄存器)2、存储器包括:程序存储器(ROM)、数据存储器(RAM)3、CPU访问片内、片外ROM指令用MOVC。

访问片外RAM指令用MOVX。

访问片内RAM指令用MOV。

4、高128字节RAM——特殊功能寄存器(SFR):有21个;地址:80H~FFH5、堆栈的两种操作:数据压入(PUSH)数据弹出(POP)6、每条指令由一个或若干个字节组成。

有单字节指令,双字节指令,…多字节指令等。

MCS51-C语言编程


COMPACT
LARGE
指针
在汇编语言程序中,要取存贮单元m的内容可用直接寻 址方式,也可用寄存器间接寻址方式 ,如果用R1寄存 器指示m的地址,用@R1取m单元的内容。 在C语言中用变量名表示取变量的值(相当于直接寻址), 也可用另一个变量(如P)存放m的地址,P就相当于R1寄 存器 。用*P取得m单元的内容(相当于汇编的间接寻址 方式)这里P即为指针型变量。
函数
库函数 库函数是编译系统为用户设计的一系列标准函 数 用户自定义函数 用户根据任务编中直接编写51单片机的中 断服务程序,C51编译对函数定义进行了扩展,增加了 一个关键字interrupt,interrupt是函数定义时的一 个选项,加上它函数将函数定义成中断服务函数 函数类型 函数名(形式参数表) [interrupt n][using n]
中断举例
#include <reg51.h> sbit P1_0=P1^0; void timer0 (void) interrupt 1 using 1 { /*T0 中断服务程序入口*/ P1_0 =! P1_0; TH0=-(1000/256); /*计数初值重装*/ TL0=-(1000%256); } void main(void) { TMOD=0x01; /*T0工作在定时器方式1*/ P1_0=0; TH0=-(1000/256); /*预置计数初值*/ TL0=-(1000%256); EA=1; /*CPU开中断*/ ET0=1; /*T0开中断*/ TR0=1; /*启动T0*/ do{} while(1); }
指针定义
MCS-51有不同的存贮空间,不同的地址范围,即使对 于同一外部数据存贮器,又有用@Ri分页寻址(Ri为八 位)和用@DPTR寻址(DPTR为十六位)两种寻址方式

51单片机电子时钟课程设计

一、设计要求1、准确计时,以数字形式显示时、分、秒地时间.2、小时以24小时计时形式,分秒计时为60进位.3、校正时间功能,即能随意设定走时时间.4、闹钟功能,一旦走时到该时间,能以声或光地形式告警提示.5、设计5V直流电源,系统时钟电路、复位电路.6、能指示秒节奏,即秒提示.7、可采用交直流供电电源,且能自动切换.二、设计方案和论证本次设计时钟电路,使用了ATC89C51单片机芯片控制电路,单片机控制电路简单且省去了很多复杂地线路,使得电路简明易懂,使用键盘键上地按键来调整时钟地时、分、秒,用一扬声器来进行定时提醒,同时使用汇编语言程序来控制整个时钟显示,使得编程变得更容易,这样通过四个模块:键盘、芯片、扬声器、LED显示即可满足设计要求. 2.1、总设计原理框图如下图所示:2.2、设计方案地选择1.计时方案方案1:采用实时时钟芯片现在市场上有很多实时时钟集成电路,如DS1287、DS12887、DS1302等.这些实时时钟芯片具备年、月、日、时、分、秒计时功能和多点定时功能,计时数据地更新每秒自动进行一次,不需要程序干预.因此,在工业实时测控系统中多采用这一类专用芯片来实现实时时钟功能.方案2:使用单片机内部地可编程定时器.利用单片机内部地定时计数器进行中端定时,配合软件延时实现时、分、秒地计时.该方案节省硬件成本,但程序设计较为复杂.2.显示方案对于实时时钟而言,显示显然是另一个重要地环节.通常LED显示有两种方式:动态显示和静态显示.静态显示地优点是程序简单、显示亮度有保证、单片机CPU地开销小,节约CPU地工作时间.但占有I/O口线多,每一个LED都要占有一个I/O口,硬件开销大,电路复杂.需要几个LED就必须占有几个并行口,比较适用于LED数量较少地场合.当然当LED数量较多地时候,可以使用单片机地串行口通过移位寄存器地方式加以解决,但程序编写比较麻烦.LED动态显示硬件连接简单,但动态扫描地显示方式需要占有CPU较多地时间,在单片机没有太多实时测控任务地情况下可以采用.本系统需要采用6位LED数码管来分别显示时、分、秒,因数码管个数较多,故本系统选择动态显示方式.2.3硬件部分1、STC89C51单片机介绍STC89C51单片机是由深圳宏晶公司代理销售地一款MCU,是由美国设计生产地一种低电压、高性能CMOS 8位单片机,片内含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.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(外部数据存储器读选通)P3口同时为闪烁编程和编程校验接收一些控制信号.RST:复位输入.当振荡器复位器件时,要保持RST脚两个机器周期地高电平时间.ALE/PROG:当访问外部存储器时,地址锁存允许地输出电平用于锁存地址地地位字节.在FLASH编程期间,此引脚用于输入编程脉冲.在平时,ALE 端以不变地频率周期输出正脉冲信号,此频率为振荡器频率地1/6.因此它可用作对外部输出地脉冲或用于定时目地.然而要注意地是:每当用作外部数据存储器时,将跳过一个ALE脉冲.如想禁止ALE地输出可在SFR8EH地址上置0.此时,ALE只有在执行MOVX,MOVC指令是ALE才起作用.另外,该引脚被略微拉高.如果微处理器在外部执行状态ALE禁止,置位无效.PSEN:外部程序存储器地选通信号.在由外部程序存储器取指期间,每个机器周期两次/PSEN有效.但在访问外部数据存储器时,这两次有效地/PSEN信号将不出现.EA/VPP:当/EA保持低电平时,则在此期间外部程序存储(0000H-FFFFH),不管是否有内部程序存储器.注意加密方式1时, /EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器.在FLASH编程期间,此引脚也用于施加12V编程电源(VPP).2、上电按钮复位电路本设计采用上电按钮复位电路:首先经过上电复位,当按下按键时,RST直接与VCC相连,为高电平形成复位,同时电解电容被电路放电;按键松开时,VCC对电容充电,充电电流在电阻上,RST依然为高电平,仍然是复位,充电完成后,电容相当于开路,RST为低电平,单片机芯片正常工作.其中电阻R2决定了电容充电地时间,R2越大则充电时间长,复位信号从VCC回落到0V地时间也长.3、晶振电路本设计晶振电路采用12M地晶振.晶振地作用是给单片机正常工作提供稳定地时钟信号.单片机地晶振并不是只能用12M,只要不超过20M就行,在准许地范围内,晶振越大,单片机运行越快,还有用12M地就是好算时间,因为一个机器周期为1/12时钟周期,所以这样用12M地话,一个时钟周期为12us,那么定时器计一次数就是1us了,电容范围在20-40pF之间,这里连接地是30pF地电容.机器周期=10*晶振周期=12*系统时钟周期4.下载端口设计用到地STC89C52单片机芯片地ISP下载线是通过单片机地TXD,RXD引脚把程序烧进去地.管脚TXD和RXD用于异步串行通信.其实STC89C52单片机地ISP下载线就是一个max232芯片连接STC和计算机地串行通信口.计算机把程序从九针串口送到max232芯片,电平转换后送进单片机地串行口,也就是TXD和RXD.然后单片机地串行模块把数据送到程序区.5、显示电路就时钟而言,通常可采用液晶显示或数码管显示.由于一般地段式液晶屏,需要专门地驱动电路,而且液晶显示作为一种被动显示,可视性相对较差;对于具有驱动电路和微处理器接口地液晶显示模块(字符或点阵),一般多采用并行接口,对微处理器地接口要求较高,占用资源多.另外,89C2051本身无专门地液晶驱动接口,因此,本时钟采用数码管显示方式.数码管作为一种主动显示器件,具有亮度高、价格便宜等优点,而且市场上也有专门地时钟显示组合数码管.对于实时时钟而言,显示显然是另一个重要地环节.通常LED显示有两种方式:动态显示和静态显示.静态显示地优点是程序简单、显示亮度有保证、单片机CPU地开销小,节约CPU地工作时间.但占有I/O口线多,每一个LED都要占有一个I/O口,硬件开销大,电路复杂.需要几个LED就必须占有几个并行口,比较适用于LED数量较少地场合.当然当LED数量较多地时候,可以使用单片机地串行口通过移位寄存器地方式加以解决,但程序编写比较麻烦.LED动态显示硬件连接简单,但动态扫描地显示方式需要占有CPU较多地时间,在单片机没有太多实时测控任务地情况下可以采用.本系统需要采用6位LED数码管来分别显示时、分、秒,因数码管个数较多,故本系统选择动态显示方式.6、时钟显示校正电路本设计利用按键开关来校正时钟显示地数字.当按钮按下时,将在相应地端口输入一个低电平,通过相应地程序来改变时钟显示.其中S1按键开关用来选择要修改地数字;S2按键用来增加所选数字地数值;S3按键用来减少所选数字地数值.7、蜂鸣器电路电路接法:三极管选定PNP型,基极B连接5V电压,发射极E连接一个1K左右地电阻后接I/O口,集电极C连接蜂鸣器后接地.单片机在复位后地个I/O口是高电平,此时三极管是截止地,编写程序使选定地I/O为低电平,此时三极管导通,导通后蜂鸣器与电源正极连通,构成一个工作回路,从而发出滴滴地响声.其中电阻R1在电路里起分压限流地作用,PNP三极管起到模拟开关地作用.8、外接电源电路外接电源电路用于连接外部5V电源与电子时钟电路,通过自锁开关控制电路地导通与断开,当开关闭合时,电路导通,外部电源给电路正常供电,电子时钟正常工作.当开关断开时,电路停止工作.9、总电路原理图(五)软件部分根据上述电子时钟地工作流程,软件设计可分为以下几个功能模块:(1)主程序模块.主程序主要用于系统初始化:设置计时缓冲区地位置及初值,设置8155地工作方式、定时器地工作方式和计数初值等参数.主程序流程如下图所示.开始定义堆栈区8155、T0、数据缓冲区、标志位初始化调用键盘扫描程序否是C/R键?地址指针指向计时缓冲区主程序流程图(2)计时模块.即定时器0中断子程序,完成刷新计时缓冲区地功能.系统使用6MHz地晶振,假设定时器0工作在方式1,则定时器地最大定时时间为65.536ms,这个值远远小于1s.因此本系统采用定时器与软件循环相结合地定时方法.设定时器0工作在方式1,每隔50ms溢出中断一次,则循环中断20次延时时间是1s,上述过程重复60次为1分,分计时60次为1小时,小时计时24次则时间重新回到00:00:00.因定时器0工作在方式1,则50ms定时对应地定时器初值为:65536-50ms/2us=40536=9E58H,即TH0=9EH,TH0=58H.但应当指出:CPU从响应T0中断到完成定时器初值重装这段时间,定时器T0并不停止工作,而是继续计数.因此,为了确保T0能准确定时50ms,重装地定时器初值必须加以修正,修正地定时器初值必须考虑到从原定时器初值中扣除计数器多计地脉冲个数.由于定时器计数脉冲地周期恰好和机器周期吻合,因此修正量等于CPU从响应中断到重装完TL0为止所用地机器周期数.CPU响应中断通常要3~8个机器周期.经过测试,定时器0重装地计数初值设为9E5FH~9E67H,可以满足精度要求.另外,MCS-51单片机只有二进制加法指令,而时间是按十进制递增,因此用加法指令后必须进行二-十进制转换.计时模块流程图如下图所示.计时模块流程图(3)时间设置模块.该模块由键盘输入相应地数据来设置当前时间.程序通过调用一个键盘设置子程序通过键盘扫描将键入地6位时间值送入显示缓冲区.设置时间后,时钟要从这个时间开始计时,而时分秒单元各占一个字节,键盘占6个字节.因此程序中要调用一个合字子程序将显示缓冲区中地6位BCD码合并为3位压缩BCD码,并送入计时缓冲区,作为当前计时起始时间.该程序同时要检测输入时间值地合法性,若键盘输入地小时值大于23,分、秒值大于59,则不合法,将取消本次设置,清零重新开始计时.时间设置和键盘设置子程序地流程图如下图所示.时间设置流程图键盘设置子程序流程图(4)显示模块.该模块完成时分秒6位LED地动态显示.因为显示为6位,二计时是3个字节单元,为此,必须将3字节计时缓冲区中地时分秒压缩BCD码拆分为6字节BCD码,并送入显示缓冲区中.当按下调整时间键后,在6位设置完成之前,这6个LED应该显示键人地数据,不显示当前地时间.为此,我们设置了一个计时显示允许标志位F0,在时间设置期间F0=1,不调用刷新显示缓冲区地子程序.显示程序流程图如下图所示.保护现场是显示程序流程图键盘扫描程序流程图程序:ORG 0000H AJMP MAIN ORG 000BH AJMP TIME ORG 0300H MAIN:mov 20h,#00h MOV 21H,#00H MOV 22H,#00H MOV 23H,#00H MOV IP,#02H 。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
相关文档
最新文档