文档详情

51单片机利用串口接收GPS信号并液晶显示C语言.doc

发布:2017-02-03约1.78万字共18页下载文档
文本预览下载声明
#include reg52.h //89C52单片机头文件 #include LCD_code.h //液晶LCD的字模文件 #include intrins.h //功能引脚定义 sbit A = P0^7; //数据1/命令0选择 sbit RW = P0^6; //读1/写0 sbit E1 = P0^4; //片选1(Master) sbit E2 = P0^5; //片选2(slave) sbit LED= P0^3; //背光 sbit up = P0^0; //向上翻页键 sbit down= P0^1; //向下翻页键 #define data P2 //液晶并行数据 //液晶显示控制命令表 #define disp_on 0xAf //显示关闭 #define disp_off 0xAe //显示打开 #define disp_start_line 0xC0 //显示起始地址(后5位-表示0-31行) #define page_addr_set 0xB8 //页地址设置(0~3) #define col_addr_set 0x00 //列地址设置(0~61) #define status_busy 0x80 //0=ready #define modeRWite 0xEE //写模式 #define dynamic_driver 0xA4 //动态驱动 #define adc_select 0xA0 //clockwise #define clk32 0xA9 //刷新时钟设置1/32 #define clk16 0xA8 //刷新时钟设置1/16 #define reset 0xE2 //软件复位 #define uchar unsigned char #define uint unsigned int //全局变量,及标志位定义 uchar time_counter = 0; //定时器的软件计数器 uchar key = 0; //键盘值 uchar serial_counter; //串行计数器 bit disp_flag = 0; //显示更新标志 uchar bdata serial_byte = 0; //串行口标志位定义字节 sbit Sflag = serial_byte^0; //串行接收头部标志,一下8个都定义在serial_byte内 sbit G1flag = serial_byte^1; sbit Pflag = serial_byte^2; sbit G2flag = serial_byte^3; sbit G3flag = serial_byte^4; sbit Aflag = serial_byte^5; sbit DFflag = serial_byte^6; sbit ENflag = serial_byte^7; bit r_flag = 0; unsigned char idata serial_buff[77]; //串行接收缓冲 //uchar code head[] = {$,G,P,G,G,A,,}; //bit serial_flag = 0; ////液晶操作主要函数//////////////////////////////////////////////////////////// //void lcd_init(void) //引用:lcd_init(); 说明:LCD初始化; //////////////////////////////////////////////////////////////////////////////// //void lcd_clr(void) //引用:lcd_clr(); 说明:LCD清屏; //////////////////////////////////////////////////////////////////////////////// void lcd_init(void); //LCD初始化 void lcd_clr(void); //LCD清屏 void wait_ready(void); //等待ready void draw_bmp(uchar col,uchar layer,uchar width,uchar *bmp); //点阵码显示输出 void ASCII2BCD(void); //ASCII码转换为BCD码 void logo(void); //开机画面显示 /* 中断程序 */ ///////////////
显示全部
相似文档