单片机计时程序(单片机计时程序有哪些)

海潮机械 2022-12-20 23:32 编辑:admin 227阅读

1. 单片机计时程序有哪些

单片机时钟分外部时钟和内部时钟,外部时钟是有外部电路产生的 ;内部时钟是有单片机内部振荡电路同时外加晶振产生的。

2. 单片机程序运行时间怎么算

如果是arm的开发板,很简单,能够直接实现获取互联网上的数据,编个程序提取网站上的信息就行(wifi的驱动如果已经有了最好,没有就要自己写驱动了……),,如果是8051或者430之类的单片机,需要通过网关板来传送,电脑获取数据后从串口传递给机器。

3. 单片机如何实现计时

不要去记什么公式,知道原理就行了。

以16位方式计数为例,51单片机的计数方式是向上计数,16位计数器如果计数初值为0,则计数器从0计到65535,每计一个1微秒,也就是当计数初值为0时计数时间为65535*1微秒,约为65毫秒。所以如果你想定时1毫秒,即让计数器计数1000次,那么初值就是65535-1000=64535,将64535用16进制表示是FC17,所以寄存器TH写FC,TL写17。 只要记住两点:

一是51单片机是向上计数的,也就是从初值计到65535,再记一次就溢出触发中断。

二是定时器的计时周期为1微秒

4. 单片机计时程序有哪些类型

要四位数码管显示程序,应根据具体的显示电路来写程序的。而四位数码管的接法很多,不同的方法程序是有区别的。关键是段码和位码是用哪个并口输出的。而且那程序要通过仿真图测试或用实物开发板测试才行的。例如下面的仿真图,是四位一体的共阴数码管。

5. 单片机计时功能程序

用定时器计时10就可以了,检测到按键按下后启动定时器,在定时器的中断函数里判断到了10秒就关闭LED

6. 单片机计算程序执行时间

单片机的机器周期=12秒/晶振频率,时钟周期=振荡周期,等于单片机晶振频率的倒数,如常见的外接12M晶振,那它的时钟周期=1/12M。

时钟周期以时间动作重复的最小周期来度量,度量单位采用时间单位。在单个时钟周期内(现代非嵌入式微处理器的这个时间一般都短于1纳秒),逻辑零状态与逻辑一状态来回切换。由于发热和电气规格的限制,周期里逻辑零状态的持续时间历来要长于逻辑一状态。

一般情况下,一个机器周期由若干个S周期(状态周期)组成。通常用内存中读取一个指令字的最短时间来规定CPU周期,(也就是 计算机通过内部或外部总线进行一次信息传输从而完成一个或几个微操作所需要的时间)),它一般由12个时钟周期(振荡周期)组成,也是由6个状态周期组成。

扩展资料

在一个时钟周期内,CPU仅完成一个最基本的动作。由于时钟脉冲是计算机的基本工作脉冲,它控制着计算机的工作节奏(使计算机的每一步都统一到它的步调上来)。显然,对同一种机型的计算机,时钟频率越高,计算机的工作速度就越快。

但是,由于不同的计算机硬件电路和器件的不完全相同,所以其所需要的时钟周频率范围也不一定相同。我们学习的 8051单片机的时钟范围是1.2MHz-12MHz。

一个机器周期包含六个状态周期(用S表示)。一个状态周期有两个节拍(用P1、P2表示)。8051系列单片机的一个机器周期同6 个S周期(状态周期)组成。也就是说一个机器周期=6个状态周期=12个振荡周期(即时钟周期)。

7. 单片机定时时间计算

单片机定时器的设置步骤为:

1、设置定时器的工作模式,共4种工作方式,两种模式(计数器/定时器)。比如:

MOV TMOD,#01;设置定时器0位定时器模式,工作方式1

2、根据定时时间赋初值。比如定时10毫秒,那么如果12M晶振的话是10000个机器周期。定时器是溢出申请中断,所以用溢出值减去定时周期为初值。

MOV TH0,#HIGH(65536-10000)

MOV TL0,#LOW(65536-10000)

3、开启中断、定时器。

SETB ET0

SETB EA

SETB TR0

8. 单片机计时器程序

;可设定时间的倒计时定时器,可选择5/15/20/30/35/45/50分钟倒计时

;倒计时时间由四位拨码开关的1/2/3位来控制,

;第2位表示5分钟,第3位表示15分钟,第4位表示30分钟,

;通过不同的组合可以产生5/15/20/30/35/45/50分钟倒计时

;P1.0口的外接的发光二极管为状态LED,定时未开始时LED常亮,定时过程中LED闪烁

;K1为开始按钮,K2为停止按钮

a_bit equ 20h ;数码管个位数存放内存位置

b_bit equ 21h ;数码管十位数存放内存位置

temp equ 22h ;计数器数值存放内存位置

;开机初始化

MOV P3,#0FFH ;对P3口初始化,设置为高电平,用于按键输入

MOV P0,#0FFH ;使显示时间数码管熄灭

CLR P1.0 ;点亮LED指示灯

;等待键盘输入

START:JB P3.6,$ ;循环判断开始按钮K1是否按下?

ACALL DELAY10 ;延时10毫秒触点消抖

JB P3.6,START ;如果是干扰就返回

JNB P3.6,$ ;等待按键松开

;读拨码开关的状态,获得倒计时时间

SET1:

MOV A,#0 ;首先对A清零

JB P2.0,A1 ;判断拨码开关的第2位是否接通,接通就对A加5

ADD A,#5

A1: JB P2.1,A2 ;判断拨码开关的第3位是否接通,接通就对A加15

ADD A,#15

A2: JB P2.2,A3 ;判断拨码开关的第4位是否接通,接通就对A加30

ADD A,#30

A3: MOV TEMP,A

;这时TEMP中的值就是倒计时时间

;数码管显示定时时间的程序

display:

CLR P2.4 ;使继电器1释放,开始定时(开机时继电器处于吸合状态)

CLR P2.3 ;使继电器2释放,开始定时(开机时继电器处于吸合状态)

MOV R2,#120

AB1: MOV R3,#250

TIME1: mov a,temp ;将temp中的十六进制数转换成10进制

mov b,#10 ;10进制/10=10进制

div ab

mov b_bit,a ;十位在a

mov a_bit,b ;个位在b

mov dptr,#numtab ;指定查表启始地址

mov r0,#4

dpl1: mov r1,#250 ;

dplop: mov a,a_bit ;取个位数

MOVC A,@A+DPTR ;查个位数的7段代码

mov p0,a ;送出个位的7段代码

clr p2.7 ;开个位显示

ACALL DELY1 ;显示1毫秒

setb p2.7 ;关闭个位显示,防止鬼影

mov a,b_bit ;取十位数

MOVC A,@A+DPTR ;查十位数的7段代码

mov p0,a ;送出十位的7段代码

clr p2.6 ;开十位显示

ACALL DELY1 ;显示1毫秒

setb p2.6 ;关闭十位显示,防止鬼影

;插入一段判断定时过程中是否有按键输入的程序段

C1: JB P3.6,B1

ACALL DELAY10 ;延时10毫秒消抖

JB P3.6,C1

JNB P3.6,$ ;等待按键松开

AJMP SET1

B1: JB P3.7,M33

ACALL DELAY10 ;延时10毫秒消抖

JB P3.7,B1

JNB P3.7,$ ;等待按键松开

AJMP OVER

M33: djnz r3,TIME1 ;2毫秒循环执行250次,时间约0.5秒

CPL P1.0 ;使LED每1秒闪烁一次

djnz r2,AB1 ;循环执行120次,时间为1分钟

DEC TEMP ;满一分钟对定时时间减1

MOV A,TEMP

JNZ DISPLAY

;判断TEMP的数值是否为0?不为0循环

;结束定时

OVER:CLR P1.0 ;LED指示灯常亮

SETB P2.4 ;继电器1吸合,定时结束,退回到开机时的状态

SETB P2.3 ;继电器2吸合,定时结束,退回到开机时的状态

AJMP START ;退到开机初始化状态

;1毫秒延时子程序

DELY1: MOV R4,#2

D1: MOV R5,#248

DJNZ R5,$

DJNZ R4,D1

RET

;10毫秒延时子程序

DELAY10:MOV R4,#20

D2: MOV R5,#248

DJNZ R5,$

DJNZ R4,D2

RET

;实验板上的7段数码管0~9数字的共阴显示代码

NUMTAB:DB 0CFH,03H,5DH,5BH,93H,0DAH,0DEH,43H,0DFH,0DBH

end

9. 单片机计时器有几种工作方式

怎样做一个90s的秒表单片机:

需要一个单片机最小系统,也就是要有5V的电源、晶振电路、复位电路和程序存储器的选择端EA引脚的处理,由于这个程序比较短,我们直接把EA端接5伏电压就可以了。对于其它外设主要是用来显示时间的数码管和驱动数码管的三极管,以及用来控制秒表的启停键。设置成90s即可

10. 单片机计时程序有哪些特点

单片机的时钟就是单片机工作所需要的节拍,实际上就是时钟源产生的方波信号,单片机的取指令,译指令等工作过程都要以时钟的一个周期为最小周期。

如果单片机没有时钟,那么很多信号脉冲等就不同步,所以单片机需要时钟。