单片机——定时计数器系统控制设计

具体要求

电路设计

电路设计

思路

汇编

ORG 0000H
LJMP START
ORG 000BH		;T0的中断服务程序入口
LJMP TIME
ORG 0030H
START:MOV SP,#60H
	  MOV P0,#0FEH
	  MOV R1,#00H		;软件计数器清零
	  MOV TMOD,#01H		;T0采用工作方式1
	  MOV TH0,#3CH		;设置初始值:2^16-50μs/1μs=3CB0H
	  MOV TL0,#0B0H
	  SETB EA
	  SETB ET0
	  SETB TR0
LOOP:AJMP LOOP		;循环等待
TIME:PUSH PSW
	 INC R1
	 CJNE R1,#20,TIME_JMP		;定时50μm二十次
	 CPL P0.0		;改变P0.0状态
	 MOV R1,#00H		;清空软件计数器
TIME_JMP:MOV TH0,#3CH
		 MOV TL0,#0B0H
		 SETB TR0
		 POP PSW
		 RETI
		 END

C语言

#include <reg51.h>
#define uchar unsigned char
#define uint unsigned int
sbit LED = P0^0;
uchar count = 0;

void main()
{
	TMOD = 0x00;		//T0工作方式0
	TH0 = (8192-5000)/32;		//定义初值:2^13-5000μs/1μs
	TL0 = (8192-5000)%32;
	IE = 0x82;		//允许T0中断
	TR0 = 1;
	while(1);
}

void LED_Flash() interrupt 1
{
	TH0 = (8192-5000)/32;
	TL0 = (8192-5000)%32;
	if(++count == 200)
	{
		LED = ~LED;
		count = 0;
	}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值