当前位置:首页 > 测试测量 > 测试测量
[导读]  void lcd_disp(unsigned char x,unsigned char y)  {  unsigned char da[8];  unsigned char j;  y = 63-y;  for(j=1;j<7;j++) da[j] = 0x0;  {// 绘制边框  da[0]=0x01;  da[7]=0x80;  i

  void lcd_disp(unsigned char x,unsigned char y)

  {

  unsigned char da[8];

  unsigned char j;

  y = 63-y;

  for(j=1;j<7;j++) da[j] = 0x0;

  {// 绘制边框

  da[0]=0x01;

  da[7]=0x80;

  if((x==0)||(x==127)) {

  for(j=0;j<8;j++) da[j] = 0xff;

  }

  }

  if(x%5==0) da[pointY>>3] |= 0x01 《 (pointY&0x07);

  // 绘制由变量pointY 控制的水平游标线

  if(x==pointX) // 绘制由变量pointX 控制的垂直游标线

  for(j=0;j<64;j++)

  if(j%5==0) da[j>>3] |= 0x01 《(j&0x07);

  da[y/8] |= 0x01《(y%8); // 绘制信号波形

  lcd_row_wr(x,da);

  }

  运行效果如图6 所示。

图6 水平垂直移动游标线示例

  五、图形液晶LCD12864数字符号显示

  图形点阵LCD 显示数字,原理是把数字以点阵的形式取模,再把点阵模写入特定的LCD 空间即可,首先来看数字取模,如图7 所示,对数字“0”按8×5点取模。

图7 数字取模示例图

  纵向看,8 点一列,从上至下对应bit0 到bit7,我们用1 表示“亮”,0 表示“暗”,从左至右,依次确定为0111 1100,即0x7c ;1000 0010,即0x82 ;10000010, 即0x82 ;1000 0010, 即0x82 ;0111 1100,即0x7c ;如果我们依次将这5 个字节写入LCD 某页连续5个地址空间,LCD 上就会显示“0”。

  下面我们把数字变量在LCD 上动态显示,就是数值变了,显示跟着变。

  字符显示LCD 驱动函数,实现8×n 点阵字符写入函数。

  void lcd_put_xyns(unsigned char x,y,n,unsigned char *s)

  {

  unsigned char i;

  for(i=0;i<n;i++) {

  if((x+i)>63) {

  lcd_cmd_wr(ORGY+y,1);

  lcd_cmd_wr(ORGX+x+i-64,1);

  lcd_dat_wr(s[i],1);

  }

  else {

  lcd_cmd_wr(ORGY+y,0);

  lcd_cmd_wr(ORGX+x+i,0);

  lcd_dat_wr(s[i],0);

  }

  }

  }

  参数:“x, y”是坐标,这里y 是页坐标,取值从0 到7,“n”是点阵模字节数,“*s”是点阵模起始地址。

  将字模生成字模表:

  unsigned char code number[]={

  0x7C,0x82,0x82,0x7C,0x84,0xFE,0x80,0x00,0xCC,0xA2,0x

  92,0x8C,0x44,0x92,0x92,0x6C,

  0x38,0x24,0xFE,0x20,0x9E,0x92,0x92,0x62,0x7C,0x92,0x9

  2,0x64,0x06,0xF2,0x0E,0x02,

  0x6C,0x92,0x92,0x6C,0x4C,0x92,0x92,0x7C,0x80,

  };

  lcd_put_xyns(0,0,4,number+0*4); // 直接显示字符0

  lcd_put_xyns(4,0,4,number+1*4); // 直接显示字符1

  ……

  tmp=3421; // 以下代码显示变量tmp

  lcd_put_xyns(80,2,4,number+(tmp/1000)*4);

  lcd_put_xyns(84,2,4,number+(tmp/100%10)*4);

  lcd_put_xyns(88,2,4,number+(tmp/10%10)*4);

  lcd_put_xyns(92,2,4,number+(tmp%10)*4);

 

 

本文针对LCD12864 特性,完成了数字示波器显示必须的绘图驱动程序设计,这个教程定位给初学者使用,我立足从简单到复杂一步一步介绍设计过程,甚至是调试的过程,还包括一些经验总结,特别是提供了完整的keil 工程附件。希望读者立足示波器项目,学到更多软硬件设计经验技巧。

  一、简易数字示波器原理

  数字示波器基本原理可以简单理解为:数据采集+ 图形显示,该过程循环进行,如图1 所示。

图1 简易数字示波器流程图

  LCD 图形显示需要根据LCD 特性设计,不同LCD驱动程序不同,本篇将结合不带字库的LCD12864 设计显示程序。

  二、图形液晶LCD12864绘图驱动设计基础

  关于LCD 的硬件接口电路,在其他教程中有详细介绍,涉及单片机总线知识和CPLD 内部电路,需要认真学习,这里借助现成的驱动函数,重点讲解LCD绘图程序设计。

  LCD12864 的电路接口在头文件中定义:

  #define LCD_LCW XBYTE[0xf4ea]

  // 左屏命令写入

  #define LCD_LDW XBYTE[0xf5ea]

  // 左屏数据写入

  #define LCD_LCR XBYTE[0xf6ea]

  // 左屏命令读出

  #define LCD_LDR XBYTE[0xf7ea]

  // 左屏数据读出

  #define LCD_RCW XBYTE[0xf8ea]

  // 右屏命令写入

  #define LCD_RDW XBYTE[0xf9ea]

  // 右屏数据写入

  #define LCD_RCR XBYTE[0xfaea]

  // 右屏命令读出

  #define LCD_RDR XBYTE[0xfbea]

  // 右屏数据读出

  后面所有对LCD 的编程操作都是基于以上接口定义进行的各种读写操作。

  首先来看LCD12864 的点阵结构图,如图2 所示。

图2 LCD点阵分布结构图

  此LCD 屏由水平128 列,垂直64 行组成。水平128 列分左右各64 列两个半屏构成。垂直64 行又分8 页,每页8 行(1 列8 点刚好1 字节)。程序每次对LCD 的绘图操作就是以最小单位1 字节进行操作的。

  理解这点至关重要。也就是每次只能针对8 点进行操作,而不是1 点进行操作。左右屏由单独地址线控制(前面的接口定义就是分左右屏定义的)。实际打点只需往指定“位置”写入数据,“1”亮,“0”暗。

    声明控制水平线的变量“unsigned charpointY=0;” 范围0 到63, 声明控制垂直线的变量“unsigned char pointX=0;”范围0 到127。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

特朗普集团近日取消了其新推出的T1智能手机“将在美国制造”的宣传标语,此举源于外界对这款手机能否以当前定价在美国本土生产的质疑。

关键字: 特朗普 苹果 AI

美国总统特朗普在公开场合表示,他已要求苹果公司CEO蒂姆·库克停止在印度建厂,矛头直指该公司生产多元化的计划。

关键字: 特朗普 苹果 AI

4月10日消息,据媒体报道,美国总统特朗普宣布,美国对部分贸易伙伴暂停90天执行新关税政策,同时对中国的关税提高到125%,该消息公布后苹果股价飙升了15%。这次反弹使苹果市值增加了4000多亿美元,目前苹果市值接近3万...

关键字: 特朗普 AI 人工智能 特斯拉

3月25日消息,据报道,当地时间3月20日,美国总统特朗普在社交媒体平台“真实社交”上发文写道:“那些被抓到破坏特斯拉的人,将有很大可能被判入狱长达20年,这包括资助(破坏特斯拉汽车)者,我们正在寻找你。”

关键字: 特朗普 AI 人工智能 特斯拉

1月22日消息,刚刚,新任美国总统特朗普放出重磅消息,将全力支持美国AI发展。

关键字: 特朗普 AI 人工智能

特朗普先生有两件事一定会载入史册,一个是筑墙,一个是挖坑。在美墨边境筑墙的口号确保边境安全,降低因非法移民引起的犯罪率过高问题;在中美科技产业之间挖坑的口号也是安全,美国企业不得使用对美国国家安全构成威胁的电信设备,总统...

关键字: 特朗普 孤立主义 科技产业

据路透社1月17日消息显示,知情人士透露,特朗普已通知英特尔、铠侠在内的几家华为供应商,将要撤销其对华为的出货的部分许可证,同时将拒绝其他数十个向华为供货的申请。据透露,共有4家公司的8份许可被撤销。另外,相关公司收到撤...

关键字: 华为 芯片 特朗普

曾在2018年时被美国总统特朗普称作“世界第八奇迹”的富士康集团在美国威斯康星州投资建设的LCD显示屏工厂项目,如今却因为富士康将项目大幅缩水并拒绝签订新的合同而陷入了僵局。这也导致富士康无法从当地政府那里获得约40亿美...

关键字: 特朗普 富士康

今年5月,因自己发布的推文被贴上“无确凿依据”标签而与推特发生激烈争执后,美国总统特朗普签署了一项行政令,下令要求重审《通信规范法》第230条。

关键字: 谷歌 facebook 特朗普

众所周知,寄往白宫的所有邮件在到达白宫之前都会在他地进行分类和筛选。9月19日,根据美国相关执法官员的通报,本周早些时候,执法人员截获了一个寄给特朗普总统的包裹,该包裹内包含蓖麻毒蛋白。

关键字: 美国 白宫 特朗普
关闭