久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 4367|回復: 2
打印 上一主題 下一主題
收起左側

新人求助MFRC522程序

[復制鏈接]
跳轉到指定樓層
樓主
ID:67821 發表于 2014-10-23 15:27 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
求高手幫忙指點這個程序哪些地方不對,希望能求教改改
#include "lpcreg.h"
#include <intrins.h>   
#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);
    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] != '\0')
     {                         //顯示字符
       lcd_wdat(dis1[i]);
       i++;
     }
    lcd_pos(1,0);             //設置顯示位置為第二行的第1個字符
     i = 0;
    while(dis2[i] != '\0')
     {
       lcd_wdat(dis2[i]);      //顯示字符
       i++;
     }
      lcd_pos(2,0);             //設置顯示位置為第三行的第1個字符
     i = 0;
    while(dis3[i] != '\0')
     {
       lcd_wdat(dis3[i]);      //顯示字符
       i++;
     }
     lcd_pos(3,0);             //設置顯示位置為第四行的第1個字符
     i = 0;
    while(dis4[i] != '\0')
     {
       lcd_wdat(dis4[i]);      //顯示字符
       i++;
     }
  //while(1);


}
/*********************************************************/
/*                                                         */
/* 延時x*0.14ms子程序                                     */
/*                                                       */
/*********************************************************/

/*void delay0(uchar x)    //x*0.14MS
{
  uchar i;
  while(x--)
{
  for (i = 0; i<13; i++) {}
}
}*/
/*********************************************************/
/*                                                       */
/* 設定顯示位置                                          */
/*                                                       */
/*********************************************************/
void lcd_pos(uchar X,uchar Y)
{                          
   uchar  pos;
   if (X==0)
     {X=0x80;}
   else if (X==1)
     {X=0x90;}
   else if (X==2)
     {X=0x88;}
   else if (X==3)
     {X=0x98;}
   pos = X+Y ;  
   lcd_wcmd(pos);     //顯示地址
}

void LCD_Data(unsigned char LCDbyte )
{
     unsigned char count;
     count=(LCDbyte&0xf0)>>4;
     if (count>0x9) lcd_wdat(count%9+0x40);
     else lcd_wdat(count+0x30);
     count=LCDbyte&0x0f;
     if (count>9) lcd_wdat(count%9+0x40);
     else lcd_wdat(count+0x30);
}

void display_type()//尋到卡后顯示出該卡的類型
{
    unsigned char num;
    lcd_wcmd(0x01);      //清除LCD的顯示內容
    delay(5);
    lcd_pos(0,0);             //設置顯示位置為第四行的第1個字符
    for(num=0;num<8;num++)    //第一行要顯示的11個字符
    {
    lcd_wdat(table4[num]);   
    }

    for(num=0;num<2;num++)//第一行要顯示的11個字符
    {
        lcd_pos(0,num+4);
        LCD_Data(g_ucTempbuf[num]);//寫數字
    }
}

void display_cardnum()
{
    unsigned char num;
    //lcd_wcmd(0x01);      //清除LCD的顯示內容
    delay(5);
    lcd_pos(1,0);             //設置顯示位置為第四行的第1個字符
    for(num=0;num<6;num++)    //第一行要顯示的11個字符
    {
    lcd_wdat(table3[num]);   
    }

    for(num=0;num<4;num++)//第一行要顯示的11個字符
    {
        lcd_pos(1,num+3);
        LCD_Data(g_ucTempbuf[num]);//寫數字
    }
}
void display_xiaofeicarddat()//消費
{
    unsigned char num;
    lcd_pos(2,0);             //設置顯示位置為第四行的第1個字符
    for(num=0;num<6;num++)    //第一行要顯示的11個字符
    {
    lcd_wdat(table5[num]);   
    }
    lcd_pos(2,7);             //設置顯示位置為第四行的第1個字符
    for(num=0;num<2;num++)    //第一行要顯示的11個字符
    {
    lcd_wdat(table7[num]);   
    }

    for(num=0;num<1;num++)//第一行要顯示的11個字符
    {
        lcd_pos(2,num+3);
        LCD_Data(0x01);//消費
    }
}

void display_carddat()    //余額
{
    unsigned char num;

    lcd_pos(3,0);     
    for(num=0;num<6;num++)    //第一行要顯示的11個字符
    {
    lcd_wdat(table6[num]);   
    }
    lcd_pos(3,7);             //設置顯示位置為第四行的第1個字符
    for(num=0;num<2;num++)    //第一行要顯示的11個字符
    {
    lcd_wdat(table7[num]);   
    }
           //設置顯示位置為第四行的第1個字符
   
        lcd_pos(3,3);
        LCD_Data(g_ucTempbuf[3]);//寫數字,余額

    /*for(num=0;num<4;num++)//第一行要顯示的11個字符
    {
        lcd_pos(3,num+3);
        LCD_Data(g_ucTempbuf[3]);//寫數字,余額
    }*/
   /*lcd_pos(3,0);
    for(num=8;num<16;num++)//第一行要顯示的11個字符
    {
        LCD_Data(g_ucTempbuf[num]);//寫數字
    }*/
}


分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:66501 發表于 2014-10-24 14:00 | 只看該作者
掘墓高手,專挖古墓,一挖一個坑,坑坑見墓。。
回復

使用道具 舉報

板凳
ID:99693 發表于 2016-11-26 11:39 | 只看該作者
我現在也在搞這個。兩頭霧水
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 亚洲精品成人网 | 久久人操| 成人三级视频在线观看 | 国产中文| 黄视频免费在线 | 久久久爽爽爽美女图片 | www国产精 | 在线免费观看a级片 | 国产黄色精品 | 99久久夜色精品国产亚洲96 | 99福利视频 | 亚洲有码转帖 | 黄 色 毛片免费 | 天天操夜夜操 | 男女羞羞免费网站 | 一区二区三区四区在线视频 | 精品小视频 | 老司机成人在线 | 色婷婷久久久亚洲一区二区三区 | 91传媒在线观看 | 亚洲www.| 欧美午夜精品 | www日本在线观看 | 天天干在线播放 | 99热国产精品 | jlzzjlzz欧美大全 | 人人鲁人人莫人人爱精品 | 91视频进入| 久久久精品 | 成人在线中文 | 日韩av福利在线观看 | 中文字幕精品一区二区三区精品 | 中文字幕视频在线 | 国产精品久久久久久影院8一贰佰 | 人操人免费视频 | 不卡一区二区三区四区 | 天天干.com| 日韩毛片在线免费观看 | 亚洲免费网| 国产欧美一区二区久久性色99 | 精品视频在线观看 |