参考答案和解析
正确答案: 5Hz的方波周期为200毫秒,高低电平各持续100毫秒,若晶振频率为6MHz,则机器周期为2微秒,故其计数值应为: N=100ms/2μs=50000
采用方式1进行计数,则 X=M-N=65536-50000=15536H=0C350H
程序编写如下:
M.OV TMOD, #05H; 设置T0工作方式,定时,方式1
M.OV TH0,#0C3H;  写入计数器初值
M.OV TL0,#050H;
S.ETB TR0;启动T0
L.OOP: JBC  TF0,$; 查询定时器溢出标志
M.OV TH0,#0C3H;
M.OV TL0,#050H
C.PL  P1.7
S.JMP LOOP;
E.ND
也可以用C语言编写:
用定时/计数器T0从P1.7输出周期为5s的方波,晶振频率为6MHz。
#include 
#define uchar unsigned char
#define uint unsigned int
S.bit D1=P1^0;
U.char a;
V.oid init()               //初始化 {
T.MOD=0x01;             //选择定数计数器0的工作方式为16位定时器
T.H0=(65535-50000)%256; //赋初值,定时100ms
T.L0=(65535-50000)/256;
E.A=1;                  //中断控制允许
E.T0=1;
a=0; 
TR0=1;                 //启动定时器0 } 
void time0() interrupt 1 //定时器0中断函数 { 
TH0=(65535-50000)%256; //赋初值,定时100ms     TL0=(65535-50000)/256;     a++; 
TR0=1;     } 
void main() 
{ 
init();     
while(1)     
{ 
while(a==25)//半个周期(2500ms)时,P1.7上的电平跳变一次。 
{ 
a=0; 
P1.7=~P1.7;     //取反        }     } }
更多“某8051系统晶振频率为6MHz,先欲从P1.7引脚输出一个连续”相关问题
  • 第1题:

    当晶振频率为6MHz时,计算机器周期是多少?


    正确答案:当振荡脉冲频率为12MHz时,一个机器周期为1μs;当振荡脉冲频率为6MHz时,一个机器周期为2μs。

  • 第2题:

    AT89C51单片机的晶振频率为6MHz时,其一个机器周期的时间是()。

    • A、0.5µs
    • B、1µs
    • C、2µs
    • D、4µs

    正确答案:C

  • 第3题:

    51系列单片机的晶振频率为6MHz,则单片机系统的机器周期为多少μS。


    正确答案: 已知晶振频率=6MHz,则时钟周期=1/晶振频率=1/6MHz=1/6μS
    机器周期=12*时钟周期=12*1/6μS=2μS。

  • 第4题:

    8051单片机的机器周期为4μS,则其晶振频率fosc为多少MHz。


    正确答案: 已知机器周期=6μS,则时钟周期=机器周期/12=4μS/12=1/3μS,
    晶振频率fosc=1/机器周期=3MHz。

  • 第5题:

    当单片机晶振频率fosc=6MHz,则系统的时钟周期、机器周期各为多少?


    正确答案: T.时=1/fosc=1/6μS
    T.机=T时*12=1/6μS*12=2μS。

  • 第6题:

    晶振的频率为6MHz时,一个机器周期为()μS。


    正确答案:2

  • 第7题:

    若MCS-51单片机采用12MHz的晶振,它的机器周期(),ALE引脚输出正脉冲频率为()。


    正确答案:1μm;1MHz

  • 第8题:

    当8051外接晶振频率为24M时,一个机器周期为()uS。


    正确答案:0.5

  • 第9题:

    一个振荡器电路中晶振元件的标称频率是6MHz,电容为30pF,则该电路输出信号的频率是()MHz。

    • A、6
    • B、2
    • C、3
    • D、12

    正确答案:A

  • 第10题:

    当89C51采用12MHz晶振,则引脚ALE输出的频率不会超过()

    • A、 1MHz
    • B、 1.2MHz
    • C、 500kHz
    • D、 2MHz

    正确答案:D

  • 第11题:

    8051单片机的ALE引脚在CPU对外存非操作期间,它的输出频率为晶体振荡器频率()的脉冲信号。


    正确答案:1/6

  • 第12题:

    填空题
    若系统晶振频率 fOSC=6MHz,则时钟周期为()μs,机器周期为()μs。

    正确答案: 0.167,2
    解析: 暂无解析

  • 第13题:

    8051单片机的定时器/计数器的计数频率是晶振频率的(),当晶振频率为6MHz时,最高的计数频率为()。


    正确答案:1/24;250KHZ

  • 第14题:

    8051单片机系统的晶体振荡频率为6MHz,当CPU不访问外部RAM时ALE引脚输出信号的频率是()。

    • A、1MHz
    • B、2MHz
    • C、4MHz
    • D、6MHz

    正确答案:A

  • 第15题:

    8051单片机系统的振荡晶体频率为6MHz,当CPU不访问外部RAM时ALE引脚输出信号的频率是()。

    • A、1MHz
    • B、2MHz
    • C、4MHz
    • D、6MHz

    正确答案:A

  • 第16题:

    如果晶振频率fOSC=6MHz,则一个时钟周期为(),一个机器周期为()。


    正确答案:1.66667E-7;2us

  • 第17题:

    单片机8051的XTAL1和XTAL2引脚是()引脚。

    • A、外接定时器
    • B、外接串行口
    • C、外接中断
    • D、外接晶振

    正确答案:D

  • 第18题:

    设MCS51单片机的晶振频率为6MHz,使用定时器T1以方式1产生周期为200us的方波脉冲,并由P1.7输出信号波形。此时,计数器T的TH1、TL1分别须装入初值()。


    正确答案:ff;ce

  • 第19题:

    当8051单片机系统的振荡晶体频率为6MHz时,其一个机器周期的时间是()。

    • A、0.5μS
    • B、1μS
    • C、2μS
    • D、4μS

    正确答案:C

  • 第20题:

    当8051单片机的晶振频率为12MHZ时,ALE地址锁存信号端的输出频率为()。


    正确答案:2MHZ的脉冲

  • 第21题:

    单片机8051的ALE引脚是()。

    • A、输出高电平
    • B、输出矩形脉冲,频率为fosc的1/6
    • C、输出低电平
    • D、输出矩形脉冲,频率为fosc的1/2

    正确答案:B

  • 第22题:

    8051单片机系统的振荡晶体频率为12MHz,当CPU不访问外部RAM时ALE引脚输出信号的频率是()。

    • A、1MHz
    • B、2MHz
    • C、4MHz
    • D、6MHz

    正确答案:B

  • 第23题:

    问答题
    某8051系统晶振频率为6MHz,先欲从P1.7引脚输出一个连续5Hz的方波信号,请编写程序。

    正确答案: 5Hz的方波周期为200毫秒,高低电平各持续100毫秒,若晶振频率为6MHz,则机器周期为2微秒,故其计数值应为: N=100ms/2μs=50000
    采用方式1进行计数,则 X=M-N=65536-50000=15536H=0C350H
    程序编写如下:
    M.OV TMOD, #05H; 设置T0工作方式,定时,方式1
    M.OV TH0,#0C3H;  写入计数器初值
    M.OV TL0,#050H;
    S.ETB TR0;启动T0
    L.OOP: JBC  TF0,$; 查询定时器溢出标志
    M.OV TH0,#0C3H;
    M.OV TL0,#050H
    C.PL  P1.7
    S.JMP LOOP;
    E.ND
    也可以用C语言编写:
    用定时/计数器T0从P1.7输出周期为5s的方波,晶振频率为6MHz。
    #include 
    #define uchar unsigned char
    #define uint unsigned int
    S.bit D1=P1^0;
    U.char a;
    V.oid init()               //初始化 {
    T.MOD=0x01;             //选择定数计数器0的工作方式为16位定时器
    T.H0=(65535-50000)%256; //赋初值,定时100ms
    T.L0=(65535-50000)/256;
    E.A=1;                  //中断控制允许
    E.T0=1;
    a=0; 
    TR0=1;                 //启动定时器0 } 
    void time0() interrupt 1 //定时器0中断函数 { 
    TH0=(65535-50000)%256; //赋初值,定时100ms     TL0=(65535-50000)/256;     a++; 
    TR0=1;     } 
    void main() 
    { 
    init();     
    while(1)     
    { 
    while(a==25)//半个周期(2500ms)时,P1.7上的电平跳变一次。 
    { 
    a=0; 
    P1.7=~P1.7;     //取反        }     } }
    解析: 暂无解析