51单片机信号发生器程序 100分悬赏。

来源:百度知道 编辑:UC知道 时间:2024/06/05 08:51:36
1 信号频率可调
2 信号脉宽可调
3 信号为方波
我实在是不精通单片机,所以请高手帮帮忙

以下程序是信号发生器程序,也叫频率发生器,调节按键和COUNT的值可以起到信号频率和脉宽可调的作用,程序经调试,正确无误.如下:
//==================
#include <reg51.h> //定义寄存器头文件
sbit output=P1^1; //声明输出端
sbit s1=P2^0; //声明指拔开关要S1~S8位置
sbit s2=P2^1;
sbit s3=P2^2;
sbit s4=P2^3;
sbit s5=P2^4;
sbit s6=P2^5;
sbit s7=P2^6;
sbit s8=P2^7;
unsigned int count=0; //T0的计数值
#define TH_M1 (65536-count)/256;
#define TL_M1 (65536-count)%256;
//==========================
main()
{ IE=0X82; //启用TF0中断
TMOD=0x01; //采用方式样
output=1; //输出初值为1
P2=0xff; //设计P2输入口
while(1)
{ if(s1==0)count=5; //按下S1,输出100KHZ
else if(s2==0)count=10; //按下S2,输出50KHX
else if(s3==0)count=50; //按下S3,输出10KHZ
else if(s4==0)count=100;
else if(s5==0)count=500;
else if(s6==0)count=1000;
else if(s7==0)count=5000;
else if(s8==0)count=10000;
TH0=TH_M1;
TL0=TL_M1;