MCS-51单片机定时器/计数器常见习题解答

发布者:PositiveEnergy最新更新时间:2024-08-30 来源: 21ic关键字:MCS-51  单片机  定时器  计数器 手机看文章 扫描二维码
随时随地手机看文章

1、根据定时器/计数器0方式1逻辑结构图,分析门控位GATE取不同值时,启动定时器的工作过程。

答:当GATE=0:软件启动定时器,即用指令使TCON中的TR0置1即可启动定时器0。

GATE=1:软件和硬件共同启动定时器,即用指令使TCON中的TR0置1时,只有外部中断INT0引脚输入高电平时才能启动定时器0。

 

2、当定时器/计数器的加1计数器计满溢出时, 溢出标志位TF1由硬件自动置1,简述对该标志位的两种处理方法。

答:一种是以中断方式工作,即TF1置1并申请中断,响应中断后,执行中断服务程序,并由硬件自动使TF1清0;另一种以查询方式工作,即通过查询该位是否为1来判断是否溢出,TF1置1后必须用软件使TF1清0。

 

3、设MCS-51单片机fosc=12MHz,要求T0定时150µs,分别计算采用定时方式0、方式1和方式2时的定时初值。

答:方式0的定时初值:IF6AH

方式1的定时初值:FF6AH

方式2的定时初值:6AH

 

4、 设MCS-51单片机fosc=6MHz,问单片机处于不同的工作方式时,最大定时范围是多少?

答:方式0的最大定时范围:131,072µs

方式1的最大定时范围:16,384µs

方式2的最大定时范围:512µs

 

5、设MCS-51的单片机晶振为6MHZ,使用T1对外部事件进行计数,每计数200次后,T1转为定时工作方式,定时5ms后,又转为计数方式,如此反复的工作,试编程实现。

答:

#include

bit  F0=0;

void  main()

{

  TMOD=0x60;    

  TL1=56;        

  TH1=56;         

  TR1=1;         

  ET1=1;         

  EA =1;         

  While(1);

}

void serve() interrupt 3

{

  if (!F0)

{   TMOD=0x10;           

       TL1=63036%16;      

        TH1=63036/16;        

        F0=~F0;

    }

  else

{

TMOD=0x60;    

        TL1=56;        

        TH1=56;         

F0=~F0;

}

}

 

6、  用方式0设计两个不同频率的方波,P1.0输出频率为200Hz,P1.1输出频率为 100Hz,晶振频率12MHz。

#include

 

void  main()

{

TMOD=0x00;    

TL0=0x1c;        

TH0=0xb1;         

TR0=1; 

F0=0;       

ET0=1;         

EA =1;         

While(1);

}

 

void serve() interrupt 1

{

TL0=0x1c;        

TH0=0xb1;         

P1_0=~P1_0;

    if(F0==0)

        F0=1;

    else

        {

F0=0;

        P1_1=~P1_1;

        }

}

 

7、定时器T0已预置为156,且选定用于方式2的计数方式,现在T0输入周期为1ms的脉冲,问此时T0的实际用途是什么?在什么情况下计数器0溢出?

答:T0的实际用途是定时1s,每隔1s计数器0溢出一次。

 

8、P1.0输出脉冲宽度调制(PWM)信号,即脉冲频率为2kHz、占空比为7:10的矩形波,晶振频率12MHz。

#include

unsigned char data count;

void  main()

{

TMOD=0x02;    

TL0=206;        

TH0=206;         

TR0=1; 

ET0=1;         

EA =1;

count=0;

While(1);

}

 

void serve() interrupt 1

{

count++;

if(count<=7)

P1_0=1;

else

    P1_0=0;

if(count==10)

        count=0;

}

 

9、两只开关分别接入P3.0、P3.1,在开关信号4种不同的组合逻辑状态,使P1.0分别输出频率0.5kHz、1kHz、2kHz、4kHz的方波,晶振频率为12MHz。

#include

unsigned char data sta;

unsigned char data cou;

unsigned char data mag;

 

void  main()

{

TMOD=0x02;    

TL0=131;        

TH0=131;         

TR0=1; 

ET0=1;         

EA =1;

cou=0;

While(1);

}

 

void serve() interrupt 1

{

unsigned char temp;

P3=0xff;

temp=P3&0xfc;

if(temp!=sta)

{

sta=temp;

cou=0;

}

if(sta=0x00)

    mag=7;

else if(sta=0x01)

    mag=3;

else if(sta=0x10)

    mag=1;

else if(sta=0x11)

    mag=0;

if(cou==mag)

{

P1_0=~P1_0;

cou=0;

        }

else

    cou++;

}

 

10、MCS-51单片机P1端口上,经驱动器连接有8只发光二极管,若fosc=6MHz,试编写程序,使这8只发光二极管每隔2s循环发光一次(要求T0定时)。

#include

unsigned char data cou;

unsigned int data tim;

 

void  main()

{

TMOD=0x02;    

TL0=16;        

TH0=16;          

TR0=1; 

ET0=1;         

EA =1;

P1=0;

cou=0;

tim=1;

While(1);

}

 

void serve() interrupt 1

{

    tim++;

    if(tim==500)

    {

P1=0x01<tim=1;

cou++;

if(cou==8)

    cou=0;

}

}

15.设fosc=12MHz。试编写一段程序,对定时器T1初始化,使之工作在模式2,产生200µs定时,并用查询T1溢出标志的方法,控制P1.1输出周期为2ms的方波。

#include

 

void  main()

{

unsigned char i,j;

TMOD=0x20;    

TL1=56;        

TH1=56;         

TR1=1; 

while(1)

{

while(TF1=1)

{

        TF1=0;

        i++;

        if(i==5)

        {

            P1_1=~P1_1;

            i=0;

        }

}

}

}

11、使用一个定时器,如何通过软、硬件结合的方法,实现较长时间的定时?

答:先使用硬件实现单位时间的定时,通过软件设置计数来实现较长时间的定时。


关键字:MCS-51  单片机  定时器  计数器 引用地址:MCS-51单片机定时器/计数器常见习题解答

上一篇:单片机试验一:点亮一个发光二极管
下一篇:8位单片机体系的直接软件构架(C51系列)

推荐阅读最新更新时间:2024-11-08 10:21

基于单片机的LED室内照明控制系统
  0 引言   我国是一个资源紧缺的国家,但在日常的生活中,人们并没有意识到这一点。以室内照明为例,在很多公共场合中都采用手动开关,经常出现没有及时关灯的现象,从而造成能源的浪费,也会缩短灯具的使用寿命。针对这一现象,有必要研究一种智能照明控制系统。该系统利用智能传感器感应室外亮度来自动调节灯光,以保持室内恒定照度,既能使室内有最佳照明环境,又能达到节能的效果。   LED 被称为第四代绿色光源,LED 的发光器件是冷光源,具有节能、环保、寿命长、体积小等特点。   LED 光的单色性好,光谱窄,无需过滤,可直接发出有色可见光。在相同的照明情况下,LED 灯耗电量为白炽灯的十分之一,荧光灯的二分之一,是未来照明的发展趋势。
[单片机]
基于<font color='red'>单片机</font>的LED室内照明控制系统
瑞萨为汽车电子应用市场提供最佳MCU和解决方案
瑞萨的汽车用MCU   瑞萨的汽车用MCU已有25年以上的历史,在世界汽车用MCU中占有20%以上的市场份额。瑞萨的汽车用MCU被Bosch、Continental、Delphi、TRW、Aisin和Denso等世界主要的汽车电子制造商所采用。这些汽车电子制造商的产品又被世界上的众多汽车制造商所采用。对汽车来说,质量和性能最为重要,汽车制造商、汽车电子制造商对瑞萨的汽车用MCU所具备的高质量、高性能给予了很高的评价。由于取得了这些实际成绩,瑞萨又从当时尚未使用瑞萨产品的汽车电子制造商那里获得了许多贸易合同,这些汽车电子制造商正在使用瑞萨的汽车用MCU进行汽车电子产品的开发。下面将介绍应用于32位MCU的新产品的解决方案。 多核
[汽车电子]
瑞萨为汽车电子应用市场提供最佳<font color='red'>MCU</font>和解决方案
ATmega32单片机定时器程序
ATmega32的有三个定时器,T0和T2是8位的,T1是16位的,各自提供了很多功能 都是以前用studio写的,那时还没用iar ***************************************************************** //定时器0溢出中断 //CPU:mega32 //编译器:winavr #include avr/io.h #include avr/interrupt.h int main(void) { DDRC |= (1 7);//PC7置为输出 TIMSK |= 1 TOIE0;//不屏蔽T0溢出中断 TCCR0 |= (1 CS02) |(0 CS01
[单片机]
51单片机STC89C52 DA数模转换
CSDA BIT P3.2 WRR BIT P3.6 WELA BIT P2.7 DULA BIT P2.6 ORG 0000H LOOP0: MOV P0,#0FFH ;关数码管显示 SETB WELA CLR WELA CLR DULA SETB CSDA SETB WR MOV A,#0 LOOP1: MOV P0,A CLR CSDA CLR WRR LCALL DELAY SETB WRR SETB CSDA INC A SJMP LOOP1 DELAY: ;延时 SETB RS1 MOV R2,#04H DELAY2: MOV R1,#10 DELAY1:
[单片机]
STM32使用systick定时器定义硬件精准延时函数
前言 博文基于STM32F103ZET6和标准固件库V3.5.0在MDK5环境下开发; 本博文讨论的是芯片不运行操作系统的情况下完成1s的延时功能; 如有不足之处还请多多指教; SysTick—系统滴答定时器是什么? 是一个24位的硬件倒计数定时器; SysTick的功能是什么?(分两种情况) 芯片运行操作系统(UCOS)情况下做:为操作系统(例如UCOS)提供硬件上的定时中断(滴答中断),作为整个系统的时基,为多个任务分配不同的时间片,确保不会出现一个任务霸占系统的情况;或者把每个定时器周期的某个时间范围赐予特定的任务等;还有操作系统提供的各种定时功能; 不运行操作系统,单纯做定时器:提供精准的定时功能; SysTick的特
[单片机]
STM32使用systick<font color='red'>定时器</font>定义硬件精准延时函数
一个单片机与PC机通信的程序
一个单片机与PC机通信的程序,pc机程序用c语言来编写,单片机程序用汇编语言来编写 1. PC机编程 PC采用Toubr C 进行编写。程序如下: #include stdio.h #define port 0x3f8 int ch ; main () { int a; int i,j; int b ={88,15,38,26,20,0}; char c; clrscr(); outportb(port+3,0x80); outportb(port,0x0C); outpo
[单片机]
单片机设计A/D、D/A转换器
1、PIC16C62×系列单片机的特点   PIC16C62×系列为RISC精简指令、哈佛结构总线、18个引脚的单片机。具有低功耗、高性能、全静态、35条指令极易编程的特点。OTP 片种的性价比极高。除了具备一般单片机的特点外,PIC16C62×系列内部集成了两个模拟比较器和一个4bit的可编程基准电压源(REF)。如果利用该单片机的这些特点,只需几个外围元件就具备A/D与D/A转换功能,且分辨率达到8bit~10bit。价格上的优势使其在工控行业、仪器仪表、家电产品的应用前景极为乐观。   本文以8bit分辨率论证A/D、D/A转换的实现方法,更高分辨率的方案完全相似,只是在编程上作小部分调整。 2、D/A转换器   P
[应用]
STM32单片机开发环境安装与工程搭建
一、认知STM32 1、STM32概念 STM32: 意法半导体基于ARM公司的Cortex-M内核开发的32位的高性能、低功耗单片机。 ST:意法半导体 M:基于ARM公司的Cortex-M内核的高性能、低功耗单片机 32:32位单片机 2、STM32开发的产品 STM32开发的产品:无人机、扫地机器人、3D打印机、平衡机、智能手环等 3、学习STM32对应的招聘职位 招聘职位:单片机开发工程师、单片机软件工程师、STM32开发工程师、嵌入式开发工程师、嵌入式软件工程师。 二、ARM与STM32 嵌入式系统 以应用为中心,以计算机技术为基础,软硬件可裁减,以适应应用系统对功能、可靠性、成本、体积和功耗等有严格要求的专用计算机系统
[单片机]
STM32<font color='red'>单片机</font>开发环境安装与工程搭建
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved