MSP430单片机串行四线驱动1602液晶程序

发布者:Jinyu521最新更新时间:2015-06-26 来源: 51hei关键字:MSP430  单片机  串行四线驱动  1602液晶 手机看文章 扫描二维码
随时随地手机看文章
#include "msp430g2553.h"

#define uchar unsigned char
#define uint unsigned int
#define RS_1 P1OUT|=BIT3;//输入数据
#define RS_0 P1OUT&=~BIT3;//输入指令
#define RW_1 P1OUT|=BIT4;//写入指令或者数据
#define RW_0 P1OUT&=~BIT4;//从lcd里面读取数据
#define EN_1 P1OUT|=BIT5;//读取信息
#define EN_0 P1OUT&=~BIT5;//下降沿时候执行指令
#define datt P2OUT;
uchar temp=0;
uchar  table1[]={"hello"};
uchar  table2[]={"hello"};

/*.................................................
 * 延时程序
.................................................. */

void delay(uint i)
{
uint j;
while(--i!=0)
{
for(j=0;j<255;j++);
}
}

/*.................................................
 * 忙信号检查
.................................................. */

uchar chkbusy()
{
uchar busy;
P2OUT=0xf0;
EN_0;//读取数据
RS_0;//输入指令
RW_1;//写入指令或者数据
EN_1;//读取信息
busy=P2OUT&0x80;
delay(1);
EN_0;//下降沿执行指令
return(busy);
}

/*.................................................
 * 写指令
.................................................. */

void writecom(uchar x,uchar comm)
{
//if(x) while(chkbusy());
EN_0;
RS_0;
RW_0;
EN_1;
P2OUT=(comm&0xf0);
delay(5);
EN_0;
delay(5);
EN_1;
P2OUT=(comm&0x0f)<<4;
delay(5);
EN_0;
}

/*.................................................
 * 写数据
.................................................. */

void writedata(uchar dat)
{

//while(chkbusy()); //检查忙信号
EN_0;
RS_1;
RW_0;
EN_1;
P2OUT=(dat&0xf0); //送高四位数据到P2口
delay(5);
EN_0;
delay(5);
EN_1;
P2OUT=(dat&0x0f)<<4; //送低四位数据到P2口
delay(5);
EN_0;
P2OUT=P2OUT|0x0f; //置低四位为1

}

/*.................................................
 * lcd初始化程序
.................................................. */

void lcdinit()
{
delay(30);
writecom(0,0x02);//数据指针清零
delay(5);
writecom(1,0x28);//
writecom(1,0x0c);//显示光标开及设置
writecom(1,0x06);//显示光标移动设置
writecom(1,0x01);//显示清屏
delay(10);
}

/*.................................................
 * 在指定位置显示一个字符,x为行,Y为列
.................................................. */

void displayone(uchar x,uchar y,uchar *n)
{
uchar add;
if (x == 1) add=0x80+y;
//writecom(1,add);
else add=0xc0+y;
writecom(1,add);
writedata(*n);
}

/*.................................................
 * 显示字符串
.................................................. */

void displayleng(uchar x,uchar y,uchar *s)
{
y=y&0x0f;
while(*s)
{
displayone(x,y,s);
y++;
s++;
}
}

/*.................................................
 * 主函数
.................................................. */

void main()
{

 WDTCTL = WDTPW + WDTHOLD;                 // Stop WDT
    P2SEL=0x00;
    P2DIR = 0xff;
    P1DIR = 0x38;

lcdinit();
//lcdcls();

P2OUT=0xff;

writecom(1,0x01);
//writedata(0x01);
while(1)
{
displayleng(1,0,table1);
delay(100);
displayleng(2,1,table2);
}
}

关键字:MSP430  单片机  串行四线驱动  1602液晶 引用地址:MSP430单片机串行四线驱动1602液晶程序

上一篇:用STC12C5A60S2自制逻辑分析仪
下一篇:串口通信基本接线方法

推荐阅读最新更新时间:2024-03-16 14:05

单片机---HLK-W801图形框架LVGL下开发(四)
2022年3月24日效果,增加了汉化,APP包括温湿度,计算器,wifi连接,在wifi连接状态下,能够进行NTP时间同步及查询天气。 海凌科w801开发的单片机主机 本章重点 之前的版本,说是在w801下开发,也只是硬件是w801,而软件依旧用的是w806的代码框架,原因还是w806的代码框架逻辑十分清晰,使用起来也简单明了。 不过经过一天的奋战,还是将所有部分都移植到了w801的代码框架上了,为的就是能上网啊。 真是年轻人为了上网,啥都做得出来 最新版本LVGL移植 还是简单的步骤,将源码和头文件放在到工程中,我放在了src下的app中 然后就是编译,可能会报一些函数引用的问题,调整下头文件包含的顺序即可。别问我为
[单片机]
<font color='red'>单片机</font>---HLK-W801图形框架LVGL下开发(四)
基于单片机的智能防腐电源的设计和实现
目前国内使用的防腐电源主要是磁放大式和晶闸管式的防腐电源,其缺点是空载电流大,功率因数低,能耗高,可靠性差,而且工作电流过大时,主变压器便会出现较大的震动噪音,这些缺点是普通防腐电源所共有的。以单片机控制系统为基础而设计的新一代智能防腐电源不但电路简单、结构紧凑、价格低廉、性能卓越,而且由于单片机具有计算和控制能力,利用它对采样数据进行各种计算,从而可排除和减少干扰信号和模块电路引起的误差,大大提高电源系统输出电压和输出电流的精度,降低了对模拟电路的要求,克服了传统防腐电源的缺点。 设计原理 防腐电源现有的设计方法大多数是采用TL 494或SG3525A等专用PWM控制芯片,该设计方法不易调整,随着负载的变化,输出直流电压变化
[单片机]
基于单片机的时间/位移换向控制器SWHX-1
   引言   在实际生产过程中,常常要用到具有自动换向功能的控制部件,如机械加工中的往返运行(位移),直流电源的正反向输出,电动机的正反转运行等现象,都是当正向(或反向)运行到一定时间或一定位置时,自动换为反向(或正向)运行,周而复始的过程。实现这一过程的自动化,就是设计一套控制电路,再配以位移传感器或时间继电器。目前市场现有的时间继电器虽然可以用多个组合来满足一些使用场合的要求,但仍存在着重复计时误差大,稳定可靠运行性不高,使用不方便灵活等问题。为此,笔者研发了以单片机为核心组成的时间/位移换向控制器SWHX-1,该系统具有成本低等特点,可完全且克服以上不足。    2 电路组成及工作原理   SWHX-1的内部电路如图
[单片机]
基于<font color='red'>单片机</font>的时间/位移换向控制器SWHX-1
MSP430单片机ADC模块
列型号 ADC功能实现 转换精度 MSP430X1XX2 比较器实现 10位 MSP430F13X ADC模块 12位 MSP430F14X ADC模块 12位 MSP430F43X ADC模块 12位 MSP430F44X ADC模块 12位 MSP430X32X ADC模块 14位 #include unsigned char timp; unsigned int ADC0 ; void init (void); //初始化 void ADC12setup(void); //ADC12初始化 void main(void) { init(); //主循环
[单片机]
基于嵌入式WinCE与MSP430单片机多串口通信设计
在远程监控和工业自动化系统中,串口通信因其具有连接简单、使用方便、可靠性高的优点,得到越来越广泛的应用。讨论了采用WinCE嵌入式与MSP430单片机构建串口多机通信系统的问题,在分析了WinCE操作系统与MSP430单片机串口模块特性的基础上,给出了进行串口通信的总体框图,针对实际串口通信存在的问题制定串行通信协议,然后在该系统硬件基础上根据需要定制WinCE系统内核,最后实现串口通信设计。实验结果表明:该系统能够达到多串口通信的要求。 目前WinCE嵌入式与MSP430单片机在仪器仪表、工业控制、移动设备等有着广泛的应用。在很多复杂的应用场合比如多点温度采集、多点转速采集,一个单片机不能满足要求,需要多台单片机协同工作,此
[单片机]
基于嵌入式WinCE与<font color='red'>MSP430</font><font color='red'>单片机</font>多串口通信设计
设计属于自己的单片机最小系统
一、 确定任务 开发 单片机 最小系统 二、任务分析: 该系统具有的功能: (1)具有2位 LED 数码管 显示功能。 (2)具有八路 发光二极管 显示各种流水灯。 (3)可以完成各种奏乐,报警等发声音类实验。 (4)具有复位功能。 三、功能分析 (1)两位LED数码管显示功能,我们可以利用单片机的P0口接两个数码管来现这个功能; (2)八路发光 二极管 显示可以利用P1口接八个发光二极管实现这个功能; (3)各种奏乐、报警等发声功能可以采用P2.0这个引脚接一蜂鸣器来实现。 (4)利用单片机的第9脚可以设计成复位系统,我们采用按键复位;利用单片机的18、19脚可以设计成时钟 电路 ,我们利用单片机的内部振荡方式设计的。 四、设计
[单片机]
设计属于自己的<font color='red'>单片机</font>最小系统
关于TIDA-00373智能照明的设计方案分享
MSP430超低功耗(ULP)FRAM平台集成了独特的嵌入式FRAM和全面的超低功耗系统架构,让创新者能够以较低的能量预算提高性能。FRAM技术整合了SRAM的速度、灵活性和耐久性与闪存的稳定性和可靠性,大幅降低了功耗。 MSP430 ULP FRAM产品系列包含丰富的器件,具有FRAM、ULP 16位MSP430 CPU和面向各种应用的智能外设。ULP架构展示了7种低功耗模式,能够延长电池寿命。 MSP430FR5969主要特性 嵌入式微控制器 时钟速率高达16MHz的16位RISC架构 宽电源电压范围:1.8V~3.6V(最低电源电压受SVS电平限制) 优化的超低功耗模式 活动模式:约100µA/MHz 待机(带有VL
[单片机]
关于TIDA-00373智能照明的设计方案分享
PIC单片机在线编程调试中的一些问题
1 在线串行编程   1.1在线串行编程接口   带有Flash闪速存储器的PIC单片机产品一般都具有在线串行编程功能,只需要5根引线就可以把程序下载到单片机的Flash程序存储器中。这5根线的排列顺序是MCLR/Vpp、Vdd、Vss、PD(或PGD)和PC(或PGC),图1是PIC单片机在线串行编程接口图。              图1PIC单片机在线串行编程接口   1.2引脚含义   上述5根引线的具体含义是:MCLR/Vpp——编程电压(对于PIC单片机一般为13 V左右);Vdd——编程电源(5 V);Vss——地;PD——编程数据信号;PC——编程时钟信号。   有了这个编程连接电路,
[单片机]
PIC<font color='red'>单片机</font>在线编程调试中的一些问题
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
  • 学习ARM开发(16)
    ARM有很多东西要学习,那么中断,就肯定是需要学习的东西。自从CPU引入中断以来,才真正地进入多任务系统工作,并且大大提高了工作效率。采 ...
  • 学习ARM开发(17)
    因为嵌入式系统里全部要使用中断的,那么我的S3C44B0怎么样中断流程呢?那我就需要了解整个流程了。要深入了解,最好的方法,就是去写程序 ...
  • 学习ARM开发(18)
    上一次已经了解ARM的中断处理过程,并且可以设置中断函数,那么它这样就可以工作了吗?答案是否定的。因为S3C44B0还有好几个寄存器是控制中 ...
  • 嵌入式系统调试仿真工具
    嵌入式硬件系统设计出来后就要进行调试,不管是硬件调试还是软件调试或者程序固化,都需要用到调试仿真工具。 随着处理器新品种、新 ...
  • 最近困扰在心中的一个小疑问终于解惑了~~
    最近在驱动方面一直在概念上不能很好的理解 有时候结合别人写的一点usb的例子能有点感觉,但是因为arm体系里面没有像单片机那样直接讲解引脚 ...
  • 学习ARM开发(1)
  • 学习ARM开发(2)
  • 学习ARM开发(4)
  • 学习ARM开发(6)
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved