X
首页
技术
模拟电子
单片机
半导体
电源管理
嵌入式
传感器
最能打国产芯
应用
汽车电子
工业控制
家用电子
手机便携
安防电子
医疗电子
网络通信
测试测量
物联网
最能打国产芯
大学堂
首页
直播
专题
TI 培训
论坛
汽车电子
国产芯片
电机驱动控制
电源技术
单片机
模拟电子
PCB设计
电子竞赛
DIY/开源
嵌入式系统
医疗电子
颁奖专区
【厂商专区】
【电子技术】
【创意与实践】
【行业应用】
【休息一下】
最能打国产芯
活动中心
直播
发现活动
颁奖区
电子头条
参考设计
下载中心
分类资源
文集
排行榜
电路图
Datasheet
最能打国产芯
微控制器 MCU
【英雄帖】【急!!】基于msp430g2553+qc12864b串行显示问题
junggle
2013-9-5 11:20
楼主
#include
#include"LCD12864P.h"
void main()
{
WDTCTL = WDTPW + WDTHOLD;
Ini_Lcd();
lcd_pos(1,0);
Disp_HZ("液晶12864",5);
lcd_pos(3,4);
Disp_HZ("欢迎使用",4);
lcd_pos(2,3);
Disp_SZ(0);
Disp_SZ(3);
while(1);
}
以上是我的代码,3条控制线连接也没问题,求大神指点,
点赞
回复评论 (4)
沙发
wstt
英雄,你的问题是显示不了?
《MCU工程师炼成记》作者之一
点赞
2013-9-5 11:28
板凳
junggle
回复 楼主junggle 的帖子
//LCD12864P.c
#include
#define BIT(x) (1 << (x))
#define uint unsigned int
#define uchar unsigned char
uchar LCD_table[]={0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39};//0123456789
void Send(uchar type,uchar transdata);
#define cyCS 0 //P1.0,片选信号
#define cySID 1 //P1.1,串行数据
#define cyCLK 2 //P1.2,同步时钟
#define cyPORT P1OUT
#define cyDDR P1DIR
void delay_1ms()
{
uint i;
for(i=0;i<1140;i++);
}
void delay_nms(uint n)
{
uint i = 0;
for(i = n;i > 0;i--)
delay_1ms();
}
void Ini_Lcd(void)
{
cyDDR |= BIT(cyCLK) + BIT(cySID) + BIT(cyCS); //相应的位端口设置为输出
delay_nms(600); //延时等待液晶完成复位
Send(0,0x30); /*功能设置:一次送8位数据,基本指令集*/
delay_nms(10);
Send(0,0x02); /*DDRAM地址归位*/
delay_nms(5);
Send(0,0x0c); /*显示设定:开显示,不显示光标,不做当前显示位反白闪动*/
delay_nms(5);
Send(0,0x01); /*清屏,将DDRAM的位址计数器调整为“00H”*/
delay_nms(500);
Send(0,0x06); /*功能设置,点设定:显示字符/光标从左到右移位,DDRAM地址加1*/
delay_nms(10);
}
void Send(uchar type,uchar transdata)//0-写控制命令,1-写数据
{
uchar firstbyte = 0xf8;
uchar temp;
uchar i,j = 3;
if(type) firstbyte |= 0x02;
cyPORT |= BIT(cyCS);
cyPORT &= ~BIT(cyCLK);
while(j > 0)
{
if(j == 3) temp = firstbyte;
else if(j == 2) temp = transdata&0xf0;
else temp = (transdata << 4) & 0xf0;
for(i = 8;i > 0;i--)
{
if(temp & 0x80) cyPORT |= BIT(cySID);
else cyPORT &= ~BIT(cySID);
cyPORT |= BIT(cyCLK);
temp <<= 1;
cyPORT &= ~BIT(cyCLK);
}
//三个字节之间一定要有足够的延时,否则易出现时序问题
if(j == 3) delay_nms(1);
else delay_nms(1);
j--;
}
cyPORT &= ~BIT(cySID);
cyPORT &= ~BIT(cyCS);
}
void lcd_pos(uchar x,uchar y)//定位
{
uchar pos;
switch(x)
{
case 1:pos=0x80;break;
case 2:pos=0x90;break;
case 3:pos=0x88;break;
case 4:pos=0x98;break;
default:pos=0x80;
}
pos += y;
Send(0,pos);
}
void Disp_HZ(const uchar * pt,uchar num)//显示汉字
{
uchar i;
for(i = 0;i < (num*2);i++)
Send(1,*(pt++));
}
void Disp_SZ(uchar shuzi)//显示一个数字
{
Send(1,LCD_table[shuzi]);
}
12864p.c 大家可以参考一下
点赞
2013-9-5 11:34
4楼
junggle
回复 沙发wstt 的帖子
恩恩,屏幕上什么都没有
点赞
2013-9-5 11:35
5楼
exiao
楼主怎么判断的三线连接没问题?
点赞
2013-9-5 13:14
最新活动
报名直播赢【双肩包、京东卡、水杯】| 高可靠性IGBT的新选择——安世半导体650V IGBT
30套RV1106 Linux开发板(带摄像头),邀您动手挑战边缘AI~
安世半导体理想二极管与负载开关,保障物联网应用的稳健高效运行
免费申请 | 上百份MPS MIE模块,免费试用还有礼!
PI 电源小课堂|无 DC-DC 变换实现多路高精度输出反激电源
2024 瑞萨电子MCU/MPU工业技术研讨会——深圳、上海站, 火热报名中
随便看看
2440+UDA1341 mic
读Isochronous pipe的问题
龙芯在汽车电子方面有搞头吗
小弟,ARM开发我自学要入门,高手们给指条明路
prote在06版本制作的封装在winter09版本上显示有错误
分析一颗USB PD诱骗芯片
一周精彩回顾:2017.3.6-2017.3.12
STM32F103RDT6能否接受到200KHz的外部中断?
怎么实现512X512LED双基色点阵屏的灰度控制,8位,256级灰度''''''
PFC中的磁性元件及其作用
鼠标,键盘,游戏手柄完成,带重力加速感应(第2页有视频演示)!!!
CCS安装包
WiMi-net 433MHz无线模块和传统433MHz无线模块对比
麻烦问下,哪位高手这个电阻是什么作用哈?
TI C600编译反馈输出相关选项
ST NUCLEO-L452RE开发板测评报告汇总
IoCallDriver的问题
【晒经典】移动电源原理图
基于CH559单片机Android AOA协议的USB通讯设计实例
如何测量MSP430的功耗?【TI FAE 分享】
电子工程世界版权所有
京B2-20211791
京ICP备10001474号-1
京公网安备 11010802033920号
回复
写回复
收藏
回复