-
TLC2543是TI公司的12位串行模數(shù)轉換器,使用開關電容逐次逼近技術完成A/D轉換過程。由于是串行輸入結構,能夠節(jié)省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)可編程輸出數(shù)據(jù)長度。
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);
}
}
標簽:
2543
TLC
上傳時間:
2013-11-19
上傳用戶:shen1230
-
總線:指能為多個部件服務的信息傳送線,在微機系統(tǒng)中各個部件通過總線相互通信。地址總線:它是傳送由CPU發(fā)出的用于選擇要訪問的器件或部件的地址。數(shù)據(jù)總線:它是用來傳送微型機系統(tǒng)內的各種類型的數(shù)據(jù)。匯編:是能完成一定任務的機器指令的集合。二進制數(shù):只有0和1兩個數(shù)碼,基數(shù)為二。16進制數(shù):采用0、1、2、3、4、5、6、7、8、9、A、B、C、D、E、F等16個數(shù)碼,其中A-F相應的十進數(shù)為10-15,基數(shù)是16。指令:是計算機所能執(zhí)行的一種基本操作的描述,是計算機軟件的基本單元。存儲器:用來存放計算機中的所有信息:包括程序、原始數(shù)據(jù)、運算的中間結果及最終結果等。
標簽:
單片機
上傳時間:
2013-11-14
上傳用戶:caoyuanyuan1818
-
單片機音樂中音調和節(jié)拍的確定方法:調號-音樂上指用以確定樂曲主音高度的符號。很明顯一個八度就有12個半音。A、B、C、D、E、F、G。經過聲學家的研究,全世界都用這些字母來表示固定的音高。比如,A這個音,標準的音高為每秒鐘振動440周。
升C調:1=#C,也就是降D調:1=BD;277(頻率)升D調:1=#D,也就是降E調:1=BE;311升F調:1=#F,也就是降G調:1=BG;369升G調:1=#G,也就是降A調:1=BA;415升A調:1=#A,也就是降B調:1=BB。466,C 262 #C277 D 294 #D(bE)311 E 330 F 349 #F369 G 392 #G415A 440. #A466 B 494
所謂1=A,就是說,這首歌曲的“導”要唱得同A一樣高,人們也把這首歌曲叫做A調歌曲,或叫“唱A調”。1=C,就是說,這首歌曲的“導”要唱得同C一樣高,或者說“這歌曲唱C調”。同樣是“導”,不同的調唱起來的高低是不一樣的。各調的對應的標準頻率為: 單片機演奏音樂時音調和節(jié)拍的確定方法 經常看到一些剛學單片機的朋友對單片機演奏音樂比較有興趣,本人也曾是這樣。在此,本人將就這方面的知識做一些簡介,但愿能對單片機演奏音樂比較有興趣而又不知其解的朋友能有所啟迪。 一般說來,單片機演奏音樂基本都是單音頻率,它不包含相應幅度的諧波頻率,也就是說不能象電子琴那樣能奏出多種音色的聲音。因此單片機奏樂只需弄清楚兩個概念即可,也就是“音調”和“節(jié)拍”。音調表示一個音符唱多高的頻率,節(jié)拍表示一個音符唱多長的時間。 在音樂中所謂“音調”,其實就是我們常說的“音高”。在音樂中常把中央C上方的A音定為標準音高,其頻率f=440Hz。當兩個聲音信號的頻率相差一倍時,也即f2=2f1時,則稱f2比f1高一個倍頻程, 在音樂中1(do)與 ,2(來)與 ……正好相差一個倍頻程,在音樂學中稱它相差一個八度音。在一個八度音內,有12個半音。以1—i八音區(qū)為例, 12個半音是:1—#1、#1—2、2—#2、#2—3、3—4、4—#4,#4—5、5一#5、#5—6、6—#6、#6—7、7—i。這12個音階的分度基本上是以對數(shù)關系來劃分的。如果我們只要知道了這十二個音符的音高,也就是其基本音調的頻率,我們就可根據(jù)倍頻程的關系得到其他音符基本音調的頻率。 知道了一個音符的頻率后,怎樣讓單片機發(fā)出相應頻率的聲音呢?一般說來,常采用的方法就是通過單片機的定時器定時中斷,將單片機上對應蜂鳴器的I/O口來回取反,或者說來回清零,置位,從而讓蜂鳴器發(fā)出聲音,為了讓單片機發(fā)出不同頻率的聲音,我們只需將定時器予置不同的定時值就可實現(xiàn)。那么怎樣確定一個頻率所對應的定時器的定時值呢?以標準音高A為例: A的頻率f = 440 Hz,其對應的周期為:T = 1/ f = 1/440 =2272μs
由上圖可知,單片機上對應蜂鳴器的I/O口來回取反的時間應為:t = T/2 = 2272/2 = 1136μs這個時間t也就是單片機上定時器應有的中斷觸發(fā)時間。一般情況下,單片機奏樂時,其定時器為工作方式1,它以振蕩器的十二分頻信號為計數(shù)脈沖。設振蕩器頻率為f0,則定時器的予置初值由下式來確定: t = 12 *(TALL – THL)/ f0 式中TALL = 216 = 65536,THL為定時器待確定的計數(shù)初值。因此定時器的高低計數(shù)器的初值為: TH = THL / 256 = ( TALL – t* f0/12) / 256 TL = THL % 256 = ( TALL – t* f0/12) %256
將t=1136μs代入上面兩式(注意:計算時應將時間和頻率的單位換算一致),即可求出標準音高A在單片機晶振頻率f0=12Mhz,定時器在工作方式1下的定時器高低計數(shù)器的予置初值為 : TH440Hz = (65536 – 1136 * 12/12) /256 = FBH TL440Hz = (65536 – 1136 * 12/12)%256 = 90H根據(jù)上面的求解方法,我們就可求出其他音調相應的計數(shù)器的予置初值。 音符的節(jié)拍我們可以舉例來說明。在一張樂譜中,我們經常會看到這樣的表達式,如1=C 、1=G …… 等等,這里1=C,1=G表示樂譜的曲調,和我們前面所談的音調有很大的關聯(lián), 、 就是用來表示節(jié)拍的。以 為例加以說明,它表示樂譜中以四分音符為節(jié)拍,每一小結有三拍。比如:
其中1 、2 為一拍,3、4、5為一拍,6為一拍共三拍。1 、2的時長為四分音符的一半,即為八分音符長,3、4的時長為八分音符的一半,即為十六分音符長,5的時長為四分音符的一半,即為八分音符長,6的時長為四分音符長。那么一拍到底該唱多長呢?一般說來,如果樂曲沒有特殊說明,一拍的時長大約為400—500ms 。我們以一拍的時長為400ms為例,則當以四分音符為節(jié)拍時,四分音符的時長就為400ms,八分音符的時長就為200ms,十六分音符的時長就為100ms。可見,在單片機上控制一個音符唱多長可采用循環(huán)延時的方法來實現(xiàn)。首先,我們確定一個基本時長的延時程序,比如說以十六分音符的時長為基本延時時間,那么,對于一個音符,如果它為十六分音符,則只需調用一次延時程序,如果它為八分音符,則只需調用二次延時程序,如果它為四分音符,則只需調用四次延時程序,依次類推。通過上面關于一個音符音調和節(jié)拍的確定方法,我們就可以在單片機上實現(xiàn)演奏音樂了。具體的實現(xiàn)方法為:將樂譜中的每個音符的音調及節(jié)拍變換成相應的音調參數(shù)和節(jié)拍參數(shù),將他們做成數(shù)據(jù)表格,存放在存儲器中,通過程序取出一個音符的相關參數(shù),播放該音符,該音符唱完后,接著取出下一個音符的相關參數(shù)……,如此直到播放完畢最后一個音符,根據(jù)需要也可循環(huán)不停地播放整個樂曲。另外,對于樂曲中的休止符,一般將其音調參數(shù)設為FFH,F(xiàn)FH,其節(jié)拍參數(shù)與其他音符的節(jié)拍參數(shù)確定方法一致,樂曲結束用節(jié)拍參數(shù)為00H來表示。下面給出部分音符(三個八度音)的頻率以及以單片機晶振頻率f0=12Mhz,定時器在工作方式1下的定時器高低計數(shù)器的予置初值 : C調音符
頻率Hz 262 277 293 311 329 349 370 392 415 440 466 494TH/TL F88B F8F2 F95B F9B7 FA14 FA66 FAB9 FB03 FB4A FB8F FBCF FC0BC調音符 1 1# 2 2# 3 4 4# 5 5# 6 6# 7頻率Hz 523 553 586 621 658 697 739 783 830 879 931 987TH/TL FC43 FC78 FCAB FCDB FD08 FD33 FD5B FD81 FDA5 FDC7 FDE7 FE05C調音符 頻率Hz 1045 1106 1171 1241 1316 1393 1476 1563 1658 1755 1860 1971TH/TL FB21 FE3C FE55 FE6D FE84 FE99 FEAD FEC0 FE02 FEE3 FEF3 FF02
標簽:
單片機
音調
上傳時間:
2013-10-20
上傳用戶:哈哈haha
-
第八章 labview的編程技巧
本章介紹局部變量、全局變量、屬性節(jié)點和其他一些有助于提高編程技巧的問題,恰當?shù)剡\用這些技巧可以提高程序的質量。
8.1 局部變量
嚴格的語法盡管可以保證程序語言的嚴密性,但有時它也會帶來一些使用上的不便。在labview這樣的數(shù)據(jù)流式的語言中,將變量嚴格地分為控制器(Control)和指示器(Indicator),前者只能向外流出數(shù)據(jù),后者只能接受流入的數(shù)據(jù),反過來不行。在一般的代碼式語言中,情況不是這樣的。例如我們有變量a、b和c,只要需要我們可以將a的值賦給b,將b的值賦給c等等。前面所介紹的labview內容中,只有移位積存器即可輸入又可輸出。另外,一個變量在程序中可能要在多處用到,在圖形語言中勢必帶來過多連線,這也是一件煩人的事。還有其他需要,因此labview引入了局部變量。
標簽:
labview
教程
上傳時間:
2013-10-27
上傳用戶:xieguodong1234
-
提供的程序是供四相步進電機使用。本實驗使用的步進電機用直流+12V電壓,電機線圈由A、B、C、D四相組成。 2. 驅動方式為四相單四拍方式,各線圈通電順序如下表。表中首先向A相線圈輸入驅動電流,接著向B,C,D線圈通電,最后又返回到A相線圈驅動,按這種順序輪流切換,電機軸按順時針方向旋轉。若通電順序相反,則電機軸按逆時針方向旋轉。
標簽:
步進電機
12
程序
實驗
上傳時間:
2015-02-06
上傳用戶:CSUSheep
-
Demo程序經Keil701編譯后,代碼量為7-8K,可直接在KeilC51上仿真運行。 使用方法:解壓后雙擊yy項目,點調試即可在串口仿真看到結果。 Demo程序創(chuàng)建了3個任務A、B、C優(yōu)先級分別為2、3、4,A每秒顯示一次,B每3秒顯示一次,C每6秒顯示一次。從顯示結果看,顯示3個A后顯示1個B,顯示6個A和2個B后顯示1個C,結果顯然正確。用戶可以仿照范例運用更多系統(tǒng)API函數(shù)寫出自己的程序。只要程序中有顯示語句就可以用軟件仿真器看結果。注意:系統(tǒng)提供的顯示函數(shù)是并發(fā)的,他不是直接顯示到串口,而是先輸出到顯存,用戶不必擔心IO慢速操作影響程序運行。串口輸入也采用了同樣的技術,他使得用戶在CPU忙于處理其他任務時照樣可以盲打輸入命令。 將EXL2-shell目錄下的文件覆蓋yy目錄下的同名文件,將word.c、yyshell.c、yyshellsub.c、mystring.c加入項目,刪除yy1.c,編譯后調試即可。輸入help可得到在線幫助,具體命令用法見文章說明。 yangye網(wǎng)友推薦http://www.sics.se/~adam/lwip/網(wǎng)站學習TCPIP,該網(wǎng)站開放源代碼的lwip是專為8bit和16bitMCU設計的TCPIP協(xié)議棧,已在多種CPU上移植成功,推薦大家下載。
標簽:
Demo
Keil
701
程序
上傳時間:
2014-11-01
上傳用戶:hopy
-
《數(shù)據(jù)庫設計》課程設計 一、 設計目的 數(shù)據(jù)庫設計是一門應用性很強的學科,在學習時必須使理論與實踐相結合。課程設計的目的是通過實踐使同學們經歷到一次綜合訓練,以便能較全面地理解、掌握和綜合運用所學的知識。 二、 設計任務與要求 (1) 對實際系統(tǒng)進行分析,寫出需求分析說明(數(shù)據(jù)需求和事務需求)。 (2) 概念結構設計 說明本數(shù)據(jù)庫將反映的現(xiàn)實世界中的實體、屬性和它們之間的關系等(E-R圖,可以用基本E-R圖或擴展E-R圖)。 (3) 邏輯結構設計 將概念結構映射為數(shù)據(jù)庫全局邏輯結構(關系模型),包括所確定的關鍵字和屬性、重新確定的記錄結構和所建立的各個表文件之間的相互關系。 三、 設計環(huán)境與工具 要求使用輔助設計工具,如Power Designer或者ERWin等,轉換為:SQL Server、Access或其它的DBMS數(shù)據(jù)庫(不作統(tǒng)一要求)。 四、 設計步驟 參考《數(shù)據(jù)庫設計實例指導書》 五、 設計題 教材P58面:3.8課程設計A、B、C任選一題 六、 設計成果 設計結果以書面形式于17周交付。 七、 成績評定 (1) 獨立完成 (2) 文檔完整 (3) 滿足用戶需求 這是研究生數(shù)據(jù)庫課程設計
標簽:
數(shù)據(jù)庫設計
上傳時間:
2015-03-03
上傳用戶:498732662
-
最新的支持向量機工具箱,有了它會很方便 1. Find time to write a proper list of things to do! 2. Documentation. 3. Support Vector Regression. 4. Automated model selection. REFERENCES ========== [1] V.N. Vapnik, "The Nature of Statistical Learning Theory", Springer-Verlag, New York, ISBN 0-387-94559-8, 1995. [2] J. C. Platt, "Fast training of support vector machines using sequential minimal optimization", in Advances in Kernel Methods - Support Vector Learning, (Eds) B. Scholkopf, C. Burges, and A. J. Smola, MIT Press, Cambridge, Massachusetts, chapter 12, pp 185-208, 1999. [3] T. Joachims, "Estimating the Generalization Performance of a SVM Efficiently", LS-8 Report 25, Universitat Dortmund, Fachbereich Informatik, 1999.
標簽:
支持向量機
工具箱
上傳時間:
2013-12-16
上傳用戶:亞亞娟娟123
-
使用系統(tǒng)調用fork()創(chuàng)建兩個子進程。當此程序運行時,在系統(tǒng)中有一個父進程和兩個子進程活動。讓每一個進程在屏幕上現(xiàn)實一個字符:父進程顯示字符’a’;子進程分別顯示字符’b’和’c’。試觀察記錄屏幕上的顯示結果并分析原因。
標簽:
fork
系統(tǒng)調用
程序
進程
上傳時間:
2013-12-24
上傳用戶:ve3344
-
prolog 找路例子程序:
=== === === === === ===
Part 1-Adding connections
Part 2-Simple Path
example
| ?- path1(a,b,P,T).
will produce the response:
T = 15
P = [a,b] ?
Part 3 - Non-repeating path
As an example, the query:
?- path2(a,h,P,T).
will succeed and may produce the bindings:
P = [a,depot,b,d,e,f,h]
T = 155
Part 4 - Generating a path below a cost threshold
As an example, the query:
?- path_below_cost(a,[a,b,c,d,e,f,g,h],RS,300).
returns:
RS = [a,b,depot,c,d,e,g,f,h] ?
RS = [a,c,depot,b,d,e,g,f,h] ?
no
==================================
標簽:
Part
connections
example
prolog
上傳時間:
2015-04-24
上傳用戶:ljt101007