在單片機P3.0、P3.1引腳外接兩個獨立按鍵K1、K2,K1按下時第一行回圈顯示你的姓名拼音,K2按下時第二行回圈顯示你的學號,顯示間隔1秒。初始顯示“my information”
#include<reg51.h> //頭檔案
#define uchar unsigned char //變數定義
#define uint unsigned int
sbit RS=P2^0;
sbit RW=P2^1;
sbit EN=P2^2;
sbit K1=P3^0;
sbit K2=P3^1;
uchar code table[4][4]={0x3f,0x06,0x5b,0x4f,0x66,
0x6d,0x7d,0x07,0x7f,0x6f,
0x77,0x7c,0x39,0x5e,0x79,0x71};
void delayms(uint z)
{
uint x,y;
for(x=z;x>0;x--)
for(y=114;y>0;y--); //延時陳述句
}
void lcd_status() //讀寫檢測
{
uchar sta;
P0=0xff; //輸入狀態
RS=0;
RW=1;
EN=0;
do
{
EN=1;
sta=P0;
EN=0;
}while(sta&0x80);
}
void lcd_writecmd(uchar cmd)
{
lcd_status();
RS=1;
RW=0;
P0=cmd;
EN=1;
EN=0;
}
void lcd_writedate(uchar dat)
{
lcd_status();
RS=1;
RW=0;
P0=dat;
EN=1;
EN=0;
}
void lcd1602_init()
{
lcd_writecmd(0x38);//16*2,5*7點陣,8位資料口
lcd_writecmd(0x0c);//開顯示,游標閃爍,游標顯示
lcd_writecmd(0x07);//整屏左移一位
lcd_writecmd(0x01);//資料指標清零,所有顯示清零
}
void main()
{
lcd1602_init();
lcd_writecmd(0x80+0x06);
while(1);
}
uj5u.com熱心網友回復:
先不加按鍵,直接顯示一行字符看能否成功,再加按鍵,我看你連顯示都沒實作。轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/37497.html
標籤:單片機/工控
