实验三定时器计数器应用实验一

合集下载

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

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

【关键字】报告单片机定时器计数器实验报告篇一:单片机计数器实验报告计数器实验报告㈠实验目的1. 学习单片机内部定时/计数器的使用和编程方法;2. 进一步掌握中断处理程序的编程方法。

㈡实验器材1. 2. 3. 4. 5.G6W仿真器一台MCS—51实验板一台PC机一台电源一台信号发生器一台㈢实验内容及要求8051内部定时计数器,按计数器模式和方式1工作,对P3.4(T0)引脚进行计数,使用8051的T1作定时器,50ms中断一次,看T0内每50ms来了多少脉冲,将计数值送显(通过LED发光二极管8421码来表示),1秒后再次测试。

㈣实验说明1. 本实验中内部计数器其计数器的作用,外部事件计数器脉冲由P3.4引入定时器T0。

单片机在每个机器周期采样一次输入波形,因此单片机至少需要两个机器周期才能检测到一次跳变,这就要求被采样电平至少维持一个完整的机器周期,以保证电平在变化之前即被采样,同时这就决定了输入波形的频率不能超过机器周期频率。

2. 计数脉冲由信号发生器输入(从T0端接入)。

3. 计数值通过发光二极管显示,要求:显示两位,十位用L4~L1的8421码表示,个位用L8~L5的8421码表示4. 将脉搏检查模块接入电路中,对脉搏进行计数,计算出每分钟脉搏跳动次数并显示㈤实验框图(见下页)程序源代码ORG 00000H LJMP MAINORG 001BH AJMP MAIN1 MAIN:MOV SP,#60HMOV TMOD,#15H MOV 20H,#14H MOV TL1,#0B0H MOV TH1,#3CHMOV TL0,#00H;T0的中断入口地址;设置T1做定时器,T0做计数器,都于方式1工作;装入中断次数;装入计数值低8位;装入计数值高8位MOV TH0,#00HSETB TR1 ;启动定时器T1 SETB TR0 ;启动计数器T0 SETB ET1 ;允许T1中断SETB EA ;允许CPU中断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 MOV C,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;允许T1中断;未到1s,继续计时;1s到重新开始;显示计数器T0的值;读计数器当前值;将计数值转为十进制;显示部分,将A中保存的十位赋给L0~L3 将B中保存的各位转移到A中;将个位的数字显示在L4~L7上;RETUNT:MOV TL0,#00H;将计数器T0清零MOV TH0,#00HSETB TR0SETB TR1POP ACCPOP PSWRETI ;中断返回在频率为1000HZ时,L0~L7显示为50;频率为300HZ时,L0~L7显示为15,结果正确,程序可以正确运行。

电气控制与PLC编程实验三 定时器实验

电气控制与PLC编程实验三 定时器实验

实验二定时器实验
一、实验目的
l. 掌握定时指令的使用。

2. 掌握由计数器构成的典型环节。

3. 熟悉软件的调试方法,监控模式的使用。

二、实验器材
1. DICE-PLC02-A/B型可编程序控制器实验台/箱l台
2. FX一l0P-E编程器(可选)l只
3. 编程电缆l根
4. 连接导线若干
三、实验内容与步骤
一)实验原理
FX2N系列PLC有定时器256个(T0~T199),定时器的时基脉冲为l00ms(T25~T199、T250~T255)、10ms(T200~T245)、1ms(T246~T249),其中1ms(T246~T249)和l00ms(T250~T255)为累计(积算)型定时器。

每个定时器的定时范围从1×T~32767×Ts,T为时基脉冲周期。

二)实验内容与步骤:
1、编程实现按键按下后1s后接通LED,然后2s后断开LED,记录梯形图和指令表,然后打开监控模式,观察各元件的动态表现。

监控模式下的现象记录:
2)改变定时器的编号(地址)观察累计型和非累计型定时器的区别,然后打开监控模式,观察各元件的动态表现。

监控模式下的现象记录,累计型与非累计型的区别:
3)编写由定时器构成的闪烁(震荡)程序
分析:振荡器的高低电平/频率分别由什么控制。

4)编写8 LED流水灯程序;
实验报告
一、记录实验步骤
二、记录对应程序(梯形图和指令表)
三、记录实验现象
四、实验现象分析。

实验三流水灯实验(io口和定时器实验)

实验三流水灯实验(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”,对应的外部引脚则输出“低电平”、“高电平”。

plc应用实训报告

plc应用实训报告

plc应用实训报告一、引言在现代工业自动化领域,可编程逻辑控制器(PLC)已成为一种关键的设备。

本报告旨在总结和分析我参与的PLC应用实训过程,并对实训的成果和经验进行评估。

二、实训背景本次实训课程旨在使学生深入了解PLC的基本原理、操作和应用。

通过实际动手操作和实时调试,学生将学会PLC的编程技巧,同时了解到PLC在工业控制中的重要性。

三、实训内容1. 实验一:PLC系统的组成与实操在实验一中,我们首先学习了PLC系统的组成部分,包括PLC主机、输入/输出模块、通信模块等。

然后,我们进行了实操练习,使用STEP 7软件编写简单的PLC程序,实现了一个基本的开灯和关灯控制。

2. 实验二:传感器的应用与实操在实验二中,我们深入学习了不同类型的传感器的原理和应用场景。

通过实操,我们了解到如何将传感器与PLC进行联动,实现自动控制。

我们使用接近开关和光电传感器等传感器,编写了相应的PLC程序,实现了自动输送带的控制。

3. 实验三:定时器和计数器的应用与实操在实验三中,我们学习了定时器和计数器的基本原理和使用方法。

我们编写了PLC程序,实现了一个简单的定时器控制电路和计数器控制电路。

通过调试和优化,我们掌握了定时器和计数器在自动控制中的重要作用。

4. 实验四:通信与网络控制实操在实验四中,我们探讨了PLC系统与上位机的通信和联动控制。

我们使用工业以太网和Modbus通信协议,编写了相应的PLC程序,实现了PLC与电脑的联动控制。

这使得我们可以通过电脑进行实时监控和故障诊断,提高了工业自动化的可靠性和效率。

四、实训成果通过本次PLC应用实训,我掌握了以下技能和知识:1. 熟悉了PLC系统的基本组成和工作原理;2. 培养了使用STEP 7软件进行PLC编程的能力;3. 了解了不同类型传感器的原理和应用场景,并掌握了传感器与PLC的联动控制方法;4. 掌握了定时器和计数器在自动控制中的使用技巧;5. 学会了使用通信和网络控制实现PLC与上位机的联动。

定时计数器实验报告

定时计数器实验报告

定时计数器实验报告定时计数器实验报告一、引言定时计数器是一种常见的电子设备,它可以根据预设的时间间隔进行计数,并在达到设定值时触发相应的操作。

在本次实验中,我们将通过搭建一个简单的定时计数器电路来了解其工作原理和应用。

二、实验目的1. 掌握定时计数器的基本原理;2. 学习使用集成电路和其他元件搭建定时计数器电路;3. 了解定时计数器在实际生活中的应用。

三、实验器材1. 集成电路:555定时器芯片;2. 电阻:100Ω、10kΩ;3. 电容:10μF;4. 开关:按键开关;5. LED灯:红色。

四、实验步骤1. 将555定时器芯片插入面包板中,并连接电源和地线;2. 将100Ω电阻连接到芯片的引脚6和7之间;3. 将10kΩ电阻连接到芯片的引脚7和8之间;4. 将10μF电容连接到芯片的引脚1和2之间;5. 连接按键开关到芯片的引脚2和8之间;6. 连接LED灯到芯片的引脚3。

五、实验原理555定时器芯片是一种多功能集成电路,它可以通过外部元件的连接和设置,实现不同的计时和触发功能。

在本次实验中,我们使用555定时器芯片作为定时计数器的核心。

555定时器芯片的工作原理是基于两个比较器和一个RS触发器的组合。

当芯片上电后,引脚2和6的电平会进行比较,如果引脚6的电平高于引脚2,则芯片的输出为低电平;反之,输出为高电平。

当芯片输出为高电平时,电容开始充电,直到电压达到2/3的供电电压,此时芯片的输出变为低电平,电容开始放电,直到电压降至1/3的供电电压,芯片的输出再次变为高电平。

这样,芯片的输出就形成了一个周期性的方波信号。

六、实验结果与分析经过搭建和调试,我们成功实现了定时计数器电路。

当按下按键开关时,LED 灯开始闪烁,每隔一段时间亮起一次,然后熄灭,如此循环往复。

定时计数器在实际生活中有着广泛的应用。

例如,我们可以将其用于定时控制家电设备的开关,实现定时开关灯、定时煮饭等功能。

此外,定时计数器还可以应用于工业自动化领域,用于计时、触发和控制各种生产过程。

《自动控制原理》实验指导书

《自动控制原理》实验指导书

《自动控制原理》实验指导书31000字实验一、开关量控制与监测实验目的:掌握开关量控制与监测的基本原理及方法。

实验器材:PC机、PLC编程软件、PLC编程器、PLC实验箱、直流电源、继电器、开关。

实验内容:1. 使用PLC编程软件进行PLC的程序编写。

2. 使用直流电源作为控制电源,将继电器与开关连接,利用PLC实现开关量控制和监测。

实验步骤:1. 利用PLC编程软件进行PLC的程序编写。

2. 将直流电源的正极与继电器的常闭端相连,继电器的常开端与开关相连。

3. 将开关的另一端与PLC的输入端相连,PLC的输出端与继电器的控制端相连。

4. 将直流电源的负极与PLC实验箱的接地端相连。

5. 将PLC编程器连接到PC机上,将编写好的程序下载到PLC实验箱中。

6. 按下开关,观察继电器的输出,检查程序的正确性。

实验结果:1. 开关按下,PLC输出信号,继电器吸合。

2. 开关松开,PLC输出信号,继电器断开。

实验二、模拟量采集和控制实验目的:掌握模拟量采集和控制的基本原理及方法。

实验器材:PC机、PLC编程软件、PLC编程器、PLC实验箱、直流电源、电位器、LED灯。

实验内容:1. 使用PLC编程软件进行PLC的程序编写。

2. 使用电位器作为模拟量输入信号源,利用PLC采集电位器的模拟量信号,并控制LED灯的亮度。

实验步骤:1. 利用PLC编程软件进行PLC的程序编写。

2. 将电位器的信号通过模拟量转换模块输入到PLC的模拟量输入端。

3. 利用PLC的模拟量比较指令,将电位器的模拟量信号转换成数字量信号。

4. 根据数字量输出信号的状态,控制LED灯的亮度。

5. 将直流电源的负极与PLC实验箱的接地端相连。

6. 将PLC编程器连接到PC机上,将编写好的程序下载到PLC实验箱中。

7. 调节电位器,观察LED灯的亮度变化。

实验结果:1. 电位器调整时,模拟量输入信号发生变化。

2. 根据模拟量输入信号的大小,PLC输出数字量信号,控制LED灯的亮度。

单片机实验三-定时器实验

单片机实验三-定时器实验

实验三 定时器实验 ——循环彩灯实验1、 实验目的1. 学习8051内部计数器的使用和编程方法。

2. 进一步掌握中断处理程序的编写方法。

2、 实验原理1. 定时常数的确定定时器/计数器的输入脉冲周期与机器周期一样,为振荡频率的1/12。

比如实验中时钟频率为12MHZ,现要采用中断方法来实现0.5秒延时,要在定时器1中设置一个时间常数,使其每隔0.05秒产生一次中断,CPU响应中断后将RO中计数值减一,令RO=0AH,即可实现0.5秒延时。

初值=65536-500002. 初始化程序包括定时器初始化和中断系统初始化,主要是对IP、IE、TCON、TMOD的相应位进行正确的设置,并将时间常数送入定时器中。

3. 设计中断服务程序和主程序中断服务程序除了要完成计数减一工作外,还要将时间常数重新送入定时器中,为下一次中断做准备。

主程序则用来控制发光二极管按要求顺序燃灭。

3、 实验要求由8051内部定时器1按方式1工作,即作为16位定时器使用,每0.05秒钟T1溢出中断一次。

P1口的P1.0~P1.7分别接发光二极管的L1~L8。

要求编写程序模拟一循环彩灯。

彩灯变化花样可自行设计。

建议变化花样为:L1、L2、…L8依次点亮;L1、L2、…L8依次熄灭;L1、L2、…L8全亮、全灭。

各时序间隔为0.5秒。

让发光二极管按以上规律循环显示下去。

4、 实验连线P1.0~P1.7分别接发光二极管L1~L8即可。

5、 程序org 0000hLjmp mainorg 000BhLjmp INTTorg 0100hmain:mov sp,#60h /*设置堆栈指针mov TMOD,#01h /*设置TMOD,仅由TRx控制中断,定时器模式,工作方式1mov TH0,#3CHMOV TL0,#0B0H /*设置初值x=65536-50000 (12M晶振)SETB EA /*开中断SETB ET0 /*开定时器中断T0SETB TR0 /*启动定时器MOV R1,#8 /*中断子程序工作方式1的工作次数MOV R2,#8 /*中断子程序工作方式2的工作次数MOV R3,#1 /*中断子程序工作方式3的工作次数MOV R0,#0AH /*延时次数(产生中断的次数)MOV A,#0FFHWAIT1:AJMP WAIT1INTT:MOV TH0,#3CHMOV TL0,#0B0H /*计数器赋初值DJNZ R0,RETT /*R0减1后判断延时的次数是否足够,足够顺序执行,不足够跳中断返回CJNE R1,#0,INTT1 /*判断彩灯工作方式1工作是否完毕,完毕顺序执行下一种方式,未完毕跳转继续执行此种方式CJNE R2,#0,INTT2 /*判断彩灯工作方式2工作是否完毕,完毕顺序执行下一种方式,未完毕跳转继续执行此种方式CJNE R3,#0,INTT3 /*判断彩灯工作方式3工作是否完毕,完毕顺序执行下一种方式,未完毕跳转继续执行此种方式 JMP INTT4 /*跳转执行第4种方式INTT1:MOV R0,#0AH /*重新向延时次数计数器赋初值CLR C /*C清零RLC A /*带进位左循环移位,低位移入0,即LED相继点亮(低电平亮)DEC R1 /*工作次数减1JMP RETT /*跳中断返回INTT2:MOV R0,#0AHSETB C /*C置1RRC A /*带进位右循环移位,高位移入1,即LED相继熄灭(低电平灭)DEC R2JMP RETTINTT3:MOV R0,#0AHMOV A,#0 /*8位LED灯全部点亮DEC R3JMP RETTINTT4:MOV R0,#0AHMOV P1,#0FFH /*8位LED灯全部熄灭MOV R1,#8MOV R2,#8MOV R3,#1MOV R0,#0AHMOV A,#0FFH /*重新装入相应初值,循环执行彩灯的四种工作方式JMP INTTRETT:MOV P1,A /*输出彩灯的各种状态RETIEND6、 结论通过本次试验掌握了8051内部计数器的使用和编程方法。

实验三 定时器实验

实验三 定时器实验
工作模式
1 计数 0 定时
4种工作方式
设置定时器工作方式
TMOD
D7 D6 D5 D4 D3 D2 D1 D0 GATE C/T M1 M0 GATE C/T M1 M0 1 1 T1 0 T0 0
定时器/计数器
THX(8位) TLX (8位)
方式0:213*1.085us=8.89ms M1M0 方式 计 数 器 配 工作方式 TMOD 置 16*1.085us=71.10ms 方式1: 2 01H T0定时 0 0 0 TLx低5位与THx的8位构成13位计数器 10H T1定时 方式2: 28*1.085us=0.2778ms 0 1 1 TLx与THx构成16位计数器 05H T0计数 1 0 2 自动重装初值(THx)的8位(TLx溢出时)计数器 方式3: 28*1.085us=0.2778ms 51H T1计数 1 1 3 仅用于T0,分成两个8位计数器,T1停止计数 在实验过程中,我们统一选择方式一定时/计数。
THX(8位) TLX (8位)
16位定时器/计数器
计数最大值为216
设置定时器工作方式
2种工作模式
定时 计数
4种工作方式
方式0
方式1
方式2
方式3
工作方式控制寄存器TMOD(8位,字节地址89H)
D7 D6 D5 D4 D3 D2 D1 D0 GATE C/T M1 M0 GATE C/T M1 M0 T1 T0
实验接线
P1.0--0 1
0 1 1 0 1 0 1 0 1
0 1 1 1 0 1 0 0 1
0 1 1 0 1 0 1 0 1
0 1 0 1 1 1 0 0 1
0 0 1 1 1 0 1 0 1
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

定时器/计数器应用实验一
设计性试验
2012年11月14日星期三第三四节课
一、实验目的
1、掌握定时器/计数器定时功能的使用方法。

2、掌握定时器/计数器的中断、查询使用方法。

3、掌握Proteus软件与Keil软件的使用方法。

4、掌握单片机系统的硬件和软件设计方法。

二、设计要求
1、用Proteus软件画出电路原理图,单片机的定时器/计数器以查询方式工作,在P1.0口线上产生周期为200μS的连续方波,在P 1.0口线上接示波器观察波形。

2、用Proteus软件画出电路原理图,单片机的定时器/计数器以中断方式工作,在P1.1口线上产生周期为240μS的连续方波,在P 1.1口线上接示波器观察波形。

三、电路原理图
四、实验程序流程框图和程序清单及实验结果
/*********
设计要求:(a)单片机的定时器/计数器以查询方式工作,
在P1.0口线上产生周期为200us的连续方波
编写:吕小洋
说明:用定时器1的方式1以查询方式工作
时间:2012年11月10日
***************/
ORG 0000H
开始
系统初始化
START: LJMP MAIN
ORG 0100H
MAIN: MOV SP, #2FH
CLR EA ;关总中断
CLR ET1 ;禁止定时器1中断
MOV TMOD, #00010000B ;设置定时器1为工作方式1
MOV TH1, #0FFH ;设置计数初值
MOV TL1, #9CH
SETB TR1 ;启动定时器
LOOP: JNB TF1, LOOP ;查询计数是否溢出
MOV TH1, #0FFH ;重置计数初值
MOV TL1, #9CH
CLR TF1 ;清除计数溢出标志
CPL P1.0 ;输出取反
LJMP LOOP ;重复取反
END
/*********
设计要求:(b)单片机的定时器/计数器以查询方式工作,
在P1.0口线上产生周期为200us 的连续方波
编写:吕小洋
说明:用定时器0的免装初值方式2以中断方式工作
时间:2012年11月10日
***************/
ORG 0000H
START: LJMP MAIN
ORG 000BH
LJMP TTC0
ORG 0100H
MAIN: MOV SP, #2FH
SETB EA ;开总中断
SETB ET0 ;定时器0允许中断
MOV TMOD, #02H ;设置T0为工作方式2
MOV TH0, #88H ;设置计数初值
MOV TL0, #88H
SETB TR0 ;启动定时器
HERE: LJMP HERE ;等待中断
/****中断服务程序****/
ORG 0200H
TTC0: CPL P1.0 ;输出取反
RETI ;中断返回
END
五、实验总结
通过本次试验,我掌握了定时器/计数器定时功能的使用方法,能够利用定时器产生特定脉宽的波形,掌握了定时器/计数器的中断、查询使用方法。

同时掌握了单片机系统的硬件和软件设计方法。

加强了自己的编程能力。

六、思考题
1、在P1.0口线上产生周期为500微秒,占空比为2:5的连续矩形波。

/**(1)定时器0定时200us以查询方式、方式2工作, Array
定时器1定时300us以查询方式、方式1工作******/
ORG 0000H
START: LJMP MAIN
ORG 0100H
MAIN: MOV SP, #2FH
CLR EA ;关总中断
CLR ET0 ;禁止定时器0中断
CLR ET1 ;禁止定时器1中断
MOV TMOD, #00010010B ;设置工作方式
MOV TH0, #37H ;设置T0的计数初值
MOV TL0, #37H
MOV TH1, #0FEH ;设置T1的计数初值
MOV TL1, #0D4H
SETB TR0 ;启动定时器0 LOOP: JNB TF0, LOOP ;查询计数是否溢出CPL P1.0 ;输出取反
CLR TF0 ;清除T0计数溢出标志
CLR TR0 ;关定时器0
SETB TR1 ;启动定时器1
LOOP1: JNB TF1, LOOP1
CPL P1.0 ;输出取反
MOV TH1, #0FEH ;重装计数初值
MOV TL1, #0D4H
CLR TF1 ;清除T1计数溢出标志
CLR TR1 ;关闭定时器1
SETB TR0 ;启动定时器0
LJMP LOOP ;重复循环
END
/******(2)定时器0定时200us以中断方式、方式2工作,
ORG 0000H
START: LJMP MAIN
ORG 000BH
LJMP TTC0
ORG 001BH
LJMP TTC1
ORG 0100H
MAIN: MOV SP, #2FH
SETB EA ;开总中断
SETB ET0 ;允许定时器0中断
SETB ET1 ;允许定时器1中断
MOV TMOD, #00010010B ;设置T0、T1都为工作方式1
MOV TH0, #38H ;设置T0的计数初值
MOV TL0, #38H
MOV TH1, #0FEH ;设置T1的计数初值
MOV TL1, #0D4H
SETB TR0 ;启动定时器0
HERE: SJMP HERE
ORG 0200H
TTC0: CPL P1.0 ;输出取反CLR TR0 ;关定时器0
SETB TR1 ;启动定时器1
RETI
ORG 0300H
TTC1: CPL P1.0 ;输出取反MOV TH1, #0FEH ;重装计数初值
MOV TL1, #0D4H
CLR TR1 ;关闭定时器1
SETB TR0 ;启动定时器0
RETI
END
/******(3)定时器0定时200us以查询方式工作, Array定时器1定时300us以中断方式工作******/
ORG 0000H
START: LJMP MAIN
ORG 001BH
LJMP TTC1
ORG 0100H
MAIN: MOV SP, #2FH
SETB EA ;开总中断
CLR ET0 ;禁止定时器0中断
SETB ET1 ;允许定时器1中断
MOV TMOD, #00010001B ;设置T0、T1都为工作方式1
MOV TH0, #0FFH ;设置T0的计数初值
MOV TL0, #38H
MOV TH1, #0FEH ;重装T1计数初值
MOV TL1, #0D4H
SETB TR0 ;启动定时器0
LOOP: JNB TF0, LOOP ;查询T0计数是否溢出CPL P1.0 ;输出取反
CLR TF0 ;清除T0计数溢出标志
CLR TR0 ;关定时器0
MOV TH0, #0FFH ;重装T0计数初值
MOV TL0, #38H
SETB TR1 ;启动定时器1
LJMP LOOP
TTC1: CPL P1.0 ;输出取反CLR TR1 ;关闭定时器1
SETB TR0 ;启动定时器0
MOV TH1, #0FEH ;重装T1计数初值
MOV TL1, #0D4H
RETI
END。

相关文档
最新文档