一.硬件电路
(1) 点阵LCD液晶显示模块电路:如下图所示,在该电路中,液晶为102×64点阵LCD,采用SPI模式实现数据的传输,数据传输是单向的,数据只允许写入,其中LCD_CS(P7.4)为片选信号、LCD_D/C(P5.6)为命令数据切换信号、SCLK(P4.3/PM_UCB1CLK)为数据传输时钟信号、SIMO(P4.1/PM_UCB1SIMO)为从设备输入主设备输出信号、LCD_RST(P5.7)为液晶复位信号、VCC为显示电源提供信号。
[attach]31593[/attach]
系统初始化
#if 1 uint8_t contrast = *((unsigned char *)contrastSetpointAddress); //读取FLASH中对比度值 uint8_t brightness = *((unsigned char *)brightnessSetpointAddress); //读取FLASH中背光值 // Initialize accelerometer offset from flash // Cma3000_setAccel_offset(*((unsigned char *)accelXcalibrationAddress), //初始化加速度偏移量 // *((unsigned char *)accelYcalibrationAddress), // *((unsigned char *)accelZcalibrationAddress)); // Stop WDT WDTCTL = WDTPW + WDTHOLD; //关闭看门狗 // Basic GPIO initialization Board_init(); //初始化GPIO Board_ledOn(LED1); #endif #if 0 LED145678_PORT_OUT &= ~(BIT0 + BIT1 + BIT2 + BIT3 + BIT4 + BIT5); LED145678_PORT_DIR |= BIT0 + BIT1 + BIT2 + BIT3 + BIT4 + BIT5; LED23_PORT_OUT &= ~(BIT1 + BIT2); LED23_PORT_DIR |= BIT1 + BIT2; LED145678_PORT_OUT |= BIT0; LED23_PORT_OUT |= BIT1; LED23_PORT_OUT |= BIT2; #endif #if 1 // Set Vcore to accomodate for max. allowed system speed SetVCore(3); //设VCore为最大 // Use 32.768kHz XTAL as reference LFXT_Start(XT1DRIVE_0); //利用LFXT1(32.768kHZ)作为时钟参考 // Set system clock to max (25MHz) Init_FLL_Settle(25000, 762); //利用FLL(锁频环)将系统时钟设为最大25MHZ SFRIFG1 = 0; //清中断标志 SFRIE1 |= OFIE; //使能晶振失效中断 // Globally enable interrupts __enable_interrupt(); //使能全局中断 // Setup real time clock SetupRTC(); //设置实时时钟 // Set up LCD Dogs102x6_init(); //初始化LCD Dogs102x6_backlightInit(); //背光初始化 // Contrast not programed in Flash Yet if (contrast == 0xFF) //若当前FLASH中无对比度值,则将对比度值设为11(默认) // Set Default Contrast contrast = 11; // Brightness not programed in Flash Yet if (brightness == 0xFF) //若当前FLASH中无背光值,则将背光值设为11(默认) // Set Default Brightness brightness = 11; Dogs102x6_setBacklight(brightness); //设置初始背光值 Dogs102x6_setContrast(contrast); //设置初始对比度值 Dogs102x6_clearScreen(); //清屏 // Set up wheel Wheel_init(); //初始化齿轮电位计 Buttons_init(BUTTON_ALL); //初始化按键 Buttons_interruptEnable(BUTTON_ALL); //使能所有按键中断 buttonsPressed = 0; //键值清零
。。。。。。。。后面再补充
欢迎光临 烽火社区 (http://bbs.cnecport.com/) | Powered by Discuz! X3.2 |