日本高清不卡中文字幕-一起草草视频在线观看-亚洲精品一区二区三区色-国产亚洲精品免费视频

你好!歡迎來到深圳市穎特新科技有限公司!
語言
當前位置:首頁 >> 技術中心 >> 單片機入門 >> MCS-51單片機定時器/計數(shù)器常見習題解答

MCS-51單片機定時器/計數(shù)器常見習題解答

關鍵字:MCS 單片機定時器 計數(shù)器 作者:admin 來源:不詳 發(fā)布時間:2018-05-18  瀏覽:185

1、根據(jù)定時器/計數(shù)器0方式1邏輯結構圖,分析門控位GATE取不同值時,啟動定時器的工作過程。

答:當GATE=0:軟件啟動定時器,即用指令使TCON中的TR0置1即可啟動定時器0。

GATE=1:軟件和硬件共同啟動定時器,即用指令使TCON中的TR0置1時,只有外部中斷INT0引腳輸入高電平時才能啟動定時器0。

 

2、當定時器/計數(shù)器的加1計數(shù)器計滿溢出時, 溢出標志位TF1由硬件自動置1,簡述對該標志位的兩種處理方法。

答:一種是以中斷方式工作,即TF1置1并申請中斷,響應中斷后,執(zhí)行中斷服務程序,并由硬件自動使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對外部事件進行計數(shù),每計數(shù)200次后,T1轉為定時工作方式,定時5ms后,又轉為計數(shù)方式,如此反復的工作,試編程實現(xiàn)。

答:

#include <reg52.h>

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 <at89x52.h>

 

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的計數(shù)方式,現(xiàn)在T0輸入周期為1ms的脈沖,問此時T0的實際用途是什么?在什么情況下計數(shù)器0溢出?

答:T0的實際用途是定時1s,每隔1s計數(shù)器0溢出一次。

 

8、P1.0輸出脈沖寬度調制(PWM)信號,即脈沖頻率為2kHz、占空比為7:10的矩形波,晶振頻率12MHz。

#include <at89x52.h>

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種不同的組合邏輯狀態(tài),使P1.0分別輸出頻率0.5kHz、1kHz、2kHz、4kHz的方波,晶振頻率為12MHz。

#include <at89x52.h>

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端口上,經(jīng)驅動器連接有8只發(fā)光二極管,若fosc=6MHz,試編寫程序,使這8只發(fā)光二極管每隔2s循環(huán)發(fā)光一次(要求T0定時)。

#include <at89x52.h>

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<<cou;

tim=1;

cou++;

if(cou==8)

    cou=0;

}

}

15.設fosc=12MHz。試編寫一段程序,對定時器T1初始化,使之工作在模式2,產生200µs定時,并用查詢T1溢出標志的方法,控制P1.1輸出周期為2ms的方波。

#include <at89x52.h>

 

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、使用一個定時器,如何通過軟、硬件結合的方法,實現(xiàn)較長時間的定時?

答:先使用硬件實現(xiàn)單位時間的定時,通過軟件設置計數(shù)來實現(xiàn)較長時間的定時。

編輯:admin  最后修改時間:2018-05-18

聯(lián)系方式

0755-82591179

傳真:0755-82591176

郵箱:vicky@yingtexin.net

地址:深圳市龍華區(qū)民治街道民治大道973萬眾潤豐創(chuàng)業(yè)園A棟2樓A08

Copyright © 2014-2023 穎特新科技有限公司 All Rights Reserved.  粵ICP備14043402號-4

周宁县| 明溪县| 陆河县| 沈阳市| 泰顺县| 柘荣县| 全椒县| 济阳县| 象州县| 团风县| 阳谷县| 黑山县| 武冈市| 东乡| 白河县| 石渠县| 宜黄县| 济南市| 大姚县| 普兰店市| 双鸭山市| 浪卡子县| 南京市| 资中县| 水城县| 明溪县| 凤冈县| 邵东县| 石屏县| 定结县| 图木舒克市| 峡江县| 永兴县| 商丘市| 峨眉山市| 天门市| 兴宁市| 石台县| 舒兰市| 辽阳市| 衡阳县|