80C51单片机如何实现“时钟设定”?

kuaidi.ping-jia.net  作者:佚名   更新日期:2024-09-10
80C51单片机的时钟周期,机器周期,指令周期是如何设置的

机器周期无法设置,是固定的。指令周期根据指令的不同,其周期数不同,这个在单片机的说明书里面都有说明。时钟周期,有内部时钟和外部时钟,在说明书里面有说明怎样设置寄存器来选择不同的时钟,不同的单片机信号可能有所不同,所以具体要看你选的那款单片机。

duanEQUP0;
weiEQUP2;
keyBITP3.7;

ORG0000H
AJMPMAIN;绝对转移指令,2kb范围(11位)内跳转LJMP16位64kb范围内跳转
;短转移指令的功能是先使程序计数器PC加1两次(即:取出指令码),然后把加2后的地址和rel相加作为目标转移地址。因此,短转移指令是一条相对转移指令,是一条双字节双周期指令


ORG0030H;指明后面的程序从程序存储器的0030H单元开始存放
DELAY200US:;@11.0592MHz
NOP
NOP
NOP
PUSH30H
PUSH31H
MOV30H,#2
MOV31H,#179
NEXT:
DJNZ31H,NEXT
DJNZ30H,NEXT
POP31H
POP30H
RET



ORG0060H
;DISPLAY子程序
DISPLAY:
PUSHACC;不能写A,此处ACC代表地址,push后跟地址,代表把地址内的内容压入栈中
PUSH00H;R0
PUSH06H;R6
PUSH07H;R7
PUSH83H;DPH
PUSH82H;DPL
MOVR6,#01H;位选数据,01指的是缓冲区最低位数据
MOVR7,#08H;循环次数
FLAG:
MOVduan,#0x00;消影
MOVA,R6
CPLA;取反
MOVwei,A;位选

MOVA,#disBufDat
ADDA,R7
SUBBA,#0X08
MOVR0,A
MOVA,@R0;读出要显示的数据到A
MOVDPTR,#disTab
MOVCA,@A+DPTR;从rom取数据,取出要显示的数据对应的段码
MOVduan,A;段选

MOVA,R6
RLA
MOVR6,A;更新下一次位选

LCALLDELAY200US
DJNZR7,FLAG
POP82H;DPL
POP83H;DPH
POP07H
POP06H
POP00H
POPACC
RET


ORG0100H
;定时器中断0初始化
T0_INIT:
MOVTMOD,#0X01
MOVTH0,#0X3C
MOVTL0,#0XB0
SETBEA
SETBTR0
SETBET0
RET

ORG0130H
;T0中断处理程序
INT_TIMERE0:
PUSHACC
SETBRS0
MOVTH0,#0X3C
MOVTL0,#0XB0
INCR0
MOVA,R0
SUBBA,#0X14
JBCY,SECFLAG
MOVR0,#0x00
INCsec
SECFLAG:
CLRRS0
POPACC
RETI


ORG000BH;定时器/计数器T0入口地址
LJMPINT_TIMERE0;跳转到定时器/计数器中断服务程序中去

disTab:DB0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71,0x00,0x40;0-f,空白,横杠的段选数据
disBufDatEQU47H;定义显示缓冲数据变量区,8个
disBufDatHeadEQU40H//单片机上显示在最左边
secEQU48H


;主程序
ORG0180H
MAIN:
MOVSP,#0X60;将0x60到0x7f设为堆栈区
LCALLT0_INIT
MOVdisBufDatHead,#0X00
MOVdisBufDatHead+1,#0X00
MOVdisBufDatHead+2,#0X11
MOVdisBufDatHead+3,#0X11
MOVdisBufDatHead+4,#0X11
MOVdisBufDatHead+5,#0X11
MOVdisBufDatHead+6,#0X11
MOVdisBufDatHead+7,#0X11
MOVsec,#0X3A

WHILE:
JBkey,KEYSCAN
MOVsec,0x00
KEYSCAN:
MOVA,sec
SUBBA,#3CH;超过60s归零
JBCY,CLEAR
MOVsec,#0X00;clr加ram地址无效
CLEAR:
MOVA,sec
MOVB,#0AH
DIVAB;A/B,商存到A中,余数存B中
MOVdisBufDatHead,A
MOVdisBufDatHead+1,B
LCALLDISPLAY
LJMPWHILE;循环
END;

扩展资料
51机器周期和指令周期

1、机器周期是指单片机完成一个基本操作所花费的时间,一般使用微秒来计量单片机的运行速度,51单片机的一个机器周期包括12个时钟振荡周期,也就是说如果51单片机采用12MHz晶振,那么执行一个机器周期就只需要1μs;如果采用的是6MHz的晶振,那么执行一个机器周期就需要2μs。

2、指令周期是指单片机执行一条指令所需要的时间,一般利用单片机的机器周期来计量指令周期。在51单片机里有单周期指令(执行这条指令只需一个机器周期),双周期指令(执行这条指令只需要两个机器周期),四周期指令(执行这条指令需要四个机器周期)。
除了乘、除两条指令是四周期指令,其余均为单周期或双周期指令。也就是说,如果51单片机采用的是12MHz晶振,那么它执行一条指令一般只需1~2微秒的时间;如果采用的是6MH晶振,执行一条指令一般就需2~4微秒的时间。

用一个定时器定时50us,也可以达到题目要求。
在我的空间里面有类似的问题和解答。
------------------------
ORG
0000H
SJMP
START
ORG
001BH
;T1中断入口.
SJMP
T1_INT
START:
MOV
TMOD,
#20H
;设置T1定时方式2
MOV
TH1,
#206
;自动重新装入方式.
MOV
TL1,
#206
;定时时间50us@12MHz
MOV
IE,
#10001000B
;开放总中断和T1中断.
SETB
TR1
;启动T1
MOV
R2,
#3
;周期是3×50us
SJMP
$
;等着吧.
T1_INT:
SETB
P1.0
;输出高.
DJNZ
R2,
T1_END
;R2-1
CLR
P1.0
;减到0,就输出低电平.
MOV
R2,
#3
T1_END:
RETI
;中断返回.
END
;完.

  • 用单片机设计一个时钟,可显示时和分,可以调时间,也要有闹钟功能,要有设...
    答:其实不用定时中断也能实现功能:include<reg51.h> 主函数 unsigned char tab[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};定义0-9数组 unsigned int tmp;定义变量 void delay(unsigned int xms)定义延时函数 {unsigned int j,i;for(i=0;i<xms;i++)for(j=0;j<100...
  • 在80C51单片机中,已知时钟频率为6MHz,请编程使P1.0和P1.1分别输出周期为...
    答:;下列程序,经过编译、仿真,符合要求:ORG 0000H SJMP START ORG 000BH SJMP T0_INT START:MOV TMOD, #01H MOV TH0, #9EH MOV TL0, #58H ;50ms@6MHz SETB TR0 SETB ET0 SETB EA MOV R2, #5 MOV A, #0 CLR P1.0 CLR P1.1 SJMP T0_INT:MOV TH0, #...
  • 在80C51单片机中,已知时钟频率为12MHz,请用中断方式编程使P1.5端口每...
    答:sbit led=P1^5;void Init_Timer0(void){ TMOD |= 0x01; //使用模式1,16位定时器,使用"|"符号可以在使用多个定时器时不受影响 TH0=(65536-50000)/256;//50ms TL0=(65536-50000)%256;EA=1; //总中断打开 ET0=1; //定时器中断打开 TR0=1; //定时器开关打开 } void T...
  • 80C51单片机引脚图及引脚功能有哪些?
    答:8051单片机引脚功能介绍 首先我们来连接一下单片机的引脚图,具体功能在下面都有介绍。单片机的40个引脚大致可分为4类:电源、时钟、控制和I/O引脚。⒈ 电源: ⑴ VCC - 芯片电源,接+5V;⑵ VSS - 接地端;⒉ 时钟:XTAL1、XTAL2 - 晶体振荡电路反相输入端和输出端。⒊ 控制线:控制线共有4根...
  • 怎样用51单片机实现累加计时和倒计时,并用六个共阴极数码管显示出来。用...
    答:本文利用单片机实现数字时钟计时功能的主要内容,其中AT89S52是核心元件同时采用数码管动态显示“时”,“分”,“秒”的现代计时装置。与传统机械表相比,它具有走时精确,显示直观等特点。它的计时周期为24小时,显满刻度为“23时59分59秒”,另外具有校时功能,断电后有记忆功能,恢复供电时可实现计时同步等特点。2 方案...
  • 综述80c51单片机引脚以及其作用
    答:随着技术的不断进步,80C51单片机及其引脚配置仍将继续在嵌入式系统设计中发挥重要作用。例如,在物联网(IoT)应用中,80C51单片机可以通过其I/O引脚与各种传感器和执行器连接,实现数据的采集和控制指令的发送,从而成为整个物联网系统的核心枢纽。同时,其控制引脚和时钟引脚确保系统能够稳定、准确地运行,...
  • 1、已知80C51单片机系统时钟频率为6MHZ,请编程利用定时器T0(方式2...
    答:include<reg51.h> sbit pluse=P1^0;void t0isr() interrupt 1 { pluse=~pluse;} main(){ TMOD=0x02;TH0=156;TL0=156;TR0=1;ET0=1;EA=1;while(1);}
  • 80c51单片机基础练习习题 资料 试题
    答:数。为了减少软件开销和提高单片机的实时控制能力,因而均在单片机内部设置定时器/计数器电路,通过中断,实现定时/计数的自动处理。 (8)片内时钟电路:1个 功能:计算机的整个工作是在时钟信号的驱动下,按照严格的时序有规律地一个节拍一个节拍地执行各种操作的。各种计算机均有自己的固定时序和定时电路。同样,80C51系列单...
  • 80C51单片机引脚图及引脚功能介绍
    答:80C51单片机有40个引脚大致可分为4类:电源、时钟、控制和I/O引脚。1、电源:(1)VCC - 芯片电源,接+5V;(2) VSS - 接地端;2、时钟:XTAL1、XTAL2 - 晶体振荡电路反相输入端和输出端。3、控制线:控制线共有4根,(1)ALE/PROG:地址锁存允许/片内EPROM编程脉冲。ALE功能:用来锁存P0口送...
  • 简述80c51单片机的i/o口的功能和特点
    答:80C51单片机的引脚及其功能介绍 首先我们来连接一下单片机的引脚图,如果,具体功能在下面都有介绍。单片机的40个引脚大致可分为4类:电源、时钟、控制和I/O引脚。⒈ 电源: ⑴ VCC - 芯片电源,接+5V;⑵ VSS - 接地端;⒉ 时钟:XTAL1、XTAL2 - 晶体振荡电路反相输入端和输出端。⒊ 控制线:...