8位数字钟设计和proteus仿真电路 基于数字电路的数字钟设计与仿真
今天给大家聊到了8位数字钟设计和proteus仿真电路,以及基于数字电路的数字钟设计与仿真相关的内容,在此希望可以让网友有所了解,最后记得收藏本站。
本文目录一览:
- 1、基于Proteus的数字钟设计
- 2、使用PROTEUS 利用89S51单片机设计一个数字时钟仿真 具体如下:
- 3、数字钟的课程设计,用Proteus
- 4、数字钟的毕业设计论文
- 5、如何在8位数码管上显示数字时钟?
- 6、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仿真电路和基于数字电路的数字钟设计与仿真的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。
相关文章
发表评论