用單片機制作的高精度數顯計數器 單片機C51計數器 要求:編寫一個計數器程序,將T0作為計數器來使用,對外部信號計數,將所計數字顯示在數碼管上。 該部分的硬件電路如圖所示,U1的P0口和P2口的部份引腳構成了6位LED數碼管驅動電路,數碼管采用共陽型,使用PNP型三極管作為片選端的驅動,所有三極管的發射極連在一起,接到正電源端,它們的基極則分別連到P2.0…P2.5,當P2.0…P2.5中某引腳輸是低電平時,三極管導通,給相應的數碼管供電,該位數碼管點亮哪些筆段,則取決于筆段引腳是高或低電平。圖中看出,所有6位數碼管的筆段連在一起,通過限流電阻后接到P0口,因此,哪些筆段亮就取決于P0口的8根線的狀態。 里面包含了:單片機C51計數器、計算器流程圖、工作原理,
上傳時間: 2013-11-16
上傳用戶:myworkpost
TLC2543是TI公司的12位串行模數轉換器,使用開關電容逐次逼近技術完成A/D轉換過程。由于是串行輸入結構,能夠節省51系列單片機I/O資源;且價格適中,分辨率較高,因此在儀器儀表中有較為廣泛的應用。 TLC2543的特點 (1)12位分辯率A/D轉換器; (2)在工作溫度范圍內10μs轉換時間; (3)11個模擬輸入通道; (4)3路內置自測試方式; (5)采樣率為66kbps; (6)線性誤差±1LSBmax; (7)有轉換結束輸出EOC; (8)具有單、雙極性輸出; (9)可編程的MSB或LSB前導; (10)可編程輸出數據長度。 TLC2543的引腳排列及說明 TLC2543有兩種封裝形式:DB、DW或N封裝以及FN封裝,這兩種封裝的引腳排列如圖1,引腳說明見表1 TLC2543電路圖和程序欣賞 #include<reg52.h> #include<intrins.h> #define uchar unsigned char #define uint unsigned int sbit clock=P1^0; sbit d_in=P1^1; sbit d_out=P1^2; sbit _cs=P1^3; uchar a1,b1,c1,d1; float sum,sum1; double sum_final1; double sum_final; uchar duan[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; uchar wei[]={0xf7,0xfb,0xfd,0xfe}; void delay(unsigned char b) //50us { unsigned char a; for(;b>0;b--) for(a=22;a>0;a--); } void display(uchar a,uchar b,uchar c,uchar d) { P0=duan[a]|0x80; P2=wei[0]; delay(5); P2=0xff; P0=duan[b]; P2=wei[1]; delay(5); P2=0xff; P0=duan[c]; P2=wei[2]; delay(5); P2=0xff; P0=duan[d]; P2=wei[3]; delay(5); P2=0xff; } uint read(uchar port) { uchar i,al=0,ah=0; unsigned long ad; clock=0; _cs=0; port<<=4; for(i=0;i<4;i++) { d_in=port&0x80; clock=1; clock=0; port<<=1; } d_in=0; for(i=0;i<8;i++) { clock=1; clock=0; } _cs=1; delay(5); _cs=0; for(i=0;i<4;i++) { clock=1; ah<<=1; if(d_out)ah|=0x01; clock=0; } for(i=0;i<8;i++) { clock=1; al<<=1; if(d_out) al|=0x01; clock=0; } _cs=1; ad=(uint)ah; ad<<=8; ad|=al; return(ad); } void main() { uchar j; sum=0;sum1=0; sum_final=0; sum_final1=0; while(1) { for(j=0;j<128;j++) { sum1+=read(1); display(a1,b1,c1,d1); } sum=sum1/128; sum1=0; sum_final1=(sum/4095)*5; sum_final=sum_final1*1000; a1=(int)sum_final/1000; b1=(int)sum_final%1000/100; c1=(int)sum_final%1000%100/10; d1=(int)sum_final%10; display(a1,b1,c1,d1); } }
上傳時間: 2013-11-19
上傳用戶:shen1230
針對傳統電子血壓計的不足,介紹了一種基于超低功耗單片機的全自動血壓測量系統的設計方案,測量血壓的方法是基于充氣過程的示波法。該測量系統采用MSP430系列超低功耗混合信號處理器作為核心處理器,采用幅度系數算法計算出血壓值和心率值,可以完成自動測量血壓、信息顯示、數據存儲、查看和刪除歷史數據等功能。由于采用了MSP430混合信號處理器,簡化了電路的設計,提高了系統的可靠性和穩定性。實際應用表明,該系統具有操作簡便、測試準確的特點,達到了設計要求
上傳時間: 2013-11-01
上傳用戶:suicone
具備處理外部模擬信號功能是很多電子設備的基本要求。為了將模擬信號轉換為數字信 號,就需要藉助A/D 轉換器。將A/D 功能和MCU 整合在一起,就可減少電路的元件數量和 電路板的空間使用。 HT45F23 微控制器內建6 通道,12 位解析度的A/D 轉換器。在本應用說明中,將介紹如何 使用HT45F23 微控制器的A/D 功能。
上傳時間: 2013-10-27
上傳用戶:nostopper
AN4347-應由S08AC和S08FL系列向S08PT系列轉換(飛思卡爾)英文資料 其目錄如下圖所示:
上傳時間: 2013-10-18
上傳用戶:kernaling
電子發燒友網訊:應廣大電子發燒友網讀者要求,本電子書《C51單片機及C語言知識點必備秘籍》為《單片機關鍵知識點全攻略》單片機系列教程及《單片機C語言知識點全攻略》系列單片機C語言學習教程的全整合篇,供所需學習或收藏的工程師及單片機學生、單片機愛好者下載。 點擊下載《C51單片機及C語言知識點必備秘籍》電子書 單片機對于初學者來說確實很難理解,不少學過單片機的同學或電子愛好者,甚至在畢業時仍舊是一無所獲。基于此,電子發燒友網將整合《單片機關鍵知識點全攻略》,共分為四個系列,以饗讀者,敬請期待!此系列對于業內電子工程師也有收藏和參考價值。 單片機關鍵知識點一覽: 系列一 1:單片機簡敘 2:單片機引腳介紹 3:單片機存儲器結構 4:第一個單片機小程序 5:單片機延時程序分析 6:單片機并行口結構 7:單片機的特殊功能寄存器 系列二 8:單片機尋址方式與指令系統 9:單片機數據傳遞類指令 10:單片機數據傳送類指令 11:單片機算術運算指令 12:單片機邏輯運算類指令 13:單片機邏輯與或異或指令祥解 14:單片機條件轉移指令 系列三 15:單片機位操作指令 16:單片機定時器與計數器 17:單片機定時器/計數器的方式 18:單片機的中斷系統 19:單片機定時器、中斷試驗 20:單片機定時/計數器實驗 21:單片機串行口介紹 系列四 22:單片機串行口通信程序設計 23:LED數碼管靜態顯示接口與編 24:動態掃描顯示接口電路及程序 25:單片機鍵盤接口程序設計 26:單片機矩陣式鍵盤接口技術及 27:關于單片機的一些基本概念 28:實際案例實踐——單片機音樂程序設計 繼《單片機學習知識點全攻略》得到廣大讀者好評,根據有網友提出美中不足的是所用單片機編程語言為匯編,基于此,電子發燒友網再接再厲再次為讀者誠摯奉上非常詳盡的《單片機C語言知識點全攻略》系列單片機C語言學習教程,本教程共分為四部分,主要知識點如下所示。 第一部分知識點: 第一課 建立你的第一個KeilC51項目 第二課 C51HEX文件的生成和單片機 第三課 C51數據類型 第四課 C51常量 第二部分知識點: 第五課 C51變量 第六課 C51運算符和表達式 第七課 運算符和表達式(關系運算符) 第八課 運算符和表達式(位運算符) 第九課 C51運算符和表達式(指針和地址運算符) 第三部分知識點: 第十課 C51表達式語句及仿真器 第十一課 C51復合語句和條件語句 第十二課 C51開關分支語句 第十三課 C51循環語句 第十四課 C51函數 第四部分知識點: 第十五課 C51數組的使用 第十六課 C51指針的使用 第十七課 C51結構、聯合和枚舉的使用 附錄(運算符優先級和結合性等)
上傳時間: 2013-11-03
上傳用戶:Amygdala
本文介紹一種采用智能數字溫度傳感器DS18B20進行溫度采集,并通過單片機與PC機完成數據處理的系統。 硬件電路由四部分組成:溫度數據采集部分,即時溫度顯示驅動部分,溫度數據存儲部分和上位PC機數據處理部分。整個硬件設計原理圖如圖1所示。
上傳時間: 2013-10-28
上傳用戶:wettetw
基于單片機和DS18B20的溫度傳感器的設計如本軟件所示,下載即可
上傳時間: 2013-10-18
上傳用戶:GeekyGeek
對應程序: #include<reg52.h> #define uint unsigned int #define uchar unsigned char uchar code tab[]={ 0x81, 0x42, 0x24, 0x18, }; void delay(uint z) { uint i,j; for(i=z;i>0;i--) for(j=120;j>0;j--); } void init() { P0=0x00; }
上傳時間: 2014-01-17
上傳用戶:ruan2570406
實彈射擊訓練是野戰部隊及武警的重要訓練項目,目前國內部隊在實彈射擊訓練中采用的打靶系統普遍價格較高,造成部隊實彈訓練成本提高,因此難于在部隊中大范圍推廣使用。本系統采用一些價格便宜的一般電子器件來設計一個能夠自動示靶、檢靶、報靶,且安裝和操作方便,性價比較高的適用于當前部隊訓練實際需要的射擊場靶機自動控制系統。
上傳時間: 2014-12-26
上傳用戶:arnold