完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
`文件12864.c的内容如下: #include "lpcreg.h" #include #include <12864.h> extern unsigned char g_ucTempbuf[20]; uchar code dis1[] = {"毕设"}; uchar code dis2[] = {"RFID刷卡系统"}; uchar code dis3[] = {"主控芯片RC522 "}; uchar code dis4[] = {"请您刷卡! "}; uchar code table3[]={"卡号:"}; uchar code table4[]={"卡类型:"}; uchar code table5[]={"消费:"}; uchar code table6[]={"余额:"}; uchar code table7[]={"元:"}; /*******************************************************************/ /* */ /* 延时函数 */ /* */ /*******************************************************************/ void delay(int ms) { while(ms--) { uchar i; for(i=0;i<250;i++) { _nop_(); _nop_(); _nop_(); _nop_(); } } } /*******************************************************************/ /* */ /*检查LCD忙状态 */ /*lcd_busy为1时,忙,等待。lcd-busy为0时,闲,可写指令与数据。 */ /* */ /*******************************************************************/ /*bit lcd_busy() { bit result; LCD_RS = 0; LCD_RW = 1; LCD_EN = 1; delayNOP(); result = (bit)(P0&0x80); //(bit)强制转换成位,P0&0x80换成二进制就10000000也就是P0口的P0^7位。换成=P0^7也可以,但返回值中要判断result是否为0 LCD_EN = 0; return(result); }*/ /*******************************************************************/ /* */ /*写指令数据到LCD */ /*RS=L,RW=L,E=高脉冲,D0-D7=指令码。 */ /* */ /*******************************************************************/ void lcd_wcmd(uchar cmd) { //while(lcd_busy()); LCD_RS = 0; LCD_RW = 0; LCD_EN = 0; _nop_(); _nop_(); P0 = cmd; delayNOP(); LCD_EN = 1;//下降沿写入 delayNOP(); LCD_EN = 0; } /*******************************************************************/ /* */ /*写显示数据到LCD */ /*RS=H,RW=L,E=高脉冲,D0-D7=数据。 */ /* */ /*******************************************************************/ void lcd_wdat(uchar dat) { //while(lcd_busy()); LCD_RS = 1; LCD_RW = 0; LCD_EN = 0; P0 = dat; delayNOP(); LCD_EN = 1; delayNOP(); LCD_EN = 0; } /*******************************************************************/ /* */ /* LCD初始化设定 */ /* */ /*******************************************************************/ void lcd_init() { LCD_PSB = 1; //并口方式 lcd_wcmd(0x34); //扩充指令操作 delay(5); lcd_wcmd(0x30); //基本指令操作 delay(5); lcd_wcmd(0x0C); //显示开,关光标 delay(5); lcd_wcmd(0x01); //清除LCD的显示内容 delay(5); } void display_welcome2() { uchar i; delay(10); //延时 //wela=0; //dula=0; lcd_pos(0,0); //设置显示位置为第一行的第1个字符 i = 0; while(dis1[i] != ' |