3586|4

17

帖子

0

TA的资源

一粒金砂(中级)

楼主
 

【英雄帖】【急!!】基于msp430g2553+qc12864b串行显示问题 [复制链接]

  1. #include
  2. #include"LCD12864P.h"

  3. void main()
  4. {
  5.         WDTCTL = WDTPW + WDTHOLD;
  6.         Ini_Lcd();
  7.            lcd_pos(1,0);
  8.            Disp_HZ("液晶12864",5);
  9.            lcd_pos(3,4);
  10.            Disp_HZ("欢迎使用",4);
  11.            lcd_pos(2,3);
  12.            Disp_SZ(0);
  13.            Disp_SZ(3);
  14.     while(1);
  15. }

复制代码
以上是我的代码,3条控制线连接也没问题,求大神指点,

最新回复

楼主怎么判断的三线连接没问题?  详情 回复 发表于 2013-9-5 13:14

点评

//LCD12864P.c #include #define BIT(x) (1 0) { if(j == 3) temp = firstbyte; else if(j == 2) temp = transdata&0xf0; else temp = (t  详情 回复 发表于 2013-9-5 11:34
 
点赞 关注

回复
举报

5015

帖子

12

TA的资源

裸片初长成(初级)

沙发
 
英雄,你的问题是显示不了?

点评

恩恩,屏幕上什么都没有  详情 回复 发表于 2013-9-5 11:35
 
个人签名《MCU工程师炼成记》作者之一
 

回复

17

帖子

0

TA的资源

一粒金砂(中级)

板凳
 

回复 楼主junggle 的帖子

  1. //LCD12864P.c
  2. #include
  3. #define BIT(x)        (1 << (x))
  4. #define uint unsigned int
  5. #define uchar unsigned char
  6. uchar LCD_table[]={0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39};//0123456789

  7. void Send(uchar type,uchar transdata);

  8. #define cyCS      0    //P1.0,片选信号
  9. #define cySID     1    //P1.1,串行数据
  10. #define cyCLK     2    //P1.2,同步时钟
  11. #define cyPORT    P1OUT
  12. #define cyDDR     P1DIR

  13. void delay_1ms()
  14. {
  15.         uint i;
  16.         for(i=0;i<1140;i++);
  17. }

  18. void delay_nms(uint n)
  19. {
  20.     uint i = 0;
  21.     for(i = n;i > 0;i--)
  22.         delay_1ms();
  23. }

  24. void Ini_Lcd(void)
  25. {
  26.         cyDDR |= BIT(cyCLK) + BIT(cySID) + BIT(cyCS);   //相应的位端口设置为输出
  27.         delay_nms(600);                 //延时等待液晶完成复位
  28.         Send(0,0x30);  /*功能设置:一次送8位数据,基本指令集*/
  29.         delay_nms(10);
  30.         Send(0,0x02);  /*DDRAM地址归位*/
  31.         delay_nms(5);
  32.         Send(0,0x0c);  /*显示设定:开显示,不显示光标,不做当前显示位反白闪动*/
  33.         delay_nms(5);
  34.         Send(0,0x01);  /*清屏,将DDRAM的位址计数器调整为“00H”*/
  35.         delay_nms(500);
  36.         Send(0,0x06);  /*功能设置,点设定:显示字符/光标从左到右移位,DDRAM地址加1*/
  37.         delay_nms(10);
  38. }

  39. void Send(uchar type,uchar transdata)//0-写控制命令,1-写数据
  40. {
  41.         uchar firstbyte = 0xf8;
  42.         uchar temp;
  43.         uchar i,j = 3;

  44.         if(type) firstbyte |= 0x02;

  45.         cyPORT |= BIT(cyCS);
  46.         cyPORT &= ~BIT(cyCLK);
  47.         while(j > 0)
  48.         {
  49.                 if(j == 3) temp = firstbyte;
  50.                 else if(j == 2) temp = transdata&0xf0;
  51.                 else  temp = (transdata << 4) & 0xf0;

  52.                 for(i = 8;i > 0;i--)
  53.                 {
  54.                         if(temp & 0x80)        cyPORT |= BIT(cySID);
  55.                         else                        cyPORT &= ~BIT(cySID);
  56.                         cyPORT |= BIT(cyCLK);
  57.                         temp <<= 1;
  58.                         cyPORT &= ~BIT(cyCLK);
  59.                 }
  60.                 //三个字节之间一定要有足够的延时,否则易出现时序问题
  61.                 if(j == 3)        delay_nms(1);
  62.                 else               delay_nms(1);

  63.                 j--;
  64.         }

  65.         cyPORT &= ~BIT(cySID);
  66.         cyPORT &= ~BIT(cyCS);
  67. }

  68. void lcd_pos(uchar x,uchar y)//定位
  69. {
  70.          uchar pos;
  71.           switch(x)
  72.           {
  73.             case 1:pos=0x80;break;
  74.             case 2:pos=0x90;break;
  75.             case 3:pos=0x88;break;
  76.             case 4:pos=0x98;break;
  77.             default:pos=0x80;
  78.           }
  79.           pos += y;
  80.           Send(0,pos);
  81. }

  82. void Disp_HZ(const uchar * pt,uchar num)//显示汉字
  83. {
  84.     uchar i;
  85.            for(i = 0;i < (num*2);i++)
  86.            Send(1,*(pt++));
  87. }

  88. void Disp_SZ(uchar shuzi)//显示一个数字
  89. {
  90.     Send(1,LCD_table[shuzi]);
  91. }

复制代码
12864p.c   大家可以参考一下
 
 
 

回复

17

帖子

0

TA的资源

一粒金砂(中级)

4
 

回复 沙发wstt 的帖子

恩恩,屏幕上什么都没有
 
 
 

回复

2886

帖子

0

TA的资源

五彩晶圆(初级)

5
 
楼主怎么判断的三线连接没问题?
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/8 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表