完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
电子发烧友论坛|
小弟刚来,不是很懂,求诸位大神解惑,以下就是我编的用msp430驱动MzLH04屏幕的程序,但是驱动不了屏幕,求指导,不胜感激
#include /*#define SPI_CS P1OUT^=0x01;P1.0 #define SPI_SDA P1OUT^=0x04;P1.2 #define SPI_SCK P1OUT^=0x10;P1.4 #define SPI_RES P1OUT^=0x08;P1.3 */ void timeDelay(unsigned int Timers) { unsigned int i; while(Timers) { Timers--; for(i=0;i<100;i++); } } void LCD_init(void) { TimeDelay(50); P1OUT|=0x10;//SCK=1 P1OUT&=0x01;//cs=0 P1OUT&=0x08;//RST=0 TimeDelay(50); P1OUT|=0x08;//RST to 1 TimeDelay(80); } void LCD_SSSet(unsigned char Status) { if(Status) P1OUT|=0x01;//cs to 1 else P1OUT&=0x01;//cs to 0 } void LCD_Send(unsigned char Data) { unsigned char i=0; for(i=0;i<8;i++) { P1OUT&=0x10;//SCK=0 TimeDelay(50); if(Data&0x0080) P1OUT|=0x04;//SDA=1 else P1OUT&=0x04;//SDA=0 P1OUT|=0x10;//SCK=1 TimeDelay(50); Data=Data<<1; } P1OUT|=0x01;//CS=1 } void ClrScreen(void) { LCD_SSSet(0); LCD_Send(0x80); LCD_SSSet(1); } //Grade 0~127 void SetBackLight(unsigned char Deg) { LCD_SSSet(0); LCD_Send(0x8a); LCD_Send(Deg); LCD_SSSet(1); } //======================================================================== // 函数: void Line(unsigned char s_x,unsigned char s_y, // unsigned char e_x,unsigned char e_y) // 描述: 在s_x、s_y为起始坐标,e_x、e_y为结束坐标绘制一条直线 // 参数: x X轴坐标 y Y轴坐标 // 返回: 无 // 备注: 使用前景色 // 版本: // 2007/07/19 First version //======================================================================== void Line(unsigned char s_x,unsigned char s_y,unsigned char e_x,unsigned char e_y) { //绘制直线 LCD_SSSet(0); //CS置低电平 LCD_Send(0x02); //送指令0x02 LCD_Send(s_x); //起点X轴坐标 LCD_Send(s_y); //起点Y轴坐标 LCD_Send(e_x); //终点X轴坐标 LCD_Send(e_y); //终点Y轴坐标 LCD_SSSet(1); //完成操作置CS高电平 } void main(void) { WDTCTL = WDTPW + WDTHOLD; // Set Watchdog Timer interval to ~30ms P1IE|=BIT0+BIT2+BIT3+BIT4;//设置 P1.0 P1.2 P1.3 P1.4中断允许 P1IES|=BIT0+BIT2+BIT3+BIT4; P1DIR |= BIT0+BIT2+BIT3+BIT4;//P1.0 P1.2 P1.3 P1.4 OUT // P1SEL=BIT2;//P1.2第二功能TXD使能 //P1SEL = BIT1 + BIT2 ;//P1.1=RXD,P1.2=TXD P1SEL=BIT2+BIT4;//P1.2=TXD P1.4=SMCLK 第二功能使能 UCA0BR0=104;//1MHz 9600 UCA0BR1=0;//1MHz 9600 UCA0CTL1|=UCSSEL_2;//SMCLK LCD_init(); SetBackLight(125); Line(0x11,0x11,0x99,0x99); while(1) {} } |
|
相关推荐
3 个讨论
|
|
|
版主你好,谢谢你的建议,以下就是我对这个问题的补充 我定义的数据输出管脚TXD是P1.2,这款LED屏幕是串口控制的,LCD_Send()是输出数据的函数,但是用示波器和串口检测工具都没能收到想要的数据,收到是些很不规则的乱码,个人觉得应该是时钟的时序除了问题,以下会附上msp430G2553和MzLH04的工作手册,还望您指导
|
|
|
|
|
|
|
|
只有小组成员才能发言,加入小组>>
/9
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-12-3 01:23 , Processed in 0.683014 second(s), Total 48, Slave 36 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191

淘帖
