以定时/计数器1进行外部事件计数。每计数1000个脉冲后,定时/计数器1转为定时工作方式,定时10ms后,又

以定时/计数器1进行外部事件计数。每计数1000个脉冲后,定时/计数器1转为定时工作方式,定时10ms后,又转为计数方式,如此循环。设单片机的晶振频率为6MHz。
可以的话画个流程图,这样会明白一点,另外用汇编语言编程序

解:
T1方式0作计数器,计数预装值X = 2^13 - 1000 =7192D =1C18H
TH1←1CH, TL1←18H
机器周期 T = 12/Fosc = 12/(6x10^6) = 2x10^-6s =2μ s
10ms周期对应的计数满值 = 10000μ s/2μ s = 5000
T1方式0作10ms定时器,计数初值 = 2^13 -5000 =3192D = 0C78H
TH1←0CH, TL1←78H
ORG 0000H
AJMP MAIN
ORG 0100H
MAIN: MOV SP, #60H ;;堆栈指针初值
LP0: MOV TMOD, #40H ;;T1方式0作计数器
MOV TH1, #1CH ;;T1计数预装值高8位
MOV TL1, #18H ;;T1计数预装值低8位
SETB TR1 ;;启动T1计数
LP1: JBC TF1, DLAY ;;若T计数溢出,转DLAY延时10ms
SJMP LP1 ;;若T1计数未溢出,继续查询
DLAY: CLR TR1 ;;关闭T1
MOV TMOD, #00H ;;T1改作方式0作定时器
MOV TH1, #0CH ;;T1定时计数预装值高8位
MOV TL1, #78H ;;T1定时计数预装值低8位
SETB TR1 ;;启动T1计数延时
LP2: JBC TF1, LP3 ;;若T1计数延时至10ms,转LP3
SJMP LP2 ;;若T1计数延时未达10ms,继续查询
LP3: CLR TR1 ;;关闭T1
AJMP LP0 ;;转LP0,使T1重新作定时器
END
温馨提示:内容为网友见解,仅供参考
第1个回答  2011-04-25
俞先锋 好样的
第2个回答  2011-04-20
TMOD与TCON两个寄存器看懂了就会了

...每计数1000个脉冲后,定时\/计数器1转为定时工作方式,定时10_百度...
T1方式0作计数器,计数预装值X = 2^13 - 1000 =7192D =1C18H TH1←1CH, TL1←18H 机器周期 T = 12\/Fosc = 12\/(6x10^6) = 2x10^-6s =2μ s 10ms周期对应的计数满值 = 10000μ s\/2μ s = 5000 T1方式0作10ms定时器,计数初值 = 2^13 -5000 =3192D = 0C78H TH1←0CH...

设晶振频率为6MHZ,试用T0为外部计数器,编程实现每当记到1000个脉冲?
解:T0方式0作计数器,计数初值A0 = 2^13 - 1000 =7192D =1C18H TH0←1CH, TL0←18H 机器周期 T = 12\/Fosc = 12\/(6x10^6) = 2x10^-6s =2μ s 2ms周期对应的计数满值 = 2000μ s\/2μ s = 1000 T1方式1作2ms定时器,计数初值A1 = 2^16 -1000 =64536D =FC18H TH1←FCH...

6.8253可以实现定时功能,若计数脉冲为1000hz,则定时1秒的起始初值应该...
若输入CLK引脚的脉冲周期 =1\/1000Hz =1ms 定时1秒的计数初值 =1s\/1ms =1000d =3E8h 若设置8253工作于方式1,是16位计数寄存器,计数初始值高8位=03h, 计数初值低8位=E8h

利用定时器计数器设计一个电路,其功能是每输入1个脉冲,发光二极管状态...
闸门时间的确定,可以先由一个555定时器产生一个脉冲信号,将555产生的脉冲信号送入到74LS90十进制计数器当中,由于74LS90具有二-五进制混合计数的功能,所以可以用它来实现五进制计数,将74LS90的输出接到3—8线译码器74LS138的输入端,再将译码器的输出端接上五个发光二极管,这样就可以实现硬件上的...

微机的题目:求“8254初始化及其应用”的解答!谢谢!
8254的每个计数器有六种工作方式,同一芯片中的三个计数器可以通过初始化分别设定为不同的工作方式,但是不论哪种工作方式都应遵循以下规则: ① 控制字写入控制寄存器后,控制逻辑电路复位,输出信号OUT进入初始状态(高电平或低电平)。 ② 计数初始值写入CR后,经过一个时钟周期,送入CE。 ③ 通常在时钟脉冲CLK的上升沿...

at89c51单片机对应高低电平的电压值
P1 口:P1 口是一个具有内部上拉电阻的8 位双向I\/O 口,p1 输出缓冲器能驱动4 个TTL 逻辑电平。对P1 端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。此外,P1.0和P1.2分别作定时器\/计数器2的外部计数输入(P1.0\/T2)...

单片机芯片中有哪些结构和功能部件?
l 三个16位定时器\/计数器 l 八个中断源 l 全双工UART串行通道 l 低功耗空闲和掉电模式 l 掉电后中断可唤醒 l 看门狗定时器 l 双数据指针 l 掉电标识符 功能特性描述 AT89S52是一种低功耗、高性能CMOS8位微控制器,具有 8K 在系统可编程Flash 存储器。使用Atmel 公司高密度非 易失性存储器技术制造,与...

单片机:若系统晶振频率是12MHZ,利用定时器\/计数器1定时1ms,在方式0下...
1、系统晶振频率是12M,则机器周期=12\/12=1us;2、定时1ms=1*1000=1000us;3、工作在方式0下:最大计数值是2^13=8192;4、定时初值=8192-(1*1000)=7192;5、换算成十六进制数为:定时初值=1C18H。定时器中断是由单片机中的定时器溢出而申请的中断。51单片机中有两个定时器T0和T1。定时\/...

怎么用c语言实现顺序脉冲发生器?
在C语言中,实现顺序脉冲发生器的一种方法是使用计时器(timer)和外部中断 首先,确保您的微控制器支持计时器和外部中断。以下示例是基于ATmega16单片机的C语言代码,您可以将其修改为您所使用的微控制器。```c include <avr\/io.h> include <avr\/interrupt.h> include <util\/delay.h> \/\/ 定义脉冲...

怎么使用单片机的定时计数器,实现最简单的对外部信号进行测频,试画出...
51单片机中的定时器\/计数器是根据机器内部的时钟或者是外部的脉冲信号对寄存器中的数据加1。有了定时器\/计数器之后,可以增加单片机的效率,一些简单的重复加1的工作可以交给定时器\/计数器处理。CPU转而处理一些复杂的事情。同时可以实现精确定时作用。定时\/计数器的工作原理 定时\/计数器实质上是一个加1...

相似回答