精华内容
下载资源
问答
  • LCD电子时钟

    2017-12-06 22:41:14
    LCD电子时钟
  • LCD电子时钟的设计

    2015-04-21 21:43:36
    LCD电子时钟的设计,随便写写,需要的人欢迎下载
  • 12864LCD电子钟

    2011-06-04 18:55:54
    好资源不容错过,基于C51单片机设计的12864LCD电子钟,绝不容错过。。。。。。
  • PyQT5实例 【2】 桌面LCD电子时钟-附件资源
  • lcd电子时钟课程设计

    2011-06-21 11:07:23
    关于lcd电子时钟课程设计,对待哼好呀有仿真的,protues是
  • 基于SOPC和FPGA的LCD电子钟设计
  • C51单片机_LCD电子时钟

    千次阅读 2019-05-31 14:44:52
    C51单片机_LCD电子时钟 可以手动设置初始时间和修改时间,可以设置闹钟时间,响应时蜂鸣器会响,步进电机会转动 #include <intrins.h> #include <reg52.h> //包含头文件,一般情况不需要改动,头文件...

    C51单片机_LCD电子时钟

    可以手动设置初始时间和修改时间,可以设置闹钟时间,响应时蜂鸣器会响,步进电机会转动

    #include <intrins.h>
    #include <reg52.h> //包含头文件,一般情况不需要改动,头文件包含特殊功能寄存器的定义
    //定义步进电机连接端口
    sbit A1=P2^0;
    sbit B1=P2^1;
    sbit C1=P2^2;
    sbit D1=P2^3;
    
    sbit RS = P2 ^ 4; //定义端口
    sbit RW = P2 ^ 5;//定义读写端口
    sbit EN = P2 ^ 6;//数据读写操作总控位
    sbit keystop = P1 ^ 0; //停止输入
    sbit keyh = P1 ^ 1;//定义修改小时按键
    sbit keym = P1 ^ 2;//定义修改分钟按键
    sbit keys = P1 ^ 3;//定义修改秒钟按键
    sbit SPK = P1 ^ 4;//设置蜂鸣器端口
    sbit en_SPK = P1 ^ 5;//停止蜂鸣器端口
    sbit led = P1 ^ 6;//设置小灯端口
    
    #define RS_CLR RS = 0
    #define RS_SET RS = 1
    
    #define RW_CLR RW = 0
    #define RW_SET RW = 1
    
    #define EN_CLR EN = 0
    #define EN_SET EN = 1
    
    #define Coil_A1 {A1=1;B1=0;C1=0;D1=0;}//A相通电,其他相断电
    #define Coil_B1 {A1=0;B1=1;C1=0;D1=0;}//B相通电,其他相断电
    #define Coil_C1 {A1=0;B1=0;C1=1;D1=0;}//C相通电,其他相断电
    #define Coil_D1 {A1=0;B1=0;C1=0;D1=1;}//D相通电,其他相断电
    #define Coil_OFF {A1=0;B1=0;C1=0;D1=0;}//全部断电
    
    #define DataPort P0
    int year = 2019, month = 6, day = 4;
    unsigned char time[10] = {'0', '1', '2', '3', '4', '5', '6', '7', '8', '9'};
    unsigned char count = 0;
    unsigned char hour = 0, min = 0, sec = 0;
    unsigned char hour_s_clock = 0;
    unsigned char hour_g_clock = 0;
    unsigned char min_s_clock = 0;
    unsigned char min_g_clock = 0;
    unsigned char sec_s_clock = 0;
    unsigned char sec_g_clock = 0;
    
    int month_s = 0;
    int month_g = 0;
    int day_s = 0;
    int day_g = 0;
    unsigned char flag = 0;
    unsigned char flag2 = 0;
    unsigned char mon[12] = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};//12个月份的天数
    unsigned char hour_alarm = -1;
    unsigned char min_alarm = -1;
    unsigned char sec_alarm = -1;
    
    unsigned char hour_s_alarm = 0;
    unsigned char hour_g_alarm = 0;
    unsigned char min_s_alarm = 0;
    unsigned char min_g_alarm = 0;
    unsigned char sec_s_alarm = 0;
    unsigned char sec_g_alarm = 0;
    unsigned char Speed;//步进电机转动频率
    unsigned char num = 0;//控制LED小灯闪烁频率
    //精确延时
    void DelayUs2x(unsigned char t) {
      while (--t);
    }
    void DelayMs(unsigned char t) {
    
      while (t--) {
        //大致延时1mS
        DelayUs2x(245);
        DelayUs2x(245);
      }
    }
    //延时程序
    void delay(unsigned char z)
    {
      unsigned char x, y;
      for (x = z; x > 0; x--)
        for (y = 110; y > 0; y--);
    }
    //判忙函数
    bit LCD_Check_Busy(void) {
      DataPort = 0xFF;
      RS_CLR;
      RW_SET;
      EN_CLR;
      _nop_();
      EN_SET;
      return (bit)(DataPort & 0x80);
    }
    //写入命令函数
    void LCD_Write_Com(unsigned char com) {
      // while(LCD_Check_Busy()); //忙则等待
      DelayMs(5);
      RS_CLR;
      RW_CLR;
      EN_SET;
      DataPort = com;
      _nop_();
      EN_CLR;
    }
    //写入数据函数
    void LCD_Write_Data(unsigned char Data) {
      // while(LCD_Check_Busy()); //忙则等待
      DelayMs(5);
      RS_SET;
      RW_CLR;
      EN_SET;
      DataPort = Data;
      _nop_();
      EN_CLR;
    }
    //清屏函数
    void LCD_Clear(void) {
      LCD_Write_Com(0x01);
      DelayMs(5);
    }
    //写入字符串函数
    void LCD_Write_String(unsigned char x, unsigned char y, unsigned char *s) {
      if (y == 0) {
        LCD_Write_Com(0x80 + x);
      } else {
        LCD_Write_Com(0xC0 + x);
      }
      while (*s) {
        LCD_Write_Data(*s);
        s++;
      }
    }
    //写入字符函数
    void LCD_Write_Char(unsigned char x, unsigned char y, unsigned char Data) {
      if (y == 0) {
        LCD_Write_Com(0x80 + x);
      } else {
        LCD_Write_Com(0xC0 + x);
      }
      LCD_Write_Data(Data);
    }
    //LCD初始化函数
    void LCD_Init(void) {
      LCD_Write_Com(0x38); /*显示模式设置*/
      DelayMs(5);
      LCD_Write_Com(0x38);
      DelayMs(5);
      LCD_Write_Com(0x38);
      DelayMs(5);
      LCD_Write_Com(0x38);
      LCD_Write_Com(0x08); /*显示关闭*/
      LCD_Write_Com(0x01); /*显示清屏*/
      LCD_Write_Com(0x06); /*显示光标移动设置*/
      DelayMs(5);
      LCD_Write_Com(0x0C); /*显示开及光标设置*/
    }
    //中断初始化
    void interript_init()
    {
      count = 0;
      hour = 0;
      min = 0;
      sec = 0;
      TMOD = 0x01;//16位定时器
      TH0 = (65536 - 50000) / 256;
      TL0 = (65536 - 50000) % 256;
      TR0 = 1;//定时器T0启动控制位
      ET0 = 1;
      EA = 1;//中断总控位
      EX0 = 1;//外部中断0中断允许位
      EX1 = 1;//外部中断1中断允许位
      IT0 = 1;
      PX0 = 1;//外部中断0中断优先级控制位
      PX1 = 1;//外部中断1中断优先级控制位
    }
    //显示时钟
    void display() {
      hour_s_clock = hour / 10;
      hour_g_clock = hour % 10;
      min_s_clock = min / 10;
      min_g_clock = min % 10;
      sec_s_clock = sec / 10;
      sec_g_clock = sec % 10;
      LCD_Write_Char(0, 1, 't');
      LCD_Write_Char(1, 1, 'i');
      LCD_Write_Char(2, 1, 'm');
      LCD_Write_Char(3, 1, 'e');
      LCD_Write_Char(4, 1, ':');
      LCD_Write_Char(5, 1, ' ');
      LCD_Write_Char(6, 1, time[hour_s_clock]);
      LCD_Write_Char(7, 1, time[hour_g_clock]);
      LCD_Write_Char(8, 1, '-');
      LCD_Write_Char(9, 1, time[min_s_clock]);
      LCD_Write_Char(10, 1, time[min_g_clock]);
      LCD_Write_Char(11, 1, '-');
      LCD_Write_Char(12, 1, time[sec_s_clock]);
      LCD_Write_Char(13, 1, time[sec_g_clock]);
    }
    //显示闹钟
    void display2() {
      hour_s_alarm = hour_alarm / 10;
      hour_g_alarm = hour_alarm % 10;
      min_s_alarm = min_alarm / 10;
      min_g_alarm = min_alarm % 10;
      sec_s_alarm = sec_alarm / 10;
      sec_g_alarm = sec_alarm % 10;
      LCD_Write_Char(0, 1, 't');
      LCD_Write_Char(1, 1, 'i');
      LCD_Write_Char(2, 1, 'm');
      LCD_Write_Char(3, 1, 'e');
      LCD_Write_Char(4, 1, ':');
      LCD_Write_Char(5, 1, ' ');
      LCD_Write_Char(6, 1, time[hour_s_alarm]);
      LCD_Write_Char(7, 1, time[hour_g_alarm]);
      LCD_Write_Char(8, 1, '-');
      LCD_Write_Char(9, 1, time[min_s_alarm]);
      LCD_Write_Char(10, 1, time[min_g_alarm]);
      LCD_Write_Char(11, 1, '-');
      LCD_Write_Char(12, 1, time[sec_s_alarm]);
      LCD_Write_Char(13, 1, time[sec_g_alarm]);
      LCD_Write_Char(14, 1, ' ');
      LCD_Write_Char(15, 1, ' ');
    }
    
    
    void clock(void) {
      while (1) {
        DelayMs(5);
        SPK = !SPK;
        num++;
        if (num >= 50) {
          led = ~led;
          num = 0;
        }
    	Speed=2; //调整速度
         Coil_A1                 //遇到Coil_A1  用{A1=1;B1=0;C1=0;D1=0;}代替
         DelayMs(Speed);         //改变这个参数可以调整电机转速, 数字越小, 转速越大, 力矩越小
         Coil_B1
         DelayMs(Speed);
         Coil_C1
         DelayMs(Speed);
         Coil_D1
         DelayMs(Speed);
        if (!en_SPK)
          return;
      }
    }
    //主函数
    void main(void) {
      LCD_Init();
      month_s = month / 10;
      month_g = month % 10;
      day_s = day / 10;
      day_g = day % 10;
      LCD_Write_Char(2, 0, '2');
      LCD_Write_Char(3, 0, '0');
      LCD_Write_Char(4, 0, '1');
      LCD_Write_Char(5, 0, '9');
      LCD_Write_Char(6, 0, '-');
      LCD_Write_Char(7, 0, time[month_s]);
      LCD_Write_Char(8, 0, time[month_g]);
      LCD_Write_Char(9, 0, '-');
      LCD_Write_Char(10, 0, time[day_s]);
      LCD_Write_Char(11, 0, time[day_g]);
    
      LCD_Write_Char(0, 1, 't');
      LCD_Write_Char(1, 1, 'i');
      LCD_Write_Char(2, 1, 'm');
      LCD_Write_Char(3, 1, 'e');
      LCD_Write_Char(4, 1, ':');
      LCD_Write_Char(5, 1, ' ');
      LCD_Write_String(6, 1, "00-00-00");
      interript_init();
      while (1) {
        if (flag == 1) {
          display();
          if (hour_alarm == hour && min_alarm == min && sec_alarm == sec) {
            display();
            hour_alarm = -1;
            min_alarm = -1;
            sec_alarm = -1;
            clock();
          }
        }
      }
    }
    //随时修改时间
    void outer_ser(void) interrupt 0 {
      flag = 1;
      while (1) {
        display();
        if (keyh == 0) //实现小时加一
        {
          delay(5);
          if (keyh == 0) {
            if (hour != 23)
              hour++;
            else
              hour = 0;
          }
          while (!keyh);
            delay(5);
              while (!keyh);
        }
        if (keym == 0){ //实现分钟加一
          delay(5);
          if (keym == 0){
            if (min != 59){
              min++;
            }else{
              min = 0;
            }
          }
          while (!keym); //松手检测
          delay(5);
          while (!keym);
        }
        if (keys == 0){ //实现秒加一
          delay(5);
          if (keys == 0) {
            if (sec != 59) {
              sec++;
            } else {
              sec = 0;
            }
          }
          while (!keys);
          delay(5);
          while (!keys);
        }
        if (keystop == 0){
          break;
        }
      }
    }
    //计时器/定时器0,时钟运行
    void count0() interrupt 1 {
      TH0 = (65536 - 50000) / 256;
      TL0 = (65536 - 50000) % 256;
      count++;
      if (count == 20){
        count = 0;
        sec++;
        if (sec == 60){
          sec = 0;
          min++;
          if (min == 60){
            min = 0;
            hour++;
            if (hour == 24){
              hour = 0;
              day++;
              if (day == mon[month - 1]){
                day = 0;
                month++;
              }
            }
          }
        }
      }
    }
    //计时器/定时器1,设定闹钟
    void outer_ser2(void) interrupt 2 {
      flag2 = 1;
      hour_alarm = hour;
      min_alarm = min;
      sec_alarm = sec;
      while (1) {
        display2();
        if (keyh == 0){ //实现小时加一
          delay(5);
          if (keyh == 0){
            if (hour_alarm != 23)
              hour_alarm++;
            else
              hour_alarm = 0;
          }
          while (!keyh);
          delay(5);
          while (!keyh);
        }
        if (keym == 0){ //实现分钟加一
          delay(5);
          if (keym == 0){
            if (min_alarm != 59){
              min_alarm++;
            }else{
              min_alarm = 0;
            }
          }
          while (!keym); //松手检测
          delay(5);
          while (!keym);
        }
        if (keys == 0){ //实现秒加一
          delay(5);
          if (keys == 0){
            if (sec_alarm != 59){
              sec_alarm++;
            } else {
              sec_alarm = 0;
            }
          }
          while (!keys);
          delay(5);
          while (!keys);
        }
        if (keystop == 0) {
          break;
        }
      }
    }
    
    
    展开全文
  • 基于C51单片机的LCD电子时钟设计

    千次阅读 多人点赞 2020-07-05 07:50:37
    1 LCD电子时钟设计 1、 制作一个基于LCD显示的电子钟,在LCD显示器上显示当前时间。 2、 使用字符型LCD显示器显示时间。 3、 显示格式:“时时:分分:秒秒”。 4、 用4个功能键操作来设置当前时间。功能键K1~K4功能...

    学校的一个课设

    可以去"我的下载"直接打包下载

    1 LCD电子时钟设计
    1、 制作一个基于LCD显示的电子钟,在LCD显示器上显示当前时间。
    2、 使用字符型LCD显示器显示时间。
    3、 显示格式:“时时:分分:秒秒”。
    4、 用4个功能键操作来设置当前时间。功能键K1~K4功能如下:
    (1) K1:进入设置现在时间;
    (2) K2:修改小时,并显示修改结果;
    (3) K3:修改分钟,并显示修改结果;
    (4) K4:确认完成设置。
    在这里插入图片描述

    代码

    #include<reg52.h>
    #include<stdlib.h>
    #include<stdio.h>
    #include<intrins.h>
    #define uint unsigned int
    #define uchar unsigned char
     
    uint num,A_num,x,y=0;
    uint h,m,s,year=2020,month=7,day=4,lcd_x=0,lcd_y=0;
     
    uchar code Zifu[]="0123456789";
     
     
    sbit LCD_EN = P3^4;
    sbit LCD_RS = P3^5;
     
     
    sbit key_A = P1^0;
    sbit key_B = P1^1;
    sbit key_C = P1^2;
    sbit key_D = P1^3;
    
    void delay_1ms(uchar x){
    	uchar i,j;
    	for(j=0;j<x;j++)
    		for(i=0;i<110;i++);
    }
     
    void write_command(uchar command){
    	LCD_RS = 0;
    	LCD_EN = 0;
    	P0 = command;
    	delay_1ms(2);
    	LCD_EN = 1;	 		//EN ?1 -- 0 ?? ???? ? ??
    	delay_1ms(2);
    	LCD_EN = 0;
    }
     
    void write_data(uchar fuck){
    	LCD_RS = 1;
    	LCD_EN = 0;
    	P0 = fuck;
    	delay_1ms(2);
    	LCD_EN = 1;
    	delay_1ms(2);
    	LCD_EN = 0;
    }
     
    void lcd_post(int X,int Y){			//0,1?? ??? ? ???
    	write_command(0x80+X*(0x40)+Y);
    }
     
    void init(){
    	h=m=s=0;
    	num=A_num=0;
     
    	LCD_EN=0;
    	write_command(0x38);
    	write_command(0x0c);
    	//write_command(0x06); //??????????
    	write_command(0x01);
     
    	TMOD = 0x02;
    	TH0 = 6;
    	TL0 = 6;
    	EA = 1;
    	ET0 = 1;
    	TR0 = 1;
     
    /*???*/	
    	lcd_post(0,0); write_data(Zifu[h/10]);
    	lcd_post(0,1); write_data(Zifu[h%10]);
     
    	lcd_post(0,2); write_data(':');
     
    	lcd_post(0,3); write_data(Zifu[m/10]);
    	lcd_post(0,4); write_data(Zifu[m%10]);
     
    	lcd_post(0,5); write_data(':');
     
    	lcd_post(0,6); write_data(Zifu[s/10]);
    	lcd_post(0,7); write_data(Zifu[s%10]);
     
    /*???*/
    	lcd_post(1,6); write_data(Zifu[year/1000]);
    	lcd_post(1,7); write_data(Zifu[(year%1000)/100]);
    	lcd_post(1,8); write_data(Zifu[(year%100)/10]);
    	lcd_post(1,9); write_data(Zifu[year%10]);
     
    	lcd_post(1,10); write_data('-');
     
    	lcd_post(1,11); write_data(Zifu[month/10]);
    	lcd_post(1,12); write_data(Zifu[month%10]);
     
    	lcd_post(1,13); write_data('-');
     
    	lcd_post(1,14); write_data(Zifu[day/10]);
    	lcd_post(1,15); write_data(Zifu[day%10]);
    }
     
     
    void keyscan(){
    
    			if(key_A==0){
    			delay_1ms(3);
    			if(key_A==0){	
    
    					m=(++m)%60;
    					lcd_post(0,3); write_data(Zifu[m/10]);
    					lcd_post(0,4); write_data(Zifu[m%10]);
    
    			while(!key_A);
    		}
    	}
    	
    
    	
    
    		if(key_B==0){
    			delay_1ms(3);
    			if(key_B==0){	
    
    
    					h=(++h)%24;
    					lcd_post(0,0); write_data(Zifu[h/10]);
    					lcd_post(0,1); write_data(Zifu[h%10]);
    
    			while(!key_B);
    		}
    	}		
    }
     
    void main()
    {
    	init();
    	y = 0;
    	while(1){
    		
    		
    if(key_D==0){  
    		delay_1ms(3);
    		if(key_D==0){
    			y = 1;
    		}
    		while(!key_D);
    	}
    if(key_C==0){  
    		delay_1ms(3);
    		if(key_C==0){
    			y = 0;
    		}
    		while(!key_C);
    }
    		
    
    
    		
    		if(num==3686){
    			num=0;
    			s++;
    			if(s==60){
    				s=0;
    				m++;
    				if(m==60){
    					m=0;
    					h++;
    					if(h==24)h=0;
    					lcd_post(0,0); write_data(Zifu[h/10]);
    					lcd_post(0,1); write_data(Zifu[h%10]);
    				}
    				lcd_post(0,3); write_data(Zifu[m/10]);
    				lcd_post(0,4); write_data(Zifu[m%10]);
    			}
    			lcd_post(0,6); write_data(Zifu[s/10]);
    			lcd_post(0,7); write_data(Zifu[s%10]);
    		}
    		
    		if(y == 1)
    		{
    		keyscan();
    		}
    		
    		
    		
    	}
    }
     
    void T0_time() interrupt 1
    {
    	num++;
    }
    
    //	if(key_A==0){  //??????
    //		delay_1ms(3);
    //		if(key_A==0){
    
    //		}
    //		while(!key_A);
    //	}
    
    展开全文
  • 基于51单片机的LCD电子钟设计

    千次阅读 2019-04-05 11:18:02
    /16电子信息工程 1班 项目:基于51单片机的LCD电子钟设计/ #include<reg52.h> #define uchar unsigned char #define uint unsigned int sbit rs=P2^0; sbit lcden=P2^2; sbit rd=P2^1; sbit s1=P3^0; sbit s2...

    仿真图
    代码部分
    /16电子信息工程 1班 项目:基于51单片机的LCD电子钟设计/
    #include<reg52.h>
    #define uchar unsigned char
    #define uint unsigned int
    sbit rs=P2^0;
    sbit lcden=P2^2;
    sbit rd=P2^1;
    sbit s1=P3^0;
    sbit s2=P3^1;
    sbit s3=P3^2;
    sbit beep=P2^3;
    uchar count,s1num;
    char miao,shi,fen,nian,yue,ri,zhou,num,tian;
    char yizhou8={“MON”,“TUE”,“WEN”,“THU”,“FRI”,“SAT”,“SUN”};
    int pingnian[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};
    int ruinian[13]={0,31,29,31,30,31,30,31,31,30,31,30,31};
    void delay(uint z)
    {
    uint x,y;
    for(x=z;x>0;x–)
    for(y=110;y>0;y–);
    }
    void di()
    {
    uchar i;
    for(i=0;i<100;i++)
    {
    beep = ~beep;
    delay(1);
    }
    beep = 0;
    }
    void write_com(uchar com)//液晶写命令函数
    {
    rs=0;
    lcden=0;
    P0=com;
    delay(5);
    lcden=1;
    delay(5);
    lcden=0;
    }
    void write_date(uchar date)//液晶写数据函数
    {
    rs=1;
    lcden=0;
    P0=date;
    delay(5);
    lcden=1;
    delay(5);
    lcden=0;
    }
    void write_sfm(uchar add,uchar date)//写时分秒函数
    {
    uchar shi,ge;
    shi=date/10;
    ge=date%10;
    write_com(0x80+0x40+add);
    write_date(0x30+shi);
    write_date(0x30+ge);
    }
    void write_nyr(uchar add,uchar date)//写年月日函数
    {
    uchar shi,ge;
    shi=date/10;
    ge=date%10;
    write_com(0x80+add);
    write_date(0x30+shi);
    write_date(0x30+ge);
    }
    void init()//初始化函数
    {
    num=0;
    rd=0;
    lcden=0;
    fen=0;
    miao=0;
    shi=0;
    nian=1;
    yue=1;
    ri=1;
    zhou=0;
    count=0;
    s1num=0;
    write_com(0x38);
    write_com(0x0c);
    write_com(0x06);
    write_com(0x01);
    write_com(0x80+1);
    write_date(‘2’);
    write_com(0x80+2 );
    write_date(‘0’);
    write_com(0x80+0x40+6);
    write_date(’:’);
    delay(5);
    write_com(0x80+0x40+9);
    write_date(’:’);
    delay(5);
    write_com(0x80+5);
    write_date(’-’);
    delay(5);
    write_com(0x80+8);
    write_date(’-’);
    delay(5);
    write_com(0x80+12);
    for(num=0;num<3;num++)
    {
    write_date(yizhou[zhou][num]);
    delay(5);
    }
    write_nyr(3,nian);
    write_nyr(6,yue);
    write_nyr(9,ri);
    write_sfm(10,miao);
    write_sfm(7,fen);
    write_sfm(4,shi);
    TMOD=0x01;
    TH0=(65536-50000)/256;
    TL0=(65536-50000)%256;
    EA=1;
    ET0=1;
    TR0=1;
    }
    void keyscan()//按键扫描函数
    {
    if(s10)
    {
    delay(5);
    if(s1
    0)
    { s1num++;
    while(!s1);
    di();
    if(s1num1)
    {
    TR0=0;
    write_com(0x80+0x40+11);
    write_com(0x0f);
    }
    if(s1num
    2)
    {
    write_com(0x80+0x40+8);
    }
    if(s1num3)
    {
    write_com(0x80+0x40+5);
    }
    if(s1num
    4)
    {
    write_com(0x80+14);
    }
    if(s1num5)
    {
    write_com(0x80+10);
    }
    if(s1num
    6)
    {
    write_com(0x80+7);
    }
    if(s1num7)
    {
    write_com(0x80+4);
    }
    if(s1num
    8)
    {
    s1num=0;
    write_com(0x0c);
    TR0=1;
    }
    }
    }
    if(s1num!=0)
    {
    if(s20)
    {
    delay(5);
    if(s2
    0)
    {
    while(!s2);
    di();
    if(s1num1)
    {
    miao++;
    if(miao>=60)
    miao=0;
    write_sfm(10,miao);
    write_com(0x80+0x40+11);
    }
    if(s1num
    2)
    {
    fen++;
    if(fen>=60)
    fen=0;
    write_sfm(7,fen);
    write_com(0x80+0x40+8);
    }
    if(s1num3)
    {
    shi++;
    if(shi>=24)
    shi=0;
    write_sfm(4,shi);
    write_com(0x80+0x40+5);
    }
    if(s1num
    4)
    {
    zhou++;
    if(zhou>=7)
    zhou=0;
    write_com(0x80+12);
    for(num=0;num<3;num++)
    {
    write_date(yizhou[zhou][num]);
    delay(5);
    }
    }
    if(s1num5)
    {
    ri++;
    if((2000+nian)%400
    0||(2000+nian)%40&&(2000+nian)%100!=0)
    tian=ruinian[yue];
    else nian=pingnian[yue];
    if(ri>tian)
    ri=1;
    write_nyr(9,ri);
    write_com(0x80+10);
    }
    if(s1num
    6)
    {
    yue++;
    if(yue>12)
    yue=1;
    write_nyr(6,yue);
    write_com(0x80+7);
    }
    if(s1num7)
    {
    nian++;
    if(nian>50)
    nian=0;
    write_nyr(3,nian);
    write_com(0x80+4);
    }
    }
    }
    if(s3
    0)
    {
    delay(5);
    if(s30)
    {
    while(!s3);
    di();
    if(s1num
    1)
    {
    miao–;
    if(miao<0)
    miao=59;
    write_sfm(10,miao);
    write_com(0x80+0x40+11);
    }
    if(s1num2)
    {
    fen–;
    if(fen<0)
    fen=59;
    write_sfm(7,fen);
    write_com(0x80+0x40+8);
    }
    if(s1num
    3)
    {
    shi–;
    if(shi<0)
    shi=23;
    write_sfm(4,shi);
    write_com(0x80+0x40+5);
    }
    if(s1num4)
    {
    zhou–;
    if(zhou<0)
    zhou=6;
    write_com(0x80+12);
    for(num=0;num<3;num++)
    {
    write_date(yizhou[zhou][num]);
    delay(5);
    }
    }
    if(s1num
    5)
    {
    ri–;
    if((2000+nian)%4000||(2000+nian)%40&&(2000+nian)%100!=0)
    tian=ruinian[yue];
    else nian=pingnian[yue];
    if(ri<1)
    ri=tian;
    write_nyr(9,ri);
    write_com(0x80+10);
    }
    if(s1num6)
    {
    yue–;
    if(yue<1)
    yue=12;
    write_nyr(6,yue);
    write_com(0x80+7);
    }
    if(s1num
    7)
    {
    nian–;
    if(nian<0)
    nian=50;
    write_nyr(3,nian);
    write_com(0x80+4);
    }
    }
    }
    }
    }
    void main()//主函数
    {
    init();
    while(1)
    {
    keyscan();
    }
    }
    void timer0() interrupt 1
    {
    TH0=(65536-50000)/256;
    TL0=(65536-50000)%256;
    count++;
    if(count20)
    {
    count=0;
    miao++;
    if(miao>=60)
    {
    miao=0;
    fen++;
    if(fen>=60)
    {
    fen=0;
    shi++;
    if(shi>=24)
    {
    shi=0;
    ri++;
    zhou++;
    if(zhou>6)
    zhou=0;
    write_com(0x80+12);
    for(num=0;num<3;num++)
    {
    write_date(yizhou[zhou][num]);
    delay(5);
    }
    if((2000+nian)%400
    0||(2000+nian)%4==0&&(2000+nian)%100!=0)
    tian=ruinian[yue];
    else nian=pingnian[yue];
    if(ri>tian)
    {
    ri=1;
    yue++;
    if(yue>12)
    {
    yue=1;
    nian++;
    if(nian>50)
    {
    nian=0;
    }
    write_nyr(3,nian);
    }
    write_nyr(6,yue);
    }
    write_nyr(9,ri);
    }
    write_sfm(4,shi);
    }
    write_sfm(7,fen);
    }
    write_sfm(10,miao);
    }
    }

    欢迎使用Markdown编辑器

    你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章,了解一下Markdown的基本语法知识。

    新的改变

    我们对Markdown编辑器进行了一些功能拓展与语法支持,除了标准的Markdown编辑器功能,我们增加了如下几点新功能,帮助你用它写博客:

    1. 全新的界面设计 ,将会带来全新的写作体验;
    2. 在创作中心设置你喜爱的代码高亮样式,Markdown 将代码片显示选择的高亮样式 进行展示;
    3. 增加了 图片拖拽 功能,你可以将本地的图片直接拖拽到编辑区域直接展示;
    4. 全新的 KaTeX数学公式 语法;
    5. 增加了支持甘特图的mermaid语法1 功能;
    6. 增加了 多屏幕编辑 Markdown文章功能;
    7. 增加了 焦点写作模式、预览模式、简洁写作模式、左右区域同步滚轮设置 等功能,功能按钮位于编辑区域与预览区域中间;
    8. 增加了 检查列表 功能。

    功能快捷键

    撤销:Ctrl/Command + Z
    重做:Ctrl/Command + Y
    加粗:Ctrl/Command + B
    斜体:Ctrl/Command + I
    标题:Ctrl/Command + Shift + H
    无序列表:Ctrl/Command + Shift + U
    有序列表:Ctrl/Command + Shift + O
    检查列表:Ctrl/Command + Shift + C
    插入代码:Ctrl/Command + Shift + K
    插入链接:Ctrl/Command + Shift + L
    插入图片:Ctrl/Command + Shift + G

    合理的创建标题,有助于目录的生成

    直接输入1次#,并按下space后,将生成1级标题。
    输入2次#,并按下space后,将生成2级标题。
    以此类推,我们支持6级标题。有助于使用TOC语法后生成一个完美的目录。

    如何改变文本的样式

    强调文本 强调文本

    加粗文本 加粗文本

    标记文本

    删除文本

    引用文本

    H2O is是液体。

    210 运算结果是 1024.

    插入链接与图片

    链接: link.

    图片: Alt

    带尺寸的图片: Alt

    居中的图片: Alt

    居中并且带尺寸的图片: Alt

    当然,我们为了让用户更加便捷,我们增加了图片拖拽功能。

    如何插入一段漂亮的代码片

    博客设置页面,选择一款你喜欢的代码片高亮样式,下面展示同样高亮的 代码片.

    // An highlighted block
    var foo = 'bar';
    

    生成一个适合你的列表

    • 项目
      • 项目
        • 项目
    1. 项目1
    2. 项目2
    3. 项目3
    • 计划任务
    • 完成任务

    创建一个表格

    一个简单的表格是这么创建的:

    项目 Value
    电脑 $1600
    手机 $12
    导管 $1

    设定内容居中、居左、居右

    使用:---------:居中
    使用:----------居左
    使用----------:居右

    第一列 第二列 第三列
    第一列文本居中 第二列文本居右 第三列文本居左

    SmartyPants

    SmartyPants将ASCII标点字符转换为“智能”印刷标点HTML实体。例如:

    TYPE ASCII HTML
    Single backticks 'Isn't this fun?' ‘Isn’t this fun?’
    Quotes "Isn't this fun?" “Isn’t this fun?”
    Dashes -- is en-dash, --- is em-dash – is en-dash, — is em-dash

    创建一个自定义列表

    Markdown
    Text-to-HTML conversion tool
    Authors
    John
    Luke

    如何创建一个注脚

    一个具有注脚的文本。2

    注释也是必不可少的

    Markdown将文本转换为 HTML

    KaTeX数学公式

    您可以使用渲染LaTeX数学表达式 KaTeX:

    Gamma公式展示 Γ(n)=(n1)!nN\Gamma(n) = (n-1)!\quad\forall n\in\mathbb N 是通过欧拉积分

    Γ(z)=0tz1etdt&ThinSpace;. \Gamma(z) = \int_0^\infty t^{z-1}e^{-t}dt\,.

    你可以找到更多关于的信息 LaTeX 数学表达式here.

    新的甘特图功能,丰富你的文章

    Mon 06Mon 13Mon 20已完成 进行中 计划一 计划二 现有任务Adding GANTT diagram functionality to mermaid
    • 关于 甘特图 语法,参考 这儿,

    UML 图表

    可以使用UML图表进行渲染。 Mermaid. 例如下面产生的一个序列图::

    张三李四王五你好!李四, 最近怎么样?你最近怎么样,王五?我很好,谢谢!我很好,谢谢!李四想了很长时间,文字太长了不适合放在一行.打量着王五...很好... 王五, 你怎么样?张三李四王五

    这将产生一个流程图。:

    链接
    长方形
    圆角长方形
    菱形
    • 关于 Mermaid 语法,参考 这儿,

    FLowchart流程图

    我们依旧会支持flowchart的流程图:

    Created with Raphaël 2.2.0开始我的操作确认?结束yesno
    • 关于 Flowchart流程图 语法,参考 这儿.

    导出与导入

    导出

    如果你想尝试使用此编辑器, 你可以在此篇文章任意编辑。当你完成了一篇文章的写作, 在上方工具栏找到 文章导出 ,生成一个.md文件或者.html文件进行本地保存。

    导入

    如果你想加载一篇你写过的.md文件或者.html文件,在上方工具栏可以选择导入功能进行对应扩展名的文件导入,
    继续你的创作。


    1. mermaid语法说明 ↩︎

    2. 注脚的解释 ↩︎

    展开全文
  • LCD电子钟 1602+89S52+1302

    2009-05-20 22:20:12
    LCD电子钟 1602+89S52+1302LCD电子钟
  • 杜洋工作室的12864LCD电子钟,小赖仿制的电路板图。直接可以打板的。
  • 一设计任务要求分析 本设计要实现的功能是实时显示当前的时钟并且可以设定闹铃以蜂鸣器鸣 响 5 秒的方式作为闹铃 1.1 设计总体方案及其方案论证 按照系统的设计功能所要求的液晶显示电子时钟原理图如图所示 ;...
  • ATMEGA1612864lcd电子钟

    2010-01-03 18:17:17
    电子时钟利用128*64字库LCD作为显示面板
  • 中南大学 自动化工程训练 设计题目LCD时钟程序设计 指导老师 设计者 专业班级 自动化 级班号 设计日期 2016年9月 目录 TOC \o "1-5" \h \z \o "Current Document" 一 设计任务要求分析 1 1.1设计总体方案及其方案...
  • lcd电子时钟c程序

    2012-01-03 23:57:04
    用51单片机驱动1602制作的电子时钟的C语言程序
  • 基于单片机的LCD电子钟设计,具有万年历,年月日预制、时间预制、闹钟预制和定时作用!
  • LDC——12864电子时钟,程序和电路图都有,想下载的就下载吧!
  • Qt-LCD电子时钟

    2018-02-26 21:16:02
    先上效果图吧就是这个样子,简单的时间显示时间。这里需要注意的是,我们最好建立一个空文件,这里我们需要建立一个集成QLCDNumber的类具体方法如下图一下是源代码digiclock.h#ifndef DIGICLOCK_H ...

    先上效果图吧

    就是这个样子,简单的时间显示时间。

    这里需要注意的是,我们最好建立一个空文件,这里我们需要建立一个集成QLCDNumber的类

    具体方法如下图

    一下是源代码

    digiclock.h

    #ifndef DIGICLOCK_H
    #define DIGICLOCK_H
    
    #include <QObject>
    #include <QLCDNumber>
    class DigiClock : public QLCDNumber
    {
        Q_OBJECT
    public:
        DigiClock(QWidget *parent = 0);
        void mousePressEvent(QMouseEvent *event);
        void mouseMoveEvent(QMouseEvent *event);
    private slots:
        void showTime();
    
    private:
        QPoint dragPosition;
        bool showColon;
    };
    
    #endif // DIGICLOCK_H
    

    digiclock.cpp

    #include "digiclock.h"
    #include <QTime>
    #include <QTimer>
    #include <QMouseEvent>
    #include <QString>
    DigiClock::DigiClock(QWidget *parent) : QLCDNumber(parent)
    {
    
        QPalette p = palette();
        p.setColor(QPalette::Window,Qt::blue);
        setPalette(p);
        setWindowFlags(Qt::FramelessWindowHint);
        setWindowOpacity(0.5);
        QTimer *timer = new QTimer(this);
        connect(timer,SIGNAL(timeout()),this,SLOT(showTime()));
        timer->start(1000);
        showTime();
        resize(150,60);
        showColon = true;
    }
    
    void DigiClock::mousePressEvent(QMouseEvent *event)
    {
    
        if(event->button() == Qt::LeftButton)
        {
            dragPosition = event->globalPos()-frameGeometry().topLeft();
            event->accept();
        }
        if(event->button() == Qt::RightButton)
        {
            close();
        }
    }
    
    void DigiClock::mouseMoveEvent(QMouseEvent *event)
    {
        if(event->buttons() & Qt::LeftButton)
        {
            move(event->globalPos() - dragPosition);
            event->accept();
        }
    }
    
    void DigiClock::showTime()
    {
        QTime time = QTime::currentTime();
        QString text = time.toString("hh:mm");
        if(showColon)
        {
            text[2] = ':';
            showColon = false;
        }
        else
        {
            text[2] = ' ';
            showColon = true;
        }
        display(text);
    }

    工程目录:https://gitee.com/DreamLife-Technology_DreamLife/LCDClock

    展开全文
  • LCD电子钟(单片机)

    2010-03-10 09:05:45
    1、 利用单片机设计一个电子时钟,能够显示时间、年、月、日、 时、分、秒等信息,并且能够实时刷新。 2、能够实时的显示温度,具体设计方案请自定。 3、自行编写驱动程序,要求显示精准
  • PyQT5实例 【2】 桌面LCD电子时钟

    千次阅读 2018-08-10 00:27:14
    今天,我要记录的是用pyqt5写的一个桌面电子时钟,涉及到pyqt定时器,LCD显示控件,pyqt5获取时间等内容,单击鼠标右键会关闭此时钟,效果图如下图 运行环境:Python35 开发环境: Eclipse-photon +PyDev 题...
  • vb6.0做LCD电子时钟

    千次阅读 2009-04-28 19:59:00
    先来看一下效果图:下面就说一下具体的分析:首先分析它的显示原理,一、先把每一个数字都看成是一个8字的一部分,这里说的8是这个,把整个电子时钟分成八份,其中有六个。可以很容易的看出来这个8是有七根线构成的...
  • 一客户拿来一个LCD电子钟,带温度显示的。正常运行的时候的电流2-3uA,可是我公司写出来的同功能的电子钟运行电流30-40uA,请问有没有人能解决这类问题啊?
  • lcd液晶电子时钟 数码管电子时钟 ds1302实时时钟 lcd液晶电子时钟 数码管电子时钟 ds1302实时时钟

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 569
精华内容 227
关键字:

lcd电子钟