send_data1(*chn-0xA0);chn++; send_data1(*chn-0xA0);chn++; } }
/******************显示单个字符8x8****************/ void disp_char(uint addr_x,uint addr_y,uchar code) { send_data1(0xF1); send_data1(addr_x); send_data1(addr_y); send_data1(code); }
/*********************************************** ***************显示8x8ASCII码子程序***************/ void disp_ascii(uint addr_x, uint addr_y, uchar *eng) { uint i;
uint lenght;
lenght=strlen(eng); for(i=0;i /*********************************************** ***************显示8x16ASCII码子程序***************/ void disp_ASCII(uint addr_x, uint addr_y, uchar *eng) { uint i; uint lenght; lenght=strlen(eng); for(i=0;i /*********************************************** *函数名称:disp_img() * *功能描述:使一个汉字字符串在指定位置显示出来 * *参数说明:addr_x-----要显示的首个字符所在的行 * * addr_y-----要显示的首个字符所在的列 * * wide-------显示图形的宽度(像素) * * hight------显示图形的宽度(像素) * * img--------要显示的位图点阵的数组名 * *补 充:坐标原点为液晶右上角,行列均以0开始 * * : 行以8个像素计算,列以1个像素计算 * ***********************************************/ void disp_img(uchar addr_x,uchar addr_y,uchar wide,uchar hight, uchar *img) { uchar i,j; for(j=0;j /*********************************************** *函数名称:disp_record() * *功能描述:在指定位置以一定格式显示一条记录 * *参数说明: * * addr_y-----要显示的首个字符所在的行 * * num-------记录的ID号 * * name------记录名称 * * price--------价格 * ***********************************************/ void disp_record(uchar addr_y,uchar *num,uchar *name,uchar *price) { disp_ASCII(4,addr_y,num); disp_chn(5,addr_y,name); disp_char(22,6+addr_y*16,127); disp_ASCII(23,addr_y,price); } List.c 程序清单 uchar menu0_0[]={\编号\ uchar menu0_1[]={\菜 名%uchar menu0_2[]={\单 价%uchar error[]={\ uchar cm[]={\您所点的菜如下:\ uchar sel[]={/*--选中时显示的标志\V\ 宽度x高度=24x16 --*/ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1C,0x00,0x00,0x38,0x00, 0x00,0x70,0x1C,0x00,0xE0,0x0E,0x01,0xC0,0x07,0x03,0x80,0x03,0x87,0x00,0x01,0xCE, 0x00,0x00,0xFC,0x00,0x00,0x78,0x00,0x00,0x30,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }; struct menu record[60]={ {\鸡皮鲟龙\ {\蟹黄鲜菇\ {\玉簪出鸡\ {\夜合虾仁\ {\酥姜皮蛋\ {\京都肾球\ {\酥炸鲫鱼\ {\凤眼腰\ {\一品官燕\ {\凤尾大裙翅\ {\象拔虞琴\ {\金钱豹狸\ {\虎扣龙藏\ {\仙鹤烩熊掌\ {\银针炒翅\ {\鼎湖上素\ {\月中丹桂\ {\鹿羧水鸭\ {\清汤雪耳\ {\清蒸海鲜\ {\广肚乳鸽\ {\乌龙肘子\ {\灯烧羊腿\ {\母子鲜虾饺\ {\鸡肉拉皮卷\ {\云腿馅儿府\ {\蟹肉海棠果\ {\蒸熊掌\ {\烧花鸭\ {\酱鸡\ {\什锦苏盘\ {\卤子鹅\ {\炝虾仁儿\ {\焖白鳝\ {\豆鼓鲇鱼\ {\烀皮甲鱼\ {\锅烧鲤鱼\ {\软炸里脊\ {\炒白虾\ {\炝青蛤\ {\芙蓉燕菜\ {\炒肝尖儿\ {\油爆肚仁儿\ {\炒金丝\ {\烩银丝\ {\糖熘荸荠\ {\蜜丝山药\ {\拔丝鲜桃\ {\烩鸭丝\ {\清蒸鸡\ {\黄焖鸡\ {\清蒸玉兰片\ {\炒虾仁儿\ {\锅烧海参\ {\锅烧白菜\ {\清蒸翅子\ {\炸飞禽\ {\烩鸡肠肚儿\ {\盐水肘花儿\ }; uchar img1[]={/*-- “图片:欢迎光临” 宽度x高度=208x96 已省略--*/}; uart.c 程序清单 //定义串口操作变量 char nRX0_Flag; // 串口 0 的接收标志 char UART0_RX_BUF[16]; // 串口 0 的接收缓冲区 char nRX0_Len_temp; // 串口 0 接收长度计数 char nRX0_Len; // 串口 0 接收字符串长度 char UART0_TX_BUF[16]; // 串口 0 的发送缓冲区 int nTX0_Len_temp; // 串口 0 发送长度计数 int nTX0_Len; // 串口 0 发送字符串长度 char nTX0_Flag; // 串口 0 的发送标志 void Init_UART0(void) { U1CTL = CHAR; //00010000控制寄存器 U1TCTL = 0X00; //发送控制寄存器 U1TCTL = SSEL1; //波特率发生器选择SMCLK UBR0_1 = 0X43; //波特率为9600 UBR1_1 = 0X03; UMCTL_1 = 0X03; //调整寄存器 ME2 |= UTXE1 + URXE1; //使能UART0的TXD和RXD IE2 |= URXIE1; //使能UART0的RX中断 IE2 |= UTXIE1; //使能UART0的TX中断 P3SEL |= BIT6; //设置P3.4为UART1的TXD P3SEL |= BIT7; //设置P3.5为UART1的RXD P3DIR |= BIT6; //P3.4为输出管脚 return; } void Init_CLK(void) { unsigned int i; BCSCTL1 = 0X04; //将寄存器的内容清零 //XT2震荡器开启 //LFTX1工作在低频模式 //ACLK的分频因子为1 do { IFG1 &= ~OFIFG; // 清除OSCFault标志 for (i = 0x20; i > 0; i--); }while(IFG1 & OFIFG == OFIFG); // 如果OSCFault =1 BCSCTL2 = 0X00; //将寄存器的内容清零 BCSCTL2 += SELM1; //MCLK的时钟源为TX2CLK,分频因子为1 BCSCTL2 += SELS; //SMCLK的时钟源为TX2CLK,分频因子为1 } // 处理来自串口 1 的接收中断 #if __VER__ < 200 interrupt [UART1RX_VECTOR] void UART1_RX_ISR(void) #else #pragma vector=UART1RX_VECTOR __interrupt void UART1_RX_ISR(void) #endif { UART0_RX_BUF[nRX0_Len_temp] = RXBUF1; //接收来自的数据 nRX0_Len_temp += 1; if(UART0_RX_BUF[nRX0_Len_temp - 1] == '!') { nRX0_Len = nRX0_Len_temp; nRX0_Flag = 1; nRX0_Len_temp = 0; } } // 处理来自串口 1 的发送中断 #if __VER__ < 200 interrupt [UART1TX_VECTOR] void UART1_TX_ISR(void) #else #pragma vector=UART1TX_VECTOR __interrupt void UART1_TX_ISR(void) #endif { if(nTX0_Len != 0) { TXBUF1 = UART0_TX_BUF[nTX0_Len_temp]; nTX0_Len_temp += 1; if(nTX0_Len_temp >= nTX0_Len) { nTX0_Len_temp = 0; nTX0_Len = 0; } } } void uart_sendstring(char UART_sendstring[],char send_len) { char i;