电脑桌面
添加小米粒文库到电脑桌面
安装后可以在桌面快捷访问

12864液晶画点和画任意两点间直线原理VIP免费

12864液晶画点和画任意两点间直线原理_第1页
1/6
12864液晶画点和画任意两点间直线原理_第2页
2/6
12864液晶画点和画任意两点间直线原理_第3页
3/6
12864 液晶画点和画任意两点间直线原理、算法及程序原码 12864 液晶画点和画任意直线的原理和算法 程序原码经验证可行 12864 实际上是 256x64 二维显示空间,整个液晶屏分上下两个半屏。整个屏一共有 256 列,64 行。可以把它分成 16 大列,每一大列包含 16 列。图形 RAM 的起始址址为 0x80,设置读或写的地址时,要先写 Y 坐标,再写 X 坐标。要使用画图功能,就要设置扩允指令集。 画点原理:先确定坐标->读出数据->修改数据->数据写回原处。 程序原码: //画点函数 void Draw_Point(uchar x,uchar y,uchar color) { uchar row,tier,row_bit; uchar ReadOldH,ReadOldL; tier=x>>4; //把 256 列分成 16 大列,每大列包含 16 列 row_bit=x&0x0f; //计算所给坐标在某一大列中的哪一列 if(y<32) //分上下半屏显示 row=y; //上半屏 else { row=y-32; //下半屏 tier+=8; } WriteCommand(0x34); //8Bit 扩充指令集,即使是 36H 也要写两次 WriteCommand(0x36); //绘图 ON,基本指令集里面 36H 不能开绘图 WriteCommand(0x80+row); // 行位置 WriteCommand(0x80+tier); // 列位置 ReadData(); ReadOldH=ReadData(); //某大列的前8 列数据,低位在前,高位在后 ReadOldL=ReadData(); //某大列的后8 列数据 if( row_bit < 8 ) //修改读出的数据 { switch( color) { case 0 : ReadOldH &=( ~( 0x01 << ( 7 - row_bit ))) ; break ; case 1 : ReadOldH |= ( 0x01 << ( 7 - row_bit )) ; break ; case 2 : ReadOldH ^= ( 0x01 << ( 7 - row_bit )) ; break ; default : break ; } } else { switch(color) { case 0 : ReadOldL &= (~( 0x01 << ( 15 - row_bit ))) ; break ; case 1 : ReadOldL |= ( 0x01 << ( 15 - row_bit )) ; break ; case 2 : ReadOldL ^= ( 0x01 << ( 15 - row_bit )) ; break ; default : break ; } } WriteCommand(0x80+row); // 行位置 WriteCommand(0x80+tier); // 列位置 WriteData( ReadOldH ) ; //把修改后的数据写回原地址 WriteData( ReadOldL ) ; } 画任意两点间直线的原理和算法:采用Bresenham 画线算法。 设线段方程:ax+by+c=0(x1

1、当您付费下载文档后,您只拥有了使用权限,并不意味着购买了版权,文档只能用于自身使用,不得用于其他商业用途(如 [转卖]进行直接盈利或[编辑后售卖]进行间接盈利)。
2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。
3、如文档内容存在违规,或者侵犯商业秘密、侵犯著作权等,请点击“违规举报”。

碎片内容

12864液晶画点和画任意两点间直线原理

确认删除?
微信客服
  • 扫码咨询
会员Q群
  • 会员专属群点击这里加入QQ群