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

这篇具有很好参考价值的文章主要介绍了设计一个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;
	}
}

结果显示:

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

程序设计原理分析

定时器定时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

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

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

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

六、点设置:Setup

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

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

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

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

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

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

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

效果展示:

设计一个C51程序,使用定时器定时1s,输出周期为2s的方波
最后调试部分 参照了这篇文章
Keil C51软件基本操作十一式 新建工程 编译程序 用示波器看波形文章来源地址https://www.toymoban.com/news/detail-479089.html

到了这里,关于设计一个C51程序,使用定时器定时1s,输出周期为2s的方波的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • C51单片机按键控制流水灯模式(定时器版本)以及定时器时钟

      上篇文章我们学了关于定时器的三大组成部分及许多寄存器的概念问题,这篇文章我们就要开始讲解实操部分。 首先,我们先来看看本文最后写成的代码:      以上三张是代码的主函数,此外,代码中还需用到的独立按键检测代码在下面:  注意:头文件中#ifndef和#def

    2023年04月17日
    浏览(49)
  • C51单片机中断系统与定时器/计时器(理论部分)

    前言 文章的开始,有人可能会问,我们在前几节课学了延时函数,为什么不用延时函数来取代定时器,而必须学定时器呢?这里,有如下几个理由: 1.使用delay函数时,单片机的cpu做不了其他事情,只能等待延时结束。 2.用了定时器cpu就可以做其他的事情,只要定时器溢出时

    2023年04月15日
    浏览(40)
  • C51——定时器控制LED 每个一秒亮灭

    1 配置定时器0  2 给初值 定一个10ms 出来 3 开始计时  4 爆表了, 要操作LED #include \\\"reg52.h\\\" sbit led = P3^6; void main() {     int cnt =0;     led = 1;     //1配置定时器0工作模式位16位计时       TMOD =  0x01;     //2给初值,定出10ms来         TL0  = 0x00;         TH0  = 0xDC;     

    2024年02月08日
    浏览(48)
  • C51单片机定时器2实现SG90舵机控制

    谈起舵机最初的了解应用于航模,偶然的机会在网上看到有牛人使用多个舵机做人形机器人的关节,感觉这小东西很有趣,蒙发了买来学习学习的想法,这已经是多年前的事了,后来由于某些原因,这个想法直到今年才落地。小东西到手后,把玩了解后,本人把学习过程记录

    2023年04月24日
    浏览(51)
  • 51单片机定时器使用与计算-----day3

    51单片机定时器-----day3 8051单片机介绍: 集成 8位CPU、 4K字节ROM(掉电不丢失)、 128字节RAM(掉电丢失)、 4个8位并口、 1个全双工串行口、2个16位定时/计数器。 寻址范围64K, 并有控制功能较强的布尔处理器(带位操作)。 单片机结构内部框图: 机器周期和指令周期 ( 1)

    2024年02月03日
    浏览(43)
  • 51单片机定时器。实验(六):定时器实验:使用AT89S51单片机的定时器/计数器T1控制LED每隔3秒点亮一次(即亮3秒,灭3秒,如此反复)

    目录 题目: proteus仿真: 代码: 分析题目: 定时器: 工作方式寄存器TMOD设置: 控制寄存器TCON设置: 设定计数初值:  定时器四种工作方式: 实验过程讲解: 配置定时器:设置TMOD寄存器 设定定时器初值:THx和TLx(x=0,1) 设置IE寄存器: 启动定时器: 中断检测: 使用

    2023年04月20日
    浏览(53)
  • 51单片机定时器/计数器(定时器中断)

    实现功能 通过定时器终端控制LED灯 D1 间隔一秒闪烁 单片机型号:STC89C52 定时器介绍 1、51单片机定时器原理 定时器实质上就是一个加1计数器。它随着计数器的输入脉冲进行自加1,也就是每来一个脉冲,计数器就自动加1,,当加到定数器满时,再输入一个脉冲就使定时器回零

    2024年02月06日
    浏览(57)
  • 【51单片机】如何设置中断函数(场景:在定时器工作完跳转到中断程序时,怎么识别我们的中断程序在哪里呢?)

    前言 大家好吖,欢迎来到 YY 滴单片机系列 ,热烈欢迎! 本章主要内容面向接触过单片机的老铁 本章是【利用定时器和中断实现一个简单项目】中的一部分,感兴趣的老铁可以跳转传送门查看 传送门 欢迎订阅 YY 滴C++专栏!更多干货持续更新!以下是传送门! YY的《C++》专

    2024年02月19日
    浏览(55)
  • 51-定时器与按键控制LED流水灯模式&定时器时钟

    按键(以独立按键为例)控制LED流水灯模式: 在按键控制LED流水灯模式中,如果仅仅简单的把独立按键与LED流水灯拼接起来,则会出现一些问题:在LED流水灯的代码中会有长时间的Delay,此时按键检测就会很不灵敏:按下时不灵敏,需要一些时间才能被检测到,按下后再松手时

    2024年02月08日
    浏览(46)
  • 51单片机定时器

    目录 前言 一、定时器的介绍及其作用 二、定时器的内部构造及其原理 计算机周期 定时器的工作模式与流程 定时器中断相关寄存器 寄存器的配置  三、程序 总结         下面来介绍学习51单片机第一个也是最常用的片上外设——定时器。该硬件是集成在单片机内部的,

    2024年02月05日
    浏览(57)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包