12864(st7920控制器)画点、线子程序

发布者:mb5362443最新更新时间:2016-10-30 来源: eefocus关键字:st7920控制器  画点  子程序 手机看文章 扫描二维码
随时随地手机看文章
/*------------------ 画点子程序 -----------------------------*/
//X Y为预想的坐标系(X:0-127,Y:0-63 按格算),Color  0灭,1亮,2翻转
void DrawPoint(unsigned char X,unsigned char Y,unsigned char Color)
{
    unsigned char Row,Tier,Tier_bit ;
    unsigned char ReadOldH,ReadOldL ;
    wr_comm(0x34);  // 选扩充指令 并关显示
    wr_comm(0x36);  // 选扩充指令,开显示
    Tier=X>>4 ;     // 右移4位,即除16    并取整,得对应要写入12864的横坐标DX
    Tier_bit=X&0x0f ;  // 得该x,位于所在DX中的第几位(0-15),0x0f高4位都为0,
                       // 按位与,消去了X中的高4位,相当于X%16,得到在DX中的位数。
    if(Y<32)
    {
        Row=Y ;
    }
    else       //y坐标大于31,要上屏显示,DX也相应加8
    {
        Row=Y-32 ;
        Tier+=8 ;
    }
    wr_comm(Row+0x80);  //写入(LCD上的)垂直坐标(页坐标)
    wr_comm(Tier+0x80); //写入(LCD上的)水平坐标(列坐标)
    ReadByte();  // 预读
    ReadOldH=ReadByte();  //读出该处的GDRAM中数据,高8位
    ReadOldL=ReadByte();  //低8位
    wr_comm(Row+0x80);
    wr_comm(Tier+0x80);
    if(Tier_bit<8)      //x在DX中处于低8位(按预想坐标看),但在LCD内坐标系中属于高8位,对应ReadOldH
    {
        switch(Color)
        {
            case 0 :  ReadOldH&=(~(0x01<<(7-Tier_bit))); break ;  //位转换LCD对应位
            case 1 :  ReadOldH|=(0x01<<(7-Tier_bit));    break ;  //将特定位置1,点亮
            case 2 :  ReadOldH^=(0x01<<(7-Tier_bit));    break ;  //按位异或翻转特定位
            default :  break ;
        }
        wr_data(ReadOldH);  //先写入高8位
        wr_data(ReadOldL);
    }
    else
    {
        switch(Color)
        {
            case 0 :  ReadOldL&=(~(0x01<<(15-Tier_bit)));   break ;
            case 1 :  ReadOldL|=(0x01<<(15-Tier_bit));      break ;
            case 2 :  ReadOldL^=(0x01<<(15-Tier_bit));      break ;
            default :  break ;
        }
        wr_data(ReadOldH);
        wr_data(ReadOldL);
    }
    wr_comm(0x30);  //设为基本指令集关绘图显示
}
//画水平线:
void DrawLineX( unsigned char X0, unsigned char X1, unsigned char Y, unsigned char Color )
{    unsigned char Temp ;
    if( X0 > X1 )
    {
        Temp = X1 ;
        X1 = X0 ;
        X0 = Temp ;
    }
    for( ; X0 <= X1 ; X0++ )
    DrawPoint( X0, Y, Color ) ;
}
//画垂直线:
void DrawLineY( unsigned char X, unsigned char Y0, unsigned char Y1, unsigned char Color )
{
    unsigned char Temp ;
    if( Y0 > Y1 )
    {
        Temp = Y1 ;
        Y1 = Y0 ;
        Y0 = Temp ;
    }
    for(; Y0 <= Y1 ; Y0++)
    DrawPoint( X, Y0, Color)    ;
}
//采用Bresenham画线算法
void DrawLine_any( unsigned char StartX, unsigned char StartY, unsigned char EndX, unsigned char EndY, unsigned char Color )
{
    int t, distance;      /*根据屏幕大小改变变量类型(如改为int型)*/
    int x = 0 , y = 0 , delta_x, delta_y ;
    char incx, incy ;
    delta_x = EndX - StartX ;
    delta_y = EndY - StartY ;
    if( delta_x > 0 )
    {
        incx = 1;
    }
    else if( delta_x == 0 )
    {
        DrawLineY( StartX, StartY, EndY, Color ) ;
        return ;
    }
    else
    {
        incx = -1 ;
    }
    if( delta_y > 0 )
    {
        incy = 1 ;
    }
    else if(delta_y == 0 )
    {
        DrawLineX( StartX, EndX, StartY, Color ) ;
        return ;
    }
    else
    {
        incy = -1 ;
    }
    delta_x = abs( delta_x );
    delta_y = abs( delta_y );
    if( delta_x > delta_y )
    {
        distance = delta_x ;
    }
    else
    {
        distance = delta_y ;
    }
    DrawPoint( StartX, StartY, Color ) ;
    /* Draw Line*/
    for( t = 0 ; t <= distance+1 ; t++ )
    {
        DrawPoint( StartX, StartY, Color ) ;
        x += delta_x ;
        y += delta_y ;
        if( x > distance )
        {
            x -= distance ;
            StartX += incx ;
        }
        if( y > distance )
        {
            y -= distance ;
            StartY += incy ;
        }
    }
}
关键字:st7920控制器  画点  子程序 引用地址:12864(st7920控制器)画点、线子程序

上一篇:基于无线技术的电缆接头温度监测系统终端设计
下一篇:51单片机驱动PS2键盘完整程序

推荐阅读最新更新时间:2024-03-16 15:18

工业机器人成生产线上“风景线
“中国制造业500强企业”“安徽省百强企业”“合肥市50强企业”……2007年4月,合肥世纪精信机械制造有限责任公司(下文简称世纪精信)在高新柏堰科技园区正式成立,作为安徽省企业技术中心、安徽省两化融合示范企业,先后通过武器装备质量管理体系和三级军工保密资格认证。 工业机器人的使用不仅能提高工作精度,同时也能大幅提高生产效率,它们也成了世纪精信生产线上的一道“风景线”。记者了解到,为提升生产效率,世纪精信的钣金生产车间,开始使用冲压自动化机械手生产线,生产效率大幅提升。“通过机械手的操作,空调顶盖每道工序仅需七八秒,几乎是人工效率的一倍。”世纪精信工作人员介绍。 目前,世纪精信主营的格力空调相关配套业务,已达到1600万套的生产能
[机器人]
Vector Japan展出可高效开发车辆追踪及防止车线偏离的工具
  Vector Japan面向ECU(电子控制单元)的校准工具“CANape”,开发出了可以帮助开发前方车辆追踪功能和车线偏离防止功能的选配件“Option Advanced Multimedia”,并在“人与车科技展2011”(2011年5月18~20日,太平洋横滨会展中心)上进行了展示。   CANape是一种通过CAN从ECU和传感器等获得各种测量数据,用于ECU开发、校准和诊断的工具。此次的选配件除了可根据摄像头图像来检测移动物体,检测出移动物体轮廓的功能之外,还能在图像中重叠显示毫米波雷达等检测出来的状态。   通过将雷达等检测到的物体位置、以及到达物体的相对距离等重叠到图像中,可以观察图像来判断路面道路标志线的算
[汽车电子]
ams携手Senova开通侧向层析检测套件生产线
高性能传感器解决方案供应商艾迈斯半导体(ams AG,瑞士股票交易所股票代码:AMS)和Senova ——总部位于德国的体外诊断医疗设备制造商——昨日宣布,二者已经成功开通一条侧向层析检测套件生产线,该套件将用于检测COVID-19(SARS-CoV-2)病毒抗体。在图林根州的魏玛市目前严格的COVID-19社交距离限制下,艾迈斯半导体和Senova在不到9个月的时间内将整个方案从设想到付诸实现,于昨日开通了该生产线并对整个团队表达了祝贺。 基于艾迈斯半导体AS7341L传感器专门开发的传感器模块,可以通过光谱解析精确读取侧向层析检测免疫数据,并将数据发送到医疗认证的安全云端。该设备采用侧向层析检测技术和光谱传感器,能够
[测试测量]
ams携手Senova开通侧向层析检测套件生产<font color='red'>线</font>
京东方:公司柔性AMOLED产线良率80%以上
3月16日,京东方在投资者互动平台表示,公司第6代柔性AMOLED产线为全柔性生产线,对应高端的柔性AMOLED产品。目前,公司柔性AMOLED产线良率居全球领先行列,成熟产品良率在80%以上。 其中,京东方鄂尔多斯5.5代产线目前除产品集中于中高端智能手机市场,同时在布局转型其他高收益创新应用产品,包括穿戴应用、移动支付、虚拟显示、工控医疗等,未来将根据市场和客户的需求灵活调配产能。 对于可调光玻璃,京东方表示,公司智慧视窗(调光&显示)应用于轨道交通、乘用车及建筑市场,并实现产品交付。在车载显示领域,公司与中国、美国、德国、英国、日本、韩国等国家的全球知名汽车品牌开展合作。 关于337调查,京东方称,公司已于1月29日就调查基
[手机便携]
「大众汽车集团」与「地平线」合作解读
一场双方都充满高期待值的握手。 大众汽车集团与地平线合作靴子落地。 10月13日,大众汽车集团宣布,旗下软件公司CARIAD将与地平线成立合资公司,并持有合资企业60%股份。 大众汽车集团计划为本次合作投资约24亿欧元,该交易预计在2023年上半年完成。 双方诉求和意义 此次合资合作,对于大众汽车集团来讲的核心诉求是:针对中国市场需求,加快高级驾驶辅助系统和自动驾驶系统开发进程。 同时,要打造领先的、高度优化的全栈式解决方案,即在单颗芯片上集成多种功能,提高系统稳定性、节约成本、降低能耗。 大众看重地平线的正是“软硬结合”、“全栈布局”的技术体系,认为这将有利于打造差异化创新。 此次合作意味着,大众
[汽车电子]
「大众汽车集团」与「地平<font color='red'>线</font>」合作解读
基于单片机的线阵CCD实时检测系统的开发
摘要:分析了线阵CCD用于实时检测系统的特点和要求,介绍了一种基于AT89C2051单片机的线阵CCD实时检测系统的设计方案。本方案电路结构简单可靠,信号处理灵活检当,有一定的通用性和启发性。 关键词:CCD 单片机 驱动 检测系统 CCD(Charge Coupled Devices)电荷耦合器件应用系统的关键技术在于CCD驱动时序的产生和输出信号的采集与处理。目前驱动主要有直接数字电路驱动、EPROM驱动、专用IC驱动、复杂的CPLD驱动等常用的驱动方法,但是它们存在着逻辑设计较为复杂、调试困难、柔性较差等缺点。在数据采集和处理方面,大多数都经过差动放大、采样保持、A/D转换,再通过总线或采集卡等接口与PC机相连。这种系
[单片机]
地平线发布全球首款嵌入式AI芯片——旭日和征程
12月20日,地平线在北京召开主题为“AI芯·时代”的发布会,正式发布两款计算机视觉嵌入式AI芯片——旭日和征程,分别面向智能驾驶和智能摄像头。   地平线创始人&CEO余凯表示,从15年成立至今,两年的时间,中国首款嵌入式人工智能芯片终于诞生。相较于其他芯片,旭日和征程在性能、功耗、面积等方面都有了较大的提升,不仅可同时识别200个对象,芯片乘法器利用率峰值更高达100%,可强耦合于各种应用场景。   中国“芯时代”,要从算法和软件出发,重新定义和设计硬件 2017年已正式走进尾声,纵观整个2017年硬科技行业,六个字总结:VR冷了,AI火了。但相较于去年突然爆发的VR概念,AI显然火的更为扎实,商业落地也更实际
[嵌入式]
钒钛股份与大连融科投资建合资公司 年内建钒电解液产线
  攀钢集团钒钛资源股份有限公司(以下简称“公司”)与大连融科储能集团股份有限公司(以下简称“大连融科”)于近日在四川省攀枝花市签署了《合资协议》,经双方友好协商,决定共同投资3,161万元人民币成立合资公司,其中公司占注册资本的51%,大连融科占注册资本的49%。本次交易完成后,合资公司成为公司控股子公司,纳入公司合并报表范围内。   协议主要内容   合资公司主要业务涵盖全钒液流电池电解液技术研发、加工生产、市场销售、租赁等。   合资公司将在2022年内在攀枝花市建设电解液产线,实现产能2,000立方米/年,此为第一阶段。2023至2024年,根据钒电池储能市场增长情况,协商投资建设产能60,0
[新能源]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
随便看看
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved