#include <reg52.h>
#include<stdio.h>
#define uchar unsigned char
#define uint unsigned int
//全局運算變量
uint Speed = 40;
uint width = 12;
uint Factflux = 80;
uint Wantflux = 80;
bit Setwidth = 0;
bit Setflux = 0;
uchar Numcount = 0;
uchar Keynum;
sbit E=P3^0;
sbit RST=P0^3;
sbit RW=P0^4;
sbit RS=P0^5;
sbit L=P0^6;
sbit R=P0^7;
sbit Busy=P2^7;
//字模
uchar code Shi[]={/*實 CCAB5 */
0x00,0x10,0x0C,0x04,0x4C,0xB4,0x94,0x05,
0xF6,0x04,0x04,0x04,0x14,0x0C,0x04,0x00,
0x00,0x82,0x82,0x42,0x42,0x23,0x12,0x0A,
0x07,0x0A,0x12,0xE2,0x42,0x02,0x02,0x00}
//函數(shù)聲明
void Delay(uint m);
void Checkbusy(void);
void Sdata(uchar ddata);
void Scmd(uchar command);
void Init(void);
void Displayword(uchar page,row,uchar code *word,uint lengh);
void Displaynum (uchar page,row,uchar code *num,uint lengh);
//函數(shù)編程
void Delay(uint m)
{ uint i,j;
for(i=0;i<m;i++)
for(j=0;j<109;j++)
_nop_();
}
void Checkbusy(void)
{
E=1;
RS=0;
RW=1;
P2=0xff;
while(!busy);
}
void Sdata(uchar ddata )
{
Checkbusy();
RS=1;
RW=0;
P2=ddata;
E=1;
E=0;
}
void Scmd(uchar command)
{
Checkbusy():
RS=0;
RW=0;
P2=command;
E=1;
E=1;
}
void Init(void)
{
RST=0;
Delay(150);
RST=1;
Delay(100);
L=1;
R=1;
Scmd(0x3f);
Scmd(0xc0);
Scmd(0x80);
Scmd(0x40);
}
void Displayword(uchar page,row,*word,uint length)
{
uchar i,j;
L=1;
R=0;
Wcmd(page);
Wcmd(row);
for(i=0;i<length/2;i++)
Sdata(word);
Scmd(page+1);
Wcmd(row);
for(j=length/2;j<length;j++)
Sdata(word[j]);
}
void Displaynum(uchar page,row,*num,uint length)
{
uchar i,j;
L=0;
R=1;
Wcmd(page);
Wcmd(row);
for(i=0;i<length/2;i++)
Sdata(num);
Scmd(page+1);
Wcmd(row);
for(j=length/2;j<length;j++)
Sdata(num[j]);
}
void DisplayWantflux(void)
{
Displayword(0xb8,0x40,She[],32);
Displayword(0xb8,0x50,Ding[],32);
Displayword(0xb8,0x60,Liu[],32);
Displayword(0xb8,0x70,Liang[],32);
}
void DisplayFactflux(void)
{
Displayword(0xba,0x40,Shi[],32);
Displayword(0xba,0x50,Ji[],32);
Displayword(0xba,0x60,Liu[],32);
Displayword(0xba,0x70,Liang[],32);
}
void DisplayWidth(void)
{
Displayword(0xbc,0x60,Fu[],32);
Displayword(0xbc,0x70,Kuan[],32);
}
void DisplaySpeed(void)
{
Displayword(0xbe,0x60,Che[],32);
Displayword(0xbe,0x70,Su[],32);
}
void Display80(void)
{
Displaynum(0xb8,0x40,N8[],16);
Displaynum(0xb8,0x48,N0[],16);
}
void Display80_(void)
{
Displaynum(0xba,0x40,N8[],16);
Displaynum(0xba,0x48,N0[],16);
}
void Display12(void)
{
Displaynum(0xbc,0x40,N1[],16);
Displaynum(0xbc,0x48,N2[],16);
}
void Display10(void)
{
Displaynum(0xbe,0x40,N1[],16);
Displaynum(0xbe,0x48,N0[],16);
}
void DisplayDanwei(void)
{
Displaynum(0xb8,0x60,LPMU[],32);
Displaynum(0xba,0x60,LPMU[],32);
Displaynum(0xbc,0x60,M[],32);
Displaynum(0xbe,0x60,MPS[],32);
main()
{
Init(void);
while(1)
{
void DisplayWantflux(void);
void DisplayFactflux(void);
void DisplayWidth(void);
void DisplaySpeed(void);
void Display80(void);
void Display12(void);
void DisplayDanwei(void);
}
還有一些字模沒有在這上面打出。
在Keil上編譯時,出現(xiàn):error C141:syntax error near 'unsigned'
error C141:syntax error near 'void'
errorC231:'_Delay':redefinition'
這是怎么回事! 幫幫忙吧!
歡迎光臨 (http://www.torrancerestoration.com/bbs/) | Powered by Discuz! X3.1 |