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

歷史上的今天

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

正在發生

2019年11月26日 | 單片機00到99秒表的課程設計

發布者:溫暖微笑 來源: 51hei關鍵字:單片機  秒表  復位功能 手機看文章 掃描二維碼
隨時隨地手機看文章

這是我上個月做的單片機秒表課程設計,這個課程設計是實現00到99秒的一個秒表,
并且有開始和復位功能,
用了一個星期的時間,
附件里面包含秒表的單片機源程序,proteus仿真電路圖和課設文檔,
都是自己做的,請大家多多指教。
仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)
 

秒表的設計與仿真


一、設計要求

設計一個2位的LED數碼顯示的“秒表”:顯示時間為00—99秒,每秒自動加1,另設計一個“開始”鍵和一個“復位”鍵。

二、方案論證

方案一:

數字電路來實現秒表的設計。由NE555定時器組成的多諧振蕩器通過開關控制,把脈沖送到計數器,通過計數器計數,在送入譯碼器進行譯碼,最后送入數碼管進行顯示。框圖如下:


(見附件)

優點:用到了之前學習的數電的相關知識,用NE555等一系列芯片就可以實現秒表的數字電路,顯示直觀,讀取方便,精度高,不需要軟件編程。

缺點:使用的硬件非常多,使用的空間非常大,電路十分復雜,從經濟上也不是很劃算。

方案二:

用單片機控制秒表來實現,采用AT89C51單片機為中心器件,利用其定時器/計數器定時和記數的原理,結合硬件電路如電源電路,晶振電路,復位電路,顯示電路,以及一些按鍵電路等來設計計時器,將軟件和硬件結合起來。其中軟件部分采用的是C語言編寫程序,包含了顯示程序,中斷,延時程序等等,硬件用的Proteus軟件來連接的秒表電路,主要使用了AT80C51芯片,晶振,電容等基本器件。框圖如下:(見附件)


優點:利用了單片機的定時功能,只需要少量的連線再加上軟件編程控制,就可以實現秒表的設計電路,節省了花費,提高了技術的精度,更加容易修改。

缺點:除了連接硬件電路,增加了軟件的編程,需要額外掌握軟件的編程技術,還要考慮到硬件的連接來進行編程。

通過上面兩種方案的比較,可以發現單片機使用的硬件更加少,計時的精度也很高,節省了很大的空間,修改時只需要修改部分程序和部分接線就可以改變計數方式和技術范圍,所以這次的秒表的設計應該選擇單片機設計的方案二。

三、理論設計

硬件部分

1.按鍵電路:

1.1 當按下K1鍵時給P1.6接口一個低電平,單片機工作,數碼管開始顯示,進行開始功能。

1.2 當按下K2鍵時給P1.7接口一個低電平,單片機工作,數碼管清零,進行復位功能。

2.復位電路:

2.1按鍵按下給單片機的RST接口一個高電平,讓單片機系統復位。

3.晶振電路:

3.1晶振電路為單片機合格的時鐘信號流,給整個電路的時序提供一個基本時鐘,這里晶振頻率為11.0592MHz。


4.顯示電路:

4.1采用兩個共陽LED數碼管,通過單片機的P0接口和P3接口來驅動顯示出秒數的個位和十位。

軟件部分

  •    軟件流程圖如下:

(見附件)

四、電路仿真及仿真結果分析

仿真結果:將Keil生成的。hex文件添加到AT80C51中后,運行仿真電路如圖所示,會顯示出00到99s的秒表功能,系統可以正常工作。

五、心得體會

通過這次課程設計,認識到自己有很多不足之處,需要根據課程的設計要求找到合適的方案,設計好程序流程圖,以此來寫出相應的程序,還地添加一些額外程序來試系統變得更加穩定,程序應該由各種子程序組成,并加上注釋,這樣程序出錯時或者仿真運行顯示不出正確的結果時,可以更加方便的找到出錯的地方。這次的秒表設計,仿真硬件電路不是很麻煩,主要都是需要寫出適合的正確的程序來進行驅動,通過這次的課程設計,更加系統的鍛煉了自己。


單片機源程序:

#include

typedef unsigned char uint8;

typedef unsigned int  uint16;

/*七段共陰管顯示定義*/ 

uint8 code dispcode[ ]={0x40,0x79,0x24,0x30,0x19,0x12,0x02,0x78,0x00,0x10};

/*定義并初始化變量*/

uint8 seconde=0;// second 調整定義

uint16  mstcnt=0;//minite調整定義

sbit key1=P1^6;        //定義P1.6端口為按鍵1

sbit key2=P1^7;//定義p1.7端口為按鍵2

/*函數聲明*/

void delay(uint8 k ); //延時子程序

void time_pro( ); //時間處理子程序

void display( ); //顯示子程序

void keyscan( ); //鍵盤掃描子程序

/*延時子程序*/

void delay (uint8 k)

{

uint8 j;

while((k--)!=0)

{

for(j=0;j<125;j++)

{;}

}

/*時間處理子程序*/

void time_pro(void)

if(seconde==99)//秒鐘設為99進制

{

seconde=0;

}

}

/* 顯示子程序*/

void display(void)

{

P0=dispcode[seconde/10]; //顯示秒的十位

delay(4);

P3=dispcode[seconde%10]; //顯示秒的個位

delay(4);

}

/*鍵盤掃描子程序*/

void keyscan (void)

if(key1==0) //按鍵1為開始鍵

delay(60);

if(key1==0)

EA=1;

delay(60);

seconde++;

}

if(seconde==99)

{seconde=0;

}

if(key2==0) //按鍵2為復位鍵

delay(60);

if(key2==0)

{      

delay(60);

seconde=0;

delay(60);

EA=0;

}

}

}

/*1s定時子程序 */

void timer0(void) interrupt 1 using 0

{

TH0=0xff;

TL0=0x19;

TMOD = 0x01;//定時器0方式1,250us中斷一次

mstcnt++;

if(mstcnt==4000)

{

seconde++;

mstcnt=0; //對計數單元的清零

}

/*主函數*/

void main(void)

{     

P0=0xff; //初始化p0口,全設為1使數碼管

TMOD = 0x01; //time0為定時器,方式1

TH0=0xff; //預置計數初值

TL0=0x19;

EA=0; 

ET0=1; 

TR0=1; 

while (1)

{

keyscan( ); //按鍵掃描

time_pro( ); //時間處理

display( ); //顯示時間

}

}



關鍵字:單片機  秒表  復位功能 引用地址:單片機00到99秒表的課程設計

上一篇:51單片機控制LCD12864顯示漢字
下一篇:基于單片機的ADC0809數字電壓表設計報告(匯編語言)

推薦閱讀

看著飄落(對,不是飄揚)的頭發,瞅瞅那锃亮的腦門,不禁要感慨一句:我要禿了!據數據統計,全球大概12億的人有著脫發禿頭的煩惱,其中男性占了大部分的比例。這么龐大的人群,為美容醫學上的頭發的移植和修復手術的發展提供了巨大的推動力。就在前不久,Restoration Robotic與KUKA合作推出了一款搭載ARTASiX的LBR Med機器人,這款機器人在機器人頭發...
污水流量計所依據的基本理論是法拉第電磁感應定律。當導體切割磁力線運動時,導體內將產生感應電動勢。污水流量計功能說明:1、該流量計性能可靠,精度高,功耗低,零點穩定,參數設定穩定2、雙向測量系統,廢水流量計的內部具有三個積算器可分別顯示正向累計量、反向累計量及差值積算量3、獨特的防雷設計,輸入輸出端口均設有安全防雷保護4、斷電后數據長...
汽車電路的某些基礎元件總會有損壞的時候,那么我們應該怎樣對他們進行檢查,本文列舉了汽車電路的七個地方的檢測法,一起來看看吧!  1.熔斷絲及相關電路的檢查方法  熔斷絲本身可用目視或萬用表電阻檔進行檢查,測量其是否導通,如果熔斷絲燒毀,用萬用表測量時,其電阻為無窮大。熔絲燒毀后,應找出熔絲燒毀的原因,并對線路進行測量。測量時,可用...
不考慮EL2和EL3,IRQ處理分兩種情況:用戶態發生的中斷和內核態發生的中斷,相應的中斷處理接口分別為:el1_irqel0_irq以內核態el1發生的irq為例:358 .align 6359 el1_irq:360 kernel_entry 1 //壓棧,保存上下文;361 enable_dbg362 #ifdef CONFIG_TRACE_IRQFLAGS363 bl trace_hardirqs_off364 #endif365 366 ...

史海拾趣

問答坊 | AI 解惑

IT行業人才前景無可限量

隨著市場經濟的高速發展,中國IT業步入了一個人才稀缺的時代。作為最被看好的熱門專業,其迅猛發展有目共睹,從而導致IT人才的培養速度無法跟上IT行業的發展,每年的人才缺口就達數百萬人。為了在激烈的就業競爭中占領一席之地,減小就業壓力, ...…

查看全部問答∨

wince串口問題。系統忙數據就出錯

wince下串口問題,平時數據傳輸正常,但鼠標反復點擊移動有時就會使串口數據錯誤,或者是界面切換時。我感覺是系統忙了有時會影響串口讀取。波特率的57600,不算很高吧?緩沖區我也設置的很大了。數據沒有丟失,只是出現錯誤。例如我發送端發的全是 ...…

查看全部問答∨

請問EVC的這些錯誤是什么愿意

我在編譯、鏈接EVC程序時出現如下錯誤,不知如何解決,請高手指點,謝謝! (1)error C2011: \'_CPs_FileInfo\' : \'struct\' type redefinition (2)error C2440: \'=\' : cannot convert from \'void (__cdecl *)(struct _CPs_CoDecModule *) ...…

查看全部問答∨

usb驅動,應用程序能夠打開設備,但是發送數據的時候堵在了SubmitUrb

        是什么原因使得發送數據阻塞啊? PURB pUrb = m_Endpoint2OUT.BuildBulkTransfer(                                   &nbs ...…

查看全部問答∨

簡談 TI Stellaris M3為啥不"火"?

前些天有朋友和我討論,"感覺TI的M3在網上討論的不多",下面是我的一些看法: 原來luminary平臺比較小,所以當年zlg想把它推廣起來,難度肯定是相當大的,這里面不只是技術問題,還涉及到渠道、產能、服務、信任、品牌等諸多因素,而在這方面l ...…

查看全部問答∨

這個程序哪錯了?

我承認我很菜,但很無奈 void Send(char val) { U1TXBUF=val;//寫數據 while(!(IFG2&UTXIFG1));//等待發送完畢 P1OUT^=0x03; } char Get_Char() { while(!(IFG2&URXIFG1));//等待數據接收 return U1RXBUF; } void Init_Sys ...…

查看全部問答∨

求助

用Basic Timer 定時器讓P2.0口上的LED每秒閃爍一次,其中中斷程序中寫道“P2OUT^=BIT0;  //P2.0取反”,這樣寫的話,執行完中斷后,LED是閃爍一次還是一直亮著呢?(我怎么覺得會一直亮著,因為P2.0一直置高呀,還是說P2.0只是在中斷時間內置 ...…

查看全部問答∨

dsp軟件仿真出現錯誤 請高手幫忙解決一下

Can\'t Run Target CPU: Can\'t write to data memory 0x950, check memory config [-2184] Can\'t Run Target CPU: Can\'t write to data memory 0x951, check memory config [-2184] …

查看全部問答∨

請問STM32F10X_MD和STM32F10X_MD_VL區別

請問STM32F10X_MD_VL和STM32F10X_MD有什么區別啊,網上查了查,有如下說明   cl:互聯型產品,stm32f105/107系列vl:超值型產品,stm32f100系列xl:超高密度產品,stm32f101/103系列ld:低密度產品,FLASH小于64Kmd:中等密度產品,FLASH=64 ...…

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

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

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

 
EEWorld訂閱號

 
EEWorld服務號

 
汽車開發圈

 
機器人開發圈

電子工程世界版權所有 京ICP證060456號 京ICP備10001474號-1 電信業務審批[2006]字第258號函 京公網安備 11010802033920號 Copyright ? 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
主站蜘蛛池模板: 凌海市| 五大连池市| 运城市| 新巴尔虎左旗| 沾化县| 定远县| 甘孜县| 昌平区| 泰来县| 商都县| 横山县| 齐齐哈尔市| 兴宁市| 宁安市| 浦北县| 方山县| 东阳市| 兰考县| 关岭| 龙南县| 边坝县| 如东县| 凯里市| 板桥市| 青铜峡市| 台安县| 桦川县| 明星| 兴国县| 海宁市| 日照市| 霞浦县| 安乡县| 洞口县| 陆丰市| 古田县| 句容市| 当涂县| 缙云县| 平原县| 星子县|