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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 4345|回復(fù): 2
打印 上一主題 下一主題
收起左側(cè)

新人求助MFRC522程序

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:67821 發(fā)表于 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刷卡系統(tǒng)"};
uchar code dis3[] = {"主控芯片RC522 "};
uchar code dis4[] = {"請您刷卡上車! "};
uchar code table3[]={"卡號:"};
uchar code table4[]={"卡類型:"};
uchar code table5[]={"消費:"};
uchar code table6[]={"余額:"};
uchar code table7[]={"元:"};

/*******************************************************************/
/*                                                                 */
/*  延時函數(shù)                                                       */
/*                                                                 */
/*******************************************************************/
void delay(int ms)
{
    while(ms--)
    {
      uchar i;
      for(i=0;i<250;i++)  
       {
        _nop_();               
        _nop_();
        _nop_();
        _nop_();
       }
    }
}        
/*******************************************************************/
/*                                                                 */
/*檢查LCD忙狀態(tài)                                                    */
/*lcd_busy為1時,忙,等待。lcd-busy為0時,閑,可寫指令與數(shù)據(jù)。      */
/*                                                                 */
/*******************************************************************/
bit lcd_busy()
{                          
    bit result;
    LCD_RS = 0;
    LCD_RW = 1;
    LCD_EN = 1;
    delayNOP();
    result = (bit)(P0&0x80);
    LCD_EN = 0;
    return(result);
}
/*******************************************************************/
/*                                                                 */
/*寫指令數(shù)據(jù)到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;  
}
/*******************************************************************/
/*                                                                 */
/*寫顯示數(shù)據(jù)到LCD                                                  */
/*RS=H,RW=L,E=高脈沖,D0-D7=數(shù)據(jù)。                               */
/*                                                                 */
/*******************************************************************/
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初始化設(shè)定                                                  */
/*                                                                 */
/*******************************************************************/
void lcd_init()
{

    LCD_PSB = 1;         //并口方式
   
    lcd_wcmd(0x34);      //擴充指令操作
    delay(5);
    lcd_wcmd(0x30);      //基本指令操作
    delay(5);
    lcd_wcmd(0x0C);      //顯示開,關(guān)光標
    delay(5);
    lcd_wcmd(0x01);      //清除LCD的顯示內(nèi)容
    delay(5);
}

void display_welcome2()
{
    uchar i;
    delay(10);                 //延時
    //wela=0;
    //dula=0;         
  
    lcd_pos(0,0);             //設(shè)置顯示位置為第一行的第1個字符
     i = 0;
    while(dis1[i] != '\0')
     {                         //顯示字符
       lcd_wdat(dis1[i]);
       i++;
     }
    lcd_pos(1,0);             //設(shè)置顯示位置為第二行的第1個字符
     i = 0;
    while(dis2[i] != '\0')
     {
       lcd_wdat(dis2[i]);      //顯示字符
       i++;
     }
      lcd_pos(2,0);             //設(shè)置顯示位置為第三行的第1個字符
     i = 0;
    while(dis3[i] != '\0')
     {
       lcd_wdat(dis3[i]);      //顯示字符
       i++;
     }
     lcd_pos(3,0);             //設(shè)置顯示位置為第四行的第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++) {}
}
}*/
/*********************************************************/
/*                                                       */
/* 設(shè)定顯示位置                                          */
/*                                                       */
/*********************************************************/
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的顯示內(nèi)容
    delay(5);
    lcd_pos(0,0);             //設(shè)置顯示位置為第四行的第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]);//寫數(shù)字
    }
}

void display_cardnum()
{
    unsigned char num;
    //lcd_wcmd(0x01);      //清除LCD的顯示內(nèi)容
    delay(5);
    lcd_pos(1,0);             //設(shè)置顯示位置為第四行的第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]);//寫數(shù)字
    }
}
void display_xiaofeicarddat()//消費
{
    unsigned char num;
    lcd_pos(2,0);             //設(shè)置顯示位置為第四行的第1個字符
    for(num=0;num<6;num++)    //第一行要顯示的11個字符
    {
    lcd_wdat(table5[num]);   
    }
    lcd_pos(2,7);             //設(shè)置顯示位置為第四行的第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);             //設(shè)置顯示位置為第四行的第1個字符
    for(num=0;num<2;num++)    //第一行要顯示的11個字符
    {
    lcd_wdat(table7[num]);   
    }
           //設(shè)置顯示位置為第四行的第1個字符
   
        lcd_pos(3,3);
        LCD_Data(g_ucTempbuf[3]);//寫數(shù)字,余額

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


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

使用道具 舉報

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

使用道具 舉報

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

使用道具 舉報

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

本版積分規(guī)則

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

Powered by 單片機教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 日韩国产在线观看 | 精品一区二区在线观看 | 日韩一| 中国人pornoxxx麻豆 | 国产亚洲第一页 | 亚洲资源站 | 青青久在线视频 | 欧美一级免费看 | 羞羞免费网站 | 日韩av在线免费 | 国产精品视频在线播放 | 国产成人午夜精品影院游乐网 | 久久国产福利 | 国产精品激情 | 国产中文字幕在线观看 | 日韩中文字幕在线 | 午夜精品视频一区 | 国产精品成人在线观看 | 精品视频免费 | 国外成人在线视频网站 | 欧美视频日韩 | www.亚洲一区二区三区 | 成人精品鲁一区一区二区 | 日本午夜视频 | 在线欧美亚洲 | 日韩精品一区二区三区中文字幕 | 国产成人jvid在线播放 | 中文字幕国产一区 | 欧美在线视频不卡 | 天天看天天干 | 国产在线播 | 久久久久九九九女人毛片 | ww亚洲ww亚在线观看 | 一级毛片视频在线 | 一区中文字幕 | 日韩免费视频 | 四虎最新视频 | 天天艹日日干 | 一区二区影院 | 欧美成人精品一区二区三区 | 69av网 |