实验三单片机定时计数器实验
单片机定时器实验报告

一、实验目的1. 理解单片机定时器的工作原理和功能。
2. 掌握单片机定时器的编程方法,包括初始化、设置定时时间、启动定时器等。
3. 学会使用定时器实现定时功能,并通过实验验证其效果。
二、实验器材1. 单片机实验板2. 连接线3. 51单片机4. 计时器5. 示波器6. 电脑7. Keil软件三、实验原理定时器是单片机的一种重要外设,用于实现定时功能。
51单片机内部有两个定时器,分别为定时器0和定时器1。
定时器的工作原理是通过定时器计数器对机器周期进行计数,当计数器达到设定值时,定时器溢出,并产生中断请求。
定时器0和定时器1都具有四种工作模式,分别为:1. 模式0:13位定时器/计数器2. 模式1:16位定时器/计数器3. 模式2:8位自动重装模式4. 模式3:两个8位计数器本实验采用定时器0工作在模式1,实现50ms的定时功能。
四、实验步骤1. 将单片机实验板连接到电脑,并启动Keil软件。
2. 创建一个新的项目,并添加51单片机头文件(reg51.h)。
3. 编写定时器初始化函数,设置定时器0工作在模式1,并设置定时时间为50ms。
4. 编写定时器中断服务函数,用于处理定时器溢出事件。
5. 编写主函数,设置定时器中断,并启动定时器。
6. 编译并下载程序到单片机实验板。
7. 使用示波器观察定时器0的溢出信号。
五、实验代码```c#include <reg51.h>#define TIMER0_MODE1 0x01// 定时器0初始化函数void Timer0_Init() {TMOD &= 0xF0; // 清除定时器0模式位TMOD |= TIMER0_MODE1; // 设置定时器0工作在模式1TH0 = 0xFC; // 设置定时器0高8位初值TL0 = 0x18; // 设置定时器0低8位初值ET0 = 1; // 开启定时器0中断EA = 1; // 开启总中断TR0 = 1; // 启动定时器0}// 定时器0中断服务函数void Timer0_ISR() interrupt 1 {TH0 = 0xFC; // 重新加载定时器0高8位初值TL0 = 0x18; // 重新加载定时器0低8位初值// ... (其他处理)}void main() {Timer0_Init(); // 初始化定时器0while(1) {// ... (其他处理)}}```六、实验结果与分析1. 编译并下载程序到单片机实验板,使用示波器观察定时器0的溢出信号,可以看到定时器0每隔50ms产生一个溢出信号。
单片机定时器实验原理

单片机定时器实验原理一、概述单片机定时器是单片机的重要组成部分,它能够实现定时控制、时间间隔生成等功能。
通过单片机定时器实验,可以更好地了解单片机的内部结构和工作原理,为进一步开发单片机应用系统打下坚实的基础。
二、实验目的1. 掌握单片机定时器的结构和原理。
2. 学会使用单片机定时器进行时间间隔控制。
3. 了解单片机定时器的应用范围和限制。
三、实验原理1. 单片机定时器的结构单片机定时器通常由一个计数器和一个控制逻辑组成。
计数器负责记录脉冲数,控制逻辑负责控制计数器的计数和复位。
单片机定时器通常采用可编程计数脉冲,可以实现任意时间间隔的生成。
2. 单片机定时器的原理单片机定时器的工作原理是基于计数器的计数。
当单片机接收到一个启动信号时,计数器开始计数,当计数达到预设的时间间隔时,单片机输出相应的信号或执行相应的操作。
通过改变计数器的预设值,可以改变时间间隔的长短。
3. 单片机定时器的应用单片机定时器在许多领域都有应用,如智能家居、工业控制、通信设备等。
在智能家居中,可以通过单片机定时器控制家电设备的开启和关闭;在工业控制中,可以通过单片机定时器实现生产线的自动化控制;在通信设备中,可以通过单片机定时器实现时间戳的生成和数据传输的时间控制。
四、实验步骤1. 准备实验器材和软件环境,包括单片机、定时器芯片、编程器、开发板等。
2. 连接实验设备,并调试确保连接正常。
3. 编写实验程序,并上传到单片机中。
4. 观察并记录实验结果,分析误差原因。
5. 根据实验结果,调整程序参数,进行多次实验,直到达到满意的效果。
五、实验注意事项1. 实验过程中要保持设备连接的稳定性,避免意外断开。
2. 编程和调试过程中要确保程序正确,避免误操作导致设备损坏。
3. 注意观察实验现象,及时记录实验数据,分析实验结果。
4. 实验结束后,要清理实验现场,确保设备复位。
六、实验结果分析通过实验,我们能够得到较为准确的时间间隔控制结果。
单片机实验报告

目录一、实验一 (1)二、实验二 (7)三、实验三 (11)四、实验四 (15)实验一定时/计数器验证实验一、实验目的熟悉定时/计数器T0的特点,学会合理选择定时方式并能根据具体情况结合软件的方式定时。
二、实验设备及器件IBM PC机一台 PROTEUS 硬件仿真软件 Keil C51。
三、实验内容用AT89C51单片机的定时/计数器T0产生1s的定时时间,作为秒计数时间,当1s产生时秒计数加1;秒计数到60时,自动从0开始。
四、实验要求要求采用Proteus软件实现上述实验。
五、实验步骤1.打开Proteus ISIS编辑环境,按照表1-1所列的元件清单添加元件。
表1-1 元件清单元件全部添加后,在Proteus ISIS的编辑区域中按图1-1所示的原理图连接硬件电路。
图1-1 电路原理图2.根据参考程序绘出流程图,并辅以适当的说明。
流程图如图1-2所示:图1-2 程序流程图3.打开KeilμVision4,新建Keil项目,选择AT89C51单片机作为CPU,将参考程序导入到“Source Group 1”中。
在“Options for Target”对话窗口中,选中“Output”选项卡中的“Create HEX File”选项和“Debug”选项卡中的“Use:Proteus VSM Simulator”选项。
编译汇编源程序,改正程序中的错误。
4.在Proteus ISIS中,选中AT89C51并单击鼠标左键,打开“Edit Component”对话窗口,设置单片机晶振频率为12MHz,在此窗口中的“Program File”栏中,选择先前用Keil生成的.HEX文件。
在Proteus ISIS的菜单栏中选择“File”→“Save Design”选项,保存设计,在Proteus ISIS的菜单栏中,打开“Debug”下拉菜单,在菜单中选中“Use Remote DebugMonitor”选项,以支持与Keil的联合调试。
单片机定时计数器实验

实验结果图
原程序
打开开关,小灯依次亮
修改一
修改二
利用开关。
修改三
小灯每隔200us亮依次
修改四
七、心得体会
通过这次实验,我学会了计数器的使用方法。学会了计数器程序的编写,定时器的使用方法和定时器程序的编写。做完这次实验后,我熟练了对修改程序的修改,掌握了各种语句的作用,通过修改程序得到了实验结果。
2、用CPU内部定时器中断方式计时,实现每一秒钟输出状态发生一次反转
三、实验仪器和条件
计算机
伟福实验箱(lab2000P)
四、实验内容与软件流程图
实验3-1 、8051内部定时计数器T0,按计数器模式和方式1工作,对P3.4(T0)引脚进行计数。将其数值按二进制数在P1口驱动LED灯上显示出来。
、外部事件计数脉冲由P3.4引入定时器T0。单片机在每个机器周期采样一次输入波形,因此单片机至少需要两个机器周期才能检测到一次跳变。这就要求被采样电平至少维持一个完整的机器周期,以保证电平在变化之前即被采样。同时这就决定了输入波形的频率不能超过机器周期频率。
实验三单片机定时/计数器实验
一、实验目的
1、学习计数器的使用方法。
2、学习计数器程序的器程序的编写。
5、熟悉汇编语言
二、实验说明
1、8051内部定时计数器T0,按计数器模式和方式1工作,对P3.4(T0)引脚进行计数。将其数值按二进制数在P1口驱动LED灯上显示出来。
、流程图
、实验电路及连线
实验3-2 、用CPU内部定时器中断方式计时,实现每一秒钟输出状态发生一次反转
、定时器有关的寄存器有工作方式寄存器TMOD和控制寄存器TCON。TMOD用于设置定时器/计数器的工作方式0-3,并确定用于定时还是用于计数。TCON主要功能是为定时器在溢出时设定标志位,并控制定时器的运行或停止等。
实验三流水灯实验(io口和定时器实验)

实验三流水灯实验(I/O口和定时器实验)一、实验目的1.学会单片机I/O口的使用方法和定时器的使用方法;2.掌握延时子程序的编程方法、内部中断服务子程序的编程方法;3.学会使用I/O口控制LED灯的应用程序设计。
二、实验内容1.控制单片机P1口输出,使LED1~LED8右循环轮流点亮(即右流水),间隔时间为100毫秒。
2.控制单片机P1口输出,使LED1~LED8左循环轮流点亮(即左流水),间隔时间为100毫秒。
3.使用K1开关控制上面LED灯的两种循环状态交替进行;4. 用定时器使P1口输出周期为100ms的方波,使LED闪烁。
5.使用定时器定时,使LED灯的两种循环状态自动交替,每一种状态持续1.6秒钟(选作)。
三、实验方法和步骤1.硬件电路设计使用实验仪上的E1、E5和E7模块电路,把E1区的JP1(单片机的P1口)和E5区的8针接口L1~L8(LED的驱动芯片74HC245的输入端)连接起来,P1口就可以控制LED 灯了。
当P1口上输出低电平“0”时,LED灯亮,反之,LED灯灭。
E7区的K1开关可以接单片机P3.0口,用P3.0口读取K1开关的控制信号,根据K1开关的状态(置“1”还是置“0”),来决定LED进行左流水还是右流水。
综上,画出实验电路原理图。
2.程序设计实验1和实验2程序流程图如图3-1实验3程序流程图如图3-2所示。
图3-1 实验1,2程序流程图图3-2 实验3程序流程图实验4程序流程图如图3-3,3-4所示。
实验5程序流程图如图3-5,3-6所示。
图3-5 实验5主程序流程图图3-6 定时器中断服务子程序流程图图3-4 定时器中断服务子程序流程图图3-3 实验4主程序流程图编程要点:(1)Pl,P3口为准双向口,每一位都可独立地定义为输入或输出,在作输入线使用前,必须向锁存器相应位写入“1”,该位才能作为输入。
例如:MOV P1,A; P1口做输出MOV P1,#0FFHMOV A,P1;P1口做输入SETB P3.0MOV C,P3.1;从P3.1口读入数据(2)每个端口对应着一个寄存器,例:P1→90H(P1寄存器地址);P3→B0H(P3寄存器地址);寄存器的每一位对应着一个引脚,例:B0H.0→P3.0(3)对寄存器写入“0”、“1”,对应的外部引脚则输出“低电平”、“高电平”。
第3次《单片机原理与应用》-定时计数器

定时器初始化编程:
使用定时器工作之前,先写入控制寄存器, 确定好定时器工作方式。 初始化编程格式:
MOV TMOD,# 方式字 MOV THx,#XH MOV TLx,#XL (SETB EA ) (SETB ETx) SETB TRx ;选择方式 ;装入Tx时间常数 ;开Tx中断 ;启动Tx定时器
TMOD,#01H ;设置T0为方式1定时
ACALL PT0M0
HERE: AJMP HERE
;调用初始化子程序PT0M0
;原地循环,等待中断
22
PT0M0: MOV
TL0,#0CH
;T0初始化,装初值的低8位
MOV
TH0,#0FEH
;装初值的高8位
;允许T0中断 ;总中断允许 ;启动T0 ;中断子程序,T0重装初值 ;P1.0的状态取反
本例,主程序用一条转至自身的短跳转指令来代替。
21
参考程序如下:
ORG 0000H ;程序入口 ;转主程序 ;T0中断入口 ;转T0中断处理程序IT0P ;主程序入口 ;设堆栈指针
RESET: AJMP MAIN ORG 000BH
AJMP IT0P ORG MAIN: MOV MOV 0100H SP,#60H
2)中断方式:初始化后执行其它任务,中断服务程序处理溢出。 ORG 0000H LJMP MAIN ORG 000BH(001BH) ;Tx中断入口 LJMP PTS MAIN: … ;初始化后执行其他程序 PTS: … ;溢出中断服务程序 MOV THx,#XH ;重装时间常数 MOV TLx,#XL RETI
即T0每隔1ms产生一次中断,CPU响应中断后,在中断服务 子程序中对P1.0取反。为此要做如下几步工作。
单片机定时器计数器实验报告

文档来源为:从网络收集整理.word 版本可编辑.欢迎下载支持.单片机定时器计数器实验报告篇一:单片机计数器实验报告篇一:单片机计数器实验报告计数器实验报告计数器实验报告㈠ 实验目的实验目的1. 学习单片机内部定时学习单片机内部定时//计数器的使用和编程方法;计数器的使用和编程方法;2. 2.进一步掌握中断处理程序的编程方法。
进一步掌握中断处理程序的编程方法。
㈡ 实验器材实验器材1. 2. 3. 4. 5.G6W 仿真器一台仿真器一台 MCS MCS —51实验板实验板 一台一台一台 PC PC 机 一台一台一台 电源 一台一台一台 信号发生器信号发生器 一台一台㈢ 实验内容及要求实验内容及要求8051内部定时计数器,按计数器模式和方式1工作,对P3.4P3.4((T0T0)引脚进行计数,使用)引脚进行计数,使用8051的T1作定时器,作定时器,50ms 50ms中断一次,看T0内每50ms 来了多少脉冲,将计数值送显(通过LED 发光二极管8421码来表示),1秒后再次测试。
秒后再次测试。
㈣ 实验说明实验说明1. 本实验中内部计数器其计数器的作用,外部事件计数器脉冲由P3.4引入引入定时器T0T0。
单片机在每个机器周期采样一次输入波形,。
单片机在每个机器周期采样一次输入波形,因此单片机至少需要两个机器周期才能检测到一次跳变,这就要求被采样电平至少维持一个完整的机器周期,以保证电平在变化之前即被采样,同时这就决定了输入波形的频率不能超过机器周期频率。
能超过机器周期频率。
2. 2. 计数脉冲由信号发生器输入(从计数脉冲由信号发生器输入(从T0端接入)。
3. 计数值通过发光二极管显示,要求:显示两位,十位用L4L4~~L1的8421码表示,个位用L8L8~~L5的8421码表示码表示4. 将脉搏检查模块接入电路中,对脉搏进行计数,计算出每分钟脉搏跳动算出每分钟脉搏跳动次数并显示次数并显示㈤ 实验框图实验框图((见下页见下页) )程序源代码程序源代码 ORG 00000H LJMP MAIN ORG 00000H LJMP MAINORG 001BH AJMP MAIN1 MAIN:MOV SP,#60HMOV TMOD,#15H MOV 20H,#14H MOV TL1,#0B0H MOVTH1,#3CHMOV TL0,#00H;T0的中断入口地址的中断入口地址 ; ;设置T1做定时器做定时器,T0,T0做计数器,都于方式1工作工作 ; ;装入中断次数装入中断次数装入中断次数 ; ;装入计数值低装入计数值低8位 ;装入计数值高8位MOV TH0,#00HSETB TR1 ;启动定时器T1 SETB TR0 ;启动计数器T0SETB ET1 ;允许T1中断中断 SETB EA ; SETB EA ;允许CPU 中断中断 SJMP $; SJMP $;等待中断等待中断MAIN1: PUSH PSW PUSH ACC CLR TR0CLR TR1 MOV TL1,#0B0H MOV TH1,#3CHDJNZ 20H,RETUNT MOV 20H ,#14HSHOW: MOV R0,TH0 MOV R1,TL0MOV A,R1 MOV B,#0AH DIV ABMOV C,ACC.3MOV P1.0,C MOV C,ACC.2 MOV P1.1,C MOVC,ACC.1 MOV P1.2,C MOV C,ACC.0 MOV P1.3,CMOV A,B MOV C,ACC.3MOV P1.4,C MOV C,ACC.2 MOV P1.5,C MOV C,ACC.1 MOV P1.6,C MOV C,ACC.0MOV P1.7,C ;保护现场保护现场;装入计数值低8位;装入计数值高8位,50ms;,50ms;允许允许T1中断中断;未到1s,1s,继续计时继续计时继续计时 ;1s ;1s 到重新开始到重新开始;显示计数器T0的值的值;;读计数器当前值读计数器当前值 ; ;将计数值转为将计数值转为十进制十进制;显示部分,将A 中保存的十位赋给L0~L3 将B 中保存的各位转移到A 中 ;将个位的数字显示在将个位的数字显示在L4~L7上;RETUNT:MOV TL0,#00H;将计数器将计数器T0清零清零 MOV TH0,#00H MOV TH0,#00HSETB TR0SETB TR1POP ACCPOP PSWRETI ;中断返回中断返回在频率为1000HZ 时,时,L0~L7L0~L7显示为5050;频率为;频率为300HZ时,时,L0~L7L0~L7显示为1515,结果正确,程序可以正确运行。
单片机实验——精选推荐

实验一认识实验一.实验目的1.了解仿真器的硬件结构与接线。
2.了解MCS-51单片机复位功能及复位后的内部状态。
3.通过示例程序的键入与执行,学习仿真器的使用与操作方法。
二.实验内容1.对照实验指导书,查对实验机具体接线。
2.按照开发系统的使用方法,分别查看复位后PC、SP、DPTR等特殊功能寄存器及片内、片外RAM的内容。
3.熟悉开发器的使用,将下面程序键入实验机。
ORG 2000H2000 74AA MOV A,#0AAH2002 75F0BB MOV B,#0BBH2005 E5F0 MOV A,B2007 78CC MOV R0,#0CCH2009 E8 MOV A,R0200A 80FE SJMP $4.程序键入后,检查各存储单元所储机器码是否正确如有误,重新键入,达到修正的目的。
5.单步执行示例程序,逐步检查执行结果,核查与分析结果是否相符,直到执行完最后一条指令。
6.练习连续执行示例程序,检查执行结果,核查与分析结果是否相符。
7.自己在示例程序中插入一条指令,执行并查看结果,然后删除,熟悉插入/删除操作。
8.将示例程序移到另外一个存储区,执行并查看结果,熟悉程序块移动操作。
三.实验预习要求1.认真阅读指导书的相关内容,熟悉开发系统的各种操作。
2.实验前应写出规定操作任务的具体操作方法步骤。
四.思考题1.MCS-51单片机怎样实现内部复位,画出一种复位电路。
2.PC、SP、P0、P1、P2、P3复位状态是什么?各有何意义?3.示例程序中最后一条指令SJMP $的作用是什么?如果取掉这一条指令,程序的执行将发生什么变化?4.实验机监控系统怎样实现程序“单步执行”功能?五.实验报告要求1.按实验顺序,写出实验操作的方法步骤。
2.写出实验中所遇到的问题与解决过程。
写出思考题的答案。
实验二建立数据区、数据块传送一.实验目的1.进一步熟悉实验机操作,练习程序调试方法。
2.理解并掌握建立数据区与数据块传送程序。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验三单片机定时/ 计数器实验
1、实验目的
1、学习计数器的使用方法。
2、学习计数器程序的编写。
3、学习定时器的使用方法。
4、学习定时器程序的编写。
5、熟悉汇编语言
2、实验说明
1、8051内部定时计数器T0,按计数器模式和方式1工作,对P3.4 (T0) 引脚进行计数。
将其数值按二进制数在P1 口驱动LED丁上显示出来。
2、用CPU内部定时器中断方式计时,实现每一秒钟输出状态发生一次反转
3、实验仪器和条件
计算机
伟福实验箱( lab2000P)
4、实验内容
1、8051内部定时计数器T0,按计数器模式和方式1工作,对P3.4(T0) 引脚进行计数。
将其数值按二进制数在P1 口驱动LED丁上显示出来。
2、外部事件计数脉冲由P3.4引入定时器T0。
单片机在每个机器周期采样一次输入波形,因此单片机至少需要两个机器周期才能检测到一次跳变。
这就要求被采样电平至少维持一个完整的机器周期,以保证电平在变化之前即被采样。
同时这就决定了输入波形的频率不能超过机器周期频率。
3、用CPU内部定时器中断方式计时,实现每一秒钟输出状态发生一次反转
4、定时器有关的寄存器有工作方式寄存器TMOD和控制寄存器TCON TMOD 用于设置定时器/ 计数器的工作方式0-3,并确定用于定时还是用于计数。
TCON 主要
功能是为定时器在溢出时设定标志位,并控制定时器的运行或停止等。
5、在例程的中断服务程序中,因为中断定时常数的设置对中断程序的运行起到关键作用,所以在置数前要先关对应的中断,置数完之后再打开相应的中断。
五、思考题
1、使用其他方式实现本实验功能;
2、改为门控方式外部启动计数;
3、如果改为定时间隔为200us,如何改动程序;
4、使用其他方式实现本实验功能,例如使用方式1定时间隔为10ms,如何改动程序。
六、源程序修改原理及其仿真结果
思考题一:使用其他方式实现本实验功能
方法一:
movTMOD, #00000100b方式0,记数器
movTH0, #0
movTL0, #0
setbTR0开始记数;由于方式0的特点是计数时使用TL0的低五位和八位
TH0,故用加法器a用与”(ANL)取TL0的低五位,再用yiwei子程序实现TH0 的低三位变为高三位与TL0相加,这样赋给P1时就是八位计数的结果。
Loop:
mova,TL0
anla,#1fh
movr1,a
mova,TH0
adda,r1
movPI, a;将记数结果送P1 口IjmpLoop
;实现THO的高三位移位为高三位,本身TH0是八位,故需要移位五次才能实现
yiwei:
movrO,#O5h
Loop1:
rIa
djnzrO,Loop1
ret
end
硬件:P1.0~P1.7接L0~L7, P3.4接单步脉冲
方法二:
movTMOD, #OOOOO11Ob
movTHO, #O
movTLO, #O
setbTRO
Loop:
MovP1,TL0方式2,记数器暂存初值,可自动加载八位加一计数器
;开始记数;将记数结果送P1 口;
End
硬件:P1.0~P1.7接L0~L7, P3.4接单步脉冲
硬件仿真结果说明:
按动单步脉冲按钮LED灯P0到P7会按照二进制的顺序点亮,即第一次P0亮其他灭,第二次P1亮其他灭,第三次P0 P1亮其他灭,第四次P2亮其他灭••…以此类推,实现了用八位LED灯表示计数器的计数过程的目的。
思考题二:改为门控方式外部启动计数
movTMOD, #00001101b方式1,记数器,门控方式
movTH0, #0
movTL0, #0
setbTR 0开始记数
Loop:
movPI, TL0将记数结果送P1 口
ljmpLoop
end;INT0即P3.2接开关硬件仿真结果说明:
在P3.2所接开关没有拨为高电平之前,按动单步脉冲按钮LED灯没有响应;开关拨为高电平之后按动单步脉冲按钮LED灯的响应同上。
实现了计数器的门控外部启动。
思考题三:如果改为定时间隔为200us,如何改动程序
(2八8-x)*2*10八-6=200*10八-6;
故x=256-100
程序其他部分无需改变,定时变为2sLED丁的状态翻转
Tickequ10000; 10000 x 200us = 2s
TIOOusequ 256-100; 200us时间常数(6M);
C100usequ30h; 200us 记数单元
程序选用方式 1 定时,故计算初值:
(2A16-x)*2*10A6=10*10A3;
故x=65536-5000=60536
1,定时间隔为思考题四:使用其他方式实现本实验功能,例如使用方式
10ms,如何改动程序
Tickequ 500; 500 x 10ms = 5s
T100usequ 60536 ; 10ms计数单位
C100usequ30h; 10ms记数单元
LEDBufequ0
LEDequP1.0
org0000h
ljmpStart
org000bh
方式 1 与方式 2 的区别不仅在于它是16 位计数,同时在于它不能重新装入初值,赋值时要分高八位和低八位分别赋值,并且必须进入中断时手动重装初值
T0Int:
movTH0, #high(t100us)
movTL0, #low(t100us)
pushPSW
mova, C100us+1
jnzGoon
decC100us
Goon:
decC100us+1
mova, C100us
orla, C100us+1
jnzExit;100us 记数器不为0,返回movC100us, #high(Tick)
movC100us+1, #low(Tick) cplLEDBuf
记数器为0,重置记数器;取
反
Exit:
popPSW
reti
Start:
movTMOD, #01h
1,定时器
movIE, #10000010b
IT0 = 1
setbTR0
开始定时LED方式
;; 100us; EA=1,clrLEDBuf
clrLED
movC100us, #high(Tick)
movC100us+1, #low(Tick)
Loop:
movc, LEDBuf
movLED, c
ljmpLoop
end
硬件仿真结果说明:
程序开始执行后LED灯以5s为周期重复的点亮,并且每次点亮时可以维持5s,即LED灯会亮5s,然后灭5s•…如此循环往复。
从现象中可以看出,程序实现了在P1.0 口周期性地输出周期为10s的方波,且占空比为1:1,使得LED灯出现上述点亮规律。
继续阅读。