广告

原创 12864液晶画波形

2009-8-19 08:20 4887 1 12 分类: MCU/ 嵌入式

要能画波形,有一点是至关重要重要的,那就是打点,所谓打点,就是能在指定的X,Y的坐标处打上一个小黑点,12864液晶的操作就像大多数16位以上的处理器一样是字节或字或双字操作的,不像51和彩色液晶一样的位操作,所以要在12864上打点,就必须用“与或”的方式。下面把打点的函数贴上,这是以前做温度波形显示的时候做的


/****************打点******************/
void point(uchar x,uchar y)
{
 uchar y1,hang,lie,msb_data,lsb_data,temp=0x01;
 if(y1!=y)
 {
 msb_data=0;
 lsb_data=0;
 }
 y1=y;
 if(y<32)
 {
 hang=0x80+y;
 lie=0x80;
 }
 if(y>31)
 { 
 hang=0x80+y-32;
 lie=0x88;
 }
 if(y>63)//return;
 {
  lcm_com(0x80);
  _nop_();
  hanzi("温度超出显示范围");
  while(1)
   flash(); 
 }


 lie=lie+x/16;


 if(x%16==0)
 {
  msb_data=0;
  lsb_data=0;
 }  


 if(x%16<8)
 {
  msb_data=msb_data|(temp<<(7-x%16));
  lsb_data=0x00|lsb_data;
 }//保留以前的数据,把第x个点亮
 if(x%16==8)
 {
  msb_data=msb_data|0x00;
  lsb_data=lsb_data|0x80;
 }
 if(x%16>8)
 {
  msb_data=msb_data|0x00;
  lsb_data=lsb_data|(temp<<(15-x%16));
 }
 lcm_com(0x34);//扩充指令集
 lcm_com(hang);
 lcm_com(lie);
 lcm_dat(msb_data);
 lcm_dat(lsb_data);
 lcm_com(0x36);//绘图显示开 
}
打点完成之后波形就相应的出来了,比如说要记录一个波形随时间变化,x坐标随着时间自动增加,x增加一个单位时相应y的值就得确定,在送个打点函数,波形就出来了。这是一种实时波形


还有一种波形,比如正弦,余弦,等等数学波形,可以添加math.h这个头文件。然后里面相应的函数得到x,y的关系,就能画出这个波形了,下面把正弦波的函数贴出来


/**********正弦波*********/
void fsin()
{
 float x,y;
 uchar x1,y1;
 for(x=0;x<(4*3.1415);x+=0.1)
  {
   y=sin(x);
   x1=10*x;
   y1=31-(10*y+0.5);
   point(x1,y1);
  }
 }


y1=31-(10*y+0.5);这条语句是对y值进行四舍五入!


其实波形的显示就是这么简单! 
http://space.ednchina.com/Upload/2009/8/19/398552e4-9e19-4931-9132-7dc06bd39603.rar这是波形已经12864的基本功能驱动,基于51的

广告

文章评论 11条评论)

登录后参与讨论

rainbowcaihong520_901247024 2013-8-2 09:25

、有没有用430写的?

残风念 2011-11-3 20:16

楼主能否将整个程序给我呢??谢谢啦

ConradWong 2011-8-6 18:27

太好了 ,值得借鉴

lujixing129_122219365 2011-8-4 11:52

LZ很给力啊

lanhua520_192379509 2010-9-11 14:30

下载的C程序没有通过Keil uVision2编译,为什么?

lanhua520_192379509 2010-9-11 14:27

下载的程序不能通过Keil uVision2编译? 为什么?

lanhua520_192379509 2010-9-11 13:58

12864液晶画波形,有汇编程序么?谢谢!

fm0597 2010-9-4 17:19

duoxie

wangjinniuxing_822035767 2010-7-1 20:20

学习一下,谢谢!

tear086_727697317 2010-5-18 21:30

fine
相关推荐阅读
zhouwen880728_377327045 2010-04-28 22:18
第一天
capture CIS中的快捷键原理图页面编辑 CTRL+A 全选所有原理图页面编辑 B 放置总线BUS原理图页面编辑 E 放置总线BUS 的分支Entry原理图页面编辑 F 放置电源符号原理图页面编...
zhouwen880728_377327045 2010-04-27 20:33
准备做个板
从咸宁过来武大有半年了,一直忙着毕业的事情以及导师的项目,很久没有更新空间了,现在项目闲下来了,也该做做自己的事情了,准备画一个2440的开发板。想每天上来更新下自己的进度,记录下,也能让自己坚持下去...
zhouwen880728_377327045 2009-09-18 13:01
关于ARM7时钟的问题
在ARM7处理器中,在没有配置PLL和VPB分频器前,系统时钟Fcclk就是外部晶振的时钟Fosc,内部VPB总线的时钟是Fcclk/4也就是说是Fosc/4,开始关于时钟这章的疑惑就在这里。网上有学...
zhouwen880728_377327045 2009-09-15 18:38
msp430开发板
对msp430的一个总结板,集成了学习430来做过的一些东西,彩色触摸液晶屏,24L01,DDS AD9851……正面反面http://space.ednchina.com/Upload/2009/9...
zhouwen880728_377327045 2009-09-09 11:10
开始学习ARM了
开始两天了,今天终于能在Proteus里仿真lpc2100了,对系统启动的过程也有了个大致的认识,再过两天我的板子就到了。...
zhouwen880728_377327045 2009-08-30 15:04
AD603调试心得
在众多网友的经验下,AD603的调试也算是顺风顺水,半天解决了,开始直接照着PDF搭了个模式二的电路,直接将函数发生器的信号输入进来,波形严重失真,扭曲的不成样子,频率也不对,并且增益不可控,但是很稳...
我要评论
11
1
广告