设计一个C51程序,使用定时器定时1s,输出周期为2s的方波

设计一个C51程序,使用定时器定时1s,输出周期为2s的方波。

*代码*
#include <reg51.h>
sbit P0_0 = P0^0;
char i = 0;
void main()
{
	TMOD = 0x01;	//定时器T0方式1
	TH0 = 0xdc;
	TL0 = 0x00;		//定时器初值dc00:56320 产生10ms中断
	P0_0 = 0;
	EA = 1; 	//总中断打开
	ET0 = 1;	//允许T0中断
	TR0 = 1;	//启动定时器T0
	while(1);
}

void timer0() interrupt 1
{	
	TH0 = 0xdc;
	TL0 = 0x00;	//重赋初值
	i++;
	if(i == 100)	//一秒
	{
		i = 0;
		P0_0 = ~P0_0;
	}
}

结果显示:

在这里插入图片描述

程序设计原理分析

定时器定时1s,输出周期为2s的方波,即产生1s的中断,每过1s方波翻转一次,周期是2s.
首先设置TMOD寄存器,GATE0 = 0使T0仅由TR0控制,C/ = 0,定时器模式,M0、M1 = 01方式1,TMOD = 0x01;
此实验中晶振振荡频率11.0592MHz,定时10ms,每100次P0取反,时隔1s

公式:定时时间 = (216 - X) *12 / 11.0592

10*103 = (65536 - X) *12/11.0592
X = 56320 16进制:0xdc00

用示波器看P0^0的方波

一、在Keil下搭建工程并完成C文件的编写
二、选中Create HEX File

在这里插入图片描述

三、编译F7
四、Debug Ctrl F5
五、选中Logic Analyzer

在这里插入图片描述

六、点设置:Setup

在这里插入图片描述

七、添加P0.0端口(程序中用的P0^0故在此用的P0)

在这里插入图片描述

八、调显示类型重新打开Setup 将Display Type改为bit 颜色自己设定

在这里插入图片描述

九、也是最后一步,F5执行也可以点

在这里插入图片描述

效果展示:

在这里插入图片描述
最后调试部分 参照了这篇文章
Keil C51软件基本操作十一式 新建工程 编译程序 用示波器看波形

  • 7
    点赞
  • 72
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值