當(dāng)前位置:首頁(yè) > 單片機(jī) > 單片機(jī)
[導(dǎo)讀] //該源程序已在實(shí)驗(yàn)板上調(diào)試通過(guò),讀者可直接引用,并可利用軟件編程的靈活性,加以拓展,實(shí)現(xiàn)更為復(fù)雜的功能。//此程序?qū)崿F(xiàn)計(jì)時(shí)秒表功能,時(shí)鐘顯示范圍00.00~99.99秒,分辨度:0.01秒//定義0.01 秒、0

//該源程序已在實(shí)驗(yàn)板上調(diào)試通過(guò),讀者可直接引用,并可利用軟件編程的靈活性,加以拓展,實(shí)現(xiàn)更為復(fù)雜的功能。

//此程序?qū)崿F(xiàn)計(jì)時(shí)秒表功能,時(shí)鐘顯示范圍00.00~99.99秒,分辨度:0.01秒

//定義0.01 秒、0.1 秒、1秒、10秒計(jì)時(shí)器
#include
#include
unsigned chars0,s1,s2,s3;

unsigned char s[4];
unsigned char k ,data ,sreg;
unsigned inti;
consttable[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0XD8,0x80,0x90};
//不帶小數(shù)點(diǎn)的顯示段碼表
consttable0[10]={0X40,0X79,0X24,0X30,0X19,0X12,0X02,0X78,0X00,0X10};
//帶小數(shù)點(diǎn)的顯示段碼表
//TMR0初始化子程序
voidtmint()
{
T0CS=0;//TMR0工作于定時(shí)器方式
PSA=1;//TMR0不用分頻
T0IF=0;//清除TMR0的中斷標(biāo)志
T0IE=1;//TMR0中斷允許
}
//spi顯示初始化子程序
voidSPIINIT()
{
PIR1=0;
SSPCON=0x30;
SSPSTAT=0xC0;
//設(shè)置SPI的控制方式,允許SSP方式,并且時(shí)鐘下降沿發(fā)送。與"74HC595,當(dāng)其
//SCLK從低到高跳變時(shí),串行輸入寄存器"的特點(diǎn)相對(duì)應(yīng)
TRISC=0xD7;//SDO引腳為輸出,SCK引腳為輸出
TRISA5=0;//RA5引腳置為輸出,輸出顯示鎖存信號(hào)
}
//系統(tǒng)其它部分初始化子程序
voidinitial()
{
TRISB1=0;
TRISB2=0;
TRISB4=1;
TRISB5=1;//設(shè)置與鍵盤(pán)有關(guān)的各口的輸入輸出方式
RB1=0;
RB2=0;//建立鍵盤(pán)掃描的初始條件
}
//SPI傳輸數(shù)據(jù)子程序
void SPILED(data)
{
SSPBUF=data;//啟動(dòng)發(fā)送
do{
;
}while(SSPIF==0);
SSPIF=0;
}
//顯示子程序,顯示4位數(shù)
voiddispaly()
{
RA5=0;//準(zhǔn)備鎖存
for(k=4;k>0;k--)
{
data=s[k-1];
if(k==3)data=table0[data];//第二位需要顯示小數(shù)點(diǎn)
elsedata=table[data];
SPILED(data);//發(fā)送顯示段碼
}
for(k=0;k<4;k++)
{
data=0xFF;
SPILED(data);//連續(xù)發(fā)送4個(gè)DARK,使顯示好看一些
}
RA5=1;//最后給鎖存信號(hào),代表顯示任務(wù)完成
}
//軟件延時(shí)子程序
void DELAY()
{
for(i = 3553; --i ;)continue;
}
//鍵掃描子程序
voidKEYSCAN()
{
while(1){
while(1)
{
dispaly();//調(diào)用一次顯示子程序
if ((RB5==0)||(RB4==0))break;
}
DELAY();//若有鍵按下,則軟件延時(shí)
if ((RB5==0)||(RB4==0))break;//若還有鍵按下,則終止循環(huán)掃描,返回
}
}
//等鍵松開(kāi)子程序
voidkeyrelax()
{
while(1){
dispaly();//調(diào)用一次顯示子程序
if ((RB5==1)&&(RB4==1))break;
}//為防止按鍵過(guò)于靈敏,每次等鍵松開(kāi)才返回
}
//系統(tǒng)賦值初始化子程序
voidinizhi()
{
s0=0x00;
s[0]=s0;
s1=0x00;
s[1]=s1;
s2=0x00;
s[2]=s2;
s3=0x00;
s[3]=s3;//s0=s1=s2=s3=0,并放入顯示緩沖數(shù)組中
sreg=0x00;//tmr0中斷次數(shù)寄存器清0
}
//中斷服務(wù)程序
voidinterruptclkint(void)
{
TMR0=0X13;//對(duì)TMR0寫(xiě)入一個(gè)調(diào)整值。因?yàn)閷?xiě)入TMR0后接著的
//兩個(gè)周期不能增量,中斷需要3個(gè)周期的響應(yīng)時(shí)間,
//以及C語(yǔ)言自動(dòng)進(jìn)行現(xiàn)場(chǎng)保護(hù)要消耗周期
T0IF=0;//清除中斷標(biāo)志
CLRWDT();
sreg=sreg+1;//中斷計(jì)數(shù)器加1
if(sreg==40)//中斷次數(shù)為40后,才對(duì)S0,S1,S2,S3 操作
{
sreg=0;
s0=s0+1;
if(s0==10){
s0=0;
s1=s1+1;
if(s1==10){
s1=0;
s2=s2+1;
if(s2==10){
s2=0;
s3=s3+1;
if(s3==10)s3=0;
}
}
}
}
s[0]=s0;
s[1]=s1;
s[2]=s2;
s[3]=s3;
}
//主程序
main()
{
OPTION=0XFF;
tmint();//TMR0初始化
SPIINIT();//spi顯示初始化
initial();//系統(tǒng)其它部分初始化
di();//總中斷禁止
while(1){
inizhi();//系統(tǒng)賦值初始化
KEYSCAN();//鍵掃描,直到開(kāi)始鍵按下
keyrelax();//等鍵松開(kāi)
ei();//總中斷允許
TMR0=0X08;
KEYSCAN();//鍵掃描直到停止鍵按下,在鍵掃描時(shí)有顯示
keyrelax();//等鍵松開(kāi)
di();//總中斷禁止
KEYSCAN();//鍵掃描到清0鍵按下,在鍵掃描時(shí)有顯示
keyrelax();//等鍵松開(kāi)
}
}


本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀(guān)點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專(zhuān)欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車(chē)的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

倫敦2024年8月29日 /美通社/ -- 英國(guó)汽車(chē)技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車(chē)工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車(chē)。 SODA V工具的開(kāi)發(fā)耗時(shí)1.5...

關(guān)鍵字: 汽車(chē) 人工智能 智能驅(qū)動(dòng) BSP

北京2024年8月28日 /美通社/ -- 越來(lái)越多用戶(hù)希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來(lái)越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對(duì)日本游戲市場(chǎng)的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)開(kāi)幕式在貴陽(yáng)舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱(chēng),數(shù)字世界的話(huà)語(yǔ)權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對(duì)環(huán)境變化,經(jīng)營(yíng)業(yè)績(jī)穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤(rùn)率延續(xù)升勢(shì) 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長(zhǎng) 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競(jìng)爭(zhēng)力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競(jìng)爭(zhēng)優(yōu)勢(shì)...

關(guān)鍵字: 通信 BSP 電信運(yùn)營(yíng)商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺(tái)與中國(guó)電影電視技術(shù)學(xué)會(huì)聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會(huì)上宣布正式成立。 活動(dòng)現(xiàn)場(chǎng) NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長(zhǎng)三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會(huì)上,軟通動(dòng)力信息技術(shù)(集團(tuán))股份有限公司(以下簡(jiǎn)稱(chēng)"軟通動(dòng)力")與長(zhǎng)三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉