欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136
標題:
單片機學習筆記(九)液晶字幕顯示
[打印本頁]
作者:
51hei人人
時間:
2016-3-12 16:46
標題:
單片機學習筆記(九)液晶字幕顯示
本帖最后由 51hei人人 于 2016-3-12 16:47 編輯
LCD顯示 第一行顯示 welcome 第二行顯示 www.baidu.com
C語言源程序:
#include <reg52.h> //52單片機頭文件包含
#include <intrins.h> //包換一些匯編指令的頭文件
typedef unsigned char BYTE;//定義BYTE 為 unsigned char 型
typedef unsigned int WORD;//定義WORD 為 unsigned int 型
typedef bit BOOL;//定義BOOL 為 bit 型
sbit rs=P1^0;//定義rs 為P1端口的第0位
sbit rw=P1^1;//定義rw為P1端口的第1位
sbit ep=P1^2;//定義ep為P1端口的第2位
BYTE code dis1[]={"welcome"};//定義第一行要顯示的字符數組
BYTE code dis2[]={"www.baidu.com"};//定義第二行要顯示的字符數組
delay(BYTE ms) //延時函數
{
BYTE i; //定義字節型變量i
while(ms--)//每循環一次將ms的值減1
{
for(i=0;i<250;i++)//for循環 循環250次
{
_nop_();//NOP語句
_nop_();//NOP語句
_nop_();//NOP語句
_nop_();//NOP語句
}
}
}
BOOL lcd_bz() //LCD忙碌狀態檢測函數
{
BOOL result; //定義結果位變量 result;
rs=0; //P0第一位給0
rw=1; //P0第二位給1
ep=1; //P0第三位給1
_nop_(); //空語句用于延時
_nop_(); //空語句用于延時
_nop_(); //空語句用于延時
_nop_(); //空語句用于延時
result=(BOOL)(P0 & 0x80) //將P0與0x80相與 結果轉換成BOOL型賦值給result
ep=0;//第三位給0
return result;//返回結果
}
lcd_wcmd(BYTE cmd) //指令寫入函數
{
whiel(lcd_bz()); //測試lcd是否忙碌
rs=0;rw=0;ep=0;//功能位選擇
_nop_();_nop_();//延時
P0=cmd; //寫入指令
_nop_();_nop_();//延時
_nop_();_nop_();//延時
ep=1;//ep給1
_nop_();_nop_();//延時
_nop_();_nop_();//延時
ep=0;//ep給0
}
lcd_pos(BYTE pos) //顯示位置設定函數
{
lcd_wcmd(pos | 0x80); //將pos和0x80相或作為參數傳給lcd_wcmd
}
lcd_wdat(BYTE dat) //字符寫入函數
{
while(lcd_bz());//測試lcd是否忙碌
rs=1;rw=0;ep=0;//功能位選擇
P0=dat;//寫入字符
_nop_();_nop_();//延時
_nop_();_nop_();//延時
ep=1;//ep給1
_nop_();_nop_();//延時
_nop_();_nop_();//延時
ep=0;//ep給0
}
lcd_init() //LCD初始化函數
{
lcd_wcmd(0x38);
delay(1); //延時
lcd_wcmd(0x0c);
delay(1);//延時
lcd_wcmd(0x06);
delay(1);//延時
lcd_wcmd(0x01); //清除LCD的顯示內容
delay(1);
}
main()
{
BYTE i;//定義BYTE變量i
lcd_init(); //初始化LCD
delay(10);//延時
lcd_pos(4); //設置顯示位置為第一行的第5個字符
i=0;//i賦值為0
while(dis1[i]!='\0')//判斷是否到了字符串結尾
{
lcd_wdat(dis1[i]);//循環將字符寫入
i++;i自加指向下個字符
}
lcd_pos(0x40); //設置顯示位置為第二行第一個字符
i=0;//i賦值為0
while(dis2[i]!='\0') //判斷是否到字符串結尾
{
lcd_wdat(dis2[i]);//循環將字符寫入
i++;i自加指向下個字符
}
whiel(i); //無限循環
}
//實驗結果 液晶屏第一行顯示welcome 第二行顯示www.baidu.com
復制代碼
歡迎光臨 (http://www.raoushi.com/bbs/)
Powered by Discuz! X3.1