导航:首页 > 操作系统 > 单片机行程开关计数器的程序

单片机行程开关计数器的程序

发布时间:2022-10-29 17:15:56

㈠ 急!51单片机定时计数器实验编程(汇编语言)

将计数值按二进制数在P1口驱动发光二极管显示出来,到15秒后,计数值清零再从0开始计。
--这些发光二极管,是低电平发光,还是高电平发光?
下面的程序,适合于低电平发光:
ORG
0000H
LJMP
START
ORG
000BH
DEC
A
MOV
P1,
A
RETI
ORG
0030H
START:
MOV
TMOD,
#16H
MOV
TH0,
#255
MOV
TL0,
#255
SETB
TR0
SETB
TR1
MOV
IE,
#82H
LOOP:
MOV
A,
#255
MOV
P1,
A
MOV
R2,
#240
WAIT:
MOV
TH1,
#HIGH(65536-62500)
MOV
TL1,
#LOW(65536-62500)
JNB
TF1,
$
CLR
TF1
DJNZ
R2,
WAIT
SJMP
LOOP
END
如果是高电平发光,可以使用下面的程序:
ORG
0000H
LJMP
START
ORG
000BH
INC
A
MOV
P1,
A
RETI
ORG
0030H
START:
MOV
TMOD,
#16H
MOV
TH0,
#255
MOV
TL0,
#255
SETB
TR0
SETB
TR1
MOV
IE,
#82H
LOOP:
CLR
A
MOV
P1,
A
MOV
R2,
#240
WAIT:
MOV
TH1,
#HIGH(65536-62500)
MOV
TL1,
#LOW(65536-62500)
JNB
TF1,
$
CLR
TF1
DJNZ
R2,
WAIT
SJMP
LOOP
END

㈡ 单片机定时器/计数器程序如何掌握,我不会写

单片机定时器/计数器程序如何掌握,我不会写。
这很正常,万事开头难。
为便于理解,我用打比方的形式说明。
1、为什么叫定时器/计数器?因为可以对内部时钟计数(定时器)也可以对外部脉冲计数(计数器)。
2、好比你有一个水桶(相当于定时器/计数器),这个桶是有一定容量的(定时器/计数器使用两个字节计时/计数),现在拿一个碗从水池向桶内装水(一碗水相当于一个计时/计数脉冲),装水满了会怎么样?外溢(相当于定时器/计数器溢出)。一般我们利用的就是这个溢出功能(也有例外),因为这时候他会通知你(有溢出标志)。
3、51单片机定时器/计数器是加计数,两字节计数寄存器计数最大数65535,再多一个计数单位就回零了,同时置位溢出标志(开了中断还会引起中断)。
4、因为是加计数,你期望的计数值不一定从零开始,那就要“垫底”(赋初值)。
理顺消化一下,看是不是明白了。
编写单片机定时器/计数器程序就是设置与单片机定时器/计数器有关的寄存器,理解上边的就好办了。

㈢ 51单片机定时/计数器的问题 (代码)

TH0 = THC0; // 向TH0寄存器写入THC0常数,也就是0xEE

TL0 = TLC0; // 向TL0寄存器写入TLC0常数,也就是0x00

// 以上完成定时器0在16位模式下的初值加载,也就是0xEE00
TR0 = 1; // 开启定时器0的运行。此语句之后Timer0计数器才开始累加

ET0 = 1; // 开启定时器0的中断。此语句之后,Timer0计数器溢出才会产生中断标志

EA = 1; // 开启总中断开关。此语句之后,中断标志置位才会触发PC跳转到对应的中断向量

好好学习天天向上

㈣ 51单片机按键计数器C语言编程

#include<reg51.h>
#defineucharunsignedchar;
uchardistab[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71,0x00};//0到f
ucharnumber,dat,dis[4];
voidt0isr()interrupt1
{
TH0=(65536-5000)/256;
TL0=(65536-5000)%256;
number++;
number%=3;
switch(number)
P1=0x20<<number;
P0=distab[dis[number]];
}
voidint0isr()interrupt0
{
dat++;
dat%=1000;
dis[0]=dat%10;
dis[1]=dat%100/10;
dis[2]=dat/100;
}
main()
{
TMOD=0x01;
TH0=(65536-5000)/256;
TL0=(65536-5000)%256;
TR1=1;
ET1=1;
EX0=1;
IT0=1;
EA=1;
while(1);
}

㈤ 求解:怎么在单片机中实现计数器

用74HC161设计一个四进制计数器,使用同步置数功能。当计数到最大数3时,用一个与非门74LS00,产生一个置数信号加到置数端LD即可。下图是逻辑图,也是仿真图,是计数到最大数3时的截图。你画逻辑图时,要省掉 那个数码管,那是为了显示仿真效果的。

㈥ 单片机定时器/计数器程序,如果想让定时器T1工作在方式0 那么应该是TMOD=;如果让T1工作在方式1,那

TMOD高四位是负责定时器1的操作,低4位负责定时器0的操作。

而每个四位中的M1和M0负责控制定时器工作方式,其中

M1M0 = 00, 定时器工作在方式0

M1M0 = 01,方式1

M1M0 = 10,方式2

M1M0 = 11,这种设置只对定时器0有效,表示定时器0工作方式

因此,T1工作在方式0,TMOD = 00000000;

T1工作在方式1,TMOD = 00010000;

㈦ 单片机定时器/计数器程序,如果想让定时器T0工作在方式1 那么应该是TMOD=0x01;如果让T0工作在方式0,那

TMOD =0x00;

定时模式0:TMOD=0X00;定时模式1:TMOD=0x01,;定时模式2:TMOD=0x02,:定时模式3:TMOD=0x03;
定时器的设置可以参考:http://wenku..com/link?url=ck___tBbK

㈧ 单片机计数器编程如何计数脉冲,用C语言

每50ms来了多少脉冲,那定时器就不能50ms中断一次,尽量快的中断会比较好,2个变量计数,一个计算50ms,一个累加脉冲

㈨ 单片机计数器0到999的编程怎么写

估计你说的是汇编语言。我以51为标准假设晶振为6Mhz.
计算计数初值是0CEH。计数器工作方式2。
程序:mov ie, #00h 关中断
mov tmod,#02h 置计数器工作方式2
mov th0,#0ceh 保存计数初值
mov tl0,#0ceh 值计数初值
mov r0,#0ah 置循环次数
setb tr 启动计数器
loop:jbc tf0,loop1 判断溢出标志位
ajmp loop
loop1:cjnz r0,loop xunhuan
reti 返回主程序

㈩ 简述8051单片机定时计数器编程的基本步骤

  1. 设置定时计数器的工作方式。

  2. 给定时器赋初始值:THx 和TLx;

  3. 允许定时器中断;

  4. 允许全局中断;

  5. 启动定制器;

  6. 中断函数编写(这个是目的,定时计数最终要干什么?)

阅读全文

与单片机行程开关计数器的程序相关的资料

热点内容
php路径写法 浏览:431
为什么有些网页安卓打不开 浏览:220
如何渗透获取服务器数据库 浏览:778
ios是怎么解析app的 浏览:256
按揭车怎么贷款app 浏览:477
linux卸载nodejs 浏览:128
find方法php 浏览:301
黑马程序员主机密码 浏览:182
文件夹选择时出现对号标记 浏览:344
算法怎么服务于软件 浏览:566
linux父进程子进程退出 浏览:270
服务器内怎么开创造 浏览:858
上海国厦高压压缩机 浏览:564
程序员的生日蛋糕小玩具 浏览:251
ctp下单Python 浏览:516
提高算法质量的原则建议有哪些 浏览:445
关于立即执行命令的诗句 浏览:89
压缩空气过滤器报价 浏览:246
24v电压缩机 浏览:68
色种pdf 浏览:677