好久之前回答的题目,被网友翻了出来,又问了许多问题。
看来还是挺受重视的,特此发表如下。
//================================================
|2010-02-03 11:12费费151 | 分类:汇编语言 | 浏览1251次
要求:P1.0输出周期为2ms的方波,P1.1输出5ms的方波,占空比都为1:1.(高低电平一样的)。
晶振频率为24MHz。(使用T0和T1两个定时计数器)汇编或C都行。
请教单片机高手!谢谢!
题目链接:http://zhidao.baidu.com/question/136198698.html
做而论道编程如下:(2010-02-03 11:53 提问者采纳)
//================================================
#include<reg52.h>
#define uchar unsigned char
#define uint unsigned int
void init();
sbit P10 = P1^0;
sbit P11 = P1^1;
//----------------------------
main()
{
init();
while(1) { }
}
//----------------------------
void init()
{
TMOD = 0x11;
TH0 = (65536 - 2000) / 256; //1ms@24MHz
TL0 = (65536 - 2000) % 256;
TR0 = 1;
TH1 = (65536 - 5000) / 256; //2.5ms@24MHz
TL1 = (65536 - 5000) % 256;
TR1 = 1;
ET0 = 1;
ET1 = 1;
EA = 1;
}
//----------------------------
void timer0() interrupt 1
{
TH0 = (65536 - 2000) / 256; //1ms@24MHz
TL0 = (65536 - 2000) % 256;
P10 = ~P10;
}
//----------------------------
void timer1() interrupt 3
{
TH1 = (65536 - 5000) / 256; //2.5ms@24MHz
TL1 = (65536 - 5000) % 256;
P11 = ~P11;
}
//================================================