51单片机晶振频率为12MHz,利用中断在P1.1口输出50HZ的方波,C语言,哪位大侠帮帮忙,帮忙写个程序

如题所述

#include <reg51.h>

sbit port=P1^1;

void Timer0Init(void) //10毫秒@12.000MHz
{
TMOD &= 0xF0; //设置定时器模式
TMOD |= 0x01; //设置定时器模式
TL0 = 0xF0; //设置定时初值
TH0 = 0xD8; //设置定时初值
TF0 = 0; //清除TF0标志
TR0 = 1; //定时器0开始计时
}


void main()
{
    Timer0Init();
    while(1);   
}

void timer0() interrupt 0
{
TL0 = 0xF0; //设置定时初值
TH0 = 0xD8; //设置定时初值
    port^=1;   
}

追问

麻烦能不能运用定时器0在P1.7引脚输出50Hz的方波,晶振频率为12MHz,C语言的,会加分给你的

追答#include <reg51.h>
 
sbit port=P1^7;
 
void Timer0Init(void)      //10毫秒@12.000MHz
{
    TMOD &= 0xF0;     //设置定时器模式
    TMOD |= 0x01;     //设置定时器模式
    TL0 = 0xF0;       //设置定时初值
    TH0 = 0xD8;       //设置定时初值
    TF0 = 0;      //清除TF0标志
    TR0 = 1;      //定时器0开始计时
}
 
 
void main()
{
    Timer0Init();
    while(1);   
}
 
void timer0() interrupt 0
{
    TL0 = 0xF0;       //设置定时初值
    TH0 = 0xD8;       //设置定时初值
    port^=1;   
}

追问

能留个企鹅吗?

温馨提示:答案为网友推荐,仅供参考
第1个回答  2015-03-14
若单片机的晶振频率为12MHz,用51单片机内部定时\\/计数器T0,工作方式为1,在单片机P1.0口产生周期为20ms的方波,波形占空比为50%。试解答下列问题: 1) 计算定时器的装入初值; 2) 用中断的方式使用定时器,编写相关程序序