MSP430 1602
来源:互联网 发布:淘宝店铺怎样上传视频 编辑:程序博客网 时间:2024/06/04 19:03
学习430的单片机,自然要把每个模块弄明白。今天把按键搞定以后,就试着写了下1602的程序。反正现在先把模块都写好,以备后用,绝对用得着。
我是这样接线的,P1.1接RS,P1.2接en,P1.3接rw。P2.0~P2.7接的D0~D7。有个要特别注意的就是,P2.6和P2.7这两个端口的SEL在复位以后默认是1,所以在写程序的时候一定要注意置0,不然,不能用作I/O用。还有个要注意的是,把P1.0和P1.6的跳线帽拔下来。
#include<msp430g2553.h>
#define uint unsigned int
#define uchar unsigned char
uchar table[]={"XXXXXXXX"};//输入你想要显示的字符
void init();
void write_com(uchar com);//写指令函数
void write_data(uchar dat);//写数据函数
void LCD_display();//显示函数
void delay()
{
int z;
for(z=1000;z>0;z--);
}
void init()//初始化函数
{
P1OUT&=0xfb;
write_com(0x38); //设置显示,点阵,数据接口等
write_com(0x0c); //开显示,不显示光标,光标不闪烁
write_com(0x06); //指针自动加一
write_com(0x01); //数据指针、显示清零
write_com(0x80); //从第一格开始显示
}
/*LCD指令*/
void write_com(uchar com)
{
P1OUT&=0xfb;//写指令的时候RS给低
P2OUT=com;
delay();
P1OUT|=BIT2;//EN给一个高脉冲
delay();
P1OUT&=0xfb;
}
/*LCD数据*/
void write_data(uchar dat)
{
P1OUT|=BIT1;//写数据的时候RS给高
P2OUT=dat;
delay();
P1OUT|=BIT2;;//EN给一个高脉冲
delay();
P1OUT&=0xfb;
}
void LCD_display()
{
int i;
for(i=0;i<X;i++)//X代表字符的个数
{
write_data(table);
delay();
}
}
void main()
{
WDTCTL=WDTPW+WDTHOLD;//关看门狗
BCSCTL2=SELM_3;//选择时钟源为MCLK
P2SEL&=0x00;//P2为I/O模式
P2DIR|=0xff;//选择P2为输出端
P1DIR|=0x0e;//P1为输出端
P1OUT&=0x00;
P2OUT&=0x00;
init();
LCD_display();
while(1);
}
我是这样接线的,P1.1接RS,P1.2接en,P1.3接rw。P2.0~P2.7接的D0~D7。有个要特别注意的就是,P2.6和P2.7这两个端口的SEL在复位以后默认是1,所以在写程序的时候一定要注意置0,不然,不能用作I/O用。还有个要注意的是,把P1.0和P1.6的跳线帽拔下来。
#include<msp430g2553.h>
#define uint unsigned int
#define uchar unsigned char
uchar table[]={"XXXXXXXX"};//输入你想要显示的字符
void init();
void write_com(uchar com);//写指令函数
void write_data(uchar dat);//写数据函数
void LCD_display();//显示函数
void delay()
{
int z;
for(z=1000;z>0;z--);
}
void init()//初始化函数
{
P1OUT&=0xfb;
write_com(0x38); //设置显示,点阵,数据接口等
write_com(0x0c); //开显示,不显示光标,光标不闪烁
write_com(0x06); //指针自动加一
write_com(0x01); //数据指针、显示清零
write_com(0x80); //从第一格开始显示
}
/*LCD指令*/
void write_com(uchar com)
{
P1OUT&=0xfb;//写指令的时候RS给低
P2OUT=com;
delay();
P1OUT|=BIT2;//EN给一个高脉冲
delay();
P1OUT&=0xfb;
}
/*LCD数据*/
void write_data(uchar dat)
{
P1OUT|=BIT1;//写数据的时候RS给高
P2OUT=dat;
delay();
P1OUT|=BIT2;;//EN给一个高脉冲
delay();
P1OUT&=0xfb;
}
void LCD_display()
{
int i;
for(i=0;i<X;i++)//X代表字符的个数
{
write_data(table);
delay();
}
}
void main()
{
WDTCTL=WDTPW+WDTHOLD;//关看门狗
BCSCTL2=SELM_3;//选择时钟源为MCLK
P2SEL&=0x00;//P2为I/O模式
P2DIR|=0xff;//选择P2为输出端
P1DIR|=0x0e;//P1为输出端
P1OUT&=0x00;
P2OUT&=0x00;
init();
LCD_display();
while(1);
}
- MSP430 1602
- msp430
- MSP430
- MSP430
- msp430
- MSP430
- MSP430学习笔记10-ADC采集1602显示
- [转]MSP430
- MSP430入门
- 关于MSP430
- msp430看门狗
- MSP430学习
- MSP430------2
- MSP430强大
- msp430是什么?
- MSP430(1)
- MSP430(2)
- MSP430(3)
- 一个修改桌面背景色的例子
- PHP学习笔记-数组
- 语句用于实现mysql查询前几条记录
- 接口编程
- vim windows 乱码
- MSP430 1602
- VC TAB标签上添加图标
- KMP算法
- 一种建模工具很好用
- 在线考试系统(Ext3.2+ssh2+mysql)
- 什么是Qt
- spring 的 applicationcontext.xml
- C语言中预定义宏的应用
- hdu 4337——poj 2438(哈密尔顿回路求解模板)