基于8086CPU微处理器的分秒电子钟设计

发布者:MysticEssence最新更新时间:2021-07-27 来源: eefocus关键字:微处理器 手机看文章 扫描二维码
随时随地手机看文章

设计思路

利用视觉暂留循环显示,四位数码管分秒计数,并检测有无按键按下。对应按下不同按键,秒计数加1,分计数加1。循环达到1s,秒计数加1,秒计数到的60,秒计数减60,分计数加1,分计数到的60,分计数减60。设计思路如下所示:

在这里插入图片描述

主要元件介绍及使用

8086CPU介绍

Intel 8086拥有四个16位的通用寄存器,也能够当作八个8位寄存器来存取,以及四个16位索引寄存器(包含了堆栈指标)。资料寄存器通常由指令隐含地使用,针对暂存值需要复杂的寄存器配置。它提供64K 8位元的输出输入(或32K 16位元),以及固定的向量中断。大部分的指令只能够存取一个内存位址,所以其中一个操作数必须是一个寄存器。运算结果会储存在操作数中的一个寄存器。


Intel 8086有四个 内存区段(segment)寄存器,可以从索引寄存器来设定。区段寄存器可以让 CPU 利用特殊的方式存取1 MB内存。8086 把段地址左移 4 位然后把它加上偏移地址。大部分的人都认为这是一个很不好的设计,因为这样的结果是会让各分段有重叠。尽管这样对组合语言而言大部分被接受(也甚至有用),可以完全地控制分段,使在编程中使用指针(如C编程语言) 变得困难。它导致指针的高效率表示变得困难,且有可能产生两个指向同一个地方的指针拥有不同的地址。更坏的是,这种方式产生要让内存扩充到大于 1 MB 的困难。而 8086 的寻址方式改变让内存扩充较有效率。


8086处理器的时钟频率介于4.77MHz(在原先的IBM PC频率)和10 MHz之间。8086 没有包含浮点指令部分(FPU),但是可以通过外接数学辅助处理器来增强浮点计算能力。Intel 8087 是标准版本。


74LS373锁存器介绍与使用

74LS373是三态输出的八D锁存器,共有54S373和74LS373两种线路。373 的输出端 Q0~Q7 可直接与总线相连。当锁存允许端LE为高电平时,Q 随数据D而变。当LE为低电平时,D 被锁存在已建立的数据电平。


74LS373真值表如下:

在这里插入图片描述

X表示任意。

在这里插入图片描述

8086CPU与锁存器连接电路图



8255可编程并行接口介绍与使用

8255芯片是Intel公司生产的可编程并行I/O接口芯片,有3个8位并行I/O口。具有3个通道3种工作方式的可编程并行接口芯片(40引脚)。 其各口功能可由软件选择,使用灵活,通用性强。

在这里插入图片描述

X表示任意。


整体设计与仿真实现

86CPU为主体的分秒电子钟设计,如图:

在这里插入图片描述

Proteus仿真结果如图:

在这里插入图片描述

汇编程序设计:


DATAS SEGMENT

   smgduan DB 3fH,06H,5bH,4fH,66H,6dH,7dH,07H,7fH,6fH;段选

   smgwei DB 0FEH,0FDH,0FBH,0F7H;位选

   PA EQU 0;

   PB EQU 4;

   PC EQU 8;

   min DW 0;

   sec DW 0;

   fori1 DW 6500;

   

DATAS ENDS



CODES SEGMENT

    ASSUME CS:CODES,DS:DATAS,SS:STACKS

START:

    MOV AX,DATAS

    MOV DS,AX

    

   while1:

   

   for1:

   

   MOV AX,min

   MOV BL,10

   DIV BL

   MOV CX,AX

   

   MOV AL,smgwei+0

   mov AH,PB

   OUT 00,AX

   LEA BX,smgduan

   MOV AH,0

   MOV AL,CL

   ADD BX,AX

   MOV AL,[BX]

   mov AH,PA

   OUT 00,AX

   MOV AL,00

   mov AH,PA

   OUT 00,AX

   

   MOV AL,smgwei+1

   mov AH,PB

   OUT 00,AX

   LEA BX,smgduan

   MOV AH,0

   MOV AL,CH

   ADD BX,AX

   MOV AL,[BX]

   mov AH,PA

   OUT 00,AX

   MOV AL,00

   mov AH,PA

   OUT 00,AX

   

   

   MOV AX,sec

   MOV BL,10

   DIV BL

   MOV CX,AX

   

   MOV AL,smgwei+2

   mov AH,PB

   OUT 00,AX

   LEA BX,smgduan

   MOV AH,0

   MOV AL,CL

   ADD BX,AX

   MOV AL,[BX]

   mov AH,PA

   OUT 00,AX

   MOV AL,00

   mov AH,PA

   OUT 00,AX

   

   MOV AL,smgwei+3

   mov AH,PB

   OUT 00,AX

   LEA BX,smgduan

   MOV AH,0

   MOV AL,CH

   ADD BX,AX

   MOV AL,[BX]

   mov AH,PA

   OUT 00,AX

   MOV AL,00

   mov AH,PA

   OUT 00,AX

   

   MOV CX,fori1;

   DEC CX;

   JNZ NEXT2

   

   MOV fori1,6500

   

   MOV AX,sec

   INC AX

   CMP AX,60

   JGE NEXT3

   mov sec,AX

   JMP while1

   

   

   NEXT2:                     ;循环

   MOV fori1,CX

   JMP for1

   

   NEXT3:                     ;秒满60

   SUB AX,60

   MOV sec,AX

   MOV AX,min

   INC AX 

   CMP AX,60

   JGE NEXT4

   MOV min,AX        

   JMP while1

   

   NEXT4:                    ;分满60

   SUB AX,60

   MOV min,AX

   JMP while1

   

CODES ENDS

    END START


操作说明

首先上电,8086CPU即运行程序,开始计数,每秒加1。按下,上侧按键则,秒计数加一,按下,下侧按键则,分计数加一。


完整Protues电路设计和汇编程序https://download.csdn.net/download/weixin_43786907/16526403


关键字:微处理器 引用地址:基于8086CPU微处理器的分秒电子钟设计

上一篇:MC9S12XEP100 SCI(UART)驱动程序2 - 基于uCOS-II
下一篇:MC9S12XEP100 SPI模块 驱动程序

小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved