- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
PWM控制输出代码
#ifndef INCLUDE_H
#define INCLUDE_H
#include AT89X51.h
#include intrins.h
#define uchar unsigned char
#define uint unsigned int
#define _BV(x) (1(x))
#define GET_BIT(x,y) (((x)(1(y)))==0?0:1) /*取x变量y位的数据*/
#define SET_BIT(x,y) ((x)|=(0x0001(y))) /*置位x变量y位*/
#define CLR_BIT(x,y) ((x)=~(0x0001(y))) /*清零x变量y位*/
#define LET_BIT(x,y,z) ((x)=(x)(~(0x0001(y)))|(z)(y)) /*置位或清零x变量y位*/
#define F_CPU L /*cpu震荡周期*/
#define sei() (EA=1) /*开总中断*/
#define cli() (EA=0) /*关总中断*/
#endif
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
#define KEY_GLOBAL 1
#include Key.h
static uchar keyValueBuff; /*读取键值的缓冲区*/
static uchar keyValueOld; /*前一次的键值*/
static uchar keyValueTemp; /*键值中间交换变量*/
static uint stillTimes; /*键按下保持次数*/
static uint stillTimesMax;
static uchar get_data_1_count(uchar number);
static void read_all_key(uchar *buff);
/*******************************************
*函数名称:key_init(void)
*函数功能:初始化按键扫描
*函数入口:无
*函数出口:无
*******************************************/
void key_init(void)
{
keyValueBuff = 0x00;
keyValueOld = 0x00;
keyValueTemp = 0x00;
stillTimes = 0;
stillTimesMax = FIRST_TIMES;
}
/******************************************************
*函数名称:read_all_key(uchar *buff)
*函数功能:扫描按键下的键,将按下的键的位置存入变量buff
*函数入口:buff
*函数出口:无
*******************************************************/
void read_all_key(uchar *buff)
{
if(IN_PRESS_UP==KEY_FORCE_VALUE) //检测按下的键
READ_KEY(1,KEY_UP,*buff);
else
READ_KEY(0,KEY_UP,*buff);
if(IN_PRESS_DOWN==KEY_FORCE_VALUE)
READ_KEY(1,KEY_DOWN,*buff);
else
READ_KEY(0,KEY_DOWN,*buff);
}
/***
文档评论(0)