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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索

單片機LCD1602的0顯示不正常是程序哪一部分錯誤,如ds1302.h

查看數: 2037 | 評論數: 1 | 收藏 0
關燈 | 提示:支持鍵盤翻頁<-左 右->
    組圖打開中,請稍候......
發布時間: 2020-6-20 11:43

正文摘要:

#ifndef _DS1302_H_ #define _DS1302_H_ #define uchar unsigned char sbit SCLK=P2^3;  //ds1302時鐘線定義 sbit IO=P2^4;    //數據線 sbit RST=P2^5;      & ...

回復

ID:782437 發表于 2020-6-20 17:25
#ifndef _LCD1602_H_
#define _LCD1602_H_
#define uchar unsigned char
#define uint unsigned int
uchar sec,min,hour,day,min,year,week;
sbit RS = P2^0;   //寄存器選擇信號 H:數據寄存器          L:指令寄存器
sbit RW = P2^1;          //讀寫選擇信號 H:讀          L:寫
sbit EN = P2^2;          //片選信號   下降沿觸發
#define yh 0x80  //第一行的初始位置
#define er 0x80+0x40 //第二行初始位置
uchar code tab1[]={"2020-06-19 FRI"};
uchar code tab2[]={"10:32:48"};
/***********************延時函數************************/
void delay(uint xms)//延時函數
{
        uint x,y;
        for(x=xms;x>0;x--)
         for(y=110;y>0;y--);
}
void delay_uint(uint q)
{
        while(q--);
}
/*------------------------------------------------
              寫入命令函數
------------------------------------------------*/
void LCD_Write_Cmd(uchar cmd)
{  

RS=0; //        選擇指令寄存器
RW=0;//寫操作
EN=0;//正跳變,將命令寫入液晶模塊
P0=cmd; //將命令送入P0
delay_uint(3);
EN=1;
delay_uint(25);
EN=0;
}
/*------------------------------------------------
              寫入數據函數
------------------------------------------------*/
void LCD_Write_Data(uchar Data)
{
RS=1; //選擇數據寄存器
RW=0; //寫操作
EN=0;
P0= Data; //將數據送入P0
delay_uint(3);
EN=1;
delay_uint(25);
EN=0;
}
/*------------------------------------------------
              寫入星期函數
------------------------------------------------*/
void LCD_Write_week(uchar week)
{     
    LCD_Write_Cmd(yh+0x0d);//將星期顯示到LCD的第一行的13位
        switch(week)
        {
                case 1:LCD_Write_Data('M');
                           LCD_Write_Data('O');
                           LCD_Write_Data('N');
                           break;
          
                case 2:LCD_Write_Data('T');
                           LCD_Write_Data('U');
                           LCD_Write_Data('E');
                           break;
               
                case 3:LCD_Write_Data('W');
                           LCD_Write_Data('E');
                           LCD_Write_Data('D');
                           break;
               
                case 4:LCD_Write_Data('T');
                           LCD_Write_Data('H');
                           LCD_Write_Data('U');
                           break;
               
                case 5:LCD_Write_Data('F');
                           LCD_Write_Data('R');
                           LCD_Write_Data('I');
                           break;
               
                case 6:LCD_Write_Data('S');
                           LCD_Write_Data('T');
                           LCD_Write_Data('A');
                           break;
               
                case 7:LCD_Write_Data('S');
                           LCD_Write_Data('U');
                           LCD_Write_Data('N');
                           break;  
         }
}

/*------------------------------------------------
              寫入時分秒函數
------------------------------------------------*/
void LCD_Write_sfm(uchar add,uchar dat)
{
uchar gw,sw;//定義十位 個位
gw=dat%10;
sw=dat/10;
LCD_Write_Cmd(er+add); ///將時分秒顯示到LCD的第二行的add位
LCD_Write_Data(0x30+sw);
LCD_Write_Data(0x30+gw);//0x30=48  十進制數+48=等于其ascll值   lcd1602為字符型  
}
/*------------------------------------------------
              寫入年月日函數
------------------------------------------------*/
void LCD_Write_nyr(uchar add,uchar dat)
{
uchar gw,sw;//定義十位 個位
gw=dat%10;
sw=dat/10;
LCD_Write_Cmd(yh+add); ///將時分秒顯示到LCD的第二行的add位
LCD_Write_Data(0x30+sw);
LCD_Write_Data(0x30+gw);//0x30=48  十進制數+48=等于其ascll值   lcd1602為字符型  
}
/*------------------------------------------------
              寫入字符串函數
------------------------------------------------*/
void LCD_Write_String(uchar x,uchar y,uchar *s)
{     
if (x == 0)
        {     
         LCD_Write_Cmd(0x80 + y);     //表示第一行
        }
else
        {      
        LCD_Write_Cmd(0xC0 + y);      //表示第二行
        }        
while (*s)
        {     
LCD_Write_Data( *s);     
s ++;     
        }
}
/*------------------------------------------------
        開機液晶顯示函數
------------------------------------------------*/
void Init_1602()  //初始化液晶
{  
  LCD_Write_String(0,2,"Hello world");
}
/*------------------------------------------------
              初始化函數
------------------------------------------------*/
void LCD_Init(void)
{
   uchar i;
   LCD_Write_Cmd(0x38);//顯示模式設置:16x2顯示,5x7點陣,8位數據接口
   LCD_Write_Cmd(0x0c);    //顯示模式設置:顯示開,有光標
   LCD_Write_Cmd(0x06);   //顯示模式設置:光標右移,字符不移
   LCD_Write_Cmd(0x01);        //清屏
   Init_1602();
   delay(1000);
   LCD_Write_Cmd(yh+2);//字符寫入的位置--第一行第2位
           for(i=0;i<14;i++)
        {
        LCD_Write_Data(tab1[i]);
        }
        LCD_Write_Cmd(er+4);
        for(i=0;i<8;i++)                                                                          
        {
        LCD_Write_Data(tab2[i]);
        }

   }


#endif
這是LCD1602的程序

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 欧美日韩在线一区 | 国产精品高潮呻吟 | 久久久综合精品 | 九九热在线观看视频 | 欧美在线看片 | 日韩美香港a一级毛片免费 国产综合av | 隔壁老王国产在线精品 | 日韩在线视频一区二区三区 | 中文字幕av高清 | 日韩视频免费看 | 在线国产一区 | 免费观看一级毛片视频 | 男女下面一进一出网站 | 亚洲性人人天天夜夜摸 | 成人在线观看免费观看 | 无码日韩精品一区二区免费 | 午夜视频在线视频 | 亚洲性视频网站 | 黄色片av| 欧美乱码精品一区二区三区 | 成人欧美一区二区三区白人 | 国产成人综合亚洲欧美94在线 | 成人小视频在线观看 | 美女久久久久久久 | 污片在线免费观看 | 成人免费小视频 | 亚洲精品欧美精品 | av看片| 欧美6一10sex性hd | 国产美女久久 | 先锋资源吧 | 一区二区国产精品 | 久久69精品久久久久久国产越南 | 亚洲国产成人精品女人久久久 | h网站在线观看 | 久久久久国色av免费观看性色 | 国产成人jvid在线播放 | 久久精品二区亚洲w码 | 日本不卡一二三 | 日本不卡一区二区三区 | 黄久久久|