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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 1766|回復: 2
收起左側

51單片機時鐘,如何將時分秒數據傳送到串口助手上?

[復制鏈接]
ID:512275 發表于 2019-12-19 10:44 | 顯示全部樓層 |閱讀模式
當前已完成時鐘的走停,現在要讓時分秒數據發送到串口助手上,不知道如何寫程序了?年月日暫時先不弄,時分秒的數據只能分別發送到串口助手上顯示,有沒有大佬幫忙看看如何還你那個時分秒整體數據發送到串口助手上
/**************************************************************************************************************************************************************/
#include<reg51.h>        
#include"lcd.h"
sbit key1=P1^4;
sbit key2=P1^5;
sbit key3=P1^6;
extern uchar code table[]=" 2020-01-01 THU";
extern uchar code table1[]="    00:00:00";
uchar count,key1num;
char shi,fen,miao;
char ri,yue,nian;



void delay(uint z)     /延時
{
        uint x,y;
        for(x=z;x>0;x--)
                for(y=110;y>0;y--);
}
void Init ()           /初始化
{        uchar num;
        P1=0xf0;
        InitLcd1602();
        EA=1;              
        TMOD=0x01;
        TH0=(65536-50000)/256;      
        TL0=(65536-50000)%256;        
        ET0=1;
        TR0=1;
        for(num=0;num<15;num++)
                {
                        Lcd1602_Write_Data(table[num]);
                        delay(5);
                }
        Lcd1602_Write_Cmd(0x80+0x40);
        for(num=0;num<12;num++)
                {
                        Lcd1602_Write_Data(table1[num]);
                        delay(5);
                }
}        
void write_sfm(uchar add,uchar date)    //時分秒
{
        uchar shi1,ge;
        shi1=date/10;
        ge=date%10;
         Lcd1602_Write_Cmd(0x80+0x40+add);
   Lcd1602_Write_Data(0x30+shi1);
   Lcd1602_Write_Data(0x30+ge);
         SBUF=0x30+shi1;
          while (!TI);   
    TI = 0;
         SBUF=0x30+ge;
          while (!TI);  
    TI = 0;
}

void write_nyr(uchar add,uchar date)
{
        char shi2,ge2;
        shi2=date/10;
        ge2=date%10;
         Lcd1602_Write_Cmd(0x80+add);
   Lcd1602_Write_Data(0x30+shi2);
   Lcd1602_Write_Data(0x30+ge2);
}

void timer0() interrupt 1
{
  TH0=(65536-50000)/256;
        TL0=(65536-50000)%256;
        count++;  
        if(count==20)
        {
          count=0;
                miao++;
                if(miao==60)
                {
                                miao=0;
                                fen++;
                                if(fen==60)
                                {
                                         fen=0;
                                                shi++;
                                        if(shi==24)
                                        {  
             shi=0;
             ri++;
             if(ri==31)
                                          {
                      ri=0;
                yue++;
                if(yue==13)
                                              {
                                                  yue=0;
                                                        nian++;
                                                                        write_nyr(3,nian);
                                                           }               
                                                                write_nyr(6,yue);
                                          }               
                                                  write_nyr(9,ri);
                                        }
                                        write_sfm(4,shi);

        }
}

void KEY()
{
    if(key1==0)
                {
                delay(5);
                        if(key1==0)
                        {           key1num++;
                                                        while(!key1);
                                                        if( key1num==1)
                                                        {
                                                                TR0=0;
                                                         Lcd1602_Write_Cmd(0x80+0X40+11);
                                                         Lcd1602_Write_Cmd(0x0f);
                                                        }
                                                        if( key1num==2)
                                                        {
                                                        Lcd1602_Write_Cmd(0x80+0X40+8);
                                                        }
                                                        if( key1num==3)
                                                        {
                                                        Lcd1602_Write_Cmd(0x80+0X40+5);
                                                        }
                                                        if( key1num==4)
                                                        {
                                                                key1num=0;
                                                        Lcd1602_Write_Cmd(0x0c);
                                                                 TR0=1;
                                                        }
                           }
                        }
                if(key1num!=0)
                        {
                          if(key2==0)
                                {
                                    delay(5);
                                        if(key2==0)
                                        {   while(!key2);
                                            if(key1num==1)
                                                        {
                                                            miao++;
                                                                if(miao==60)
                                                                        miao=0;
                                                                        write_sfm(10,miao);
                                                                  Lcd1602_Write_Cmd(0x80+0X40+11);
                                                
                                                         }
                                                           if(key1num==2)
                                                          {   fen++;
                                                                   if(fen==60)
                                                                             fen=0;
                                                                             write_sfm(7,fen);
                                                                       Lcd1602_Write_Cmd(0x80+0X40+8);
                                                           }
                                                           if(key1num==3)
                                                           {   shi++;
                                                                   if(shi==24)
                                                                           shi=0;
                                                                           write_sfm(4,shi);
                                                                     Lcd1602_Write_Cmd(0x80+0X40+5);
                                                      }
                                           }
                                        }
                                if(key3==0)
                                        {
                                           delay(5);
                                                  if(key3==0)
                                                                while(!key3);
                                                           if(key1num==1)
                                                                        {
                                                                                        miao--;
                                                                                if(miao==-1)
                                                                                        miao=59;
                                                                                        write_sfm(10,miao);
                                                                                        Lcd1602_Write_Cmd(0x80+0X40+11);
                                                               
                                                                         }
                                                                                 if(key1num==2)
                                                                                {   fen--;
                                                                                         if(fen==-1)
                                                                                                         fen=59;
                                                                                                         write_sfm(7,fen);
                                                                                                         Lcd1602_Write_Cmd(0x80+0X40+8);
                                                                                 }
                                                                                 if(key1num==3)
                                                                                 {   shi--;
                                                                                         if(shi==-1)
                                                                                                 shi=23;
                                                                           write_sfm(4,shi);
                                                                     Lcd1602_Write_Cmd(0x80+0X40+5);
                                                         }
                                        }
                                
                }
}


void main(void)
{  
   Init();        
    UsartConfiguration();
//         write_sfm(0x80+0x40+5,shi);
//         SBUF=shi;
//         while (!TI);
//         TI = 0;
//         write_sfm(0x80+0x40+8,fen);
//         SBUF=fen;
//         while (!TI);
//         TI = 0;
//        write_sfm(0x80+0x40+11,miao);
//         SBUF=miao;
//         while (!TI);
//         TI = 0;
//        
//         Lcd1602_Write_Cmd(0x80+0x40+5);
//         SBUF=shi;
//         while (!TI);
//         TI = 0;
//         Lcd1602_Write_Cmd(0x80+0x40+8);
//         SBUF=fen;
//         while (!TI);  
//         TI = 0;
//         Lcd1602_Write_Cmd(0x80+0x40+11);
//         SBUF=miao;
//         while (!TI);
//         TI = 0;
        
   while(1)
         {  
                 KEY();
         }
                        
}




回復

使用道具 舉報

ID:378732 發表于 2019-12-19 16:23 | 顯示全部樓層
用stdio.h里面的printf();函數。
串口助手用文本模式。
回復

使用道具 舉報

ID:213173 發表于 2019-12-19 17:37 | 顯示全部樓層
1.添加串口初始化程序(略)
2.添加串口發送程序
  1. void Send_byte(unsigned char dat)
  2. {
  3.         SBUF = dat;
  4.         while(!TI);
  5.         TI = 0;
  6. }        
  7. void main(void)
  8. {  
  9.         unsigned char i,j;
  10.         Init();        
  11.         UsartConfiguration();
  12.         while(1)
  13.         {  
  14.                 KEY();
  15.                 if(j!=miao)//每秒發送一次
  16.                 {
  17.                         j=miao;
  18.                         for(i=4;i>12;i++)
  19.                                 Send_byte(table1[i]);//把保存在table1[]里的字符串發送串口
  20.                 }
  21.         }                  
  22. }
復制代碼
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 国产精品久久久久久久久久久免费看 | 高清免费在线 | 波多野结衣中文视频 | 91精品国产91久久综合桃花 | 日韩视频在线观看一区二区 | 一区在线视频 | 欧美精品久久久久久久久久 | 久久精品一区 | 特黄视频| 中文字幕一区二区三区四区五区 | 色婷婷九月 | www.v888av.com| 91九色视频在线 | 91精品国产综合久久精品 | 一级做a爰片性色毛片16美国 | 亚洲精品视频网站在线观看 | 成人在线观看免费 | 欧美一级免费看 | 亚洲一区二区不卡在线观看 | 亚洲一区在线日韩在线深爱 | 欧美一区二区大片 | 国产精品久久久久久 | 日韩在线免费视频 | 日韩精品一区二区在线观看 | 九色www| 国户精品久久久久久久久久久不卡 | 国产精品九九视频 | 亚洲欧美日韩在线不卡 | 综合久久综合久久 | 网站黄色在线免费观看 | 精品视频国产 | 日韩在线观看一区 | 免费1区2区3区 | 91久久久www播放日本观看 | 欧美日韩精品中文字幕 | 中文字幕 在线观看 | 欧美三区 | 亚洲精品乱码久久久久久按摩 | 91高清免费观看 | 欧美一区二区在线观看 | 日韩精品在线一区二区 |