1024手机基地看电影,午夜福利视频导航,国产精品福利在线一区,亚洲欧美日韩另类成人,在线观看午夜日本理论片,成年超爽免费网站,国产精品成人免费,精品动作一级毛片,成人免费观看网站,97精品伊人久久大香蕉
標題:
使用的是51+1602液晶,就是插上點陣后發現液晶就顯示不出相應的數字了,求大佬指點...
[打印本頁]
作者:
鄒meng
時間:
2018-7-20 08:52
標題:
使用的是51+1602液晶,就是插上點陣后發現液晶就顯示不出相應的數字了,求大佬指點...
#include <reg52.h>
typedef unsigned char uchar8;
typedef unsigned int uint16;
uchar8 code TAB1[] = "l do what l do";
uchar8 code TAB2[] = "1711";
sbit RS = P3^5; //數據or命令選擇端(H/L)
sbit RW = P3^4; //讀/寫選擇端(H/L)
sbit EN = P3^3; //使能信號(電平)
sbit BIT_ = P1^6;
sbit SEG_ = P1^7;
void DelayMS(uint16 val)
{
uint16 i, j;
for(i = 0; i < val; i++)
for(j = 0; j < 113; j++);
}
/*************************************
*函數名稱:DectectBusyBit()
*函數功能:檢測狀態標志位(忙or閑)
***************************************/
void DectectBusyBit(void)
{
P0 = 0xff; //讀取狀態值時,先賦高電平
RS = 0;
RW = 1;
EN = 1;
DelayMS(1);
while(P0 & 0x80); //若LCD忙,則停止在這里,否則走起
EN = 0; //之后將EN初始化為低電平
}
/****************************************
*函數名稱:WrComLCD()
*函數功能:為LCD寫指令
*入口參數:指令(ComVal)
*****************************************/
void WrComLCD(uchar8 ComVal)
{
DectectBusyBit();
RS = 0;
RW = 0;
EN = 1;
P0 = ComVal;
DelayMS(1);
EN = 0;
}
/*******************************************
*函數名稱:WrDatLCD()
*函數功能:為LCD寫數據
*入口參數: 數據(DatVal)
********************************************/
void WrDatLCD(uchar8 DatVal)
{
DectectBusyBit();
RS = 1;
RW = 0;
EN = 1;
P0 = DatVal;
DelayMS(1);
EN = 0;
}
/******************************************
*函數名稱:LCD_Init()
*函數功能:初始化LCD
*******************************************/
void LCD_Init(void)
{
WrComLCD(0x38);
DelayMS(1);
WrComLCD(0x38);
WrComLCD(0x01);
WrComLCD(0x06);
DelayMS(1);
WrComLCD(0x0c);
}
void main(void)
{
uchar8 ucval;
SEG_ = 1;
P0 = 0x00;
SEG_ = 0;
BIT_ = 1;
P0 = 0xff;
BIT_ = 0;
LCD_Init();
DelayMS(5);
WrComLCD(0x80);
while(TAB1[ucval] != '\0')
{
WrDatLCD(TAB1[ucval]);
ucval++;
}
ucval = 0;
WrComLCD(0xc0);
while(TAB2[ucval] != '\0')
{
WrDatLCD(TAB2[ucval]);
ucval++;
}
while(1);
}
歡迎光臨 (http://m.raoushi.com/bbs/)
Powered by Discuz! X3.1