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

專注電子技術(shù)學(xué)習(xí)與研究
當(dāng)前位置:單片機(jī)教程網(wǎng) >> MCU設(shè)計(jì)實(shí)例 >> 瀏覽文章

單片機(jī)通過串口通信調(diào)整時間的程序

作者:寒竹子   來源:本站原創(chuàng)   點(diǎn)擊數(shù):  更新時間:2014年03月21日   【字體:

本程序所用的原理圖下載: 點(diǎn)這里 ,單片機(jī)芯片使用的stc89c51;找到時鐘部分的原理圖修改為你自己的電路上的io即可.這是一整個單片機(jī)開發(fā)板的電路圖其他的忽略.


/**************************通過串口通信調(diào)整時間******************************/
/**
*功能:單片機(jī)開始上電時點(diǎn)陣顯示倒計(jì)時3,2,1,0,然后點(diǎn)陣LED關(guān)閉顯示
*    定時器和串口開始工作,定時器開始一秒計(jì)時,并在數(shù)碼管上顯示時,分,秒
*    此計(jì)時器可以通過串口發(fā)送數(shù)據(jù)調(diào)整時間,可調(diào)整時與分,當(dāng)調(diào)整分鐘時秒清零
*    附加功能:當(dāng)單片機(jī)收到數(shù)據(jù)時有蜂鳴器響一聲作為提示
*     彩色流水燈以20毫秒的速度向左流動
*作者:徐冉
*日期:2013-06-15-09:15 - 12:10
*備注:程序已經(jīng)順利通過調(diào)試
*/
/***********51hei開發(fā)板************/
/********AT89C52-RC MCU***********/
#include <reg52.h>
typedef unsigned int uint;
typedef unsigned char uchar;
sbit wela = P2^7;
sbit dula = P2^6;
sbit FM = P2^3;
sbit din = P2^0;
sbit cs = P2^1;
sbit clk = P2^2;
 /************點(diǎn)陣LED顯示取模編碼表***********************/
uchar code dis[][8] = {
      {0x00,0x3E,0x02,0x02,0x3E,0x02,0x02,0x3E},//'3'
      {0x00,0x3E,0x02,0x02,0x3E,0x20,0x20,0x3E},//'2'
          {0x00,0x18,0x38,0x08,0x08,0x08,0x08,0x3E},//'1'
      {0x00,0x3C,0x24,0x24,0x24,0x24,0x24,0x3C},//'0'
      {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}//關(guān)閉顯示           
       };
 /*****************數(shù)碼管顯示編碼表***************************/
uchar code table[] = {
                0x3F,  //"0"
                0x06,  //"1"
                0x5B,  //"2"
                0x4F,  //"3"
                0x66,  //"4"
                0x6D,  //"5"
                0x7D,  //"6"
                0x07,  //"7"
                0x7F,  //"8"
                0x6F  //"9"
    };

uchar shi = 0, fen = 0, miao = 0, counter = 0, flag = 0, j = 0;
/*************點(diǎn)陣LED-MAX7219***********/
/***************寫字節(jié)************************/
void write_byte(uchar date)
{
 uchar i = 0;
 cs = 0;
 for(i = 0; i < 8; i++)
 {
  clk = 0;
  din = date & 0x80;
  date <<= 1;
  clk = 1;
 }
}
/*****************寫MAX7219**********************/
void write_max7219(uchar add, uchar date)
{
 cs = 0;
 write_byte(add);
 write_byte(date);
 cs = 1;
}
/*****************MAX7219初始化**********************/
void max7219_init()
{
 write_max7219(0x0c, 0x01);
 write_max7219(0x09, 0x00);
 write_max7219(0x0a, 0x08);
 write_max7219(0x0b, 0x07);
 write_max7219(0x0f, 0x00);
}
/*********延時*********/
void delayms(uint xms)
{
 uint x, y;
 for(x = xms; x > 0; x--)
   for(y = 110; y > 0; y--);
}
/************串口和定時器T0初始化********************/
void init()
{
 TMOD = 0x21;//T1工作方式2,T0工作方式1
 TH0 = 0xB8;
 TL0 = 0x00;
 TH1 = 0xFA;
 TL1 = 0xFA;
 TR1 = 1;
 SM0 = 0;
 SM1 = 1;
 REN = 1;
 EA = 1;
 ES = 1;
 ET0 = 1;
}
/*************數(shù)碼管顯示時間************************/'
void display(uchar shi, uchar fen, uchar miao)
{
 uchar shi_s, shi_g;
 uchar fen_s, fen_g;
 uchar miao_s, miao_g;
 
 shi_s = shi / 10 % 10;
 shi_g = shi % 10;
 fen_s = fen / 10 % 10;
 fen_g = fen % 10;
 miao_s = miao / 10 % 10;
 miao_g = miao % 10;
 
 dula = 1;
 P0 = table[shi_s];
 dula = 0;
 P0 = 0xff;
 wela = 1;
 P0 = 0xfe;
 wela = 0;
 P0 = 0x00;
 delayms(1);
 
 dula = 1;
 P0 = table[shi_g];
 dula = 0;
 P0 = 0xff;
 wela = 1;
 P0 = 0xfd;
 wela = 0;
 P0 = 0x00;
 delayms(1);
 
 dula = 1;
 P0 = table[fen_s];
 dula = 0;
 P0 = 0xff;
 wela = 1;
 P0 = 0xfb;
 wela = 0;
 P0 = 0x00;
 delayms(1);
 
 dula = 1;
 P0 = table[fen_g];
 dula = 0;
 P0 = 0xff;
 wela = 1;
 P0 = 0xf7;
 wela = 0;
 P0 = 0x00;
 delayms(1);
 
 dula = 1;
 P0 = table[miao_s];
 dula = 0;
 P0 = 0xff;
 wela = 1;
 P0 = 0xef;
 wela = 0;
 P0 = 0x00;
 delayms(1);
 
 dula = 1;
 P0 = table[miao_g];
 dula = 0;
 P0 = 0xff;
 wela = 1;
 P0 = 0xdf;
 wela = 0;
 P0 = 0x00;
 delayms(1);
}
/*****************點(diǎn)陣顯示程序****************/
void display_max7219()
{
 uchar m, n;
 for(m = 0; m < 5; m++)
 {
  for(n = 0; n < 8; n++)
  {
   write_max7219(n+1, dis[m][n]);
   delayms(1);
  }
  delayms(1000);
 }
  TR0 = 1;
}
/****************主程序********************/
void main(void)
{
 init();
 max7219_init();
    display_max7219();
 
 while(1)
 {
  display(shi, fen, miao);
  if(flag == 1)
  {
   flag = 0;
   ES = 0;
   SBUF = shi;
   while(!TI);
   TI = 0;
   SBUF = fen;
   while(!TI);
   TI = 0;
   SBUF = miao;
   while(!TI);
   TI = 0;
   ES = 1;
  }
 }
}
/***************定時器T0中斷程序**********************/
void timer0_int() interrupt 1
{
 TH0 = 0xB8;
 TL0 = 0x00;
 counter++;
 P1 = ~(1 << j++);
 if(j >= 8)
 {
  j = 0;
 }
 if(counter == 50)
 {
  counter = 0;
  miao++;
  if(miao >= 60)
  {
   miao = 0;
   fen++;
   if(fen >= 60)
   {
    fen = 0;
    shi++;
    if(shi >= 24)
    {
     shi = 0;
    }
   }
  }
 }
}
/*************串口中斷服務(wù)程序***********************/
void uart_int() interrupt 4
{
 RI = 0;
 if(SBUF >= 23 && SBUF <= 59)
 {
  fen = SBUF;
  miao = 0;
  FM = 0;
  delayms(30);
  FM = 1;
 }
 if(SBUF >= 0 && SBUF <= 23)
 {
  shi = SBUF;
  fen = SBUF;
  FM = 0;
  delayms(30);
  FM = 1;
 }
 flag = 1;
}
 

 

關(guān)閉窗口

相關(guān)文章

主站蜘蛛池模板: 亚洲精品久久久久avwww潮水 | 在线成人精品视频 | 成人免费网站 | 中文字幕一级 | 美女久久久久 | 欧美激情国产精品 | 最新免费黄色网址 | 久久精品一区二区 | 中文字幕一区二区三区四区 | 亚洲男人天堂2024 | 亚洲人成人一区二区在线观看 | 久久免费高清视频 | 日日摸日日碰夜夜爽亚洲精品蜜乳 | 在线国产一区二区三区 | 久久久国产精品视频 | 成人影视网址 | 欧美日韩在线观看一区二区三区 | 2022国产精品 | 久久久精品高清 | 一区二区三区四区不卡视频 | 久草热8精品视频在线观看 午夜伦4480yy私人影院 | 亚洲国产成人精品女人久久久 | 日韩久久久久 | 亚州成人| 亚洲免费毛片 | 91国内精精品久久久久久婷婷 | 丁香综合| 在线观看视频福利 | 色婷婷精品久久二区二区蜜臂av | 天天综合亚洲 | 日韩国产中文字幕 | 一道本不卡视频 | av网址在线 | 男女下面一进一出网站 | av网站观看 | 精品网 | 91高清视频在线观看 | 天堂三级 | 免费av手机在线观看 | 天天人人精品 | 亚洲欧美在线观看 |