① 51單片機驅動1602c液晶顯示屏復位的問題
你確定是將程序燒到單片機裡面的而不是用keil硬體模擬的嗎,如果是燒進去的就只能檢測你的初始化程序有沒有錯誤(你說了你的硬體電路沒問題的);如果是硬體模擬的話就看看你的設置有沒有問題,keil硬體模擬不要勾選串口引發中斷,還有就是最好不要用到P3的引腳
② 怎樣用C語言程序讓單片機外接設備LCD液晶屏進入休眠狀態
//使液晶進入休眠其實就是關閉液晶顯示,比如1602,發送08這個命令就可以了。
#define LCD1602_FLAG
#define LCD1602_PORT P1
#include<reg52.h>
#include<stddef.h>
#include"dtype.h"
sbit lcd1602_rs=P3^7;
sbit lcd1602_e=P3^5;
sbit lcd1602_rw=P3^6;
sbit lcd1602_busy=P1^7;
sbit keydis=P3^0;
sbit keyno=P3^1;
/*
************************************
* 函數名稱:lcd1602_CheckBusy()
* 函數功能:狀態查詢
************************************
*/
void lcd1602_CheckBusy()
{
do
{
lcd1602_busy=1;
lcd1602_rs=0;
lcd1602_rw=1;
lcd1602_e=0;
lcd1602_e=1;
}
while(lcd1602_busy);
}
/*
***************************************
* 函數名稱: lcd1602_WriteCmd()
* 函數功能:寫命令
***************************************
*/
void lcd1602_WriteCmd(const INT8U cmd)
{
lcd1602_CheckBusy();
lcd1602_rs=0;
lcd1602_rw=0;
lcd1602_e=1;
LCD1602_PORT=cmd;
lcd1602_e=0;
}
/*
*******************************************
* 函數名稱:lcd1602_WriteData()
* 函數功能:寫數據
*********************************************
*/
void lcd1602_WriteData(const INT8U c)
{
lcd1602_CheckBusy();
lcd1602_rs=1;
lcd1602_rw=0;
lcd1602_e=1;
LCD1602_PORT=c;
lcd1602_e=0;
}
/*
***********************************************
* 函數名稱:lcd1602_Init()
* 函數功能:初始化LCD
***********************************************
*/
void lcd1602_Init()
{
lcd1602_WriteCmd(0x38); //顯示模式為8位2行5*7點陣
lcd1602_WriteCmd(0x0f); //display enable,flag enable,flash enable,
lcd1602_WriteCmd(0x06); //flag move to right,screen don't move
lcd1602_WriteCmd(0x01); //clear screen
}
/*
************************************************
* 函數名稱:lcd1602_Display()
* 函數功能: 字元顯示
************************************************
*/
void lcd1602_Display(const INT8U *ptr)
{
INT8U data i=0;
INT8U *data q;
q=ptr;
lcd1602_WriteCmd(0x80);
while(q!=NULL && (*q!='\0') && i<16)
{
lcd1602_WriteData(*q);
q++;
i++;
}
lcd1602_WriteCmd(0xc0);
while(q!=NULL && (*q!='\0') && i>=16 && i<32)
{
lcd1602_WriteData(*q);
q++;
i++;
}
}
main()
{
INT8U *txt="hello friend!";
lcd1602_Init();
while(1)
{
if(keydis==0)
{
while(keydis==0);
lcd1602_Display(txt); //顯示信息
}
if(keyno==0)
{
while(keyno==0);
lcd1602_WriteCmd(0x08); //關閉顯示
}
}
}
③ 單片機控制LCD160如何關閉顯示屏
應該就是指清屏吧?可以將所有顯示寄存器置零,這樣液晶無顯示,然後關掉COM口掃頻,這樣就將液晶模塊徹底關掉了,
④ 如何用51單片機的按鍵控制1602切屏
1602隻是一個顯示屏,並且它是靜態顯示,不需反復刷新,因此轉換顯示內容跟原來的程序運行不運行沒有直接關系。
就比如第一頁是時間,切換到第二頁顯示其他的,要保證時間正常,那麼你的時鍾程序採用的定時器中斷的方法來更新時分秒,只要你處理第二頁時不關閉定時器中斷,時鍾就一直在走,只不過不顯示罷了,再回第一頁時重新顯示肯定不會錯。如果你的時鍾程序不用定時器中斷那CPU忙其它事務的時候,肯定會「忘掉」時間更新。
⑤ 單片機液晶顯示的清屏指令怎麼設置請高手指點。將此類問題描述解釋的越詳細越好。感激不盡
1602的清屏指令寄存器是0x01 也就是對它寫入0x01的指令實現清屏,可以去看一下1602數據手冊的液晶屏指令說明,對應的游標設置、開顯示 都是一樣的道理!
⑥ 單片機接1602液晶顯示屏時,段選位選關了數碼管為什麼還會亮
肯定是你I/O口復用了,在後面的程序又打開了位選,檢查一下硬體的連接圖和程序
⑦ 有關51單片機1602的問題
有幾個錯誤:
電容上標注104的並不是說容量是104pF,而是指該電容的電容量是10×10^4pF,也就是100 000pF,相當於100nF。演算法類似於電阻的色環標注,最後一位數字是指數。
上面第一個圖中,1602液晶屏的第1腳是需要接地的,圖中沒有接地。
上面第一個圖中,1602液晶屏的16腳應該是接地的,你把背光LED的陰極和陽極都接到電源上了,怎麼可能把LED點亮。
1602的對比度控制VO引腳盡量不要使用固定電阻來控制,因為當電源電壓有變化或者1602的批次不同,可能會導致VO的電壓不同,這時用固定電阻的話難以消除這種離散的差異。盡量使用電位器來控制VO。
布線問題,自己想辦法吧,可以考慮換IO口。
⑧ 單片機上1602液晶全清屏指令為0x01,怎樣清除下部分的的顯示呢 在線等。
1602和12864一樣的只能是清全屏的 不能清每一行的
吉林大學應用技術學院經典33工作室
⑨ 如何關閉1602液晶屏
有按鍵給某個變數賦值,然後間隔減1,到0關閉