#include "Delay.h" #include "OLED.h" #include "IRSend.h" #include <stdio.h> #define KEY2 P2_0 //KEY2为P2.0口控制 uint16 stringlen; extern uint16 HWSendAddcode; //红外发送地址码 void InitKey() { P2SEL &= ~0X01; //设置P20为普通IO口 P2DIR &= ~0X01; //按键在P20 口,设置为输入模式 P2INP &= ~0x01; //打开P20上拉电阻,不影响 } uint8 KeyScan(void) { if(KEY2==0) //同上,按键不一样而已 { Delay_ms(10); if(KEY2==0) { while(!KEY2); return 2; } } return 0; } void clock_setup(void) { CLKCONCMD &= ~0x40; //设置系统时钟源为32MHZ晶振 while(CLKCONSTA & 0x40); //等待晶振稳定 CLKCONCMD &= ~0x47; //设置系统主时钟频率为32MHZ } /**************************************************************** 主函数 ****************************************************************/ void main(void) { unsigned char str[40]; uint8 key=0; clock_setup(); oled_port_init(); initial_lcd(); clear_screen(); //清屏 display_string_8x16_16x16(1,1,"武汉唯众智创科技"); display_string_8x16_16x16(3,1,"有限公司荣耀创造"); Delay_ms(100); clear_screen(); IRSendInit(); sprintf((char *)str, "0x%04X", HWSendAddcode); //把地址码转成字符串 display_string_8x16_16x16(3,1, str); //显示地址码 while(1) { key = KeyScan(); //按键扫描 if(key==2) { IR_Sending(0xF807); //发送红外 只输入指令码就可以了,地址码本遥控器都是0xff00 sprintf((char *)str, "0x%04X", 0xF807); //把指令码转成字符串 display_string_8x16_16x16(1,1, str); //显示指令码 display_string_8x16_16x16(3,1, "VOL- ");//显示指令名称 } } } |