利用KEIL(C51)编写程序, 1) 利用设计的程序使单片机产生1KHz方波

利用KEIL(C51)编写程序, 1) 利用设计的程序使单片机产生1KHz方波,第1张

500HZ方波周期是2ms,只需定时器1ms,将管脚状态取反一次就其可,若按下按键,改为定时500us即可,程序如下:

#include <reg51h>

sbit key=P1^0;

void main()

{

unsigned int n=1000;

TMOD=0X01;//定时器0工作方式1

TH0=(65536-N)/256;//定时器初值,先是定时1000US

TL0=(65536-N)%256;

ET0=1;//开定时器0中断

EA=1;//开总中断

TR0=1;//启动定时器0

while(1)

{

if(key==0)//判断按键是否按下

{

delay_ms(20);//延时消抖动

if(key==0)n=500;

}

}

}

中断程序如下:

void timer0() interrupt 1

{

TH0=(65536-N)/256;

TL0=(65536-N)%256;

P2^0=~P2^0;//P20输出方波

}

延时子程序略

程序为:

#include<reg51h>

#define uchar unsigned char

#define uint unsigned int

sbit Waveout=P1^0;

uchar

void main()

{

TMOD=0x01;

TH0=0xFF;

TL0=0xE8; //TL0=(65536-24)%256=232,即E8

EA=1;

ET0=1;

TR0=1;

while(1);

}

void T0_time() interrupt 1

{

TH0=0xFF;

TL0=0xE8;

Waveout=!Waveout;

}

扩展资料

使用方法

1.将仿真器插入需仿真的用户板的CPU插座中,仿真器由用户板供电;

2.将仿真器的串行电缆和PC机接好,打开用户板电源;

3.通过Keil C 的IDE 开发仿真环境UV2 下载用户程序进行仿真、调试。

硬件说明

1、使用用户板的晶振:仿真器晶振旁有两组跳线用来切换内部晶振和用户板晶振,当两个短路块位于仿真器晶振一侧时,默认使用仿真板上的晶振(110592MHz), 当两个短路块位于电容一侧时,使用用户板的晶振。

2、为便于调试带看门狗的用户板,仿真器的复位端未与用户板复位端相连;故仿真器的复位按钮只复位仿真器,不复位用户板;若要复位用户板,请使用用户板复位按钮。

参考资料来源:百度百科-51单片机

这个就不需要什么电路了吧,有个51最小系统板+LCD1602液晶+几个按键就OK了,因为你是输出脉冲嘛,51也就只能输出高低电平的脉冲了,外加一个液晶显示即可。你到网上查一下液晶的连接电路就OK,一大把的。

另外你说的程序也并不难啊,频率这么低,用定时计数器就可以实现了。可以做一个公式,用频率或者占空比算出具体的定时器的计数值。公式嘛,当然也是你想一下了,呵呵。

综合来看,难点就在于键盘控制而已,要读入键盘值,然后进行数据整合处理。

每计一次为一个机器周期,如果振荡频率为12MHz,则一个机器周期为1us,一般采用方法,是设计一基本延时,然后通过一参数来实现不同的延时要求,象你程序中的NUM

按12MHz来算,如果要产生1000Hz的方波信号,也就是周期为1ms的方波,则要计数1000次就好,所以我认为,最好固定X,然后改变NUM实现

比如固定X为1000,当NUM=1时,表示为1000Hz,当NUM=10就为100Hz了,而当NUM=100就为10Hz,当NUM=5就为200Hz按照这个思路,以振荡频率为12MHz来算,程序可更改为:

#include "reg51h"

#define uint unsigned int

uint num,x;

sbit a=P0^6;

sbit b=P1^0;

sbit c=P1^1;

sbit d=P1^2;

sbit e=P1^3;

main()

{

while(1)

{

if(b==0) num=100; //10hz

else if(c==0) num=10; //100hz

else if(d==0) num=5; //200hz

else num=1; //1000hz

TMOD=0x10;

EA=1;

ET1=1;

TR1=1;

x=0;

}}

void T1_time()interrupt 3

{

TH1=(65536-1000)/256;

TL1=(65536-1000)%256;

x++;

if(x==num) {x=0;a=~a;}

}

以上就是关于利用KEIL(C51)编写程序, 1) 利用设计的程序使单片机产生1KHz方波全部的内容,包括:利用KEIL(C51)编写程序, 1) 利用设计的程序使单片机产生1KHz方波、51单片机产生40KHZ方波、用51单片机产生方波等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zz/9359521.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-27
下一篇2023-04-27

发表评论

登录后才能评论

评论列表(0条)

    保存