历史上的今天
今天是:2025年02月24日(星期一)
2020年02月24日 | MSP430G2553、F5529、FR5994+LCD1602八位液晶显示程序
2020-02-24 来源:eefocus
一:MSP430G2553+LCD1602代码
#include unsigned char tab[]={"0123456789"}; #define uchar unsigned char #define uint unsigned int #define lcd_dir P1DIR #define lcd_out P1OUT #define OUT_lcd P2DIR |=BIT0+BIT1+BIT2 //P2口设为输出 #define RS_1 P2OUT |=BIT0 //P2.0 #define RS_0 P2OUT &=~BIT0 #define RW_1 P2OUT |=BIT1 //P2.1 #define RW_0 P2OUT &=~BIT1 #define E_1 P2OUT |=BIT2 //P2.2 #define E_0 P2OUT &=~BIT2 //写指令 void WriteInstruction(uchar dictate) //单词:Instruction指令 dictate命令、指示 { OUT_lcd; lcd_dir =0xff; _delay_cycles(5000); E_0; RS_0; RW_0; _delay_cycles(2); E_1; lcd_out=dictate; _delay_cycles(1000); E_0; } //写地址 void WriteAddress(uchar x) //Address地址 { WriteInstruction(x|0x80); //设计数据指针起点 } //写数据 void WriteData(uchar y) { OUT_lcd; lcd_dir =0xff; _delay_cycles(5000); RS_1; E_0; RW_0; _delay_cycles(2); E_1; lcd_out=y; _delay_cycles(1000); E_0; RS_0; } void Lcd_Init() { _delay_cycles(15000); WriteInstruction(0x38);//开显示 _delay_cycles(50); WriteInstruction(0x38); WriteInstruction(0x38); WriteInstruction(0x0c); //开显示不显示光标 WriteInstruction(0x06); //写一个指针加一 WriteInstruction(0x01); //清屏 } void main(void) { int i=0; WDTCTL=WDTPW+WDTHOLD; Lcd_Init(); // ADC10_Init(); WriteAddress(0x03); WriteData('V'); WriteData('P'); WriteData('P'); WriteData(':'); for(i=0;i<16;i++) { WriteData(tab[i]); } while(1); } 二:MSP430FR5994+LCD1602代码 #include unsigned char tab[]={"1234567"}; #define uchar unsigned char #define uint unsigned int #define lcd_dir P3DIR //P3.0,P3.1,P3.2,P3.3,P3.4,P3.5,P3.6,P3.7, #define lcd_out P3OUT #define OUT_lcd P1DIR |=BIT2+BIT4+BIT5 //P2口设为输出 #define RS_1 P1OUT |=BIT2 //P1.2 #define RS_0 P1OUT &=~BIT2 #define RW_1 P1OUT |=BIT4 //P1.4 #define RW_0 P1OUT &=~BIT4 #define E_1 P1OUT |=BIT5 //P1.5 #define E_0 P1OUT &=~BIT5 //写指令 void WriteInstruction(uchar dictate) //单词:Instruction指令 dictate命令、指示 { P1OUT &= ~BIT2|~BIT4|~BIT5;//清除P1.0输出锁存器以确定开机状态 OUT_lcd; P3OUT &= ~BIT0|~BIT1|~BIT2|~BIT3|~BIT4|~BIT5|~BIT6|~BIT7;//清除P1.0输出锁存器以确定开机状态 //清除并启动 lcd_dir =0xff;//全部输出 _delay_cycles(5000); E_0; RS_0; RW_0; _delay_cycles(2); E_1; lcd_out=dictate; _delay_cycles(1000); E_0; } //写地址 void WriteAddress(uchar x) //Address地址 { WriteInstruction(x|0x80); //设计数据指针起点 } //写数据 void WriteData(uchar y) { P1OUT &= ~BIT2|~BIT4|~BIT5;//清除P1.0输出锁存器以确定开机状态 OUT_lcd; P3OUT &= ~BIT0|~BIT1|~BIT2|~BIT3|~BIT4|~BIT5|~BIT6|~BIT7;//清除P1.0输出锁存器以确定开机状态 //清除并启动 lcd_dir =0xff;//全部输出 _delay_cycles(5000); RS_1; E_0; RW_0; _delay_cycles(2); E_1; lcd_out=y; _delay_cycles(1000); E_0; RS_0; } void Lcd_Init() { _delay_cycles(15000); WriteInstruction(0x38);//开显示 _delay_cycles(50); WriteInstruction(0x38); WriteInstruction(0x38); WriteInstruction(0x0c); //开显示不显示光标 WriteInstruction(0x06); //写一个指针加一 WriteInstruction(0x01); //清屏 } void main(void) { int i=0; WDTCTL=WDTPW+WDTHOLD; PM5CTL0 &= ~LOCKLPM5; Lcd_Init(); // ADC10_Init(); WriteAddress(0x03); WriteData('V'); WriteData('I'); WriteData('P'); WriteData(':'); for(i=0;i<7;i++) { WriteData(tab[i]); } while(1); } 三:MSP430F5529+LCD1602代码 #include unsigned char tab[]={"1234567"}; #define uchar unsigned char #define uint unsigned int #define lcd_dir P3DIR //P3.0,P3.1,P3.2,P3.3,P3.4,P3.5,P3.6,P3.7, #define lcd_out P3OUT #define OUT_lcd P1DIR |=BIT2+BIT4+BIT5 //P1口设为输出 #define RS_1 P1OUT |=BIT2 //P1.2 #define RS_0 P1OUT &=~BIT2 #define RW_1 P1OUT |=BIT4 //P1.4 #define RW_0 P1OUT &=~BIT4 #define E_1 P1OUT |=BIT5 //P1.5 #define E_0 P1OUT &=~BIT5 //写指令 void WriteInstruction(uchar dictate) //单词:Instruction指令 dictate命令、指示 { OUT_lcd; //清除并启动 lcd_dir =0xff;//全部输出 _delay_cycles(5000); E_0; RS_0; RW_0; _delay_cycles(2); E_1; lcd_out=dictate; _delay_cycles(1000); E_0; } //写地址 void WriteAddress(uchar x) //Address地址 { WriteInstruction(x|0x80); //设计数据指针起点 } //写数据 void WriteData(uchar y) { OUT_lcd; //清除并启动 lcd_dir =0xff;//全部输出 _delay_cycles(5000); RS_1; E_0; RW_0; _delay_cycles(2); E_1; lcd_out=y; _delay_cycles(1000); E_0; RS_0; } void Lcd_Init() { _delay_cycles(15000); WriteInstruction(0x38);//开显示 _delay_cycles(50); WriteInstruction(0x38); WriteInstruction(0x38); WriteInstruction(0x0c); //开显示不显示光标 WriteInstruction(0x06); //写一个指针加一 WriteInstruction(0x01); //清屏 } void main(void) { int i=0; WDTCTL=WDTPW+WDTHOLD; Lcd_Init(); // ADC10_Init(); WriteAddress(0x03); WriteData('V'); WriteData('I'); WriteData('P'); WriteData(':'); for(i=0;i<7;i++) { WriteData(tab[i]); } while(1); }
史海拾趣
|
(1)什么是数据总线 一辆汽车不管有多少块电控单元,不管信息容量有多大,每块电控单元都只需引出两条线共同接在两个节点上,这两条导线就称作数据总线。以前各电控单元之间好比有许多人骑着自行车来来往往,现在是这些人乘坐公共汽车,公共汽车 ...… 查看全部问答> |
|
SW-EK-LM3S8962-5961 软件包里面 can_device_qs_debug 就是小板的工程文件 小板的程序使用KEIL软件,LM3S8962 Evaluation Board开发板板载调试器调试外部芯片,就可以下载程序了。 IAR软件下载不成功,知道的告诉一声如何 ...… 查看全部问答> |
|
WINCE5 基于MFC,使用GDI+时,能通过编译,但是画不出来 WINCE5 EVC基于MFC的。使用GDI+时,能通过编译,但是画不出来 我从这个网站http://www.ernzo.com/LibGdiplus.aspx下载下来VC使用GID+的头文件以及LIB库。。按 照下面的要求 配置好GDI+ 使用环境。。 头文件: #inc ...… 查看全部问答> |
|
ot@localhost u-boot-1.1.6]# export PATH=/ning/2.95.3/bin:$PATH [root@localhost u-boot-1.1.6]# make B2_config Configuring for B2 board... [root@localhost u-boot-1.1.6]# make for dir in tools examples post post/cpu ; do make - ...… 查看全部问答> |
|
vxwoks系统有自己的tlenet服务,但是怎样把自己做的shell关联到系统的telnet 服务上呢? 看了帮助,说修改shellParserControl这个接口为自定义的接口,但是怎样实现这个接口呢?急,谢谢!… 查看全部问答> |
|
一般来说soc的串口是都已经是能用的. 我现在的问题是 root@/dev#echo jdskfj>ttyS1 Using fractional divider baud 9600, clock 100000000 dlf 00 dlm is 2,dll is 8b 当我用int main() { int fd; int nread; int i; char buff[512]; ch ...… 查看全部问答> |
|
1、可延展性:LCD屏做的越大,生产线设备投入越高。而LED显示屏尺寸的增大是很容易的,就像搭积木一样。分辨率也方便根据用户需求实现。 2、全彩:灯泡,霓虹灯等都是单色的,LED实现了RGB三原色的组合。 3、可靠性高:LED是固体照明, ...… 查看全部问答> |




