?? int_read.c
字號(hào):
#include "easy_io.h"
#include "SPCE061A.h"
#include "SPLC501User.h" //包含液晶驅(qū)動(dòng)的頭文件
#include "StrLib.h" //包含字模數(shù)據(jù)頭文件
void delayms(int time); //延時(shí)
int read_data(void); //掃描數(shù)據(jù)
void display(void); //顯示信息
void bar_init(void); //初始化
void intdy(); //歡迎界面
void menu(); //顯示菜單
unsigned char IntNum = 0;//中斷次數(shù)計(jì)數(shù)
unsigned char KeyV;//鍵值
unsigned char Key_UP=0, Shift = 0;//Key_UP是鍵松開(kāi)標(biāo)識(shí),Shift是Shift鍵按下標(biāo)識(shí)
unsigned char DisNum = 0;//顯示用指針
unsigned char BF = 0;//標(biāo)識(shí)是否有字符被收到
int data1[20]; //數(shù)據(jù)數(shù)組
int j=5,k=8,u=1;
int i,data[50];
int n;
unsigned int count = 1;
void main()
{
bar_init();
while(1)
{
if(count==1)
{
intdy(); //歡迎界面
read_data();
menu();
display();
*P_Watchdog_Clear=0x01;
}
else if(count >1)
{
read_data();
menu();
display();
*P_Watchdog_Clear=0x01;
}
*P_Watchdog_Clear=0x01;
}
}
////////////////////////////////////////////////
//void delayms(int time)
//延時(shí)函數(shù)
//time 延時(shí)計(jì)數(shù)
////////////////////////////////////////////////
void delayms(int time)
{
int i,j;
for (i=1;i<time;i++)
for (j=1;j<200;j++)
*P_Watchdog_Clear=0x01;
}
////////////////////////////////////////////////
//void bar_init(void)
//初始化函數(shù)
//
////////////////////////////////////////////////
void bar_init(void)
{
int i,tmp,din; //ioa_0--data; ioa_1---clk
LCD501_Init(0x00); //初始化液晶
Setb(P_IOA_Dir,0,1);
Setb(P_IOB_Dir,2,0);
Setb(P_IOA_Attrib,0,1);
Setb(P_IOB_Attrib,2,0);
Setb(P_IOA_Data,0,1);
Setb(P_IOB_Data,2,1);//input pullup
Setb(P_IOA_Data,0,0);
for (din=1;din<4;din++)
{
tmp=1023; //send 10 ge "1"
for (i=1;i<12;i++)
{
while(( *P_IOB_Data & 0x04))
{
*P_Watchdog_Clear=0x01;
}
*P_IOA_Data=tmp & 0x01;
tmp>>=1;
while(!( *P_IOB_Data & 0x04))
{
*P_Watchdog_Clear=0x01;
}
}
}
Setb(P_IOA_Dir,0,0);
Setb(P_IOA_Data,0,0);
Setb(P_IOA_Attrib,0,1);
Setb(P_IOB_Dir,2,0);
Setb(P_IOB_Data,2,0);//input pullup
Setb(P_IOB_Data,2,1);
}
////////////////////////////////////////////////
//void intdy(void)
///歡迎界面
//
////////////////////////////////////////////////
void intdy(void) //歡迎界面
{
LCD501_Bitmap(0,5,(unsigned int *)encoding_46); //手
LCD501_Bitmap(16,5,(unsigned int *)encoding_47); //持
LCD501_Bitmap(32,5,(unsigned int *)encoding_48); //式
LCD501_Bitmap(48,5,(unsigned int *)encoding_60); //條
LCD501_Bitmap(64,5,(unsigned int *)encoding_61); //碼
LCD501_Bitmap(80,5,(unsigned int *)encoding_49); //掃
LCD501_Bitmap(96,5,(unsigned int *)encoding_50); //描
LCD501_Bitmap(112,5,(unsigned int *)encoding_51); //儀
LCD501_Bitmap(32,25,(unsigned int *)encoding_52); //寧
LCD501_Bitmap(48,25,(unsigned int *)encoding_53); //夏
LCD501_Bitmap(64,25,(unsigned int *)encoding_54); //大
LCD501_Bitmap(80,25,(unsigned int *)encoding_55); //學(xué)
LCD501_Bitmap(32,41,(unsigned int *)encoding_56); //物
LCD501_Bitmap(48,41,(unsigned int *)encoding_57); //電
LCD501_Bitmap(64,41,(unsigned int *)encoding_58); //學(xué)
LCD501_Bitmap(80,41,(unsigned int *)encoding_59); //院
*P_Watchdog_Clear = 0x0001;
}
////////////////////////////////////////////////
//int read_data(void)
///掃描數(shù)據(jù)data并存入data1
//
////////////////////////////////////////////////
int read_data(void)
{
*P_Watchdog_Clear=0x01;
__asm("IRQ OFF");
*P_INT_Ctrl=0x0100;
i=0;
__asm("IRQ ON");
do
{
if (BF)
{
*P_Watchdog_Clear=0x01;
data[i]=KeyV;
if (data[i]==0x0077)
{
i=2;
}
else if (data[i]==0x00aa)
{
i=1;
}
else
i++;
BF=0;
}
else
__asm("IRQ ON"); //開(kāi)中斷
if (KeyV==0x5a)
{
count++;
break;
}
*P_Watchdog_Clear=0x01;
} while(1);
}
////////////////////////////////////////////////
//void display(void)
///顯示。條碼用data1,字符用data
//
////////////////////////////////////////////////
void display(void)
{
if(data[0]==0x0000)
{
for(i=0,j=1;i<13;i++,j+=3)
{
data1[i]=data[j];
}
n=1;
}
else if((data[0]==0x0077||data[0]==0x0000)&&data[1]==0x0000)
{
for(i=0,j=2;i<13;i++,j+=3)
{
data1[i]=data[j];
}
n=2;
}
else if(data[1]==0x00f0)
{
for(i=0,j=0;i<13;i++,j+=3)
{
data1[i]=data[j];
}
n=0;
}
*P_Watchdog_Clear=0x01;
*P_Watchdog_Clear=0x01;
for(i=0,j=42;i<13;i++,j+=6)
{
switch(data1[i])
{
case 0x45: LCD501_PutString(j,6,(unsigned int)"0");break;
case 0x16: LCD501_PutString(j,6,(unsigned int)"1");break;
case 0x1E: LCD501_PutString(j,6,(unsigned int)"2");break;
case 0x26: LCD501_PutString(j,6,(unsigned int)"3");break;
case 0x25: LCD501_PutString(j,6,(unsigned int)"4");break;
case 0x2E: LCD501_PutString(j,6,(unsigned int)"5");break;
case 0x36: LCD501_PutString(j,6,(unsigned int)"6");break;
case 0x3D: LCD501_PutString(j,6,(unsigned int)"7");break;
case 0x3E: LCD501_PutString(j,6,(unsigned int)"8");break;
case 0x46: LCD501_PutString(j,6,(unsigned int)"9");break;
default : *P_Watchdog_Clear=0x01; break;
}
}
*P_Watchdog_Clear=0x01;
if(data[n]==0x36&&data[n+3]==0x46&&data[n+6]==0x26||data[n]==0x36&&data[n+3]==0x46&&data[n+6]==0x45||data[n]==0x36&&data[n+3]==0x46&&data[n+6]==0x25
||data[n]==0x46)
{
LCD501_Bitmap(60,20,(unsigned int *)encoding_34); //中
LCD501_Bitmap(75,20,(unsigned int *)encoding_25); //國(guó)
*P_Watchdog_Clear = 0x0001;
}
*P_Watchdog_Clear=0x01;
if(data[n]==0x36&&data[n+3]==0x46&&data[n+6]==0x26&&data[n+9]==0x46&&data[n+12]==0x46&&data[n+15]==0x46&&data[n+18]==0x26&&data[n+21]==0x3d)
{
LCD501_Bitmap(60,35,(unsigned int *)encoding_16); //康
LCD501_Bitmap(75,35,(unsigned int *)encoding_17); //師
LCD501_Bitmap(90,35,(unsigned int *)encoding_10); //傅
*P_Watchdog_Clear = 0x0001;
}
*P_Watchdog_Clear=0x01;
if(data[n]==0x36&&data[n+3]==0x46&&data[n+6]==0x45&&data[n+9]==0x1e&&data[n+12]==0x45&&data[n+15]==0x3e&&data[n+18]==0x26)
{
LCD501_Bitmap(60,35,(unsigned int *)encoding_35); //娃
LCD501_Bitmap(75,35,(unsigned int *)encoding_36); //哈
LCD501_Bitmap(90,35,(unsigned int *)encoding_36); //哈
*P_Watchdog_Clear = 0x0001;
}
*P_Watchdog_Clear=0x01;
if(data[n]==0x36&&data[n+3]==0x46&&data[n+6]==0x25&&data[n+9]==0x25&&data[n+12]==0x3e&&data[n+15]==0x46&&data[n+18]==0x25&&data[n+21]==0x45)
{
LCD501_Bitmap(60,35,(unsigned int *)encoding_41); //達(dá)
LCD501_Bitmap(75,35,(unsigned int *)encoding_42); //利
LCD501_Bitmap(90,35,(unsigned int *)encoding_43); //園
*P_Watchdog_Clear = 0x0001;
}
*P_Watchdog_Clear=0x01;
if(data[n+24]==0x46&&data[n+27]==0x3e&&data[n+30]==0x25&&data[n+33]==0x26)
{
LCD501_Bitmap(60,50,(unsigned int *)encoding_12); //茉
LCD501_Bitmap(75,50,(unsigned int *)encoding_13); //莉
LCD501_Bitmap(90,50,(unsigned int *)encoding_21); //清
LCD501_Bitmap(105,50,(unsigned int *)encoding_110); //茶
*P_Watchdog_Clear = 0x0001;
}
if(data[n+24]==0x45&&data[n+27]==0x2e&&data[n+30]==0x16&&data[n+33]==0x36)
{
LCD501_Bitmap(60,50,(unsigned int *)encoding_11); //綠
LCD501_Bitmap(75,50,(unsigned int *)encoding_110); //茶
*P_Watchdog_Clear = 0x0001;
}
if(data[n+24]==0x46&&data[n+27]==0x26&&data[n+30]==0x3d&&data[n+33]==0x46)
{
LCD501_Bitmap(60,50,(unsigned int *)encoding_12); //茉
LCD501_Bitmap(75,50,(unsigned int *)encoding_13); //莉
LCD501_Bitmap(90,50,(unsigned int *)encoding_19); //蜜
LCD501_Bitmap(105,50,(unsigned int *)encoding_110); //茶
*P_Watchdog_Clear = 0x0001;
}
if(data[n+21]==0x3e&&data[n+24]==0x3e&&data[n+27]==0x26&&data[n+30]==0x45&&data[n+33]==0x25)
{
LCD501_Bitmap(60,50,(unsigned int *)encoding_37); //橙
LCD501_Bitmap(75,50,(unsigned int *)encoding_38); //汁
LCD501_Bitmap(90,50,(unsigned int *)encoding_39); //飲
LCD501_Bitmap(105,50,(unsigned int *)encoding_40); //品
*P_Watchdog_Clear = 0x0001;
}
if(data[n+24]==0x45&&data[n+27]==0x45&&data[n+30]==0x16&&data[n+33]==0x16)
{
LCD501_Bitmap(60,50,(unsigned int *)encoding_44); //青
LCD501_Bitmap(75,50,(unsigned int *)encoding_45); //梅
LCD501_Bitmap(90,50,(unsigned int *)encoding_11); //綠
LCD501_Bitmap(105,50,(unsigned int *)encoding_110); //茶
*P_Watchdog_Clear = 0x0001;
}
if(data[n]==0x46)
{
LCD501_Bitmap(60,35,(unsigned int *)encoding_62); //空格
LCD501_Bitmap(75,35,(unsigned int *)encoding_62); //空格
LCD501_Bitmap(90,35,(unsigned int *)encoding_62); //空格
LCD501_Bitmap(60,50,(unsigned int *)encoding_62); //空格
LCD501_Bitmap(75,50,(unsigned int *)encoding_62); //空格
LCD501_Bitmap(90,50,(unsigned int *)encoding_62); //空格
LCD501_Bitmap(105,50,(unsigned int *)encoding_62); //空格
*P_Watchdog_Clear = 0x0001;
}
KeyV=0;
}
////////////////////////////////////////////////
//void menu(void)
///顯示。條碼用data1,字符用data
//
////////////////////////////////////////////////
void menu(void)
{
LCD501_ClrScreen(0);
LCD501_Rectangle(0,0,127,63,PAINT_HOLLOW);
*P_Watchdog_Clear = 0x0001;
LCD501_Bitmap(2,4,(unsigned int *)encoding_22); //條
LCD501_Bitmap(13,4,(unsigned int *)encoding_23); //形
LCD501_Bitmap(24,4,(unsigned int *)encoding_24); //碼
LCD501_Bitmap(2,20,(unsigned int *)encoding_25); //國(guó)
LCD501_Bitmap(35,20,(unsigned int *)encoding_26); //家
LCD501_Bitmap(47,16,(unsigned int *)encoding_32); //:
LCD501_Bitmap(2,35,(unsigned int *)encoding_27); //廠
LCD501_Bitmap(35,35,(unsigned int *)encoding_28); //商
LCD501_Bitmap(47,32,(unsigned int *)encoding_32); //:
LCD501_Bitmap(2,50,(unsigned int *)encoding_28); //商
LCD501_Bitmap(13,50,(unsigned int *)encoding_29); //品
LCD501_Bitmap(24,50,(unsigned int *)encoding_30); //項(xiàng)
LCD501_Bitmap(35,50,(unsigned int *)encoding_31); //目
LCD501_Bitmap(47,46,(unsigned int *)encoding_32); //:
LCD501_FontSet(0);*P_Watchdog_Clear=0x01;
}
?? 快捷鍵說(shuō)明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -