• 方案介绍
  • 附件下载
  • 相关推荐
申请入驻 产业图谱

基于51单片机的wifi自动校时时钟设计

2024/10/12
1338
加入交流群
扫码加入
获取工程师必备礼包
参与热点资讯讨论

有需要资料的可了解一下.docx

共1个文件

程序运行图:

85d6ecfd745f4806af993b9ca3d9aff6.png

部分程序:

#include <REGX52.H>

#include "lcd_1602.h"

#include "key.h"

#include "ds18b20.h"

#include "time.h"

#include "uart.h"

u8 time_init[];

u8 wendu=25;

extern u16 i;

extern u8 flag;

unsigned char ch;

unsigned char RX_BUF[35],RX_DAT[35],RX_CNT=0,RX_OVER=0;

void Delay10ms(unsigned int c)   //误差 0us

{

unsigned char a, b;

for (;c>0;c--)

{

for (b=38;b>0;b--)

{

for (a=130;a>0;a--);

}

}

}

void Uart_IRQ() interrupt 4       //串口接收中断函数

{

unsigned x;

if(RI)

{

ch=SBUF;

if(ch!='S')//开始

{

RX_BUF[RX_CNT++]=ch;

}

else         //结束

{

for(x=0;x<RX_CNT;x++)

{

RX_DAT[x]=RX_BUF[x];

}

RX_CNT=0;

RX_OVER=1;

}

RI=0;//清标志位

}

}

void Uart_Init(void)                             //串口初始化函数

{

TMOD |=0x20;

TH1=0xfd;

TL1=0xfd;  //9600

TR1=1;

REN=1;   //允许串口接收

SM0=0;SM1=1; //串口工作方式为方式1

EA=1;  // 打开中断总开关

ES=1;  //打开串口中断

}

void main()

{

Timer0Init();

LcdInit();

int_init();

Uart_Init();

while(1)

{

wendu=DS18B20_GET();

Time_panduan();

if(RX_OVER==1)

{

wifi_time();

Delay10ms(300);

RX_OVER=0;

}

if(flag==1)

{

key1();//加

key2();//减

}

display();

}

}

 

  • 有需要资料的可了解一下.docx
    下载

相关推荐