久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

搜索
查看: 967|回復(fù): 1
打印 上一主題 下一主題
收起左側(cè)

求大佬看看我這個(gè)程序LCD1602為什么什么都沒顯示,謝謝

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:565318 發(fā)表于 2019-6-23 16:20 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
#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忙檢測(cè)*****************/
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);  
         }
}


分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:565318 發(fā)表于 2019-6-23 16:24 | 只看該作者
謝謝各位了
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 久久精品视频播放 | 免费观看一级特黄欧美大片 | 亚洲激情网站 | 欧美久久一区二区三区 | 可以免费观看的av片 | 亚洲永久精品国产 | 亚洲精品一区在线观看 | 91 在线| 色婷婷综合久久久中字幕精品久久 | 秋霞电影一区二区三区 | 免费一区二区 | 中文字幕色站 | 欧美成人二区 | 日日干日日射 | 免费1区2区3区 | 黄视频国产 | 日韩欧美在线播放 | 嫩草视频免费 | 亚洲精品一二三区 | 狠狠涩| 亚洲精品第一 | 亚洲一二视频 | 成人网在线 | 国产精品成人av | 久久久久久久久久久蜜桃 | 国产精品成人国产乱一区 | 久久久久中文字幕 | 国产在线精品一区二区 | 一区二区三区在线免费观看 | 成年人网站免费 | 羞羞的视频网站 | 99久久婷婷国产综合精品电影 | 国产高清一区 | 精品久久精品 | 伊人精品在线 | 97国产一区二区精品久久呦 | 91亚洲精 | 亚洲精品久久久久中文字幕欢迎你 | 欧美日韩在线精品 | 日本人做爰大片免费观看一老师 | 久久一区二区视频 |