欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136
標(biāo)題:
MSP430單片機(jī)驅(qū)動(dòng)LCD1602液晶屏源程序
[打印本頁(yè)]
作者:
51hei學(xué)習(xí)技術(shù)中
時(shí)間:
2017-3-7 01:28
標(biāo)題:
MSP430單片機(jī)驅(qū)動(dòng)LCD1602液晶屏源程序
MSP430單片機(jī)做的驅(qū)動(dòng)常見的LCD1602液晶屏的源程序:
0.png
(67.55 KB, 下載次數(shù): 105)
下載附件
2017-3-7 01:25 上傳
完整的程序下載:
MSP430單片機(jī)驅(qū)動(dòng)LCD1602液晶屏源程序.rar
(23.6 KB, 下載次數(shù): 333)
2017-3-7 01:27 上傳
點(diǎn)擊文件名下載附件
下載積分: 黑幣 -5
下面是部分源碼預(yù)覽:
#include <msp430x22x4.h> /*單片機(jī)寄存器頭文件*/
#include "lcd1602.h" /*LCD驅(qū)動(dòng)頭文件*/
/*-////////////////////////////函數(shù)說明///////////////////////////////-*/
/*- 名 稱:Serial_To_Parallel() -*/
/*- 功 能:輸出通過74HC164由并行轉(zhuǎn)為串行 -*/
/*- 輸入變量:無 -*/
/*- 輸出變量:無 -*/
/*-///////////////////////////////////////////////////////////////////-*/
void Serial_To_Parallel(char dat)
{
unsigned char i;
for(i=0;i<8;i++)
{
if(dat&0x80)
Data_OUT_H;
else
Data_OUT_L;
CLK_H;
_NOP();//空延遲
_NOP();
_NOP();
CLK_L;
dat<<=1;
}
}
/*-////////////////////////////函數(shù)說明///////////////////////////////-*/
/*- 名 稱:Delay() -*/
/*- 功 能:延時(shí) -*/
/*- 輸入變量:無 -*/
/*- 輸出變量:無 -*/
/*-///////////////////////////////////////////////////////////////////-*/
void Delay(unsigned int count)
{
unsigned int i=count;
while (i != 0)
{
i--;
}
}
/*-////////////////////////////函數(shù)說明///////////////////////////////-*/
/*- 名 稱:LCD_WriteCommand(unsigned char Com) -*/
/*- 功 能:LCD寫入命令 -*/
/*- 輸入變量:unsigned char Com(命令字) -*/
/*- 輸出變量:無 -*/
/*-///////////////////////////////////////////////////////////////////-*/
void LCD_WriteCommand(unsigned char Com)
{
RS_SET_L; //命令
RW_SET_L; //寫操作
_NOP();
Serial_To_Parallel(Com);
_NOP();
E_SET_H;
_NOP();
E_SET_L;//使能端下降沿沿寫入
Delay(Delay_Count);
}
/*-////////////////////////////函數(shù)說明///////////////////////////////-*/
/*- 名 稱:LCD_WriteData(unsigned char Dat) -*/
/*- 功 能:LCD寫入數(shù)據(jù) -*/
/*- 輸入變量:unsigned char Dat(數(shù)據(jù)) -*/
/*- 輸出變量:無 -*/
/*-///////////////////////////////////////////////////////////////////-*/
void LCD_WriteData(unsigned char Dat)
{
RS_SET_H; //數(shù)據(jù)
RW_SET_L; //寫操作
Serial_To_Parallel(Dat);
_NOP();
E_SET_H;
_NOP();
E_SET_L;//使能端下降沿沿寫入
Delay(Delay_Count);
}
/*-////////////////////////////函數(shù)說明///////////////////////////////-*/
/*- 名 稱:LCD_SetXY(char x,char y) -*/
/*- 功 能:設(shè)定LCD寫入數(shù)據(jù)指針 -*/
/*- 輸入變量:unsigned char Dat(數(shù)據(jù)) -*/
/*- 輸出變量:無 -*/
/*-///////////////////////////////////////////////////////////////////-*/
void LCD_SetXY(char x,char y)
{
switch(y)//數(shù)據(jù)指針=80+地址碼(0-27H,40-67H)
{
case 1:LCD_WriteCommand(0x7f + x);break; //第1行
case 2:LCD_WriteCommand(0xbf + x);break; //第2行
}
}
/*-////////////////////////////函數(shù)說明///////////////////////////////-*/
/*- 名 稱: LCD_DispStr(...) -*/
/*- 功 能: LCD寫入字符 -*/
/*- 輸入變量:x(列數(shù)),y(行數(shù)),*p字符串指針,length(長(zhǎng)度) -*/
/*- 特殊說明:x或者y為0時(shí)候,液晶顯示使用默認(rèn)地址(不指定新地址) -*/
/*- 輸出變量:無 -*/
/*-///////////////////////////////////////////////////////////////////-*/
void LCD_DispCharArray(char x,char y,char *p,unsigned char length)
{
if (x !=0x00 && y!=0x00)
{
LCD_SetXY(x,y);//數(shù)據(jù)有效重新設(shè)置位置
}
while(length!=0)
{
LCD_WriteData(*p);
p++;
length--;
}
}
/*-////////////////////////////函數(shù)說明///////////////////////////////-*/
/*- 名 稱: LCD_DispStr(...) -*/
/*- 功 能:LCD寫入字符串,自動(dòng)識(shí)別結(jié)束符號(hào)‘\0’ -*/
/*- 輸入變量:x(列數(shù)),y(行數(shù)),*p(字符串指針) -*/
/*- 特殊說明:x或者y為0時(shí)候,液晶顯示使用默認(rèn)地址(不指定新地址) -*/
/*- 輸出變量:無 -*/
/*-///////////////////////////////////////////////////////////////////-*/
void LCD_DispStr(char x,char y,char *p) //exp:LCD_DispStr(1,1,"LCD_Serial_test");
{
if (x !=0x00 && y!=0x00)
{
LCD_SetXY(x,y);//數(shù)據(jù)有效重新設(shè)置位置
}
while(*p!='\0')
{
LCD_WriteData(*p);
p++;
}
}
/*-////////////////////////////函數(shù)說明///////////////////////////////-*/
/*- 名 稱:LCD_Init() -*/
/*- 功 能:LCD初始化 -*/
/*- 輸入變量:無 -*/
/*- 輸出變量:無 -*/
/*-///////////////////////////////////////////////////////////////////-*/
void LCD_Init()
{
E_SET_OUT; //輸出端口初始化部分
RW_SET_OUT;
RS_SET_OUT;
DataPort_SET_OUT;
E_SET_L; //使能拉低
RW_SET_L; //讀寫拉低
RS_SET_L; //選擇拉低
CLK_SET_OUT;
LCD_WriteCommand(0x38); //寫命令部分
LCD_WriteCommand(0x01); //清屏
LCD_WriteCommand(0x06);
LCD_WriteCommand(0x0c); //開顯示,不顯示光標(biāo)
LCD_WriteCommand(0x00);
}
/*-////////////////////////////函數(shù)說明///////////////////////////////-*/
/*- 名 稱:LCD_CLR() -*/
/*- 功 能:LCD清屏 -*/
/*- 輸入變量:無 -*/
/*- 輸出變量:無 -*/
/*-///////////////////////////////////////////////////////////////////-*/
void LCD_CLR()
{
LCD_WriteCommand(0x01); //清屏
}
復(fù)制代碼
作者:
++___aa
時(shí)間:
2018-5-8 16:37
試試,感覺應(yīng)該可以
作者:
++___aa
時(shí)間:
2018-5-8 16:38
試一下
歡迎光臨 (http://m.raoushi.com/bbs/)
Powered by Discuz! X3.1