51单片机中如何利用I/O口产生一定频率的方波
来源:学生作业帮 编辑:拍题作业网作业帮 分类:综合作业 时间:2024/04/30 06:03:54
51单片机中如何利用I/O口产生一定频率的方波
可以用定时器中断实现这样的处理,这种方法重点在于根据你的晶振频率计算出定时器中断的参数,然后就可以很好的控制定时器中断触发的时间了.只要在中断处理过程里不断的让I/O口取反,就可以实现这样的方波了.
// 常数定义
#define TimeL 0x07 //定时器低位
#define TimeH 0xFE //定时器高位
// I/O口定义
sbit Sound= P1^6; //喇叭
// 主函数
main()
{
// 初始化中断
TMOD = 0x20; //00100000
TL0 = TimeL; //设置定时器0的中断产生周期,低位
TH0 = TimeH; //设置定时器0的中断产生周期,高位
ET0 = 1; //允许定时器0中断产生
TR0 = 1; //打开定时器0
EA = 1; //开总中断
// 进入死循环
while(1){
// 这里可以放置其他过程的处理
}
}
// 定时器中断的处理过程,这个过程关键在 interrupt 1 using 1 这里
// 这是根据MCU说明指定的参数,前面的完全可以自己定制名称,反正是无返回无参数就可以了
// 这里我用了类似VB事件的写法写了过程名称,不过怎么写名称无所谓
// 只要符合函数名规范就可以
void Timer0_Event(void) interrupt 1 using 1
{
TL0 = TimeL;
TH0 = TimeH;
Sound =!Sound;
}
// 常数定义
#define TimeL 0x07 //定时器低位
#define TimeH 0xFE //定时器高位
// I/O口定义
sbit Sound= P1^6; //喇叭
// 主函数
main()
{
// 初始化中断
TMOD = 0x20; //00100000
TL0 = TimeL; //设置定时器0的中断产生周期,低位
TH0 = TimeH; //设置定时器0的中断产生周期,高位
ET0 = 1; //允许定时器0中断产生
TR0 = 1; //打开定时器0
EA = 1; //开总中断
// 进入死循环
while(1){
// 这里可以放置其他过程的处理
}
}
// 定时器中断的处理过程,这个过程关键在 interrupt 1 using 1 这里
// 这是根据MCU说明指定的参数,前面的完全可以自己定制名称,反正是无返回无参数就可以了
// 这里我用了类似VB事件的写法写了过程名称,不过怎么写名称无所谓
// 只要符合函数名规范就可以
void Timer0_Event(void) interrupt 1 using 1
{
TL0 = TimeL;
TH0 = TimeH;
Sound =!Sound;
}
51单片机中如何利用I/O口产生一定频率的方波
单片机用IO口产生方波的最大频率怎么几KHz呀?这是什么原因?
利用89C51单片机设计多功能低频函数信号发生器,能产生方波、正弦波、三角波等信号波形,信号的频率、幅度可变.
51单片机程序1、测量方波脉冲的频率2、在单片机数码管上显示出频率
如何同时调节555产生的方波的频率和占空比?
请问如何用51单片机根据模数转换器输入的数字信号生成连续的频率可调的方波信号?
如何不用单片机,搭建一个频率5~1000HZ可调,占空比为50%的方波发生电路,频率可用电位器调节?
NE555最大可以产生多大频率的方波?
555做多谐振荡器,产生方波的频率问题
如果单片机的时钟频率为12MHz,编写用单片机的定时方式产生微50Hz的等宽矩形方波从P1.7输出的程序
单片机--题设单片机晶振频率为12MHz,使用定时器T1以方式1产生周期为2ms的等宽连续方波,试计算最大定时时间、TM
555产生的方波电路电源电压会影响方波的频率吗?