某一8051单片机系统,晶振频率为12mhz,现要从单片机的p1.7引脚输出一个连续

某一8051单片机系统,晶振频率为12mhz,现要从单片机的p1.7引脚输出一个连续的5hz的方波信号,请编写程序

#include<reg51.h>
#include<INTRINS.h>
#define u16 unsigned int
#define u8 unsigned char
sbit P17=P1^7;
u8 jsflag=0;
/****************************************/
void init() //初始化函数
{ TMOD=0x01;
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
EA=1;
ET0=1;

}

/***********************************/
void main()//主函数
{
init();//系统初始化
TR0=1; //定时器开始计时
while(1){}

}

/****************************/
void timer0() interrupt 1//1ms定时器
{
TH0=(65536-50000)/256;//重载初值
TL0=(65536-50000)%256;
if(++jsflag>=2){
P17=!P17;jsflag=0;

}

}追问

有没有另一种方式的?

追答

#include
sbit P17=P1^7;

void Delay100ms() //@12.000MHz
{
unsigned char i, j;

i = 195;
j = 138;
do
{
while (--j);
} while (--i);
}

/***********************************/
void main()//主函数
{
while(1){

P17=!P17;

Delay100ms();
}

}

温馨提示:内容为网友见解,仅供参考
无其他回答

晶振频率f0sc=12MHz,使用定时器1以方式1使p1.7输出一个频率为50hz的方波...
1.利用定时器输出周期为50Hz的方波,晶振频率为 12 MHz 解:选用定时计数器T1工作与定时方式1,机器周期为 定时器初值TC= D=D8F0H 所以:TH1=0D8H,TL1=0F0H 方波由P1.7引脚输出,具体主程序及中断服务程序如下:ORG 00H LJMP START ORG 1BH LJMP INT_T1 ORG 0100H START:...

...频率为12MHz,用定时计数器T0,工作方式1从P1.7输出周期为1ms连续方波...
设初值为X 2^16-X=500us (因为周期为1ms) X=65036=FE0C(H)ORG 0000H SJMP MAIN ORG 0013H SJMP IPT0 MAIN: MOV SP,#60H MOV TL0,#0CH MOV TH0,#0FEH SET EA SET ET0 SET TR0 (不好意思这句我记不清了,你学过应该知道,开启中断三条语句,)HERE : SJM...

AT89C51单片机系统的晶振频率是12MHZ,阅读以下汇编代码回答问题..求...
CPL P1.7 ;50ms取一次反 MOV R7, #0AH LEDRET:RETI END

编写一段程序,让单片机的P1.7输出1ms的方波(用定时器T1完成),晶振频率1...
机器周期 T = 12\/Fosc = 12\/(12x10^6) = 2x10^-6s =1μs 1ms方波的半周期 =500μs ,计数值=500μs\/1μs =500d 约定T1工作方式0,是13位计数器,2^13 =8192d -500d = 7692d =1E0Ch TH1←1EH, TL1←0CH 汇编程序如下:ORG 0000H AJMP MAIN ORG 0100H MAIN: MOV...

假设单片机的晶体振荡器的频率是12MHz,利用定时器1采用方式1定时20ms...
定时器的初值的计算如下:在定时器模式下,计数器的计数脉冲来自于晶振脉冲的12分频信号,即对机器周期进行计数。若选择12M晶振,则定时器的计数频率为1MHZ。假设定时时间为T,机器周期为T1,即12\/晶振频率。X为定时器初值。则 X=2^n-T\/T1。方式0,n=13,方式1时,n=16,方式2和方式3,n=8 ...

假设单片机的晶体振荡器的频率是12MHz,利用定时器1采用方式1定时20ms...
12MHz晶振,单片机机械周期 T=12\/Fosc=12\/12MHz=1us;T1定时器工作模式1 为 16位定时器,定时计算公式为:t= (2^16-<TH1:TL1>)×机械周期 T,将T=1us,t=20ms 代入公式得:(65536-<TH1:TL1>)×1us=20ms,得:TH1:TL1=65536-20ms×1000us\/ms÷1us=45536=0xB1E0,得:TH1=0xB1...

单片机上机考试,河北工业大学 大三
B.8031 单片机若晶振频率为fosc=12MHz,则一个机器周期等于 C。1 µS。B.8031单片机的定时器T0用作定时方式时是D。由内部时钟频率计数,一个机器周期加1 B.8031单片机的定时器T0用作计数方式时是C。由外部计数脉冲计数,下降沿加1 。 B. 8031单片机的定时器T1用作定时方式时是B。由内部时钟频率定时,一个...

...编程:假设晶振频率为11.0592Mhz,试编写一程序,在P1.7引脚输出...
精确定时,只要你的晶振够准确零误差 (256-56)×144×32=921600=11059200÷12 汇编:CNT0 EQU 20HCNT1 EQU 21H ORG 0000H AJMP MAIN ORG 000BH DJNZ CNT0,ENDT0 MOV CNT0,#144 DJNZ CNT1,ENDT0 MOV CNT1,#32 CPL P1.7END...

【急急急】电脑开机显示器检测不到信号,硬盘指示灯不亮,风扇照转
假设f2=3.4MHz,f1可调范围为3.3997MHz~5.1MHz,则振荡器输出差频信号频率范围为300Hz (3.4MHz-3.3997MHz)~1.7MHz(5.1 MHz-3.4 MHz)。 差频式振荡器的缺点是对两个振荡器的频率稳定性要求很高,两个振荡器应远离整流管、功率管等发热元件,彼此分开,并良好屏蔽。(2)电压放大器电压放大器兼有缓冲与电压放大的作用...

利用定时器t0定时,从p1.7引脚输出频率为1khz的方波
抛砖引玉 仅供参考思路 include <reg52.h> define uchar unsigned char define uint unsigned int sbit LED = P1^0;uchar T_Count = 0;void main(){ TMOD = 0x01;TH0 = (65536-50000)\/256;TL0 = (65536-50000)%256;IE = 0x82;TR0 = 1;while(1);} void LED_Flash() ...

相似回答