要求:将定时器 T1 设置为外部事件计数器,要求每计 500 个脉冲,再将 T1 转为定时方式,在 P1.2 输出一个脉宽 10ms 的正脉冲。
周而复始。
设系统时钟频率为 12MHz。
程序如下:
ORG 0000H
;-----------------------------------
START:
CLR P1.2
CLR TR1
MOV TMOD, #50H ;T1计数方式1
MOV TH1, #(65536 - 500) / 256 ;计数值为500
MOV TL1, #(65536 - 500) MOD 256
SETB TR1
JNB TF1, $
CLR TF1
;-----------------------------------
SETB P1.2
CLR TR1
MOV TMOD, #10H ;T1定时方式1
MOV TH1, #(65536 - 10000) / 256 ;定时10000us
MOV TL1, #(65536 - 10000) MOD 256
SETB TR1
JNB TF1, $
CLR TF1
SJMP START
;-----------------------------------
END
关键字:51单片机 汇编语言 定时与计数
引用地址:
51单片机,汇编语言,定时与计数
推荐阅读最新更新时间:2024-03-16 16:02
51单片机EA=1的问题
51单片机有引脚叫EA (第33引脚)做片内程序存储器选择信号使用单片机内部有程序存储器8751 使用时/EA (第33引脚)必须接地 即低电平有效 CPU从片内程序存储器程序开始执行使用单片机内部没有程序存储器8031 使用时/EA (第33引脚)必须接+5V 即高电平、 EA引脚无效CPU 直接从片外程序存储器读程序开始执行 而断允许寄存器出现EA断控制位EA=1时系统允许断 否则禁止断 二者两回事单片机硬件引脚 软件控制寄存器控制位(相当于虚拟断开关)
[单片机]
51单片机-串口&液晶屏Ⅲ
1.题目要求 这次我们使用串口来实现液晶屏功能函数的执行,也就是说我们电脑端发送字符串“LcdFullClear();”给单片机,单片机就让液晶屏执行整屏清除;电脑端发送“LcdShowStr(1,0, Good Good Study );”给单片机,液晶屏就在第一行显示“Good Good Study”。需要注意的是,我们的代码对这两个功能函数的判别是有严格规定的,如果发送的字符串中间有多出的空格, 也就是说当“LcdShowStr(1, 0, Good Good Study );”逗号之间多出空格单片机则无法正常执行功能代码,所以要严格按照要求来发送字符串才能实现功能代码。 下面的代码笔者就不一一讲解实现的原理了,
[单片机]
基于8051单片机的电机转速测量控制程序
以单片机8031为核心, 利用8279芯片实现按键输入和利用数码管显示所测转速,利用ADC0809将输入电压模拟量转化为数字量(实验箱内部已接好相关接口)控制电机转速的目的。然后利用DA0832将电机上的传感器配合DA0832的CKMOT接口将脉冲信号接到8031的INT0,利用外中断实现速度的测量,一次外中断会使速度计数器自动加一,利用定时器产生一秒的计时,得出一秒内速度计数器的值就可以得到电机的转速。另定时计数器每250MS产生一次定时器中断,利用中断来检测是否有新的控制信号输入,以达到实时控制转速的目的。 ORG 0000h ajmp main ORG 0003h ;外部中断0 AJMP ZS ORG 000BH
[单片机]
51单片机之外设——玩转数码管
这篇博文,将对数码管进行介绍和驱动,与之所关联的芯片,亦是前面所讲的74HC138译码器、74HC02或非门、74HC573锁存器,所用的 I/O 口,依然是11个——P2.5P.6P2.7以及P0~P7。 首先,什么是数码管? 数码管是由多个发光二极管封装在一起,而组成的“8”字型元器件。一般开发板上所用到的是四位共阳极(或者共阴极)的数码管,也就是说,是将数码管四个四个的连在一起,并将引脚引出。下面附上四位一体的数码管以及单个数码管的原理图: 其实物图如下所示: 可见,四位一体的数码管,只是将四个数码管封装在一起,同时将所有数码管的段选引脚一起引出,位选引脚仍然单独引出而已(什么是段选?位选?接下来会介绍)。
[单片机]
51单片机的I/O端口结构及应用特性
1.锁存器加引脚的典型结构 51单片机的I/O端口都有内部总线实现操作控制。P0-P3四个I/O口都可以做普通I/O口,因此,要求具有输出锁存功能。内部总线有事分时操作,因此每个I/O端口都有相应的锁存器。然而I/O端口又是外部的输入/输出通道,必须有相应的引脚,故形成了I/O端口的锁存器加引脚的典型结构。 2.I/O口的复用功能 (1)I/O口的总线复用 80C51在使用并行总线扩展时,P0口可作为数据总 线口和低8位地址总线口,这是,P0为三态双向口。P0口输出总线的地址数据信号,P2口输出高8位地址信号。 (2)I/O口的功能复用 I/O口的P3为功能复用的I/O端口。端口有复用输出的控制端;引脚也有复用输入的控制端。
[单片机]
51单片机控制小车前后左右运动程序
单片机源程序如下: #include reg51.H sbit IN1 = P0^0; // 高电平1 后退(反转) sbit IN2 = P0^1; // 高电平1 前进(正转) sbit IN3 = P0^2; // 高电平1 前进(正转) sbit IN4 = P0^3; // 高电平1 后退(反转) sbit ENA = P0^6; // 高电平使能 sbit ENB = P0^7; // 高电平使能 //延时函数 void delay(unsigned int k) { unsigned int x,y; for(x=0;x k;x++)
[单片机]
51单片机基础之定时器中断(二)
TMOD寄存器: 这里讲一下TMOD寄存器,这个寄存器可以选择开启定时器0还是1,还有可以决定定时器以什么方式工作。如图: 代码: #include reg51.h sbit LED=P2^0; typedef unsigned char u8; typedef unsigned int u16; void time1_init(void) { TMOD|=0x10; //TMOD是一个寄存器,用来决定定时器的工作方式,高四位决定定时器1,目前是工作方式1,即16位定时计数。 TH1=0xfc; //定时器高八位 TL1=0x18; //定时器低
[单片机]
51单片机在智能压力传感器设计中的应用
在现代科技领域中,传感器技术的地位越来越重要。本文主要论述了51单片机在智能压力传感器设计中的应用,以及对其发展的影响。研究的重点是智能压力传感器本身的稳定性,结合51单片机和压力传感器,对压力感器本身抗干扰能力有了改善的作用,也对压力传感器的智能化和标准化有了促进作用。 引言 对目前所有兼容lntel 8031指令系统的单片机,统l称为51单片机。控制系统传统的设计思想和设计方法,因51单片机的应用从根本上得到了改变。现在正在用单片机通过软件的方法,来实现采用硬件电路实现的大部分控制功能,智能化的数字计算控制、模糊控制和自适应控制可通过单片机来实现,从而改变自动控制中的PID调节。压力传感器,英文名称是press
[工业控制]