标题:
基于STC89C52单片机按键控制方波
[打印本页]
作者:
刘胜男
时间:
2017-7-14 16:16
标题:
基于STC89C52单片机按键控制方波
这个比较简单,单片机按键控制方波,应用了定时器中断控制延时
单片机源程序如下:
#include"reg51.h"
typedef unsigned char u8;
typedef unsigned int u16;
unsigned int number;
sbit k1=P3^1;
sbit k2=P3^0;
sbit k3=P3^2;
sbit pulse_out=P1^0;
u16 number=0;
u16 count=0;
//定义延时函数
void delay(u16 ms)
{
u16 i,j;
for(i=0;i<ms;i++);
for(j=110;j>0;j--);
}
//定时器1初始化
void Time()
{
TMOD=0x01;
TH0=(65536-10)/256;
TL0=(65536-10)%256;
EA=1;
ET0=1;
TR0=1;
}
//定义按键扫描程序
void keyscan()
{
if((k1==0)&&(count>0))
{ //按键1,频率加
delay(5);
if(k1==0)
{
count=count*2;
number=0;
delay(1000);
}
while(!k1);
}
if((k2==0)&&(count<1000))
{ //按键2,频率减
delay(5);
if(k2==0)
{
count=count/2;
number=0;
delay(1000);
}
while(!k2);
}
}
void main()
{
count =100;//定时器每0.01ms中断一次,计数100次则反转IO,10ms一个周期,即500hz
Time();
while(1)
{
keyscan();
}
}
//中断处理程序,计数并翻转IO
void T1_time() interrupt 1
……………………
…………限于本文篇幅 余下代码请从51黑下载附件…………
复制代码
所有资料51hei提供下载:
51单片机练习.rar
(46.51 KB, 下载次数: 26)
2017-7-14 16:16 上传
点击文件名下载附件
下载积分: 黑币 -5
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1