[求高手用51单片机输出产生方波的程序]#include"reg52.h" sbit PWM=P1^0;//定义输出脚 void main() { TMOD=0x01; //定时器0工作方式1 TH0=(65536-10000)/256; //12M晶振10MS计时常数 TL0=(65536-10000)%256; EA=1; //...+阅读
条件:12M晶振;
打开T0中断不用我说了吧?
TMOD=0x02; //把定时器模式设定为自动装载初值的8位模式即最大计数255;
TH0=0x5f;
TL0=0x5f; //把定时器定时器初值设为245
如果用T1,则初始设置(打开中断不说了)
TMOD=0x20; //设定为8位自动重装模式
TH1=0x5f;TL1=0x5f; //把定时器溢出定在10个机器周期
void interrupt_survey3(void) interrupt 3
{
flg_send_count++; //每次溢出后都加1,flg_send_count初始值为0
if (flg_send_count==1)//先定时10us
{
P1.0=0; //20us输出低电平
}
if (flg_send_count>=3)//再定时20us
{
P1.0=0; //输出高电平
flg_send_count=0; //把标志置0,下次好重新开始
}
}
顺便说一下:
1:程序设计是根据需要而设计的,不是生搬硬套的;
2:定时器设置在10us有可能51单片机处理不了其它的事的并且中断程序太长的话都不能及时做完的(高速单片机除外);
3:你的程序中没看到怎么把P1.0设置输出高电平,不知道怎么会有10ms高20ms低电平输出.
以下为关联文档:
51单片机怎么入门1、建议你买个开发板,200块的配置都非常全了,硬件有个直观认识 2、网上有视频教程《十天学会单片机》、《力天手把手教你单片机》等一些可以让你快速入门,看视频做笔记,边练习,进...
51单片机AD和DA怎么学AD的话是做数据采集的,是和传感器相关的,比如传感器传回的事模拟量(例如4.5V),这个值单片机是没法识别的,单片机的识别只能是数字电平,意味着高于2.5V,IO口识别为高即数字1,而低于0....
单片机的晶振频率怎么确定根据使用需要确定,举例:如果要产生标准的串口波特率,应使用11.0592MHz,如果要让51单片机产生整数的时钟频率可使用12MHz或者24MHz单片机。 另外根据单片机本身的参数,不要选择过...
win10onenote怎么用onenote是微软推出的一款笔记本应用程序,目前桌面版本集成在office办公套件中,覆盖windows、mac os两大平台。而移动版本的onenote目前也覆盖了windows phone、ios、android三...
利用定时器的定时中断方式产生1hz的方波怎么编写程序 51单片机主程序中:sbit OUT=P1^0;uchar a=0;//计中断次数的变量 TMOD=0x01;// 定时器1工作方式一 ET0=1; EA=1; TH0=(65536-50000)/256;//定时50ms TL0=(65536-50000)%256; TR0=1;//启动...
单片机怎么产生PWM/*--------------- 文件名称: PWM.C 功能 :单片机脉冲方式产生PWM信号 ----------------*/ #include <reg52.h>; // 引用标准库的头文件 #include <absacc.h> #include <stdi...
怎么用pwm技术产生多档位的脉冲5us 10us等具体怎么产生你说的是不同档位采用不同的脉冲周期,以获取不同的时钟分辨率的技术。对于固定时钟周期,当脉冲周期较长时,可以疏忽较小的占空比,输出更低有效值电压及更高的分辨率。当脉冲周期...
问下单片机怎么调用子程序ORG 0000H LJMP START ORG 000BH LJMP INT_T0 START:SETB EA SETB ET0 MOV TMOD,#01H MOV TH0,#3CH;定时50ms MOV TL0,#0B0H SETB TR0 MOV R2,#20;循环20次1s SJMP $ INT_T0:M...
msp430 F4系列单片机用内部DAC产生三角波的程序!谢谢啊/* 在P1.4上可用示波器看到三角波. */#includevoid main(void){ unsigned char i,j; WDTCTL = WDTPW + WDTHOLD; // Stop watchdog timer SD16CTL = SD16REFON; // 1.2V ref...