PIC10F202 制作的双色车灯 GP2用作开关检测,GP0,GP1分别控制二路LED,上电亮GP0正白灯珠,开关掉电一次,切换为GP1暖白灯珠,开关再掉电一次为交替闪烁。
单片机源程序如下:
- #include<pic.h>
- __CONFIG(0X010);
- #define uchar unsigned char
- #define uint unsigned int
- #define TIME_MAX 1000
- uint key2_time_cnt;//按键去抖计数器
- uchar num;
- uchar key_flag;
- void Delay_mS(uint n)
- {
- uint j;
- uchar k;
- for(j=0;j<n;j++)
- for(k=246;k>0;k--)
- NOP();
- }
- void key_scan()
- {
- if(GP2==0)//按键按下
- {
-
- while(key2_time_cnt!=TIME_MAX)
- {
- key2_time_cnt++;
- }
- key_flag=1;
- }
- else
- {
- key2_time_cnt=0;
- if(key_flag==1)
- {
- key_flag=0;
- num++;
- if(num>2)
- num=0;
- }
- }
- }
- void main()
- {
- TRISGPIO=0b00000100;
- GP0=1;
- GP1=0;
- while(1)
- {
- key_scan();
- switch(num)
- {
- case 0: GP0=1;//白光色亮
- GP1=0; break;
- case 1: GP0=0;
- GP1=1;break;//黄光亮
- case 2: GP0=0;
- GP1=1;
- Delay_mS(5);
- GP0=1;
- GP1=0;
- Delay_mS(5);break; //交替闪烁
- }
- }
- }
复制代码
所有资料51hei提供下载:
PIC10F202.rar
(47.54 KB, 下载次数: 54)
|