家用可调光LED照明系统设计 - 图文

河南城建学院本科毕业设计(论文) 附录A

附录A 系统程序

#include #include

#define uint unsigned int #define uchar unsigned char uchar dispcount; uchar menu; uchar result;

char tcnt,tcnt1,PWMTIME=1; sbit keyup=P2^0; sbit IR_module=P2^3; sbit pwmpin=P3^7; sbit LED_P=P3^5; sbit LED_T=P3^6; #define WEI P2

uchar dispbuf[4],dispcount; uchar code dispbitcode[]= {0xbf,0xef,0xdf,0x7f};

unsigned char code dispcode[]= {

0x77,/*0*/ 0x14,/*1*/ 0x6D,/*2*/ 0x5D,/*3*/ 0x1E,/*4*/ 0x5B,/*5*/ 0x7B,/*6*/ 0x15,/*7*/ 0x7F,/*8*/ 0x5F,/*9*/ 0x00,/* */ 0x08/*-*/ };

void delay(unsigned int z) //1毫秒延时子函数 { unsigned int x,y; for(x=z;x>0;x--) for(y=123;y>0;y--); //y=123, }

void ledinit() { TMOD|=0x11; TH0=(65536-2000)/256; TL0=(65536-2000)%6; TR0=1; ET0=1; TH1=(65536-1000)/256; TL1=(65536-1000)%6; TR1=1; ET1=1; }

32

河南城建学院本科毕业设计(论文) 附录A #define schannel_0 0x02 #define schannel_1 0x03 #define dchannel_10 0x00 #define dchannel_01 0x01 sbit ACC0=ACC^0; sbit ACC1=ACC^1; //ADC0832的引脚 sbit ADC_CS =P1^5; sbit ADC_CLK =P1^6; sbit ADC_DI =P1^7; sbit ADC_DO =P1^7;

uchar ADC_read(uchar mode) { uchar i; ADC_CS=1; _nop_(); ADC_CLK=0; _nop_(); ADC_CS=0; _nop_(); ADC_DI=1; _nop_(); ADC_CLK=1; _nop_(); ADC_DI=0; ADC_CLK=0; _nop_(); ACC=mode; ADC_DI=ACC1; ADC_CLK=1; _nop_(); ADC_DI=0; ADC_CLK=0; ADC_DI=ACC0; ADC_CLK=1; _nop_(); ADC_DI=1; ADC_CLK=0; ADC_CLK=1; ACC=0; for(i=8;i>0;i--) { ADC_CLK=0; ACC=ACC<<1; ACC0=ADC_DO; ADC_CLK=1; } ADC_CS=1; return(ACC); } void main(void) { ledinit() while(1) {

33

河南城建学院本科毕业设计(论文) 附录A

while(IR_module==1) { LED_P=LED_T=1; pwmpin=1; ET1=0; dispbuf[3]=dispbuf[2]=dispbuf[1]=dispbuf[0]=11; }

while(IR_module==0) { ET1=1; if(!key) / { menu++; if(menu==2)// menu=0;/ delay(200); while(!key);// } if(menu==0)// { LED_P=0; LED_T=1; // if(!keyup) / { PWMTIME++; TR1=1; if (PWMTIME>5) PWMTIME=5; delay(200); } if(!keydown) { PWMTIME--; if (PWMTIME<0) PWMTIME=0; delay(200); } if(PWMTIME==0) { TR1=0; pwmpin=1; } dispbuf[3]=PWMTIME; dispbuf[2]=10; dispbuf[1]=10; dispbuf[0]=10; } if(menu==1)/ { LED_P=1; LED_T=0;//指示灯 result=ADC_read(schannel_0);// 0 result*=0.196078; PWMTIME=result/10;/ dispbuf[3]=PWMTIME; / dispbuf[2]=10; dispbuf[1]=result/10; dispbuf[0]=result;

34

河南城建学院本科毕业设计(论文) 附录A if(PWMTIME==0) { TR1=0;// pwmpin=1; } else TR1=1; } } } }

void t0(void) interrupt 1 { TH0=(65536-2000)/256; TL0=(65536-2000)%6; P2=0xff; P0=dispcode[dispbuf[dispcount]]; if((menu==1)&&(dispcount==1)) P0|=0X80; P2=dispbitcode[dispcount]; dispcount++; if(dispcount==4) dispcount=0; tcnt++; }

void t1(void) interrupt 3 { TH1=(65536-500)/256; TL1=(65536-500)%6; tcnt1++; if(tcnt1==PWMTIME) pwmpin=1; if(tcnt1==5) { tcnt1=0; pwmpin=0; } }

35

联系客服:779662525#qq.com(#替换为@)