实验四:定时器实验[通俗易懂]

实验四:定时器实验[通俗易懂]一、实验目的1、掌握单片机定时/计数器的使用方法。2、掌握定时/计数器编程方法。二、实验设备及软件1、PC机2、KEIL513、PROTEAUS三、实验任务1、循环点亮流水等D1-D2-D3…D8, 延时采用定时器T0定时100ms2、循环点亮流水等D1-D2-D3…D8, 延时采用定时器T1定时1s四、仿真电路

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺
一、实验目的

1、掌握单片机定时/计数器的使用方法。

2、掌握定时/计数器编程方法。

二、实验设备及软件

1、PC机

2、KEIL51

3、PROTEAUS

三、实验任务

1、循环点亮流水等D1-D2-D3…D8,   延时采用定时器T0定时100ms

2、循环点亮流水等D1-D2-D3…D8,   延时采用定时器T1定时1s

四、仿真电路

 

 
实验四:定时器实验[通俗易懂]

五、实验源程序

1)T0定时100毫秒:

#include<reg51.h>
#include<intrins.h>
void timer0() interrupt 1
{
     TH0=(65536-50000)/256;
     TL0=(65536-50000)%256;
     P0=_crol_(P0,1);
}
int main()
{
     TMOD=0x01;
     TH0=(65536-50000)/256;
     TL0=(65536-50000)%256;
     EA=1;
     ET0=1;
     TR0=1;
     P0=0xfe;
     while(1);
}

2)T1定时1秒:

#include<reg51.h>
#include<intrins.h>
unsigned int count=0;
void timer0() interrupt 3
{
     TH1=(65536-50000)/256;
     TL1=(65536-50000)%256;
     count++;
}
int main()
{
     TMOD=0x50;
     TH1=(65536-50000)/256;
     TL1=(65536-50000)%256;
     EA=1;
     ET1=1;
     TR1=1;
     P0=0xfe;
     while(1)
     {
          if(count==20)
          {
               count=0;
               P0=_crol_(P0,1);
          }
     }
}

六、思考题:利用8051定时/计数器设计一个计时秒表,计时时间0~15秒,十六进制在一个数码管显示输出。

实验四:定时器实验[通俗易懂]

代码:

#include<reg51.h>
#include<intrins.h>
code char tab[16]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e};
//共阳极的接法计数
unsigned int count=0;               //定时器计数
unsigned int number=0;             //数码管计数
sbit p1_0=P1^0;
void timer0() interrupt 1
{
     TH0=(65536-50000)/256;
     TL0=(65536-50000)%256;
     count++;
}
int main()
{
     TMOD=0x01;
     TH0=(65536-50000)/256;
     TL0=(65536-50000)%256;
     EA=1;
     ET0=1;
     TR0=1;
     while(1)
     {
          if(count==20)
          {
               count=0;
               p1_0=1;                         //开关处于闭合状态
               P0=tab[number];
               number++;
               if(number==16)
               {
                    number=0;
               }
          }
     }
}

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/158846.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • spring 整合 mybatis原理

    spring 整合 mybatis原理SqlSessionFactoryBean的创建1.SqlSessionFactoryBean这个类实现了三个接口,一个是InitializingBean,另一个是FactoryBean,还有就是ApplicationListener接口。下面说明一下实现了这三个接口的,有什么作用InitializingBean接口:实现了这个接口,那么当bean初始化的时候,spring就会调用该接口的实现…

    2022年6月3日
    47
  • 暴力激活成功教程攻击工具汇总——字典很关键,肉鸡也关键

    暴力激活成功教程攻击工具汇总——字典很关键,肉鸡也关键lasercrack是一款爆力激活成功教程工具,ruby写的,现如今市面上常见的暴力工具如hydra,medusa都有着不错的激活成功教程效率。激活成功教程RDP的软件也有很多,比如ncrack和FastRDPBrut

    2022年7月2日
    37
  • 测试用例设计的八大要素及ANSI/IEEE 829标准和编写示例[通俗易懂]

    测试用例设计的八大要素及ANSI/IEEE 829标准和编写示例[通俗易懂]1、测试用例的八大要素1.用例编号和其他编号一样,测试用例编号是用来唯一识别测试用例的编号,要求具有易识别和易维护性,用户可以很容易根据用例编号获取到相应用例的目的和作用,在系统测试用例中,编号的一般格式为A-B-C-D这几部分的作用分别如下:A:产品或项目类型,如CMS(内容管理系统)、CRM(客户关系管理系统)B:一般用来说明用例的属性,如ST(系统测试)、IT(集成测试)、UT(单元测试)C:测试需求的表示,说明该用例针对的需求点,可包括测试项和测试子项等,如文档管理、客户投诉信息管理

    2022年6月28日
    39
  • WebSocket 详解教程

    WebSocket 详解教程概述WebSocket是什么?WebSocket是一种网络通信协议。RFC6455定义了它的通信标准。WebSocket是HTML5开始提供的一种在单个TCP连接上进行全双工通讯

    2022年7月4日
    23
  • 【C++】0314算法阿里笔试题「建议收藏」

    【C++】0314算法阿里笔试题「建议收藏」一、题目二、自己的dfs的题解#include<bits/stdc++.h>usingnamespacestd;intres3=INT_MAX;inttransfet(vector<string>&tmp){intsum=0;for(auto&t:tmp){sum+=stoi(t);}returnsum;}voiddfs(stringstr,vector&l

    2025年10月9日
    6
  • JavaScript算法题整理

    JavaScript算法题整理1.获得两个数相除的商和余数console.log(10/3);//商:3.3333console.log(10%3);//余数:1//获得两个数相除的商和余数console.log(Math.floor(10/3));//13//Math.floor(向下取整)、Math.ceil(向上取整)、round(四舍五入)console.log(0.1+0.2);//在js中,尽量避免做小数点运算//如果有小数位的运算varsum=(0.1*100+0.2*100)/100;c

    2022年6月14日
    35

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号