資源簡介
基于ARM的時鐘顯示程序,年歷顯示,有年份,月份,時分秒和星期。希望有用

代碼片段和文件信息
/****************************************************************************
*?文件名:SENDRTC.C
*?功能:運行RTC進行計時,并將所時間值不斷的通過串口向上位機發送。上位機使用EasyARM
*??????軟件,在仿真的萬年歷顯示器上觀察結果。
*??????通訊波特率115200,8位數據位,1位停止位,無奇偶校驗。
*?說明:
****************************************************************************/
#include??“config.h“??
/*?定義串口模式設置數據結構?*/
typedef??struct??UartMode
{??uint8?datab;?????????//?字長度,5/6/7/8
???uint8?stopb;?????????//?停止位,1/2
???uint8?parity;???? //?奇偶校驗位,0為無校驗,1奇數校驗,2為偶數校驗
}??UARTMODE;
/****************************************************************************
*?名稱:UART0_Ini()
*?功能:初始化串口0。設置其工作模式及波特率。
*?入口參數:baud????????????????波特率
*??????????set??????????模式設置(UARTMODE數據結構)
*?出口參數:返回值為1時表示初始化成功,為0表示參數出錯
****************************************************************************/
uint8??UART0_Ini(uint32?baud?UARTMODE?set)
{??uint32??bak;
???
???/*?參數過濾?*/
???if(?(0==baud)||(baud>115200)?)?return(0);
???if(?(set.datab<5)||(set.datab>8)?)?return(0);
???if(?(0==set.stopb)||(set.stopb>2)?)?return(0);
???if(?set.parity>4?)?return(0);
???/*?設置串口波特率?*/
???U0LCR?=?0x80;????????????????????????//?DLAB位置1
???bak?=?(Fpclk>>4)/baud;
???U0DLM?=?bak>>8;
???U0DLL?=?bak&0xff;
???
???/*?設置串口模式?*/
???bak?=?set.datab-5;???????????????????//?設置字長度
???if(2==set.stopb)?bak?|=?0x04;????????//?判斷是否為2位停止位??
???
???if(0!=set.parity)?{set.parity?=?set.parity-1;?bak?|=?0x08;}
???bak?|=?set.parity<<4;?????????????? //?設置奇偶校驗
??????
???U0LCR?=?bak;
???
???return(1);
}
/****************************************************************************
*?名稱:SendByte()
*?功能:向串口發送字節數據,并等待發送完畢。
*?入口參數:data????????????????要發送的數據
*?出口參數:無
****************************************************************************/
void??SendByte(uint8?data)
{??U0THR?=?data;????????????????????????//?發送數據
???while(?(U0LSR&0x20)==0?);????????????//?等待數據發送
}
/****************************************************************************
*?名稱:PC_DispChar()
*?功能:向PC機發送顯示字符。
*?入口參數:no???????顯示位置?
*??????????chr??????顯示的字符,不能為0xff
*?出口參數:無
****************************************************************************/
void??PC_DispChar(uint8?no?uint8?chr)
{??SendByte(0xff);
???SendByte(0x81);
???SendByte(no);
???SendByte(chr);
???SendByte(0x00);
}
uint8??const?SHOWTABLE[10]?=?{0x3F?0x06?0x5B?0x4F?0x66?0x6D?0x7D?0x07?0x7F?0x6F};
/****************************************************************************
*?名稱:SendTimeRtc()
*?功能:讀取RTC的時間值,并將讀出的時分秒值由串口發送到上位機顯示。
*?入口參數:無
*?出口參數:無
****************************************************************************/
void??SendTimeRtc(void)
{??uint32??datas;
???uint32??times;
???uint32??bak;
????
???times?=?CTIME0; //?讀取完整時鐘寄存器
???datas?=?CTIME1;
???
???bak?=?(datas>>16)&0xFFF;?????//?取得年值
???PC_DispChar(0?SHOWTABLE[bak/1000]);
???bak?=?bak%1000;
???PC_DispChar(1?SHOWTABLE[bak/100]);
???bak?=?bak%100;
???PC_DispChar(2?SHOWTABLE[bak/10]);
??
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件?????249982??2004-08-04?20:10??基于ARM的時鐘顯示程序\disptimer2\disptimer2.mcp
?????文件???????5748??2004-06-11?17:32??基于ARM的時鐘顯示程序\disptimer2\sendrtcb.c
?????文件???????3309??2004-02-02?16:23??基于ARM的時鐘顯示程序\disptimer2\src\config.h
?????文件???????1809??2004-02-02?16:28??基于ARM的時鐘顯示程序\disptimer2\src\heap.s
?????文件???????3104??2004-06-10?09:18??基于ARM的時鐘顯示程序\disptimer2\src\IRQ.s
?????文件??????35407??2004-06-10?13:56??基于ARM的時鐘顯示程序\disptimer2\src\LPC2294.h
?????文件???????1816??2003-12-15?13:55??基于ARM的時鐘顯示程序\disptimer2\src\mem_a.scf
?????文件???????1805??2003-12-15?13:53??基于ARM的時鐘顯示程序\disptimer2\src\mem_b.scf
?????文件???????1809??2003-12-15?13:54??基于ARM的時鐘顯示程序\disptimer2\src\mem_c.scf
?????文件???????1799??2004-02-02?16:29??基于ARM的時鐘顯示程序\disptimer2\src\stack.s
?????文件???????9864??2004-03-27?14:54??基于ARM的時鐘顯示程序\disptimer2\src\Startup.s
?????文件???????5969??2004-02-02?09:06??基于ARM的時鐘顯示程序\disptimer2\src\target.c
?????文件???????3029??2004-02-02?16:35??基于ARM的時鐘顯示程序\disptimer2\src\target.h
?????文件???????3435??2004-08-04?20:10??基于ARM的時鐘顯示程序\disptimer2\disptimer2_Data\CWSettingsWindows.stg
?????目錄??????????0??2008-12-18?21:50??基于ARM的時鐘顯示程序\disptimer2\disptimer2_Data\DebugInExram\ob
?????目錄??????????0??2008-12-18?21:50??基于ARM的時鐘顯示程序\disptimer2\disptimer2_Data\RelOutChip
?????目錄??????????0??2008-12-18?21:50??基于ARM的時鐘顯示程序\disptimer2\disptimer2_Data\RelInChip
?????目錄??????????0??2008-12-18?21:50??基于ARM的時鐘顯示程序\disptimer2\disptimer2_Data\DebugInExram
?????目錄??????????0??2008-12-18?21:50??基于ARM的時鐘顯示程序\disptimer2\disptimer2_Data\DebugInChipFlash
?????目錄??????????0??2008-12-18?21:50??基于ARM的時鐘顯示程序\disptimer2\src
?????目錄??????????0??2008-12-18?21:50??基于ARM的時鐘顯示程序\disptimer2\disptimer2_Data
?????目錄??????????0??2008-12-18?21:50??基于ARM的時鐘顯示程序\disptimer2
?????目錄??????????0??2008-12-18?21:50??基于ARM的時鐘顯示程序
-----------?---------??----------?-----??----
???????????????328885????????????????????23
評論
共有 條評論