娇小w搡bbbb搡bbb,《第一次の人妻》,中国成熟妇女毛茸茸,边啃奶头边躁狠狠躁视频免费观看

歷史上的今天

今天是:2024年11月12日(星期二)

正在發生

2019年11月12日 | AVR萬年電子日歷C程序

發布者:mlgb999 來源: 51hei關鍵字:AVR  萬年電子日歷  C程序 手機看文章 掃描二維碼
隨時隨地手機看文章

main.c如下:


#include "iom16v.h"

#include "ds1302.h"

#include "macros.h"

#include "lcd12864.h" 

#define xtal  1

uchar  disp_time[33]="2008年11月27日  21:49:00  星期日";

uchar week[14] = "一二三四五六天";

/*----------鍵盤相關聲明-------------------------------------*/

#define key (PINA  & BIT(0))     //功能鍵

#define key1 (PINA  & BIT(1))     //只有加1鍵

uchar sum,keyflag=0;   //調用時,分,秒,標志,調用鍵盤處理標志.


/*延時函數*/

void delay_ms(unsigned char i) {

unsigned char a, b;

for (a = 1; a < i; a++) { 

  for (b = 1; b; b++) { 

   ;

   } 

  } 

}



/*********時間寫屏刷新函數***********/    

void  disp_reset(void)    

{  


  // disp_time[0] = time_buf[0]/10+48; //年

  // disp_time[1] = time_buf[0]%10+48;

   disp_time[2] =  time_buf[1] /10+48;//年

   disp_time[3] =  time_buf[1] %10+48;

   disp_time[6] =  time_buf[2] /10+48;//月

   disp_time[7] =  time_buf[2] %10+48;

   disp_time[10] =  time_buf[3] /10+48;//日

   disp_time[11] =  time_buf[3] %10+48;

   disp_time[16] =  time_buf[4] /10+48;//時

   disp_time[17] =  time_buf[4] %10+48;

   disp_time[19] = time_buf[5]/10+48;//分

   disp_time[20] = time_buf[5]%10+48;

   disp_time[22] = time_buf[6]/10+48;//秒

   disp_time[23] = time_buf[6]%10+48;

   disp_time[30] = time_buf[7]/10+48;//周

   disp_time[31] = time_buf[7]%10+48;

   

   switch (time_buf[7]%16)

   {

     case 0:

       //LCD_PutStr(2,4,"日");

    disp_time[30] =week[0];

    disp_time[31] =week[1];

    break;

     case 1:

       //LCD_PutStr(2,4,"一");

    disp_time[30] =week[2];

    disp_time[31] =week[3];

    break;

  case 2:

       //LCD_PutStr(2,4,"二");

    disp_time[30] =week[4];

    disp_time[31] =week[5];

    break;

     case 3:

       disp_time[30] =week[6];

    disp_time[31] =week[7];

    break;

  case 4:

       disp_time[30] =week[8];

    disp_time[31] =week[9];

    break;  

  case 5:

       disp_time[30] =week[10];

    disp_time[31] =week[11];

    break;  

  case 6:

       disp_time[30] =week[12];

    disp_time[31] =week[13];

    break;

  default:

       break;

   }

      

   LCD_PutStr(0,0,"當前日期是:");

   LCD_PutStr(1,0,disp_time);

/*---------------按鍵處理相關函數--------------------------*/ 

/************************************************************

函數名稱:void scanner()

功能描述: 按鍵函數

*************************************************************/

void scanner()

{ uchar i,j;  

if(!key)     //功能鍵按下

{ delay_ms(500);    //延時500MS

   if(!key)    //還按下,退出時間調整

   { keyflag=0;   //標志位為0

    sum=0;    //清0

     LCD_WriteCmd(0x0C);//清閃爍

  LCD_PutStr(3,0,"           ");

  

    for(i=0;i<7;i++) //十進制轉十六進制 

    { j=time_buf[ i]/10;

         time_buf=time_buf%10;

         time_buf=time_buf+16*j;

    } 

        ds1302_init();//DS1302初始化

        delay_ms(10); 

    ds1302_write_time();//寫入1302

    

    while(!key); //等待釋放

    delay_ms(10);   //延時消抖

   }

   else     //500MS內放開

   { keyflag=1;   //標志為1,進行時間調整

    sum++;    //功能鍵加1

switch (sum)

        {

     case 1:

        LCD_PutStr(3,0,"請調整年份");

     break;

     case 2:

        LCD_PutStr(3,0,"請調整月份");

     break;

  case 3:

        LCD_PutStr(3,0,"請調整日期");

     break;

     case 4:

        LCD_PutStr(3,0,"請調整時鐘");

     break;

     case 5:

        LCD_PutStr(3,0,"請調整分鐘");

     break;

     case 6:

        LCD_PutStr(3,0,"請調整秒鐘");

     break; 

  case 7:

        LCD_PutStr(3,0,"請調整星期");

     break; 

     default:

        break;

    } 

    

    if(sum==8)  

     sum=0;

    switch(sum)

     {

  case 1:   //  年閃爍   

         LCD_WriteCmd(0x90+1);

         LCD_WriteCmd(0x0f);

         break;

     case 2:   //為2,月閃爍

      // write_single(3,2,"-?");

      LCD_WriteCmd(0x90+3);

         break;

     case 3:   //日閃爍

         LCD_WriteCmd(0x90+5); 

         break;

  case 4:   //時閃爍

         LCD_WriteCmd(0x88+0); 

         break;

     case 5:   //分閃爍

         //LCD_WriteCmd(0x88+4);

     write_single(3,2,"0");

     LCD_WriteCmd(0x06);        //寫入時,游標右移動 

    

         break;

     case 6:   //秒閃爍

         LCD_WriteCmd(0x88+3);

         break;

     case 7:   //星期閃爍

         LCD_WriteCmd(0x88+7);

         break;

    }

   }

}

if(sum)      //功能鍵按下

{      

   if(!key1)

   { delay_ms(10);

    if(!key1)

    { while(!key1);//等待加1鍵釋放

     delay_ms(10);

     if(sum==1) //年

     {  time_buf[1]++;

      if(   time_buf[1]  ==100)

       time_buf[1]=0;

      disp_reset();

     }

     if(sum==2)  //月

     {  

   time_buf[2]++;

      if( time_buf[2] ==13)

       time_buf[2]=1;

       disp_reset(); 

     }

     if(sum==3)//日

     { time_buf[3]++;

      if(  time_buf[3]  ==32)

       time_buf[3]=1;

      disp_reset(); 

     }

     if(sum==4)//時

     { 

       time_buf[4]++;

      if( time_buf[4] ==24)

       time_buf[4]=0;

      disp_reset(); 

     }

     if(sum==5)//分

     { time_buf[5]++;

      if( time_buf[5] ==60)

       time_buf[5]=0;

      disp_reset(); 

     }

     if(sum==6)//秒

     {time_buf[6]++;

      if( time_buf[6] ==60)

       time_buf[6]=0;

      disp_reset(); 

     }

     if(sum==7)//星期

     {  time_buf[7]++;

      if( time_buf[7] ==7)

       time_buf[7]=0;

      disp_reset(); 

      

     }

    } 


   }

}

}


void main(void) {

unsigned char temp;

PORTA = 0xFF;    /*打開上拉*/

DDRA = 0x00;    /*方向輸入*/

PORTB = 0xF0;    /*電平設置*/

DDRB = 0xFF;    /*方向輸出*/

PORTC = 0x7F;

DDRC = 0x80;

PORTD = 0xFF;

DDRD = 0x00;

   DDRD &= ~BIT(7);

   PORTD &= ~BIT(7);

   DDRC |=BIT(6);  //設置輸出

   PORTC &= ~BIT(6);  //L:serial mode 串行

   DDRC &= ~BIT(7);

   PORTC &= ~BIT(7);


delay_ms(20);

LCD_Init();

ds1302_init();

delay_ms(10);

ds1302_write_time();

while (1) {

       scanner();

      if(!keyflag)

    {

   delay_ms(20);

   ds1302_read_time();

      disp_reset();

   }   

  }

}


DS1302.H包括如下


#include "iom16v.h"

/*復位腳*/

#define RST_CLR PORTC &= ~(1 << PC4)/*電平置低*/

#define RST_SET PORTC |= (1 << PC4)/*電平置高*/

#define RST_IN DDRC &= ~(1 << PC4)/*方向輸入*/

#define RST_OUT DDRC |= (1 << PC4)/*方向輸出*/

/*雙向數據*/

#define IO_CLR PORTC &= ~(1 << PC3)/*電平置低*/

#define IO_SET PORTC |= (1 << PC3)/*電平置高*/

#define IO_R PINC & (1 << PC3)/*電平讀取*/

#define IO_IN DDRC &= ~(1 << PC3)/*方向輸入*/

#define IO_OUT DDRC |= (1 << PC3)/*方向輸出*/

/*時鐘信號*/

#define SCK_CLR PORTC &= ~(1 << PC2)/*時鐘信號*/

#define SCK_SET PORTC |= (1 << PC2)/*電平置高*/

#define SCK_IN DDRC &= ~(1 << PC2)/*方向輸入*/

#define SCK_OUT DDRC |= (1 << PC2)/*方向輸出*/

#define ds1302_sec_add   0x80  //秒數據地址

#define ds1302_min_add   0x82  //分數據地址

#define ds1302_hr_add   0x84  //時數據地址

#define ds1302_date_add   0x86  //日數據地址

#define ds1302_month_add  0x88  //月數據地址

#define ds1302_day_add   0x8a  //星期數據地址

#define ds1302_year_add   0x8c  //年數據地址

#define ds1302_control_add  0x8e  //控制數據地址

[1] [2] [3] [4]
關鍵字:AVR  萬年電子日歷  C程序 引用地址:AVR萬年電子日歷C程序

上一篇:avr單片機流水燈的程序
下一篇:LCD12864簡單菜單程序,八個按鍵帶proteus仿真和程序

推薦閱讀

現如今,機器人已經成為各國爭奪的產業高地,標準化競爭更是國家布局的重中之重,在此情況下,我國需加快機器人相關標準建設工作,推動我國產業發展走向高端化、規范化和健康化。 如今,機器人作為當代智能裝備和高新技術的代表之一,對制造業的發展和國家核心競爭力的提升,擁有著至關重要的作用,各國普遍將發展的目光聚焦于該領域之中,希望率先搶...
前些時間,根據路透社報道豐田將采購 5 萬套松下的圓柱電池來做 PHEV,主要是卡羅拉(Corolla)和雷凌(Levin)的 PHEV 上。由于這款車的信息不多,現在網上有比較細節的信息發布出來,我做一些整理。這款電池系統確實是基于 18650 的電芯來做的,15 個電芯并聯,然后 4 組串聯形成一個模組。一共分成了 20 個模組,分成四個區塊分總成。 60...
合格證的事情我稍作說明,由于管理辦法調整后面確實很難獲取。電池的數據可能需要更多的參考汽協信息發布會的數據(中國汽車動力電池產業創新聯盟),從 10 月來看,總體的動力電池產量 9.9GWh,裝車量 5.9GWh,這里面有著很大的差異。我們仔細來看看這個月的數據。01、月度信息的亮點10 月產量共計 9.9GWh,同比增長 47.9%,環比增長 14.5%。在這...
近年來,幾乎每天都會發布關于新處理器架構的公告,并給出一個三個字母的首字母縮略詞——TPU、IPU、NPU。但真正區分它們的是什么?真的有那么多獨特的處理器架構,還是發生了其他事情?2018 年,John L. Hennessy 和 David A. Patterson 發表了題為“計算機架構的新黃金時代”的圖靈講座。他們關注的是 CPU 及其發展方式,但這只是整個方程式的...

史海拾趣

問答坊 | AI 解惑

誰知道EWB中默認的ADC是哪個型號的芯片啊?

本帖最后由 dontium 于 2015-1-23 13:26 編輯 誰知道EWB中默認的ADC是哪個型號的芯片啊?能告訴我嗎?謝謝,我做設計用那個仿真結果很好,可是不知道那具體是哪個芯片啊 …

查看全部問答∨

擴展串口芯片驅動的問題

PXA270+WinCE6.0  通過總線擴展串口 芯片 ST16c554 擴出了4個串口 對串口了解不夠,請問一下,寫擴展串口的驅動需要注意哪些? 對比芯片資料發現里面寄存器的配置與16550差別不大,是不是可以繼承16550的pdd層? mdd層需要修改嗎,還 ...…

查看全部問答∨

wince如何掛載FAT32文件系統?

請教各位大蝦,wince如何掛載FAT32文件系統? 我用ARM平臺,有一片512M的NANDFLASH,前30M用做OS,格式化成BINFS,后面的部分格式化成FAT32,可是掛載不上。大家知道怎么掛載嗎?請指教一下。 謝謝 :) …

查看全部問答∨

程序編譯出現問題

請版主及各位朋友看看,我用定時器1做脈沖信號的輸出,程序編譯時候TIM1出現了好多錯誤,但是我明明已經把stm32f10x_tim.c這個文件加入到了工程項里面,不知道為什么還會出現這些問題,請大家指點一下問題出在哪里。 下載 (58.14 ...…

查看全部問答∨

msp430 LaunchPad 的Arduino開發平臺

http://energia.nu/ 使用很簡單,從上面網站下載相應版本的軟件,解壓出來后,記得修改一下目錄名,把后面一長串的數字字母去掉。 運行安裝目錄“energia.exe”, 打開軟件后,把LAUCHPAD連接到USB接口,裝好相應驅動,從\"Tools->Board\"菜單 ...…

查看全部問答∨

TI Cortex-A8 TQ_AM335X的簡介

TQ_AM335X開發板是廣州天嵌計算機科技有限公司專門針對有一定開發經驗或企業用戶提供的一整套的學習和解決方案。TQ_AM335X提供了一個性能穩定及成本低廉的Cortex-A8開發平臺,以便您快速熟悉TI AM335X處理器特性和設計方法,并加快您的產品開發進度 ...…

查看全部問答∨

2440學習記錄(十四)守護進程的創建

這一節學習守護進程的創建 參考文獻 blog.sina.com.cn/s/blog_643d3d780100lbsg.html blog.csdn.net/mybelief321/article/details/9069659 守護進程是脫離于終端并且在后臺運行的進程。守護進程脫離于終端是為了避免進程在執行過程中的信息 ...…

查看全部問答∨

LPC1500體驗+SCT_1、寄存器

本帖最后由 freebsder 于 2014-8-15 21:59 編輯 1, CONFIG寄存器中的UNIFY位設置timer作為1個32位還是2個16位計時器。在訪問其他寄存器之前設置這個位。       UNIFY = 1: Only one register     is ...…

查看全部問答∨

AVR xmega 的 sleep模式怎么喚醒

我做的是一個鋰電池供電的系統,需要進入sleep的powerdown模式進行節電。 The only interrupts that can wake up the MCU are the Two Wire Interface address match interrupts, and asynchronous port interrupts, e.g pin change. 手冊上 ...…

查看全部問答∨

求交流電壓信號轉換為交流電流信號的具體電路? 謝謝大家

求交流電壓信號轉換為交流電流信號的具體電路?  謝謝大家  就是把一個1kHz交流電壓信號轉換為1kHz 50mA的交流電流信號 如果用運放如何設計呢? …

查看全部問答∨
小廣播
設計資源 培訓 開發板 精華推薦

最新單片機文章
何立民專欄 單片機及嵌入式寶典

北京航空航天大學教授,20余年來致力于單片機與嵌入式系統推廣工作。

 
EEWorld訂閱號

 
EEWorld服務號

 
汽車開發圈

 
機器人開發圈

電子工程世界版權所有 京ICP證060456號 京ICP備10001474號-1 電信業務審批[2006]字第258號函 京公網安備 11010802033920號 Copyright ? 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
主站蜘蛛池模板: 荣昌县| 托克逊县| 洪洞县| 蕲春县| 梁河县| 连城县| 张北县| 工布江达县| 康马县| 明光市| 会昌县| 鄂托克旗| 大邑县| 沧州市| 崇礼县| 五峰| 化德县| 乐清市| 南城县| 社旗县| 宁津县| 威海市| 景德镇市| 大余县| 阳泉市| 喀喇| 沙田区| 康马县| 滕州市| 夏津县| 利川市| 松溪县| 英山县| 丹寨县| 嘉义市| 桦川县| 井冈山市| 景宁| 错那县| 伊通| 法库县|