俄罗斯方块c的液晶设计

上传人:dus****log 文档编号:75942658 上传时间:2022-04-17 格式:DOCX 页数:19 大小:16.97KB
收藏 版权申诉 举报 下载
俄罗斯方块c的液晶设计_第1页
第1页 / 共19页
俄罗斯方块c的液晶设计_第2页
第2页 / 共19页
俄罗斯方块c的液晶设计_第3页
第3页 / 共19页
资源描述:

《俄罗斯方块c的液晶设计》由会员分享,可在线阅读,更多相关《俄罗斯方块c的液晶设计(19页珍藏版)》请在装配图网上搜索。

1、俄罗斯方块设计代码如下:#include reg51.h #include 12864.h #define uchar unsigned char #define uint unsigned int static unsigned long Seed = 1; #define A 48271L #define M 2147483647L #define Q (M / A) #define R (M % A) sbit change=P15; sbit xia=P33; sbit zuo=P14; sbit you=P16; unsigned int idata num19+2= 0xfff,/

2、 第 1 行,最下面0x801,0x801,0x801,0x801,0x801,0x801,0x801,0x801,0x801,0x801, 0x801,0x801,0x801,0x801,0x801,0x801,0x801,0x801,0x801,/ 第 2 行到第 20 行共 19 行0xfff/ 第 21 行,最上面;/ 定义共 21 行,其中 num0为下墙壁行, num20 为上墙壁行 ,每行 12 格,最左一格为左墙壁列,最右一格为右墙壁列unsigned char code Block282= /* * 口口口口口口* 口口口口* 口口口口口口*/ 0x88,0xc0,0xe8,

3、0x00,0x62,0x20,0x02,0xe0, /* * 口口口口口口* 口口口口* 口口口口口口*/ 0x22,0x60,0x08,0xe0,0xc8,0x80,0xe2,0x00, /* * 口* 口口口口* 口口口*/ 0x8c,0x40,0x6c,0x00,0x8c,0x40,0x6c,0x00, /* * 口口口* 口口口口* 口*/ 0x4c,0x80,0xc6,0x00,0x4c,0x80,0xc6,0x00, /* * 口口* 口口口口口口口口* 口口口口口口*/ 0x04,0xe0,0x8c,0x80,0xe4,0x00,0x26,0x20, /*口* 口* 口口口口口*

4、 口*/ 0x44,0x44,0x0f,0x00,0x44,0x44,0x0f,0x00, /* * 口口* 口口*/ 0x06,0x60,0x06,0x60,0x06,0x60,0x06,0x60 ;uchar code start=0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x

5、00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0C,0x08,0x00,0x3F,0xFF,0x00,0x22,0x00,0x00,0x02,0x00,0x00,0x41,0x00,0x00,0x00,0x08,0x6A,0x00,0x22,0x21,0x00,0x22,0x3F,0x00,0x01,0x00,0x00,0x41,0x00,0x00,0x00,0x09,0xC9,0x00,0x22,0x21,0x00,0x22,0xE0,0x00,0x01,0x00,0x00,0x41,0x00,0x00,0x

6、00,0x10,0x89,0x80,0x22,0x21,0x00,0xFF,0x20,0x00,0xFF,0xFF,0x00,0x41,0x08,0x00,0x00,0x10,0x88,0x00,0x22,0x21,0x00,0x22,0x20,0x00,0x02,0x00,0x00,0x47,0xF8,0x00,0x00,0x37,0xFF,0xC0,0x3F,0xFF,0x00,0x3E,0x20,0x00,0x02,0x00,0x03,0xF9,0x08,0x00,0x00,0x30,0x88,0x00,0x21,0x80,0x00,0x22,0x3F,0x00,0x02,0x00,0x

7、00,0x41,0x08,0x00,0x00,0x50,0x88,0x80,0x03,0x44,0x00,0x22,0x26,0x00,0x07,0xF8,0x00,0x41,0x08,0x00,0x00,0x10,0xA9,0x00,0x06,0x3C,0x00,0x3E,0x22,0x00,0x04,0x18,0x00,0x41,0x08,0x00,0x00,0x10,0xC9,0x00,0x0C,0x08,0x00,0x22,0x22,0x00,0x04,0x10,0x00,0x5F,0xFE,0x00,0x00,0x17,0x86,0x00,0x12,0x18,0x00,0xFF,0x

8、A2,0x00,0x0C,0x10,0x00,0x41,0x40,0x00,0x00,0x10,0x84,0x00,0x01,0x30,0x00,0x00,0x22,0x00,0x08,0x10,0x00,0x79,0x40,0x00,0x00,0x10,0x8C,0x40,0x00,0x60,0x00,0x12,0x42,0x00,0x10,0x10,0x01,0xC2,0x20,0x00,0x00,0x10,0x92,0x40,0x00,0x80,0x00,0x21,0x42,0x00,0x10,0x10,0x03,0x04,0x10,0x00,0x00,0x10,0x81,0xC0,0x

9、07,0x00,0x00,0x40,0x82,0x00,0x61,0x30,0x00,0x08,0x08,0x00,0x00,0x11,0x80,0xC0,0x38,0x00,0x00,0x81,0x02,0x00,0x80,0xE0,0x00,0x30,0x06,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x40,0x00,0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x

10、00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1F,0xC7,0xF0,0x0F,0xE3,0xF8,0xFE,0x00,0xFE,0x3F,0x8F,0xE0,0x00,0x07,0xF1,0xFC,0x1F,0xC7,0xF0,0x0F,0xE3,0xF8,0xFE,0x00,0xFE,0x3F,0x8F,0xE0,0x

11、00,0x07,0xF1,0xFC,0x1F,0xC7,0xF0,0x0F,0xE3,0xF8,0xFE,0x00,0xFE,0x3F,0x8F,0xE0,0x00,0x07,0xF1,0xFC,0x1F,0xC7,0xF0,0x0F,0xE3,0xF8,0xFE,0x00,0xFE,0x3F,0x8F,0xE0,0x00,0x07,0xF1,0xFC,0x1F,0xC7,0xF0,0x0F,0xE3,0xF8,0xFE,0x00,0xFE,0x3F,0x8F,0xE0,0x00,0x07,0xF1,0xFC,0x1F,0xC7,0xF0,0x0F,0xE3,0xF8,0xFE,0x00,0x

12、FE,0x3F,0x8F,0xE0,0x00,0x07,0xF1,0xFC,0x1F,0xC7,0xF0,0x0F,0xE3,0xF8,0xFE,0x00,0xFE,0x3F,0x8F,0xE0,0x00,0x07,0xF1,0xFC,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x

13、00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0xE7,0xF0,0x00,0x1F,0xC7,0xF0,0x00,0x00,0x00,0xFE,0x00,0x00,0x3F,0x80,0x00,0x0F,0xE7,0xF0,0x00,0x1F,0xC7,0xF0,0x00,0x00,0x00,0xFE,0x00,0x00,0x3F,0x80,0x00,0x0F,0xE7,0xF0,0x00,0x1F,0xC7,0xF0,0x00,0x00,0x00,0xFE,0x00,0x00,0x3F,0x80,0x00,0x0F,0xE7,0xF0,0x00,0x

14、1F,0xC7,0xF0,0x00,0x00,0x00,0xFE,0x00,0x00,0x3F,0x80,0x00,0x0F,0xE7,0xF0,0x00,0x1F,0xC7,0xF0,0x00,0x00,0x00,0xFE,0x00,0x00,0x3F,0x80,0x00,0x0F,0xE7,0xF0,0x00,0x1F,0xC7,0xF0,0x00,0x00,0x00,0xFE,0x00,0x00,0x3F,0x80,0x00,0x0F,0xE7,0xF0,0x00,0x1F,0xC7,0xF0,0x00,0x00,0x00,0xFE,0x00,0x00,0x3F,0x80,0x00,0x

15、00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x

16、00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x00,0x07,0xFF,0x80,0xFF,0x80,0x08,0x40,0x00,0x80,0x40,0x22,0x00,0x00,0x00,0x04,0x00,0x00,0x40,0x00,0x00,0x80,0x08,0x80,0x04,0x80,0xC0,0x26,0x00,0x00,0x00,0x08,0x10,0x00,0x80,0x00,0x20,0x80,0x11,0x0C,0x04,0x82,0x40,0x44,0x18,0x00,0x00,0x30,0x08,0x01,0x

17、FE,0x00,0x20,0x80,0x13,0xFE,0x0F,0xF2,0x40,0x47,0xF8,0x00,0x00,0x3F,0xFC,0x06,0x82,0x00,0x20,0x80,0x30,0x02,0x08,0x82,0x40,0xC9,0x00,0x00,0x00,0x01,0x02,0x08,0xFE,0x00,0x20,0x80,0x31,0x04,0x0F,0xFA,0x40,0xD9,0x00,0x00,0x00,0x11,0x00,0x00,0x00,0x00,0x60,0x90,0x52,0x42,0x00,0x82,0x41,0x51,0xF0,0x00,0x

18、00,0x37,0xE0,0x0F,0xDF,0xC0,0x7F,0xF0,0x14,0xF8,0x0F,0xF2,0x40,0x41,0x00,0x00,0x00,0x21,0x00,0x02,0x04,0x00,0x00,0x10,0x11,0x08,0x08,0x92,0x40,0x41,0x00,0x00,0x00,0x41,0x00,0x04,0x04,0x00,0x01,0x90,0x12,0x98,0x08,0x92,0x40,0x41,0x00,0x00,0x00,0xBF,0xFC,0x07,0xCF,0x81,0xFF,0x90,0x14,0x50,0x08,0x92,0x

19、40,0x41,0xF8,0x00,0x00,0x01,0x00,0x0C,0x58,0x80,0x00,0x30,0x10,0x20,0x08,0xB0,0x40,0x41,0x00,0x00,0x00,0x01,0x00,0x04,0x48,0x80,0x00,0x20,0x10,0x50,0x08,0xA0,0x40,0x41,0x00,0x00,0x00,0x01,0x00,0x07,0xCF,0x80,0x01,0xE0,0x11,0x8E,0x00,0x81,0xC0,0x41,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0xC0,0x

20、00,0x00,0x00,0x00,0x80,0x41,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x

21、00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,; #define PASSSCORE 20 struct Jimu unsigned int dat; char x; unsigned char y; unsigned char type; unsigned char change; Sign3;/ 积木结构体unsigned char SysFlag=0; #def

22、ine NEWSIGNFLAG 0 #define DEADFLAG 1 #define PAUSEFLAG 2 unsigned char Score=0; unsigned char Level=1; unsigned char DelayCnt=5; /*/ #define N 25 /* 伪随机数发生器*/ double Random(void) long TmpSeed; TmpSeed=A*(Seed%Q)-R*(Seed/Q); if(TmpSeed=0) Seed=TmpSeed; else Seed=TmpSeed+M; return (double)Seed/M; /* 为

23、伪随机数发生器播种*/ void InitRandom(unsigned long InitVal) Seed=InitVal; /延时子程序void Delay(unsigned int t) unsigned int i,j; for(i=0;it;i+) for(j=0;j10;j+); /* 初始化 MPU */ void InitCpu(void) TMOD=0x0; TH0=0; TL0=0; TR0=1; ET0=1; EX1=1; EA=1; TCON|=0x04; /* welcome 游戏选择界面/*/ void welcome() DisplayImage(start);

24、while(change=1); /* 俄罗斯方块部分/* 画墙壁,初始化界面*/ void DrawBoard(void) unsigned char n; for(n=0;n12;n+) Lcd_Rectangle(3*n,0,3*n+2,2,1); Lcd_Rectangle(3*n,60,3*n+2,62,1); for(n=0;n20;n+) Lcd_Rectangle(0,3*n,2,3*n+2,1); Lcd_Rectangle(33,3*n,35,3*n+2,1); Lcd_WriteStr(4,0,下个方块); Lcd_WriteStr(3,2,分);Lcd_WriteCmd

25、(0x8c);Lcd_WriteData(0xca);Lcd_WriteData(0xfd);Lcd_WriteStr(5,2,:); Lcd_WriteStr(3,3,级别:); /* 游戏结束处理*/ void GameOver(void) Lcd_WriteStr(3,1, );if(SysFlag&(1DEADFLAG)!=0) Lcd_WriteStr(3,1,失败); Score=0;else /Lcd_WriteStr(3,1,升级啦);Lcd_WriteStr(3,1,成功!);Level+;Score=0;while(change=1); unsigned int code

26、MaskTab16= 0x0001,0x0002,0x0004,0x0008,0x0010,0x0020,0x0040,0x0080, 0x0100,0x0200,0x0400,0x0800,0x1000,0x2000,0x4000,0x8000 ; /* 根据积木图标左下坐标 X,Y 来画出积木图标*/ void DrawSign(struct Jimu Temp,unsigned char DrawMode) unsigned char m,n; for(m=0;m4;m+) for(n=0;n4;n+) if(Temp.dat&MaskTab4*m+n)!=0) Lcd_Rectangl

27、e(Temp.x+n*3,Temp.y-2-3*m,Temp.x+n*3+2,Temp.y-3*m,DrawMode); /* 将积木图标值融入 num 数据中也即把积木图标固定,无法再下降*/ FixSign(void) unsigned char m,n; for(m=0;m4;m+)/ 行循环for(n=0;n4;n+)/ 列循环 if(Sign0.dat&MaskTab4*m+n)!=0) num20-(Sign0.y-2)/3+m|=MaskTab11-Sign0.x/3-n; /* 判断积木图标中方块是否与障碍方块重合*/ unsigned char CheckIf(void) u

28、nsigned char m,n; for(m=0;m4;m+)/ 行循环for(n=0;n3) Sign1.change=0; i=Sign1.type*4+Sign1.change; Temp=(unsigned int)Blocki0=20)/ 防止越过了下边界Temp=1; else Temp=20-Temp; for(n=Temp+3;n=Temp;n-)/ 积木图标的最顶行开始寻找满行比较有利于运算 if(numn=0xfff) Flag=1; for(m=n+1;m=19;m+) numm-1=numm; numm=0x801; Score+;/每找到一个满行,则分数加 1 if

29、(Flag)/ 为加速而设置并判断的标志,有已固定的积木有满格消行变化则重画积木界面 for(m=Temp;m=19;m+)/ 为加速,不必要重第一行重画起,只需要从积木图标最下行开始往上的重画for(n=1;n=10;n+) if(numm&MaskTabn)=0) if(Lcd_ReadPixel(30-(n-1)*3,57-(m-1)*3)!=0)/ 为加速而做的读象素操作 Lcd_Rectangle(30-(n-1)*3,57-(m-1)*3,30-(n-1)*3+2,57-(m-1)*3+2,0); else if(Lcd_ReadPixel(30-(n-1)*3,57-(m-1)*

30、3)=0)/ 为加速而做的读象素操作 Lcd_Rectangle(30-(n-1)*3,57-(m-1)*3,30-(n-1)*3+2,57-(m-1)*3+2,1); /* 随机产生一个积木图标放到预产生区域并显示出来*/ void CreatSign(void) unsigned char n; unsigned int Temp; DrawSign(Sign2,0);/ 先清除n=Random()*28; Temp=(unsigned int)Blockn08; Temp=Temp|Blockn1; Sign2.dat=Temp; Sign2.x=45; Sign2.y=4*3+2; S

31、ign2.type=n/4; Sign2.change=n%4; DrawSign(Sign2,1);/ 后画出 void PrintScore(void) unsigned char Str3; Str0=(Score/10)|0x30; Str1=(Score%10)|0x30; Str2=0; Lcd_WriteStr(6,2,Str); void PrintLevel(void) unsigned char Str3; Str0=(Level/10)|0x30; Str1=(Level%10)|0x30; Str2=0; Lcd_WriteStr(6,3,Str); /* 游戏的具体过

32、程,也是俄罗斯方块算法的关键部分*/ void GamePlay(void) unsigned char m,n; unsigned int Temp; SysFlag|=1NEWSIGNFLAG;/ 刚开始初始化为需要产生新的积木图标InitRandom(TL0); Lcd_WriteStr(3,1,游戏中.); PrintScore(); PrintLevel(); CreatSign(); while(1) if(SysFlag&(1NEWSIGNFLAG)=1)/ 判是否需要产生新的积木图标 SysFlag&=(1NEWSIGNFLAG); Sign0=Sign2; CreatSign

33、(); Sign0.x=12; Sign0.y=14; for(m=0;m4;m+)/ 行循环 for(n=0;n4;n+)/ 列循环 if(Sign0.dat&MaskTab15-m*4-n)=0) break; if(n=4) Sign0.y-=3; / 将积木图标出现置顶for(m=0;m4;m+)/ 行循环for(n=0;n4;n+)/ 列循环 if(Sign0.dat&MaskTab4*m+n)!=0) if(num20-(Sign0.y-2)/3+m&MaskTab11-Sign0.x/3-n)!=0) SysFlag|=1DEADFLAG; if(SysFlag&(13) Sig

34、n0.change=0; m=Sign0.type*4+Sign0.change; Temp=(unsigned int)Blockm08; Temp=Temp|Blockm1; Sign0.dat=Temp; DrawSign(Sign0,1); if(SysFlag&(1=2*(11-Level) DelayCnt=0; if(CheckIfDown()/ 判断是否能继续下降一格 DrawSign(Sign0,0); Sign0.y+=3; DrawSign(Sign0,1); else FixSign(); DelFull(); PrintScore(); if(Score=PASSSC

35、ORE) SysFlag&=(1DEADFLAG); break;/跳出玩游戏过程 SysFlag|=1NEWSIGNFLAG;/ 新的积木图标产生标志置 1 Delay(200); void Main() InitCpu();/ 初始化 CPU Lcd_Reset(); / 初始化 LCD 屏Lcd_Clear(0);/ 清屏welcome(); / 开机画面Lcd_Clear(0);/ 清屏while(1) DrawBoard();/ 画界面GamePlay();/玩游戏GameOver();/游戏结束Lcd_Reset(); / 初始化 LCD 屏Lcd_Clear(0);/ 清屏128

36、64的头文件代码:#ifndef _12864_H_#define _12864_H_#include sbit RS=P20; / 并行的指令 /数据选择信号 , H 数据 , L 命令sbit RW=P21; / 并行读写选择信号 , H 读, L 写sbit E=P22; / 并行使能端 , H 有效, L 无效sbit PSB=P23; / 并/串接口选择 , H 并,L 串sbit RET=P24; / 复位 , L 有效#define LcdData P0 unsigned char Lcd_CheckBusy(void) unsigned char Busy; LcdData=0

37、xff; RS=0; RW=1; E=1; _nop_(); Busy=LcdData&0x80; E=0; return Busy; /* 向 LCD 写入字节数据*/ void Lcd_WriteData(unsigned char Data) while(Lcd_CheckBusy(); RS=1; RW=0; E=0; _nop_(); _nop_(); LcdData=Data; E=1; _nop_(); _nop_(); E=0; /* 从 LCD 中读出数据*/ unsigned char Lcd_ReadData(void) unsigned char Temp; while

38、(Lcd_CheckBusy(); LcdData=0xff; RS=1; RW=1; E=1; _nop_(); Temp=LcdData; E=0; return Temp; /* 想 LCD 中写入指令代码*/ void Lcd_WriteCmd(unsigned char CmdCode) while(Lcd_CheckBusy(); RS=0; RW=0; E=0; _nop_(); _nop_(); LcdData=CmdCode; _nop_(); _nop_(); E=1; _nop_(); _nop_(); E=0; /* 向 LCD 指定起始位置写入一个字符串*/ void

39、 Lcd_WriteStr(unsigned char x,unsigned char y,unsigned char *Str) if(y3)|(x7) return;/如果指定位置不在显示区域内,则不做任何写入直接返回EA=0; switch(y) case 0: Lcd_WriteCmd(0x80+x); break; case 1: Lcd_WriteCmd(0x90+x); break; case 2: Lcd_WriteCmd(0x88+x); break; case 3: Lcd_WriteCmd(0x98+x); break; while(*Str0) Lcd_WriteDat

40、a(*Str); Str+; EA=1; /* 为加速逻辑运算而设置的掩码表,这是以牺牲空间而换取时间的办法*/ code unsigned int LcdMaskTab=0x0001,0x0002,0x0004,0x0008,0x0010,0x0020,0x0040,0x0080, 0x0100,0x0200,0x0400,0x0800,0x1000,0x2000,0x4000,0x8000; /* 向 LCD 指定坐标写入一个象素 ,象素颜色有两种, 0 代表白(无显示),1 代表黑(有显示)*/ void Lcd_PutPixel(unsigned char x,unsigned cha

41、r y,unsigned char Color) unsigned char z,w; unsigned int Temp; if(x=128|y=64) return; Color=Color%2; w=15-x%16;/ 确定对这个字的第多少位进行操作x=x/16;/ 确定为一行上的第几字if(y32) / 如果为上页z=0x80; else /否则如果为下页z=0x88; y=y%32; EA=0; Lcd_WriteCmd(0x36); Lcd_WriteCmd(y+0x80); /行地址Lcd_WriteCmd(x+z); /列地址Temp=Lcd_ReadData();/ 先空读一

42、次Temp=(unsigned int)Lcd_ReadData()8);/ 先写入高 8 位,再写入低 8 位Lcd_WriteData(Temp&0x00ff); Lcd_WriteCmd(0x30); EA=1; /* 从 LCD 指定坐标读取象素颜色值*/ unsigned char Lcd_ReadPixel(unsigned char x,unsigned char y) unsigned char z,w; unsigned int Temp; if(x=128|y=64) return 0; w=15-x%16;/ 确定对这个字的第多少位进行操作x=x/16;/ 确定为一行上的

43、第几字if(y32) / 如果为上页z=0x80; else /否则如果为下页z=0x88; y=y%32; EA=0; Lcd_WriteCmd(0x36); Lcd_WriteCmd(y+0x80); /行地址Lcd_WriteCmd(x+z); /列地址Temp=Lcd_ReadData();/ 先空读一次Temp=(unsigned int)Lcd_ReadData()8;/ 再读出高 8 位Temp|=(unsigned int)Lcd_ReadData();/ 再读出低 8 位EA=1; if(Temp&LcdMaskTabw)=0) return 0; else return 1

44、; /* 向 LCD 指定位置画一条长度为 Length 的指定颜色的水平线*/ void Lcd_HoriLine(unsigned char x,unsigned char y,unsigned char Length,unsigned char Color) unsigned char i; if(Length=0) return; for(i=0;iLength;i+) Lcd_PutPixel(x+i,y,Color); /* 向 LCD 指定位置画一条长度为 Length 的指定颜色的垂直线*/ void Lcd_VertLine(unsigned char x,unsigned

45、char y,unsigned char Length,unsigned char Color) unsigned char i; if(Length=0) return; for(i=0;ix1) Temp=x0; x0=x1; x1=Temp; if(y0y1) Temp=y0; y0=y1; y1=Temp; Lcd_VertLine(x0,y0,y1-y0+1,Color); Lcd_VertLine(x1,y0,y1-y0+1,Color); Lcd_HoriLine(x0,y0,x1-x0+1,Color); Lcd_HoriLine(x0,y1,x1-x0+1,Color); /

46、* 清除 Lcd 全屏,如果清除模式 Mode 为 0,则为全屏清除为颜色 0(无任何显示)否则为全屏清除为颜色 1(全屏填充显示 ) */ void Lcd_Clear(unsigned char Mode) unsigned char x,y,ii; unsigned char Temp; if(Mode%2=0) Temp=0x00; else Temp=0xff; Lcd_WriteCmd(0x36);/ 扩充指令绘图显示for(ii=0;ii9;ii+=8) for(y=0;y0x20;y+) for(x=0;x8;x+) EA=0; Lcd_WriteCmd(y+0x80); /行地址Lcd_WriteCmd(x+0x80+ii); /列地址Lcd_WriteData(Temp); / 写数据 D15D8 Lcd

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!