欢迎来到第一文库网! | 帮助中心 第一文库网-每个人都是第一
第一文库网
全部分类
  • 研究报告>
  • 学术论文>
  • 全科教育>
  • 应用文档>
  • 行业资料>
  • 企业管理>
  • 技术资料>
  • 生活休闲>
  • ImageVerifierCode 换一换
    首页 第一文库网 > 资源分类 > DOCX文档下载
    分享到微信 分享到微博 分享到QQ空间

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

    • 资源ID:727527       资源大小:17.46KB        全文页数:3页
    • 资源格式: DOCX        下载积分:3金币
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: QQ登录 微博登录
    二维码
    扫码关注公众号登录
    下载资源需要3金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP,免费下载
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

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

    12864液晶画点和画任意两点间直线原理、算法及程序原码笈仃:2009-11-1021:02|作苕:tiankai|来源:电子园电源技术专区12864液晶画点和画任意直线的原理和算法程序原码经验证可行12864实际上是256x64二维显示空间,整个液晶屏分上下两个半屏。整个屏一共有256列,64行。可以把它分成16大列,每一大列包含16歹h图形RAM的起始址址为0x80,设置读或写的地址时,要先写Y坐标,再写X坐标。要使用画图功能,就要设置扩允指令集。画点原理:先确定坐标一读出数据>修改数据一数据写回原处。程序原码:画点函数voidDraw_Point(ucharxzucharyzucharco1or)ucharrowztirzrow-bit;ucharReadOIdHzReadOId1;tier=x>>4;把256列分成16大列,每大列包含16列row_bit=x&0x0f;计算所给坐标在某一大列中的哪-列if(yv32)分上下半屏显示row=y;上半屏e1serow=y-32;下半屏tier+=8;WriteCommand(0×34);8Bit扩充指令集,即使是36H也要写两次WriteCommand(0x36);绘图ON,基本指令集里面36H不能开绘图WriteCommand(0x80+row);/行位置WriteCommand(0×80+tier);/歹U位置ReadData();ReadO1dH=ReadData。;某大歹IJ的前8歹IJ数据,低位在前,高位在后ReadOId1=ReadDataO;某大列的后8列数据if(row_bit<8)修改读出的数据switch(co1or)case0:ReadOIdH&=(OxO1<<(7-row_bit);break;case1:ReadOIdH=(OxO1<<(7-row_bit);break;case2:ReadOIdH=(OxO1<<(7-row_bit);break;defau1t:break;e1se(SWitch(CoIor)case0:ReadOId1&=(OxO1<<(15-row_bit);break;case1:ReadOId1=(OxO1<<(15-row_bit);break;case2:ReadOId1=(OxO1<<(15-row_bit);break;defau1t:break;WriteCommand(0x80+row);/行位置WriteCommand(0x80+tier);/列位置WriteData(ReadOIdH);把修改后的数据写回原地址WriteData(ReadOId1);画任意两点间直线的原理和算法:采用Bresenham画线算法。设线段方程:a×+by+c=0(x1<X<X2zYKY0时候,即下个点为(x+1,y+1),反之,下个点为(x+1,y).代入ab,则SUb1=dydx05判断条件为:2dydx>0?斜率小于0:同理。斜率=0:即为横线。斜率=1:即为竖线。程序原码:画任意两点间的直线voidDraw1ine(unsignedcharStartXzUnsignedcharStartYzunsignedcharEndXzunsignedcharEndY,unsignedcharCo1or)itI1distance;*根据屏幕大小改变变量类型(如改为int型)*/intX=O,y=O,de1ta_x,de1ta_y;charincxzincy;de1ta_x=EndX-StartX;de1ta_y=EndY-StartY"/判断直线的方向if(de1ta_x>O)inc×=1;画竖线e1seif(de1ta_x=O)if(de1ta_y>0)DrawTier1ine(StartXzStartYzEndY-StartYzCo1or);e1seDrawTier1ine(StartXzEndYzStartY-EndYzCo1or);return;e1seincx=-1;if(de1ta_y>O)incy=1;画横线e1seif(de1ta_y=O)if(de1ta_x>0)DrawRow1ine(StartYzStartX,EndX-StartXzCo1or);e1seDrawRow1ine(StartYzEndXzStartX-EndXzCo1or);return;e1seincy=-1;if(de1ta_x<0)de1ta_x=-de1ta_x;if(de1ta_y<0)de1ta_y=-de1ta_y;if(de1ta_x>de1ta_y)distance=de1ta_x;e1sedistance=de1ta_y;DrawPoint(StartXzStartYzCo1or);*Draw1ine*/for(t=0;t<=distance+1;t+)<DrawPoint(StartX,StartYzCo1or);x+=de1ta_x;y+=de1ta_y;/2dy-dx>0?if(x>distance)×-=distance;StartX+=inc×if(y>distance)y-=distance;StartY+=incy;

    注意事项

    本文(12864液晶画点和画任意两点间直线原理.docx)为本站会员(lao****ou)主动上传,第一文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知第一文库网(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2022 001doc.com网站版权所有   

    经营许可证编号:宁ICP备2022001085号

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



    收起
    展开