亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? main.c.bak

?? 基于UCOS的萬年歷
?? BAK
?? 第 1 頁 / 共 2 頁
字號(hào):
/*
*********************************************************************************************************
			 XX電子實(shí)業(yè)有限公司技術(shù)部
		      版權(quán)所有(c)2006.12.16--2006.12.18
			    http://www.XX.cn

********************************************************************************************************
文件  名:main.C
創(chuàng)建  人:許 文
創(chuàng)建日期:2008.05.29
版    本:萬年歷V01
描   述:
========================================================================================================
修改  人:
修改時(shí)間:
版    本:
描   述:
*********************************************************************************************************
*/

#include "config.h"

#define     BUZZER                  1 << 7               // P0.7控制蜂鳴器,低電平蜂鳴
#define     BUZZER_Set()            PINSEL0 &= (~(INT32U)(1 << 7)), IO0DIR|=(1<<7),IO0CLR|=(1<<7)  // 開蜂鳴器
#define     BUZZER_Clr()            IO0SET|=(1<<7) 

#define TASKKEY_STACK_SIZE    256     		                            /*  TaskKey定義用戶堆棧長(zhǎng)度      */

#define TASKDISP_STACK_SIZE   128     		                            /*  TaskDisp定義用戶堆棧長(zhǎng)度     */   

#define TASKSET_STACK_SIZE    128     		                            /*  TaskSet定義用戶堆棧長(zhǎng)度      */ 

static OS_EVENT  		*KeyBox; 
static OS_EVENT  		*RtcBox; 

OS_STK  TASKKEY_STACK[TASKKEY_STACK_SIZE];
OS_STK  TASKDISP_STACK[TASKDISP_STACK_SIZE];
OS_STK  TASKSET_STACK[TASKSET_STACK_SIZE];

#define     KEY1    1 << 16                                             /*  P0.16為KEY1輸入腳             */
#define     KEY2    1 << 17						/*  P0.17為KEY2輸入腳             */
#define     KEY3    1 << 18						/*  P0.18為KEY3輸入腳             */
#define     KEY4    1 << 19						/*  P0.19為KEY3輸入腳             */
uint8 const SHOWTABLE[10] = {0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
void TaskKey(void *pdata);
void TaskDisp(void *pdata);
void TaskSet(void *pdata);

/*
*********************************************************************************************************
* Function name:      rtcException
* Descriptions:       RTC的中斷服務(wù)函數(shù)
* Input parameters:   無
* Output parameters:  無			    
*********************************************************************************************************
*/
void rtcException(void)
{
    static INT32U time[2];
    ILR |= 0x01;							/*  清除RTC增量中斷標(biāo)志          */
    time[0] = CTIME0; 
    time[1] = CTIME1;
    OSMboxPost(RtcBox,(void*)time);
    VICVectAddr = 0;                                 	                /*  通知中斷控制器中斷結(jié)束       */

}

/*
*********************************************************************************************************
* Function name:     gpioInit
* Descriptions:      GPIO的初始化
* Input parameters:  無
* Output:            無 
*********************************************************************************************************
*/
void gpioInit(void)
{
     PINSEL0 &= (~(uint32)(1 << 7));
     IO0DIR|=(1<<7);
     IO0SET|=(1<<7);
}

/*
*******************************************************************************************************
* Function name:     rtcInit
* Descriptions:      按照默認(rèn)值初始化實(shí)時(shí)時(shí)鐘.RTC被初始化為時(shí)鐘源選擇Fpclk,秒值增加一次后產(chǎn)生中斷.
* Input parameters:  time:初始化時(shí)間指針
* Output:            無
*******************************************************************************************************
*/
void rtcInit(uint16 *time)
{
    PREINT = Fpclk / 32768 - 1;	// 設(shè)置基準(zhǔn)時(shí)鐘分頻器
    PREFRAC = Fpclk - (Fpclk / 32768) * 32768;
	
    CCR   = 0x00;	// 禁止時(shí)間計(jì)數(shù)器
	
    YEAR 	= time[0];							                        /*  初始化時(shí)間寄存器             */
    MONTH	= time[1];
    DOM 	= time[2];
    DOW 	= time[3];
    HOUR	= time[4];
    MIN 	= time[5];
    SEC		= time[6];
    
    CIIR = 0x01;				    // 設(shè)置秒值的增量產(chǎn)生一次中斷
    ILR = 0x03;						// 清除RTC增量和報(bào)警中斷標(biāo)志
    CCR = 0x01;				        // 啟動(dòng)RTC
    
    VICVectAddr0 = (INT32U)rtcException;	// 設(shè)置中斷服務(wù)程序地址
    VICIntEnable = (1 << 13);		// 使能RTC中斷
}


/*********************************************************************************************************
** Function name:     keyIn
** Descriptions:      查詢按鍵的輸入
** Input parameters:  無
** Returned value:    有效鍵按下時(shí),返回對(duì)應(yīng)的鍵值,否則返回0;			    
********************************************************************************************************/
INT32U keyIn(void)
{ 
    INT32U i,uiKey;
    uiKey = KEY1;
    for (i=1;i<5;i++) {
        if ((uiKey&IO0PIN) == 0) {
            break;
        } else {
            uiKey<<=1;
        }
    }
	
    if (i >=5 ) {
    uiKey = 0;
    }
    return uiKey;
}

/*******************************************************************************************
** Function name:      timeDisp
** Descriptions:       將RTC的數(shù)據(jù)發(fā)送到PC機(jī)上顯示
** Input parameters:   uiTimes  RTC的CTIME0的值
                       uiDates  RTC的CTIME1的值
** Output parameters:  無 
*******************************************************************************************/
void timeDisp(INT32U uiTimes,INT32U uiDates)
{   
    INT32U uiTimedata;
   
    uiTimedata = (uiDates >> 16) & 0xfff;	                            /*  發(fā)送年                       */
    pcDispChar(0, SHOWTABLE[uiTimedata / 1000]);
    uiTimedata = uiTimedata % 1000;
    pcDispChar(1, SHOWTABLE[uiTimedata / 100]);
    uiTimedata = uiTimedata % 100;
    pcDispChar(2, SHOWTABLE[uiTimedata / 10]);
    pcDispChar(3, SHOWTABLE[uiTimedata % 10]);
	
    uiTimedata = (uiDates >> 8) & 0x0f;		                            /*  發(fā)送月                       */
    pcDispChar(4, SHOWTABLE[uiTimedata / 10]);
    pcDispChar(5, SHOWTABLE[uiTimedata % 10]);
	
    uiTimedata = uiDates & 0x1f;				                        /*  發(fā)送日                       */
    pcDispChar(6, SHOWTABLE[uiTimedata / 10]);
    pcDispChar(7, SHOWTABLE[uiTimedata % 10]);
	
    uiTimedata = (uiTimes >> 24) & 0x07;		                        /*  發(fā)送星期                     */
    pcDispChar(8, SHOWTABLE[uiTimedata]);
		
    uiTimedata = (uiTimes >> 16) & 0x1f;		                        /*  發(fā)送小時(shí)                     */
    pcDispChar(9, SHOWTABLE[uiTimedata / 10]);
    pcDispChar(10, SHOWTABLE[uiTimedata % 10]);
	
    uiTimedata = (uiTimes >> 8) & 0x3f;		                            /*  發(fā)送分鐘                     */
    pcDispChar(11, SHOWTABLE[uiTimedata / 10]);
    pcDispChar(12, SHOWTABLE[uiTimedata % 10]);
	
    uiTimedata = uiTimes & 0x3f;				                        /*  發(fā)送秒鐘                     */
    pcDispChar(13, SHOWTABLE[uiTimedata / 10]);
    pcDispChar(14, SHOWTABLE[uiTimedata % 10]);
}

/*******************************************************************************************
** Function name:      timeGet
** Descriptions:       根據(jù)輸入的編號(hào),獲得對(duì)應(yīng)編號(hào)的數(shù)據(jù)位的值。
** Input parameters:  n  PC的萬年歷窗口中時(shí)間數(shù)據(jù)位對(duì)應(yīng)的編號(hào)。
** Output parameters: 無
** Returned value:     輸入編號(hào)對(duì)應(yīng)的時(shí)間數(shù)據(jù)位的值
*******************************************************************************************/
INT32U timeGet(INT32U n)
{	
    INT32U uiTimedata,uiTimes,uiDates;
    uiTimes = (INT32U)CTIME0;					                        /*  讀取完整的時(shí)鐘寄存器         */
    uiDates = (INT32U)CTIME1;
    switch(n) {
    case 0:
        uiTimedata = (uiDates >> 16) & 0xfff;	                        /*  獲取年的千位數(shù)據(jù)             */
        uiTimedata = uiTimedata / 1000;
        break;
    case 1:
        uiTimedata = (uiDates >> 16) & 0xfff;	                        /*  獲取年的百位數(shù)據(jù)             */
        uiTimedata = uiTimedata % 1000;
        uiTimedata = uiTimedata / 100;
        break;
    case 2:                                                             /*  獲取年的十位數(shù)據(jù)             */
        uiTimedata = (uiDates >> 16) & 0xfff;
        uiTimedata = uiTimedata % 100;
        uiTimedata = uiTimedata / 10;
        break;
    case 3:                                                             /*  獲取年的個(gè)位數(shù)據(jù)             */
        uiTimedata = (uiDates >> 16) & 0xfff;
        uiTimedata = uiTimedata % 10;
        break;
	case 4:
        uiTimedata = (uiDates >> 8) & 0x0f;		                        /*  獲取月的十位數(shù)據(jù)             */ 
        uiTimedata = uiTimedata / 10;
        break;
	case 5:
        uiTimedata = (uiDates >> 8) & 0x0f;		                        /*  獲取月的個(gè)位數(shù)據(jù)             */
        uiTimedata = uiTimedata % 10;
        break;
    case 6:
        uiTimedata = uiDates & 0x1f;				                    /*  獲取日的十位數(shù)據(jù)             */
        uiTimedata = uiTimedata / 10;
        break;
    case 7:
        uiTimedata = uiDates & 0x1f;				                    /*  獲取日的個(gè)位數(shù)據(jù)             */
        uiTimedata = uiTimedata % 10;
        break;
    case 8:
        uiTimedata = (uiTimes >> 24) & 0x07;		                    /*  獲取星期數(shù)                   */
        break;
    case 9:
        uiTimedata = (uiTimes >> 16) & 0x1f;		                    /*  獲取小時(shí)的十位數(shù)據(jù)           */
        uiTimedata = uiTimedata / 10;
        break;
    case 10:
        uiTimedata = (uiTimes >> 16) & 0x1f;		                    /*  獲取小時(shí)的個(gè)位數(shù)據(jù)           */  
        uiTimedata = uiTimedata % 10;
        break;
    case 11:
        uiTimedata = (uiTimes >> 8) & 0x3f;		                        /*  獲取分鐘的十位數(shù)據(jù)           */
        uiTimedata = uiTimedata / 10;
        break;
    case 12:
        uiTimedata = (uiTimes >> 8) & 0x3f;		                        /*  獲取分鐘的個(gè)位數(shù)據(jù)           */
        uiTimedata = uiTimedata % 10;
        break;
    case 13:
        uiTimedata = uiTimes & 0x3f;				                    /*  獲取秒鐘的十位數(shù)據(jù)           */
        uiTimedata = uiTimedata / 10;
        break;
    case 14:
        uiTimedata = uiTimes & 0x3f;				                    /*  獲取秒鐘的個(gè)位數(shù)據(jù)           */
        uiTimedata = uiTimedata % 10;
        break;
    }
    return uiTimedata;
}

/*******************************************************************************************
** Function name:      timeSet
** Descriptions:       根據(jù)輸入的編號(hào),設(shè)置對(duì)應(yīng)編號(hào)的時(shí)間數(shù)據(jù)位的值。
** Input parameters:  n  PC的萬年歷窗口中時(shí)間數(shù)據(jù)位對(duì)應(yīng)的編號(hào)。
                       uiTimedata  對(duì)應(yīng)的數(shù)據(jù)位變化的值,如:+1,-1 
** Output parameters: 無
** Returned value:     無
*******************************************************************************************/
void timeSet(INT32U n,INT32S uiTimedata)
{
    switch(n) {
    case 0:                                                             /*  設(shè)置年的千位數(shù)據(jù)             */
        YEAR += (INT32S)(uiTimedata*1000);
        break;
    case 1:
        YEAR += (INT32S)(uiTimedata*100);
        break;
    case 2:
        YEAR += (INT32S)(uiTimedata*10);
        break;
    case 3:
        YEAR += uiTimedata;
        break;
    case 4:
        MONTH += (INT32S)(uiTimedata*10);		                        /*  設(shè)置月                      */  
        break;
    case 5:
        if ((MONTH == 12) && (uiTimedata == 1)) {
            MONTH = 1;
        } else if ((MONTH ==1) && (uiTimedata ==-1)) {
            MONTH = 12;

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩一区二区三区视频| 久久99久久久久| 国产精品一区三区| 国产乱码精品一区二区三区av| 欧美日本不卡视频| 亚洲一区二区黄色| 欧美色男人天堂| 精品乱人伦一区二区三区| 美女视频第一区二区三区免费观看网站| 欧美艳星brazzers| 国产精品久久久久久久久免费相片| 国产成人鲁色资源国产91色综| 久久久99久久| 91在线观看污| 一区二区高清视频在线观看| 成人福利视频在线| 亚洲视频免费在线观看| 在线观看视频一区二区欧美日韩| 一区二区三区四区蜜桃| 欧美综合一区二区三区| 亚洲综合久久久| 91久久精品一区二区三区| 亚洲一二三四在线观看| 91.xcao| 久久99久久精品| 国产欧美日韩卡一| 国产色产综合产在线视频| 一级女性全黄久久生活片免费| 欧美老肥妇做.爰bbww视频| 日韩av中文在线观看| 欧美激情一区二区三区四区| 欧美亚洲自拍偷拍| 久久99精品久久久久久| 亚洲欧美激情在线| 26uuu欧美| 欧美色网一区二区| 国产成人自拍高清视频在线免费播放| 亚洲男人的天堂在线观看| 日韩免费性生活视频播放| 成人av综合在线| 久久精品国产澳门| 又紧又大又爽精品一区二区| 国产午夜精品美女毛片视频| 3d动漫精品啪啪1区2区免费| fc2成人免费人成在线观看播放| 日韩成人伦理电影在线观看| 亚洲精品成人悠悠色影视| 久久久青草青青国产亚洲免观| 欧美美女喷水视频| 91麻豆视频网站| 成人免费福利片| 久久91精品国产91久久小草| 一区二区三区高清| 国产精品短视频| 久久精品这里都是精品| 日韩欧美国产1| 欧美日韩一卡二卡三卡 | 精品国产伦一区二区三区观看体验| av成人老司机| 成人性生交大片免费看中文网站| 六月丁香综合在线视频| 天天综合天天做天天综合| 洋洋av久久久久久久一区| 国产精品视频第一区| 国产婷婷色一区二区三区四区| 日韩欧美三级在线| 日韩视频免费观看高清完整版 | 成人动漫中文字幕| 国产精品一区在线观看乱码| 九九视频精品免费| 激情综合网最新| 精品一区二区综合| 久久国产乱子精品免费女| 美女性感视频久久| 蜜臀av一级做a爰片久久| 日韩精品亚洲一区二区三区免费| 亚洲男人的天堂一区二区| 国产精品理伦片| 中文字幕一区av| 亚洲老妇xxxxxx| 亚洲国产日韩一区二区| 亚洲一线二线三线视频| 亚洲成人一二三| 日日摸夜夜添夜夜添精品视频| 亚洲高清免费观看| 日韩专区一卡二卡| 免费国产亚洲视频| 国产精品一区专区| av亚洲产国偷v产偷v自拍| 91老师片黄在线观看| 欧美在线|欧美| 91精品国产综合久久久久久| 欧美一级日韩免费不卡| 精品国产乱子伦一区| 欧美激情一区二区在线| 亚洲天堂av老司机| 亚洲一二三四在线观看| 看片网站欧美日韩| 成人av先锋影音| 欧美在线观看一二区| 日韩欧美www| 中文成人av在线| 亚洲欧美福利一区二区| 日韩影院精彩在线| 国产大陆a不卡| 在线观看日韩高清av| 欧美一区二区三区四区五区| 国产视频911| 亚洲国产日韩在线一区模特 | 久久精品夜色噜噜亚洲aⅴ| 国产精品每日更新| 日韩影院精彩在线| av影院午夜一区| 欧美精品v国产精品v日韩精品 | 日本aⅴ亚洲精品中文乱码| 国产乱妇无码大片在线观看| 日本国产一区二区| 2023国产精品视频| 一区二区三区成人| 国产主播一区二区三区| 91成人在线免费观看| 日韩精品一区在线观看| 亚洲精品国产成人久久av盗摄| 九九国产精品视频| 欧美午夜在线观看| 国产精品无人区| 美国一区二区三区在线播放| 91色porny在线视频| 久久久久久久精| 亚洲超碰精品一区二区| aaa国产一区| 久久一区二区三区四区| 午夜精品福利久久久| 91亚洲国产成人精品一区二区三 | 国产精品国产精品国产专区不片| 免费亚洲电影在线| 在线欧美小视频| 欧美国产精品一区二区| 久久精品99久久久| 欧美日韩成人综合在线一区二区 | 精品国产乱码久久久久久久| 亚洲自拍偷拍九九九| 成人激情午夜影院| 久久综合色婷婷| 老汉av免费一区二区三区| 欧美日韩色综合| 亚洲欧美一区二区三区极速播放| 国产一区二区三区久久久| 日韩一级在线观看| 视频在线观看一区| 欧美体内she精视频| 一区二区三区欧美日韩| 97aⅴ精品视频一二三区| 欧美高清在线精品一区| 国产成人av在线影院| 久久精品亚洲乱码伦伦中文| 久久av中文字幕片| 欧美成人一级视频| 日本vs亚洲vs韩国一区三区| 欧美精品乱码久久久久久按摩| 亚洲最新视频在线观看| 在线视频你懂得一区二区三区| 亚洲欧美怡红院| 一本久久综合亚洲鲁鲁五月天 | 麻豆精品国产传媒mv男同| 51精品国自产在线| 日韩av网站在线观看| 欧美欧美午夜aⅴ在线观看| 亚洲成人精品影院| 欧美片网站yy| 奇米精品一区二区三区在线观看| 91精品国产色综合久久不卡电影 | 亚洲一区二区欧美激情| 日本大香伊一区二区三区| 一区二区三区欧美日韩| 欧美日韩国产高清一区二区三区| 亚洲v日本v欧美v久久精品| 777a∨成人精品桃花网| 日本成人在线不卡视频| 欧美岛国在线观看| 国产不卡视频在线观看| 亚洲国产高清在线观看视频| 99久久精品免费看国产| 亚洲人成网站精品片在线观看| 一本色道a无线码一区v| 蜜臀av性久久久久蜜臀aⅴ| 亚洲成a人v欧美综合天堂下载| 成人动漫一区二区| 日韩欧美一区二区不卡| 九色porny丨国产精品| 国产日韩欧美不卡| 一本一道久久a久久精品综合蜜臀| 亚洲国产成人精品视频| 欧美变态tickling挠脚心| 成人福利在线看| 三级久久三级久久| 国产欧美日韩不卡| 欧美网站大全在线观看| 久久成人综合网| 亚洲欧美激情在线|