400字范文,内容丰富有趣,生活中的好帮手!
400字范文 > 台灯控制面板-调亮度定时器

台灯控制面板-调亮度定时器

时间:2019-09-10 22:45:16

相关推荐

台灯控制面板-调亮度定时器

key.c

#include "key.h" //把led.h文件包含进来#include "system.h" //把timer0.h文件包含进来uchar ledstat = 0;//0灭,1暗,2中,3亮uint y;uint z;uint Keycumo ()//触摸扫描函数{staticuint timer=0;if( touch==0){timer++;if(timer==10){return(1);} //定时10毫秒返回KEY1else if(timer==800){timer=400;return(1);} //否则长按不停加1}else{timer=0; }return 0;}void ledgo(){if(ledstat ==0){led =1; lamp = 0; }if(ledstat ==1){PWM1( );}if(ledstat ==2){PWM2( );}if(ledstat ==3){led =0; lamp = 1; }}void datapros() //触摸加减函数{uchar key;key=Keycumo (); //key=调用按键扫描函数if(key==1) {ledstat++; }if(ledstat >=4){ledstat =0;}ledgo();}void PWM1( ){y++; if(y>=7) // 设置7毫秒 {y=0;}if(y<=1) //设置1毫秒为低电平 ,led低电平为灭 {led =0;lamp = 1; }else led =1; lamp = 0; //否则其余6毫秒时间为高电平,led高电平为亮} void PWM2( ){z++; if(z>=5) // 设置5毫秒{z=0; } if(z<=2) //设置2毫秒为低电平 ,led低电平为灭 {led =0;lamp = 1; }else led =1; lamp = 0; //否则其余3毫秒时间为高电平,led高电平为亮}

key.h

#include "system.h" //把timer0.h文件包含进来//sbit k1=P3^7;sbit lamp=P3^7;sbit touch = P1^5;sbit led=P1^1;void PWM1( );void PWM2( );voidDig_Poll(void);uint Keycumo ();void datapros();void ledgo();

main.c

#include "system.h"#include "key.h"externuchar flag_1ms; //在其他模块中寻找其定义。另外,extern也可用来进行链接指定。void main(void)//程序的主函数{Timer0_Init(); ////定时器0函数调用while(1) //大括号里面的东西,被不停的循环执行{//1ms进入一次if(flag_1ms==1)//加了我之后,我的大括号里面的东西,被定期的1ms执行一次,反复执行 {flag_1ms=0;datapros();//触摸加减函数// lamp = 0; //上电指示灯亮起}}}```handlebars#include "reg51.h"#defineuchar unsigned char//定义无符号字符#defineuint unsigned int//定义无符号整形#defineFOSC12000000L//定义晶振频率 #defineT1MS(65536-FOSC/12/1000) //定时10毫秒的时候,计数器要写入的值//voidDelay_us(uint xus);//us级延时//voidDelay_ms(uint xms);//ms级延时voidTimer0_Init(void); //定时器初始化```handlebars#include "system.h"uchar flag_1ms=0;voidTimer0_Init(void){TH0 = T1MS>>8; //赋初值TL0 = T1MS; //赋初值TMOD = 0x01; //设置定时器0用十六位定时器方式EA = 1; //打开总中断ET0 = 1; //打开定时器0中断TR0 = 1; //启动定时器0}void Timer0() interrupt 1 //中断号1{TH0 = T1MS>>8; //赋初值TL0 = T1MS; //赋初值flag_1ms=1;}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。