資源描述:
《pwm(占空比可調(diào))》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫。
1、PWM_Period_Cont.C/*******************************************************TITLE:產(chǎn)生占空比可調(diào)的PWM波形FUNCTION:通過按鍵實(shí)現(xiàn)占空比的調(diào)整,并在數(shù)碼管上顯示W(wǎng)RITER:LINLIANHUOTIME:2014-7-31ATTENTION:沒有調(diào)試成功********************************************************/#include#include"SMG.H"#include"PWM
2、.H"#include"KEY.H"#defineuintunsignedint#defineucharunsignedcharucharperiod_cnt_num;//占空比值=num/100ucharkey_value;voidmain(){smg_init();key_init();PWM_init();EA=1;key_value=get_key_value();period_cnt_num=1;while(1){if(key_value!=KEY_NULL){if(key_value==KEY_UP){if(period_
3、cnt_num<99)period_cnt_num++;//else//period_cnt_num=1;}if(key_value==KEY_DOWN){if(period_cnt_num>1)period_cnt_num--;//else//period_cnt_num=99;}PWM_set(period_cnt_num);smg_write(period_cnt_num%10+'0',0x01,SMG_DIS_DIGIT);smg_write(period_cnt_num%10+'0',0x02,SMG_DIS_DIGIT);
4、}}}KEY.H/************************************************--THEKEYFUNCTIONLIB--COPYRIGHT(C)2014BYLLH--ALLRIGHTSRESERVED--*************************************************/#ifndef__KEY_FUN_H__#define__KEY_FUN_H__#defineuintunsignedint#defineucharunsignedcharenumKEY_VALUE{
5、KEY_UP=0x01,KEY_DOWN=0x02,KEY_NULL=0x00};//#defineKEY_UP0X01//#defineKEY_DOWN0X02//#defineKEY_NULL0X01#defineREAD_KEY(x,name,b)((x)?(b
6、=name):(b&=~name))#defineCAN_MORE_PRESS0/*是否允許多鍵都按:允許為1;不允許為0*/#defineCAN_REPEAT1/*是否允許重復(fù)按鍵:允許為1;不允許為0*/#defineREPEAT_MODE1/*重復(fù)模式:先長后短為
7、1;相同間隔為0*/#defineFIRST_TIMES200/*重復(fù)按下時(shí),第一次間隔時(shí)間*/#defineOTHER_TIMES25/*第二次后間隔時(shí)間(如果重復(fù)模式為0時(shí)此值無效)*/#defineKEY_DELAY_TIME20/*鍵盤掃描時(shí)間間隔 XXXus*/#defineKEY_FORCE_VALUE0#defineIN_PRESS_UPP1^0/*1設(shè)置鍵端口*/#defineIN_PRESS_DOWNP1^1/*2設(shè)置鍵端口*/ucharkeyValueBuff;/*讀取鍵值的緩沖區(qū)*/ucharkeyValueOl
8、d;/*前一次的鍵值*/ucharkeyValueTemp;/*鍵值中間交換變量*/uintstillTimes;/*鍵按下保持次數(shù)*/uintstillTimesMax;uchartemp;//sbitk1=P1^0;//sbitk2=P1^1;/**************按鍵的檢測**************ucharkeyscan(){if(k1==0)returnKEY_UP;if(k2==0)returnKEY_DOWN;if((k1!=0)&&(k2!=0))returnKEY_NULL;}*//***********按
9、鍵初始化************/voidkey_init(void){keyValueBuff=0x00;keyValueOld=0x00;keyValueTemp=0x00;stillTimes=0;stillTim