首页 专栏文章正文

8位数字钟设计和proteus仿真电路 基于数字电路的数字钟设计与仿真

专栏 2022年11月14日 17:51 37 银路电子网

今天给大家聊到了8位数字钟设计和proteus仿真电路,以及基于数字电路的数字钟设计与仿真相关的内容,在此希望可以让网友有所了解,最后记得收藏本站。

本文目录一览:

基于Proteus的数字钟设计

给你个参考

这个是60进制计数电路,可每一位独立调节增、减数;

这个则是24进制计数电路,可每一位独立调节增、减数;

使用PROTEUS 利用89S51单片机设计一个数字时钟仿真 具体如下:

ORG 0000H

AJMP MAIN

ORG 000BH

AJMP PIT0

ORG 0030H

MAIN:MOV SP,#60H ;设置堆栈区

MOV R0,#79H ;显示缓冲区首地址

MOV R7,#06H ;显示位数

ML1:MOV @R0,#00H ;显示缓冲单元清零

INC R0

DJNZ R7,ML1

MOV TMOD,#01H ;定时器0,工作方式1

MOV TL0,#0DCH ;装载计数器初值

MOV TH0,#0BH

SETB TR0 ;TR0置1,定时开始

SETB EA ;EA置1,中断总允许

SETB ET0 ;ET0置1,定时器0中断允许

MOV 30H,#08H ;要求的计数溢出次数,即循环次数

ML0: LCALL DIS ;调用显示子程序

JNB P3.0,ML0 ;按键1判断

JNB P3.1,ML0

JNB P3.2,ML0

LOOP:JNB P3.0,L0 ;按键0判断

JNB P3.1,L1

JNB P3.2,L2

LCALL DIS ;调用显示子程序

AJMP LOOP

L0: MOV R0,#7AH ;秒加1

ACALL DAAD1

MOV A ,R2

XRL A,#60H

JNZ ML0

ACALL CLR0

AJMP ML0

L1: MOV R0,#7CH ;分加1

ACALL DAAD1

MOV A ,R2

XRL A,#60H

JNZ ML0

ACALL CLR0

AJMP ML0

L2: MOV R0,#7EH ;时加1

ACALL DAAD1

MOV A ,R2

XRL A,#24H

JNZ ML0

ACALL CLR0

SJMP ML0

PIT0:PUSH PSW ;中断服务程序,现场保护

PUSH ACC

SETB PSW.3 ;RS1 RS0=01,选择1组通用寄存器

MOV TL0,#0DCH ;计数器重新加载

MOV TH0,#0BH

DJNZ 30H,RET0 ;不满8次,转向RETO返回

MOV 30H,#08H ;满8次,开始计数时操作

MOV R0,#7AH ;秒显示缓冲单元地址

ACALL DAAD1 ;秒加1

MOV A,R2 ;秒加1后值在R2中

XRL A,#60H ;判断是否到60秒

JNZ RET0 ;不到,转到RET0返回

ACALL CLR0 ;到60秒,显示缓冲单元清零

MOV R0,#7CH ;分显示缓冲单元地址

ACALL DAAD1 ;分加1

MOV A,R2

XRL A,#60H ;判断是否到60分

JNZ RET0

ACALL CLR0 ;到60分,则分显示缓冲单元清零

MOV R0,#7EH ;时显示缓冲单元地址

ACALL DAAD1 ;时加1

MOV A,R2

XRL A,#24H ;判断是否到24时

JNZ RET0

ACALL CLR0 ;到24时,则时显示缓冲单元清零

RET0:POP ACC ;现场恢复

POP PSW

RETI ;中断返回

DAAD1:MOV A,@R0 ;加1子程序,十位书送A

DEC R0

SWAP A ;十位数占高4位

ORL A,@R0 ;个位数占低4位

ADD A,#01H ;加1

DA A ;十进制调整

MOV R2,A ;全值暂存在R2中

ANL A,#0FH ;屏蔽十位数,取出个位数

MOV @R0,A ;个位值送显示缓冲单元

MOV A,R2

INC R0

ANL A,#0F0H ;屏蔽个位数,取出十位数

SWAP A ;十位数占低4位

MOV @R0,A ;十位值送显示缓冲单元

RET ;返回

CLR0:CLR A ;清缓冲单元子程序

MOV @R0,A ;十位显示缓冲单元清零

DEC R0

MOV @R0,A ;个位显示缓冲单元清零

RET ;返回

DIS:MOV R0,#79H ;建立显示缓冲区首地址

MOV R3,#01H ;从右边开始显示

MOV A,R3 ;位控码初值

LD0:MOV DPTR,#0FFDDH ;位控口地址

MOVX @DPTR,A ;输出口控码

MOV DPTR,#0FFDCH ;段控口地址

MOV A,@R0 ;取出显示数据

DIR0:ADD A,#0DH

MOVC A,@A+PC ;查表取字形代码

DIR1:MOVX @DPTR,A ;输出断控码

ACALL DL ;延时

INC R0 ;转向下一缓冲单元

MOV A,R3

JB ACC.5,LD1 ;判断是否到最高位,到则返回

RL A ;不到,向显示器高位移位

MOV R3,A ;位控码送R3保存

AJMP LD0 ;继续扫描

LD1:RET

DSEG0:DB 0C0H ;字形代码表

DB 0F9H

DB 0A4H

DB 0B0H

DB 99H

DB 92H

DB 82H

DB 0F8H

DB 80H

DB 90H

DL: MOV R6,#125 ;设置循环次数

L1: NOP

NOP

DJNZ R6,L1

RET ;返回

END

数字钟的课程设计,用Proteus

数字钟的实现方式有很多种:

1、用数字电子的器件:接数码管前,一般用74LS90或290进行进制设定,输出的是一个四位的二进制信号。考虑整点时,分部分到59,当它跳变到00时,即整点事件发生,5的二进制编码是0101,9的二进制编码是1001,0的二进制编码是0000,即5(0101)的第三位(标记为A),9(1001)的第四位(标记为B),当它们均由1跳变为0时,整点报时,报时时间为1分钟,将分位的最后一位标记为C。下面的图是其中一种实现方式:

2、用单片机,当然就很简单啦,在分位向时位前进位的同时,某个引脚输出个低电平,蜂鸣器就响了。下面是基于51的程序:

if(min==60)

{

min=0;

hor++;

bell=0;

}

数字钟的毕业设计论文

需要给8位数字钟设计和proteus仿真电路你完成一份吗

如何在8位数码管上显示数字时钟?

数字钟设计:

(1)硬件部分主要分以下电路模块:显示电路用8个共阴数码管分别显示

(2)星期(年份),小时、分钟(月份)和秒(日)

(3)通过动态扫描进行显示

proteus中八位数码管的动态显示仿真图该怎么连接

最简单的仿真图如下,用的是8位一体的共阴数码管。数码管的名称见下图中的元件列表。

关于8位数字钟设计和proteus仿真电路和基于数字电路的数字钟设计与仿真的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。

标签: 8位数字钟设计和proteus仿真电路

发表评论

抹茶交易所Copyright www.xjyinlu.com Some Rights Reserved. 2005-2023 本站所有信息均来自网络,为个人学习、研究、欣赏使用。投资有风险,选择需谨慎