洛阳理工学院毕业设计(论文)
void LCD_Close_Cursor(void);
void LCD_Open_hilight(unsigned char Hilight_mode); void LCD_Close_hilight(unsigned char Hilight_mode); void LCD_BK_Light_SET(unsigned char Light_MODE); void Init_LCD(void); void Init_GPS_module(void);
unsigned char Cal_gas_data_to_disp(void); void rx_gps_data(unsigned char com_rx_byte); void delay_time(unsigned short t) {
unsigned short n,m; for(n=0;n for(m=0;m<1000;m++) {;} } } void main(void) { unsigned char i; Init_GPS_module(); Init_LCD(); EA=1; while(1) { LCD_BK_Light_SET(TRUE); Set_LCD_BK(1); LCD_Open_Cursor(1); LCD_Send_CMD_END(); delay_time(500); LCD_CLR_ALL(TRUE); if(gps_data_ok_flag) { i=Cal_gas_data_to_disp(); 27 洛阳理工学院毕业设计(论文) if(i==1) { LCD_print_char(0, 0, \该地时间为~\ LCD_Open_Cursor(0); delay_time(200); LCD_print_Curr_char(gps_time1,TRUE); LCD_Open_Cursor(1); LCD_Open_Cursor(0); delay_time(200); LCD_Open_Cursor(0); LCD_Open_Cursor(0); LCD_print_char(1, 0, \该地经度为~\ LCD_print_Curr_char(temp_bu , TRUE); LCD_print_char(3, 0, \该地纬度为~\ LCD_print_Curr_char(temp_buf ,TRUE); } } delay_time(20000); } } void Delay_3US(void) { unsigned char t; for(t=0;t<10;t++) //---- { _nop_(); } } #ifdef HARD_SPI unsigned char TR_LCD_SPI_BYTE(unsigned char dat) { while(!LCD_SH); LCD_CS=0; SPDAT=dat; 28 洛阳理工学院毕业设计(论文) while(!(SPSTAT&0x80)); SPSTAT=0xc0; LCD_CS=1; return SPDAT; } #else unsigned char TR_LCD_SPI_BYTE(unsigned char dat) { unsigned char temp_data,i; while(!LCD_SH); LCD_SCLK=0; temp_data=dat; LCD_CS=0; MOSI=0; for(i=0;i<8;i++) { if(temp_data&0x80) LCD_MOSI=1; else LCD_MOSI=0; temp_data<<=1; LCD_SCLK=1; if(LCD_MISO) temp_data|=0x01; //_nop_(); LCD_SCLK=0; //_nop_(); } LCD_CS=1; return temp_data; } #endif void Change_lcd_mode(unsigned char LCD_mode) { 29 洛阳理工学院毕业设计(论文) unsigned char temp_data; if(LCD_mode) { if(LCD_mode<=LCD_FD_DRAW_mode) { temp_data=0x80+LCD_mode; TR_LCD_SPI_BYTE(LCD_CMD_HEAD); TR_LCD_SPI_BYTE(temp_data); //LCD_Send_CMD_END(); } } } void LCD_Send_CMD_END(void) { TR_LCD_SPI_BYTE(LCD_CMD_END); Delay_3US(); Delay_3US(); } void SET_LCD_POS(unsigned char mode ,Y,X) { unsigned char temp_data; TR_LCD_SPI_BYTE(LCD_CMD_HEAD); if(mode) { temp_data=Y; temp_data&=0x0f; temp_data|=LCD_SET_NEW_POS_WORD; } else temp_data=LCD_SET_DEF_POS_WORD; TR_LCD_SPI_BYTE(temp_data); if(mode) TR_LCD_SPI_BYTE(X); } 30 洛阳理工学院毕业设计(论文) void LCD_print_char(unsigned char Y,X,unsigned *char_ptr,unsigned char End_flag) { SET_LCD_POS(TRUE, Y, X); Send_LCD_string(char_ptr); if(End_flag) LCD_Send_CMD_END(); } void LCD_print_Curr_char(unsigned char *char_ptr,unsigned End_flag) { SET_LCD_POS(FALSE, 0, 0); Send_LCD_string(char_ptr); if(End_flag) LCD_Send_CMD_END(); } void Send_LCD_string(unsigned char *char_ptr) { while(*char_ptr!='~') { TR_LCD_SPI_BYTE(*char_ptr); char_ptr++; } } void Set_LCD_BK(unsigned char BKL_dat) { TR_LCD_SPI_BYTE(LCD_CMD_HEAD); TR_LCD_SPI_BYTE(LCD_SET_BK_LCD_CMD); TR_LCD_SPI_BYTE(BKL_dat); } void LCD_CLR_ALL(unsigned char At_once ) { TR_LCD_SPI_BYTE(LCD_CMD_HEAD); TR_LCD_SPI_BYTE(LCD_CLR_CMD); 31 char char