一、实验目的:
学习定时/计数器的工作方式,掌握程序设计方法。
二、实验设备:
PC计算机一台,Dais-52PRO+实验系统一套。
三、实验内容:
1. 定时器实验
2. 计数器实验
四、 定时器实验
1、实验原理:
使用T0进行定时,编写程序,使P1.0控制的发光二极管L0每隔2秒交替点亮或熄灭。
2、实验步骤:
① 将试验箱IO区的P1.0与LED区的L0按图下图连线;
② 编写程序,经编译、链接无语法错误后装载到实验系统;
③ 运行程序,观察发光二极管L0,应每隔2秒交替点亮或熄灭;
④ 实验完毕后,应使用暂停命令中止程序的运行。
3、参考代码:
//实验三 定时器实验
COUNT EQU 8192-8000 ;8192是2的13次方
LED EQU P1.0
ORG 0000H
AJMP MAIN
ORG 0100H
MAIN: SETB TR0 ;启动T0
MOV R7, #250 ;定时计数初值
LOOP: MOV TMOD,#00H
MOV TH0,#(COUNT/32) ;定时初值 8MS
MOV TL0,#(COUNT MOD 32) ; MOD是取余数
JNB TF0,$ ;等待8MS
CLR TF0
DJNZ R7,LOOP
CPL LED ; p1.0取反
SJMP MAIN
END
五、计数器实验:
1、实验原理:
T0工作在方式2,即8位自动重装载,当溢出时自动将TH0装入TL0。编写程序,每按动5次单脉冲按钮,使发光二极管L0交替点亮或熄灭1次。
2、实验步骤:
① 将试验箱IO区的P1.0与LED区的L0按下图连线;
② 将试验箱IO区的P3.4与脉冲区的SP按下图连线;
③ 编写程序,经编译、链接无语法错误后装载到实验系统;
④ 运行程序,每按动5次单脉冲按钮,L0交替点亮或熄灭1次;
⑤ 实验完毕后,应使用暂停命令中止程序的运行。
3、参考代码:
//实验三 计数器实验
LED EQU P1.0
ORG 0000H
AJMP MAIN
ORG 0100H
MAIN: MOV TMOD,#06H ;T0计数方式2,自动重装
MOV TH0, #251 ;256-5
MOV TL0, #251 ;
SETB TR0 ;启动T0
LOOP: JNB TF0,$ ;判T0溢出标志
CPL LED
CLR TF0
SJMP LOOP
END
关键字:51单片机 汇编语言 定时
引用地址:
51单片机汇编语言实验(三)-----定时/计数器实验
推荐阅读最新更新时间:2024-11-10 12:46
51单片机控制TC35 之发送AT连机命令
一开始犯了2个错误; 1:发送联机指令AT的时候,中断接受函数,RsBuf =SBUF; 中的RsPoint应该置零。 2:串口中断函数中 if((RsPoint RsBuf_N)&&RI) //必须判断RI是否为1。 否则接受到一些别的数据。 且在中断中RI必须清零 只发3个关键的函数 /***********************发送联机指令****************************** *功 能: 串口发送数组命令到TC35, AT , *形 参: *返 回 值: *备 注: 测试GSM模块是否连接正确 *****************************************
[单片机]
基于51单片机的简易摇号抽奖机器
硬件设计 仿真图: 基于C51处理器,显示器基于LCD12864,通过一个按键开始抽奖,随机抽奖有谢谢参与 三等奖 二等奖 一等奖 特等奖 代码设计 /*******************************************************************/ /* LCD型号:TS12864A-3(带汉字库)或兼容型号 控制器ST7920 */ /* MCU:STC89S52 ,晶体频率:11.0592MHz */ /*******************************************************************/ #in
[单片机]
【51单片机】考试例程|汇编实现
目录 中断3个程序 第一个程序 第二个程序 第三个程序 DA转换 Triangle Triangle2 矩形波 显示/键盘: 数码管的动态显示(C语言实现): 矩阵键盘(C语言实现) 加法、乘法 第二个例程 例程 例程 中断3个程序 第一个程序 ORG 0000H RESET: AJMP MAIN ORG 000BH AJMP IT0P MAIN: MOV SP, #60H; MOV TMOD, #01; ACALL PT0M0; HRER: AJMP HERE PT0M0: MOV TL0, #0CH MOV TH0, #0FEH SETB ET0; SETB EA; SE
[单片机]
通用型51单片机lcd1602驱动
文件:lcd_1602.h #ifndef _LCD1602_TRAVELER_H_ #define _LCD1602_TRAVELER_H_ /*************************待配置项*******************************/ #define DATA_LCD P0 //液晶与MCU 数据口 sbit RS_LCD = P2^5; // 液晶的RS、RW、E 端在 MCU端的连线 sbit RW_LCD = P2^6; sbit E_LCD = P2^7; /**************************************************
[单片机]
基于STC51单片机的霓虹灯
设计要求:# 使用PWM驱动8个LED灯 人眼不能观察到灯光全灭 灯光要有动画效果 设计概述:# 按照设计要求,为了更直观的说明脉冲宽度调制技术(PWM),所以霓虹灯的动画效果为流水灯形式。所需要的单片机芯片为STC89C52,所用的硬件工具是由华清远见开发的基于STC89C52的智能小车。该小车配备所需要的LED灯模块,8个LED灯由P1口来控制。STC89C52是一种低功耗,高性能的8位微控制器,是加强版的80C51单片机,但是与80C51单片机一样不具备PWM硬件模块,所以我们需要自己写一个程序来软件模拟PWM方波。 PWM是一种方波,可以实现数字信号控制模拟电路,它有两个重要参数周期或频率,占空比。占空比 = 高电
[单片机]
51单片机中断应用与编程方法
中断的概念 中断示意图见图1,以下做3点说明。 1、CPU 在处理某一事件A 时,发生了另一事件B 请求CPU 迅速去处理(中断发生); 2、CPU暂时中断当前的工作,转去处理事件B(中断响应和中断服务); 3、待 CPU 将事件B 处理完毕后,再回到原来事件A 被中断的地方继续处理事件A(中断返回),这一过程称为中断 。 图1 中断示意图 引起CPU中断的根源,称为中断源。中断源向CPU提出的中断请求。CPU暂时中断原来的事务A,转去处理事件B。对事件B处理完毕后,再回到原来被中断的地方(即断点),称为中断返回。实现上述中断功能的部件称为中断系统(中断机构),51单片机中断结构见图2。 图2 中断结构
[单片机]
MCS51单片机的检索查找程序
;单字节顺序查找程序 ;入口 :R0,R1,A,R7 ;占用资源:B ;堆栈需求:2字节 ;出口 :R0,R1,A FINDB1 :MOV B,A MOV DPL,R1 MOV DPH,R0 FINDB11 :MOVX A,@DPTR CJNE A,B,FINDB12 MOV R1,DPL MOV R0,DPH CLR A RET FINDB12 :INC DPTR DJNZ R7,FINDB11 MOV A,#0FFH RET ;单字节顺序查找程序 ;入口 :R0,R1,A,R6,R7 ;占用资源
[单片机]
基于51单片机智能计数器的设计
一、任务以及要求 对外部信号脉冲进行计数,并将脉冲个数显示出来。基本要求:计数至少65536个脉冲,并将脉冲个数显示出来。 二、方案选择 用中断方式进行计数,利用定时器/计数器0的方式2。使用查寻方式进行计数,利用定时器/计数器0的方式1。本程序使用第一方案进行设计,并能实现计数99999999次 三、系统硬件设计 设计思路 1)、通过按钮产生脉冲信号。 2)、由于按钮按合会出现机械弹跳过程,使得电平跳变发生多次。为了克服按钮抖动而产生的误计数,接入脉冲消抖电路,克服按钮的抖动现象。 3)、脉冲计数可采用定时器/计数器来实现。 4)、选择8279作为6位LED显示器的译码驱动电路,实现累进计数。 2、硬件电路组成:
[单片机]