久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费
標題:
MSP430單片機驅動LCD1602液晶屏源程序
[打印本頁]
作者:
51hei學習技術中
時間:
2017-3-7 01:28
標題:
MSP430單片機驅動LCD1602液晶屏源程序
MSP430單片機做的驅動常見的LCD1602液晶屏的源程序:
0.png
(67.55 KB, 下載次數: 105)
下載附件
2017-3-7 01:25 上傳
完整的程序下載:
MSP430單片機驅動LCD1602液晶屏源程序.rar
(23.6 KB, 下載次數: 333)
2017-3-7 01:27 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
下面是部分源碼預覽:
#include <msp430x22x4.h> /*單片機寄存器頭文件*/
#include "lcd1602.h" /*LCD驅動頭文件*/
/*-////////////////////////////函數說明///////////////////////////////-*/
/*- 名 稱:Serial_To_Parallel() -*/
/*- 功 能:輸出通過74HC164由并行轉為串行 -*/
/*- 輸入變量:無 -*/
/*- 輸出變量:無 -*/
/*-///////////////////////////////////////////////////////////////////-*/
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;
}
}
/*-////////////////////////////函數說明///////////////////////////////-*/
/*- 名 稱:Delay() -*/
/*- 功 能:延時 -*/
/*- 輸入變量:無 -*/
/*- 輸出變量:無 -*/
/*-///////////////////////////////////////////////////////////////////-*/
void Delay(unsigned int count)
{
unsigned int i=count;
while (i != 0)
{
i--;
}
}
/*-////////////////////////////函數說明///////////////////////////////-*/
/*- 名 稱: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);
}
/*-////////////////////////////函數說明///////////////////////////////-*/
/*- 名 稱:LCD_WriteData(unsigned char Dat) -*/
/*- 功 能:LCD寫入數據 -*/
/*- 輸入變量:unsigned char Dat(數據) -*/
/*- 輸出變量:無 -*/
/*-///////////////////////////////////////////////////////////////////-*/
void LCD_WriteData(unsigned char Dat)
{
RS_SET_H; //數據
RW_SET_L; //寫操作
Serial_To_Parallel(Dat);
_NOP();
E_SET_H;
_NOP();
E_SET_L;//使能端下降沿沿寫入
Delay(Delay_Count);
}
/*-////////////////////////////函數說明///////////////////////////////-*/
/*- 名 稱:LCD_SetXY(char x,char y) -*/
/*- 功 能:設定LCD寫入數據指針 -*/
/*- 輸入變量:unsigned char Dat(數據) -*/
/*- 輸出變量:無 -*/
/*-///////////////////////////////////////////////////////////////////-*/
void LCD_SetXY(char x,char y)
{
switch(y)//數據指針=80+地址碼(0-27H,40-67H)
{
case 1:LCD_WriteCommand(0x7f + x);break; //第1行
case 2:LCD_WriteCommand(0xbf + x);break; //第2行
}
}
/*-////////////////////////////函數說明///////////////////////////////-*/
/*- 名 稱: LCD_DispStr(...) -*/
/*- 功 能: LCD寫入字符 -*/
/*- 輸入變量:x(列數),y(行數),*p字符串指針,length(長度) -*/
/*- 特殊說明:x或者y為0時候,液晶顯示使用默認地址(不指定新地址) -*/
/*- 輸出變量:無 -*/
/*-///////////////////////////////////////////////////////////////////-*/
void LCD_DispCharArray(char x,char y,char *p,unsigned char length)
{
if (x !=0x00 && y!=0x00)
{
LCD_SetXY(x,y);//數據有效重新設置位置
}
while(length!=0)
{
LCD_WriteData(*p);
p++;
length--;
}
}
/*-////////////////////////////函數說明///////////////////////////////-*/
/*- 名 稱: LCD_DispStr(...) -*/
/*- 功 能:LCD寫入字符串,自動識別結束符號‘\0’ -*/
/*- 輸入變量:x(列數),y(行數),*p(字符串指針) -*/
/*- 特殊說明:x或者y為0時候,液晶顯示使用默認地址(不指定新地址) -*/
/*- 輸出變量:無 -*/
/*-///////////////////////////////////////////////////////////////////-*/
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);//數據有效重新設置位置
}
while(*p!='\0')
{
LCD_WriteData(*p);
p++;
}
}
/*-////////////////////////////函數說明///////////////////////////////-*/
/*- 名 稱: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); //開顯示,不顯示光標
LCD_WriteCommand(0x00);
}
/*-////////////////////////////函數說明///////////////////////////////-*/
/*- 名 稱:LCD_CLR() -*/
/*- 功 能:LCD清屏 -*/
/*- 輸入變量:無 -*/
/*- 輸出變量:無 -*/
/*-///////////////////////////////////////////////////////////////////-*/
void LCD_CLR()
{
LCD_WriteCommand(0x01); //清屏
}
復制代碼
作者:
++___aa
時間:
2018-5-8 16:37
試試,感覺應該可以
作者:
++___aa
時間:
2018-5-8 16:38
試一下
歡迎光臨 (http://www.zg4o1577.cn/bbs/)
Powered by Discuz! X3.1
主站蜘蛛池模板:
91看片网
|
国产精品视频专区
|
亚洲一区二区中文字幕在线观看
|
午夜视频一区
|
午夜www
|
国产精品久久久久无码av
|
国产色99精品9i
|
国产精品 欧美精品
|
福利视频网址
|
99久久精品国产毛片
|
精品国产黄a∨片高清在线 www.一级片 国产欧美日韩综合精品一区二区
|
日韩在线视频一区
|
久久国产三级
|
午夜影院在线观看
|
欧美一区二区三区在线视频
|
成人在线黄色
|
九九在线视频
|
国产精品久久久久久网站
|
日韩欧美国产电影
|
精品视频在线一区
|
中文字幕在线剧情
|
天天综合网永久
|
九九av
|
色视频一区二区
|
亚洲成人国产
|
日日摸日日碰夜夜爽亚洲精品蜜乳
|
国产aa
|
中文字幕不卡在线88
|
亚洲视频免费在线播放
|
日韩精品一区二区三区在线播放
|
久久精品亚洲一区二区三区浴池
|
精品久久久久久久久久久久
|
影音av
|
夜夜骚视频
|
久久69精品久久久久久久电影好
|
黄色成人免费在线观看
|
九九九久久国产免费
|
国产一级片久久久
|
国产精品一区视频
|
91在线资源
|
在线免费观看视频黄
|