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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3806|回復: 0
收起左側

C語言:51+PIC單片機二合一的1602液晶顯示-歡迎+時鐘

[復制鏈接]
ID:103513 發表于 2016-1-17 00:06 | 顯示全部樓層 |閱讀模式

//-----------------------------------------------------------------------------------------------
//來個猛一點的,顯示歡迎界面,之后進入當前日期,時鐘顯示
//我前前后后花了10來天才調成功,沒得問,汗死了,網上又沒資料供參考
//51+PIC通殺:時鐘
#define ww
#ifdef ww
#include<reg52.h>
#define uchar unsigned char      
#define uint unsigned int
uchar code table[]="  hello!jasper  ";      
uchar code table1[]="   xm.dabiao    ";        
uchar code aa[]=" 2018-01-04 MON ";      
uchar code bb[]="    09:59:56    ";        
sbit lcden=P3^4; //液晶使能位
sbit lcdrs=P3^5; //液晶RS,數據/命令切換選擇位

sbit dula=P2^6;      //數碼管關斷
sbit wela=P2^7;
sbit FM=P2^3;
#endif
#ifdef PIC
#include <pic.h>
__CONFIG(0X3B31);
#define uchar unsigned char
#define uint unsigned int
const uchar table[]="  hello! jasper ";   
const uchar table1[]="   xm.dabiao    ";
const uchar aa[]="  2012-01-04 MON ";     
const uchar bb[]="    09:59:56    ";      
#define lcden RA3
#define lcdrs RA5
#define lcdrw RA4
#define P0 PORTD
#define FM RE0
#endif
uchar num,count;
char miao=56,fen=59,shi=9;
void delay(uint z)     
{
  uint x,y;
  for(x=z;x>0;x--)
   for(y=110;y>0;y--);
}
void write_com(uchar com)
{
  lcdrs=0;   
  P0=com;
  delay(5);   
  lcden=1;   
  delay(5);
  lcden=0;
}
void write_data(uchar date)  
{
  lcdrs=1;
  P0=date;
  delay(5);
  lcdrs=1;
#ifdef PIC
  lcdrw=0;
#endif
  lcden=1;  
  delay(5);
  lcden=0;
}
void lcd_enable(void)   
{
lcdrs = 0;      
#ifdef PIC
lcdrw = 0;   
#endif
lcden = 0;      
delay(5);        
lcden = 1;         
}
void delayzd(uint zz)  
{
  uint xz,yz;
  for(xz=zz;xz>0;xz--)
   for(yz=110;yz>0;yz--);
}
void write_comzd(uchar comz)
{
  lcdrs=0;   
  P0=comz;
  delayzd(5);   
  lcden=1;   
  delayzd(5);
  lcden=0;
}
void write_datazd(uchar dataz)
{
  lcdrs=1;
  P0=dataz;
  delayzd(5);
  lcdrs=1;
#ifdef PIC
  lcdrw=0;
#endif
  lcden=1;
  delayzd(5);
  lcden=0;
}
void write_sfm(uchar adda,char datez)   
{                           
  char shi,ge;         
  shi=datez/10;
  ge=datez%10;
  write_comzd(0x80+0x40+adda);
  write_datazd(0x30+shi);     
  write_datazd(0x30+ge);      
}
void lcd_enablezd(void)   
{
lcdrs = 0;                  
#ifdef PIC
lcdrw = 0;                    
#endif
lcden = 0;                     
delayzd(5);                  
lcden = 1;                  
}
void init(void)
{
#ifdef ww
   dula=0;         
  wela=0;
  lcden=0;  
  write_com(0x38);     
  write_com(0x0c);   
  write_com(0x06);   
  write_com(0x01);  
// write_com(0x80);
  write_com(0x80+0x10);
#endif
#ifdef PIC
  TRISA=0x00;PORTA=0XF0;
  TRISD=0x00;PORTD=0XFF;
   ADCON1=0X07;  
  lcd_enable();   
  write_com(0x38);      
  lcd_enable();   
  write_com(0x0e);   
  lcd_enable();  
  write_com(0x06);   
  lcd_enable();   
  write_com(0x01);  
  lcd_enable();   
// write_com(0x80);
  write_com(0x80+0x10);
#endif  
}
void hello(void)
{
  for(num=0;num<16;num++)      
   {
     write_data(table[num]);
     delay(10);
   }
  write_com(0x80+0x51);      
  for(num=0;num<16;num++)     
   {
     write_data(table1[num]);
     delay(10);
   }      
  for(num=0;num<16;num++)
  {
    write_com(0x18);  
    delay(160);  
  }
  delay(1800);
}
void pingxian(void)
{
  uchar num_x;
  delay(500);
  write_com(0x01);
  write_com(0x80);

  for(num_x=0;num_x<16;num_x++)      
   {
     write_data(aa[num_x]);
     delay(20);
   }
  write_com(0x80+0x40);     
  delay(5);
  for(num_x=0;num_x<16;num_x++)     
   {
     write_data(bb[num_x]);
     delay(20);
   }
  delay(300);
}
void zd(void)
{
#ifdef ww
  TMOD=0x01;   
  TH0=(65536-50000)/256;  
  TL0=(65536-50000)%256;
  EA=1;      
  ET0=1;   
  TR0=1;  
#endif
#ifdef PIC
INTCON=0xc0;  
PIE1=0x01;   
T1CON=0x01;   
TMR1L=(65536-50000)%256;
TMR1H=(65536-50000)/256;
#endif
}
void main()
{
  init();
  hello();  
  pingxian();
  zd();
  while(1)
  { }
}
void timego(void)
{
if(count==19)
{
     count=0;
     miao++;
     if(miao==60)
     {
       miao=0;
       fen++;
       if(fen==60)
    {
         fen=0;
         shi++;
         if(shi==24)      
         {
           shi=0;
         }
         write_sfm(4,shi);      
       }
       write_sfm(7,fen);     
     }
     write_sfm(10,miao);         
}
}

#ifdef ww
void timer0() interrupt 1      
{
  TH0=(65536-50000)/256;
  TL0=(65536-50000)%256;
  count++;
  timego();
}
#endif
#ifdef PIC
void interrupt time0(void)
{
  TMR1IF=0;
  TMR1L=(65536-50000)%256;
  TMR1H=(65536-50000)/256;
  count++;
  //if(count==19)P0=0x02;
  timego();         
}
#endif











回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 日韩成人免费 | 亚洲精彩免费视频 | 精品欧美乱码久久久久久 | 久久婷婷色| 久草在线 | 国产精品成人在线 | 狠狠操狠狠干 | 中文字幕在线看 | 在线视频 中文字幕 | 高清黄色 | 国产精品视频免费看 | 91高清免费 | 日韩成人在线播放 | 日韩成人在线观看 | 97久久精品午夜一区二区 | 中文字幕视频在线 | 视频1区 | 日日操夜夜操视频 | 国内精品成人 | 亚洲日本免费 | 国产一区二区在线视频 | 天天爱天天操 | 在线精品亚洲欧美日韩国产 | 国产精品国产精品国产专区不卡 | 欧美一级黄色片免费观看 | 精品少妇一区二区三区在线播放 | 久久久久久高清 | 国产91丝袜在线播放 | 成人在线视频免费看 | 91青青草视频 | 久久99精品久久久久久噜噜 | 97精品一区二区 | 国产精品无 | 久久精品成人 | 日日干日日射 | 免费播放一级片 | 国产视频一区二区 | 色伊人 | 精品一区二区在线视频 | wwwsihu | 久久aⅴ乱码一区二区三区 91综合网 |