求解一个C语言单片机程序,谢谢 谢谢!+分

[复制链接]
查看11 | 回复3 | 2011-8-3 17:22:06 | 显示全部楼层 |阅读模式
小弟编写了一段51单片机程序,实现的功能是:用两个计时器T0、T1,实现P3.7口输出三种频率的方波,这三种频率要求每隔两秒钟循环变换。小弟写了下面一段程序,示波器显示p3.7口输出方波频率固定,不随时间变换。请问各位大侠帮小弟看看 怎么回事啊。感谢 感谢!!!
#include
sbit p37=P3^7;
unsigned char num1=0,muc=0;
unsigned char code table2[]={100,5000,50000};
void main()
{
EA=0;
        TR0=0;
        TR1=0;
        ET0=0;
        ET1=0;

TMOD=0x11;
        TH0=(65536-50000)/256;
        TL0=(65536-50000)%256;
        TH1=(65536-table2[muc])/256;
        TL1=(65536-table2[muc])%256;
        ET0=1;
        ET1=1;
        TR0=1;
        TR1=1;
        EA=1;
while(1)
{

if(num1==40)


{

num1=0;

if((muc++)>2)
        muc=0;

}
}
}
void time0() interrupt 1
{
        TH0=(65536-50000)/256;
        TL0=(65536-50000)%256;
        num1++;
}
void time1() interrupt 3
{
        TH1=(65536-table2[muc])/256;
        TL1=(65536-table2[muc])%256;
        p37=~p37;
}
谢谢各位大家 问题我找到了 是定义 table2[]的类型char型错了应该是 u int 型就对了谢谢大家帮忙 谢谢

回复

使用道具 举报

千问 | 2011-8-3 17:22:06 | 显示全部楼层
。。。这个有点困难...
回复

使用道具 举报

千问 | 2011-8-3 17:22:06 | 显示全部楼层
这个
EA=0;TR0=0;TR1=0;ET0=0;ET1=0没必要写的,单片机上电时,自动清零的。以后有什么问题欢迎与我交流...
回复

使用道具 举报

千问 | 2011-8-3 17:22:06 | 显示全部楼层
模式1不自动重装,计时溢出后从0开始...
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行