欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136
標題:
stc12c5a60s2單片機12m晶振1602顯示程序問題
[打印本頁]
作者:
maizhi99
時間:
2019-7-9 08:20
標題:
stc12c5a60s2單片機12m晶振1602顯示程序問題
#include <STC12C5A60S2.H>
#include <intrins.h>
sbit RS=P4^3;
sbit RW=P4^4;
sbit E=P4^5;
/*********************************************************************************************
函數名:毫秒級CPU延時函數
調 用:DELAY_MS (?);
參 數:1~65535(參數不可為0)
返回值:無
結 果:占用CPU方式延時與參數數值相同的毫秒時間
備 注:應用于1T單片機時i<600,應用于12T單片機時i<125
/*********************************************************************************************/
void Delay1602 (unsigned int a){
unsigned int i;
while( a-- != 0){
for(i = 0; i < 600; i++);
}
}
/*********************************************************************************************/
//寫數據函數
void LCD1602_Write_data(unsigned char databuf)
{
RS=1;
RW=0;
P0=databuf;
E=1;
E=0;
}
//寫指令函數
void LCD1602_Write_com(unsigned char combuf)
{
RS=0;
RW=0;
P0=combuf;
E=1;
E=0;
}
//忙檢測函數
void Lcd1602_busy(void)
{
RS=0;
RW=1;
P0=0xFF;
E=1;
while(P0^7==1);
E=0;
}
//寫指令函數帶忙檢測
void LCD1602_Write_com_busy(unsigned char combuf)
{
Lcd1602_busy();
RS=0;
RW=0;
P0=combuf;
E=1;
E=0;
}
//寫數據帶忙檢測函數
void LCD1602_Write_data_busy(unsigned char databuf)
{
Lcd1602_busy();
RS=1;
RW=0;
P0=databuf;
E=1;
E=0;
}
//初始化 l
void Lcd1602_init(void)
{
Delay1602(15);
LCD1602_Write_com(0x38);
Delay1602(5);
LCD1602_Write_com(0x38);
Delay1602(5);
LCD1602_Write_com(0x38);
LCD1602_Write_com_busy(0x38);
LCD1602_Write_com_busy(0x08);
LCD1602_Write_com_busy(0x01);
LCD1602_Write_com_busy(0x06);
LCD1602_Write_com_busy(0x0c);
}
//寫地址函數
void lcd1602_Write_address(unsigned char x,unsigned char y)
{
if(y==0)
LCD1602_Write_com_busy(0x80+x);
else
LCD1602_Write_com_busy(0xc0+x);
}
//顯示函數
void Lcd1602_Disp(unsigned char x,unsigned char y,unsigned char buf)
{
lcd1602_Write_address(x,y);
LCD1602_Write_data_busy(buf);
}
void main(void)
{
Lcd1602_init();
Lcd1602_Disp(0,1,'1');
Lcd1602_Disp(1,1,'2');
while(1)
{
}
}
復制代碼
各位看看錯在哪里呢?1602沒有反應
作者:
shannenhuan
時間:
2019-7-9 09:48
用示波器對下波形吧
作者:
鵬博士PBs
時間:
2019-7-9 10:44
示波器和邏輯分析儀檢測一下對應波形
作者:
maizhi99
時間:
2019-7-9 12:24
鵬博士PBs 發表于 2019-7-9 10:44
示波器和邏輯分析儀檢測一下對應波形
沒有示波器啊
作者:
周濤1331
時間:
2019-7-25 10:23
#include <STC12C5A60S2.H>
#include <intrins.h>
sbit RS=P4^3;
sbit RW=P4^4;
sbit E=P4^5;
/*********************************************************************************************
函數名:毫秒級CPU延時函數
調 用:DELAY_MS (?);
參 數:1~65535(參數不可為0)
返回值:無
結 果:占用CPU方式延時與參數數值相同的毫秒時間
備 注:應用于1T單片機時i<600,應用于12T單片機時i<125
/*********************************************************************************************/
void Delay1602 (unsigned int a){
unsigned int i;
while( a-- != 0){
for(i = 0; i < 600; i++);
}
}
/*********************************************************************************************/
//寫數據函數
void LCD1602_Write_data(unsigned char databuf)
{
RS=1;
RW=0;
P0=databuf;
E=1;
E=0;
}
//寫指令函數
void LCD1602_Write_com(unsigned char combuf)
{
RS=0;
RW=0;
P0=combuf;
E=1;
E=0;
}
//忙檢測函數
void Lcd1602_busy(void)
{
RS=0;
RW=1;
P0=0xFF; // 這個地方出現了問題,P0=0x00;
E=1;
while(P0^7==1); //P0^7==0;
E=0;
}
//寫指令函數帶忙檢測
void LCD1602_Write_com_busy(unsigned char combuf)
{
Lcd1602_busy();
RS=0;
RW=0;
P0=combuf;
E=1;
E=0;
}
//寫數據帶忙檢測函數
void LCD1602_Write_data_busy(unsigned char databuf)
{
Lcd1602_busy();
RS=1;
RW=0;
P0=databuf;
E=1;
E=0;
}
//初始化 l
void Lcd1602_init(void)
{
Delay1602(15);
LCD1602_Write_com(0x38);
Delay1602(5);
LCD1602_Write_com(0x38);
Delay1602(5);
LCD1602_Write_com(0x38);
LCD1602_Write_com_busy(0x38);
LCD1602_Write_com_busy(0x08);
LCD1602_Write_com_busy(0x01);
LCD1602_Write_com_busy(0x06);
LCD1602_Write_com_busy(0x0c);
}
//寫地址函數
void lcd1602_Write_address(unsigned char x,unsigned char y)
{
if(y==0)
LCD1602_Write_com_busy(0x80+x);
else
LCD1602_Write_com_busy(0xc0+x);
}
//顯示函數
void Lcd1602_Disp(unsigned char x,unsigned char y,unsigned char buf)
{
lcd1602_Write_address(x,y);
LCD1602_Write_data_busy(buf);
}
void main(void)
{
Lcd1602_init();
Lcd1602_Disp(0,1,'1');
Lcd1602_Disp(1,1,'2');
while(1)
{
}
}
歡迎光臨 (http://www.raoushi.com/bbs/)
Powered by Discuz! X3.1