《液晶初始化程序》由会员分享,可在线阅读,更多相关《液晶初始化程序(8页珍藏版)》请在金锄头文库上搜索。
1、液晶初始化程序液晶初始化程序#include “msp430g2553.h“unsigned char ms_300=0x00;/extern float ad_result0x21; ;unsigned int time=0x00;extern unsigned int ad_convert; /AD 转换的数值unsigned char stop=0x00;void io_ini(void)/端口初始化P1DIR|=BIT0+BIT6+BIT7+BIT4;/P1.0,P1.6,P1.7 设为输出P1OUT/输出为低P1SEL = BIT2+BIT1+BIT5;void timera_ini
2、(void)/定时器初始化CCTL0 = CCIE; / CCR0 interrupt enabledCCR0 = 10000;TACTL = TASSEL_2 + MC_2; / SMCLK, contmode_EINT();/中断void clok_int(void)/时钟初始化WDTCTL = WDTPW + WDTHOLD;/关闭看门狗BCSCTL1 = CALBC1_1MHZ; / Set rangeDCOCTL = CALDCO_1MHZ;wr_lcd (unsigned char dat,unsigned char content)/读 lcdunsigned char a,i,
3、j,b,C3,d;d=0x80;b=dat;a=content;LCD_SCLK_L; _delay_cycles(50);LCD_CS_H; _delay_cycles(50);LCD_SID_H; _delay_cycles(50);/*串行数据传送共分三个字节完成:*/一、第一字节:串口控制格式 11111ABC/A 为数据传送方向控制:H 表示数据从 LCD 到 MCU,L 表示数据从 MCU 到 LCD/B 为数据类型选择:H 表示数据是显示数据,L 表示数据是控制指令/C 固定为 0for(i=0;i1;LCD_SID_L;_delay_cycles(50);/WDGCR = 0x
4、7f;/-for(i=0;i4;i+) /8 位数据的低 4 位LCD_SCLK_H; _delay_cycles(50);LCD_SCLK_L; _delay_cycles(50);LCD_CS_L;LCD_SCLK_L;LCD_SID_H;_delay_cycles(50);qc12864b_int()LCD_CS_L; /cs_off;LCD_SID_L; /sid_off ;LCD_SCLK_L; /sclk_off;_delay_cycles(50);wr_lcd(0x00,0x30); /*30-基本指令动作*/wr_lcd(0x00,0x01); /*清屏,地址指针指向 00H*
5、/_delay_cycles(50);wr_lcd(0x00,0x06); /*光标的移动方向*/wr_lcd(0x00,0x0c); /*开显示,关游标*/0x00 代表写指令,0x01 代表写数据adc_int()/ad 初始化ADC10CTL1 = INCH_2+CONSEQ_2+ADC10SSEL_3;/选用通道3,多通道单次模式,SMCLKADC10CTL0 = ADC10ON+MSC+REFON+SREF_1+REF2_5V;/+ADC10IE 使能ADC10AE0 = BIT3; /P1.3+ADC10CTL0 |= ENC + ADC10SC;/启动 ADuart_int()P
6、1SEL|=BIT1+BIT2; /将 P1.1 P1.2 设为第二功能P1SEL2 = BIT1 + BIT2;UCA0CTL1|=UCSSEL_2;UCA0BR0=104; /波特率为 9600UCA0BR1=0x00;UCA0MCTL=UCBRS0;UCA0CTL1IE2|=UCA0RXIE;sys_int()clok_int();io_ini();qc12864b_int();adc_int();/uart_int();lcd_show(0,1,“重庆电讯学院“);lcd_show(1,1,“脉搏测试仪器“);lcd_show(2,1,“系统空闲“);timera_ini();/ Ti
7、mer A0 interrupt service routine#pragma vector=TIMER0_A0_VECTOR_interrupt void Timer_A (void)CCR0 += 52350; / 47.735ms / Add Offset to CCR0time+;if(stop=0x01)/1256CCTL0 /关闭使能if(time%6=0x00)/每 0.3 秒跑一次ms_300=0x01;/P1OUT=BIT4;/if(time=3)/time=time/3;void send(unsigned char uart_date)UCA0TXBUF=uart_date;while(!(IFG2IFG2