久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费
標(biāo)題:
求大佬看看我這個(gè)程序LCD1602為什么什么都沒顯示,謝謝
[打印本頁]
作者:
菜鳥騰飛
時(shí)間:
2019-6-23 16:20
標(biāo)題:
求大佬看看我這個(gè)程序LCD1602為什么什么都沒顯示,謝謝
#include<reg51.h>
#include<intrins.h>
#include <string.h>
/*================================
自定義類型名
================================*/
typedef unsigned char uchar;
typedef unsigned int uint;
#define sec timer[0]
#define min timer[1]
#define hour timer[2]
#define day timer[3]
#define month timer[4]
#define week timer[5]
#define year timer[6]
uchar time[7] = {0x55, 0x55, 0x15, 0x19, 0x12, 2, 0x17} ;
uchar *week[7][3] =
{
"Sun",
"Mon",
"Tue",
"Wed",
"Thu",
"Fri",
"Sat"
};
uchar date_str[] = "DATE / / ";
uchar time_str[] = "TIME : : ";
/*================================
硬件接口位聲明
================================*/
sbit TSCLK =P1^0;//時(shí)鐘線,接到P10上
sbit TIO =P1^1; //數(shù)據(jù)線,接到P11上
sbit TRST =P1^2; //使能端,接到P12上
//定義1602與單片機(jī)的接口
sbit RS =P3^5; //指令數(shù)據(jù)選擇
sbit RW =P3^6; //接地,執(zhí)行寫操作
sbit EN =P3^4; //信號(hào)使能
//延時(shí)函數(shù)
void Delay100ms(uchar k) //@12.000MHz
{
unsigned char i, j;
while (k--)
{
i = 195;
j = 138;
do
{
while (--j)
;
} while (--i);
}
}
//寫DS1302數(shù)據(jù)
void Write_DS1302(uchar cmd,uchar dat)
{
uchar i;
TRST=0;
TSCLK=1;
TRST=1;
for(i=0;i<8;i++)
{
TSCLK=0;
TIO=cmd&0x01;
TSCLK=1;
cmd>>=1;
}
for(i=0;i<8;i++)
{
TSCLK=0;
TIO=dat&0x01;
TSCLK=1;
dat>>=1;
}
}
//讀DS1302數(shù)據(jù)
uchar Read_DS1302(uchar cmd)
{
uchar dat,i;
TRST=0;
TSCLK=1;
TRST=1;
for(i=0;i<8;i++)
{
TSCLK=0;
TIO=cmd&0x01;
TSCLK=1;
cmd>>=1;
}
for(i=0;i<8;i++)
{
TSCLK=0;
dat >>=1;
if(TIO)dat|=0x80;
TSCLK = 1;
}
return 0;
}
//數(shù)據(jù)轉(zhuǎn)BCD碼
uchar Dat_Chg_BCD(uchar dat)
{
uchar dat1 , dat2;
dat1 = dat / 10;
dat2 = dat % 10;
dat2 = dat2 + dat1 * 16;
return dat2;
}
//BCD碼轉(zhuǎn)換為數(shù)據(jù)
uchar BCD_Chg_Dat(uchar dat)
{
uchar dat1, dat2;
dat1 = dat / 16;
dat2 = dat % 16;
dat2 = dat2+ dat1 * 10;
return dat2;
}
/*************讀出LCD狀態(tài)*************/
uchar Read_LCD_State()
{
uchar state;
RS=0;RW=1;EN=1;Delay100ms(1);
state=P0;
EN=0;Delay100ms(1);
return state;
}
/***********LCD忙檢測*****************/
void LCD_Busy_Wait()
{
while((Read_LCD_State()&0x80)==0x80);//讀取忙標(biāo)志位BF,BF=1則一直等待
Delay100ms(1);
}
/**************向LCD寫數(shù)據(jù)*******************/
void Write_1602_Data(uchar dat)
{
LCD_Busy_Wait();
EN=0;
RS=1;
RW=0;
P0=dat;
EN=1;
Delay100ms(1);
EN=0;;
}
/**************向LCD寫命令*******************/
void Write_1602_Command(uchar cmd)
{
LCD_Busy_Wait();
EN=0;
RS=0;
RW=0;
P0=cmd;
EN=1;
Delay100ms(1);
EN=0;
}
/*****************初始化LCD函數(shù)*****************/
void Init_LCD()
{
Write_1602_Command(0X38);//8位數(shù)據(jù)接口,2行顯示,5*7點(diǎn)陣
Write_1602_Command(0X0c);//開顯示,關(guān)光標(biāo)和閃爍
Write_1602_Command(0X06);//數(shù)據(jù)讀寫操作畫面不動(dòng),寫一個(gè)指針加1
Write_1602_Command(0X01);//清屏
Write_1602_Command(0x80);//設(shè)置數(shù)據(jù)指針起點(diǎn)
}
void Display_1602_String(uchar p,uchar*s)
{
uchar i;
Write_1602_Command(p|0x80);
for(i=0;i<16;i++)
{
Write_1602_Data(s[i]);
Delay100ms(1);
}
}
/*****************格式化日期時(shí)間函數(shù)*****************/
void Format_DateTime(uchar d,uchar *a)
{
a[0]=d/10+'0';
a[1]=d%10+'0';
}
/*****************主函數(shù)*****************/
void main()
{
Write_DS1302(0x8e,0);
Write_DS1302(0x80,Dat_Chg_BCD(30)); //30s
Write_DS1302(0x82,Dat_Chg_BCD(15)); //15min
Write_DS1302(0x84,Dat_Chg_BCD(19)); //19h
Write_DS1302(0x86,Dat_Chg_BCD(30)); //30號(hào)
Write_DS1302(0x88,Dat_Chg_BCD(7)); //7月
Write_DS1302(0x8C,Dat_Chg_BCD(19)); //19年
Write_DS1302(0x8e,0x80);
while(1)
{
Write_DS1302(0x8e,0); //清除寫保護(hù)
time[0] = BCD_Chg_Dat(Read_DS1302(0x81)); //讀秒寄存器
time[1] = BCD_Chg_Dat(Read_DS1302(0x83)); //讀分寄存器
time[2] = BCD_Chg_Dat(Read_DS1302(0x85));//讀時(shí)寄存器
time[3] = BCD_Chg_Dat(Read_DS1302(0x87)); //讀日寄存器
time[4] = BCD_Chg_Dat(Read_DS1302(0x89));//讀月寄存器
time[5] = BCD_Chg_Dat(Read_DS1302(0x8B));//讀星期寄存器
time[6] = BCD_Chg_Dat(Read_DS1302(0x8D));//讀年寄存器
Write_DS1302(0x8e,0x80); //開寫保護(hù)
Init_LCD();
Format_DateTime(time[6],date_str+5);
Format_DateTime(time[4],date_str+8);
Format_DateTime(time[3],date_str+11);
strcpy(date_str+11,week[time[5]]);
Format_DateTime(time[2],time_str+5);
Format_DateTime(time[1],time_str+8);
Format_DateTime(time[0],time_str+11);
Display_1602_String(0X00,date_str);
Display_1602_String(0X40,time_str);
}
}
作者:
菜鳥騰飛
時(shí)間:
2019-6-23 16:24
謝謝各位了
歡迎光臨 (http://www.zg4o1577.cn/bbs/)
Powered by Discuz! X3.1
主站蜘蛛池模板:
在线观看免费观看在线91
|
荷兰欧美一级毛片
|
久久久久国产精品一区二区
|
美女黄网站
|
国产在视频一区二区三区吞精
|
久久极品
|
亚洲日本中文字幕在线
|
福利片一区二区
|
www.操.com
|
欧美一区永久视频免费观看
|
亚洲国产aⅴ成人精品无吗 综合国产在线
|
一区二区三区四区在线视频
|
福利av在线
|
成人黄色av网址
|
国产一区二区三区久久久久久久久
|
一级免费a
|
97精品超碰一区二区三区
|
玖玖玖在线观看
|
神马久久久久久久久久
|
中文字幕精品一区二区三区精品
|
91伦理片
|
国产精品久久久久久久久久三级
|
韩国av一区二区
|
色婷婷久久久久swag精品
|
日韩在线中文
|
国产成人精品a视频一区www
|
国产精品免费视频一区
|
一区二区免费在线观看
|
www.9191
|
国产成人精品久久二区二区91
|
亚洲精品aⅴ
|
亚洲一区有码
|
欧美精品久久久久
|
一本色道久久综合亚洲精品高清
|
国产精品亚洲成在人线
|
久久国产精品-国产精品
|
午夜在线视频
|
午夜精品久久久久久久久久久久久
|
午夜影院在线观看
|
99久久免费精品国产男女高不卡
|
视频一区二区国产
|