基于單片機的LED漢字顯示屏設計與制作:在大型商場、車站、碼頭、地鐵站以及各類辦事窗口等越來越多的場所需要用LED點陣顯示圖形和漢字。LED行業已成為一個快速發展的新興產業,市場空間巨大,前景廣闊。隨著信息產業的高速發展,LED顯示作為信息傳播的一種重要手段,已廣泛應用于室內外需要進行服務內容和服務宗旨宣傳的公眾場所,例如戶內外公共場所廣告宣傳、機場車站旅客引導信息、公交車輛報站系統、證券與銀行信息顯示、餐館報價信息豆示、高速公路可變情報板、體育場館比賽轉播、樓宇燈飾、交通信號燈、景觀照明等。顯然,LED顯示已成為城市亮化、現代化和信息化社會的一個重要標志。 本文基于單片機(AT89C51)講述了16×16 LED漢字點陣顯示的基本原理、硬件組成與設計、程序編譯與下載等基本環節和相關技術。2 硬件電路組成及工作原理本產品擬采用以AT89C51單片機為核心芯片的電路來實現,主要由AT89C51芯片、時鐘電路、復位電路、列掃描驅動電路(74HC154)、16×16 LED點陣5部分組成,如圖1所示。 其中,AT89C51是一種帶4 kB閃爍可編程可擦除只讀存儲器(Falsh Programmable and Erasable Read OnlyMemory,FPEROM)的低電壓、高性能CMOS型8位微處理器,俗稱單片機。該器件采用ATMEL高密度非易失存儲器制造技術制造,與工業標準的MCS-51指令集和輸出管腳相兼容。由于將多功能8位CPU和閃爍存儲器組合在單個芯片中,能夠進行1 000次寫/擦循環,數據保留時間為10年。他是一種高效微控制器,為很多嵌入式控制系統提供了一種靈活性高且價廉的方案。因此,在智能化電子設計與制作過程中經常用到AT89C51芯片。時鐘電路由AT89C51的18,19腳的時鐘端(XTALl及XTAL2)以及12 MHz晶振X1、電容C2,C3組成,采用片內振蕩方式。復位電路采用簡易的上電復位電路,主要由電阻R1,R2,電容C1,開關K1組成,分別接至AT89C51的RST復位輸入端。LED點陣顯示屏采用16×16共256個象素的點陣,通過萬用表檢測發光二極管的方法測試判斷出該點陣的引腳分布,如圖2所示。 我們把行列總線接在單片機的IO口,然后把上面分析到的掃描代碼送人總線,就可以得到顯示的漢字了。但是若將LED點陣的行列端口全部直接接入89S51單片機,則需要使用32條IO口,這樣會造成IO資源的耗盡,系統也再無擴充的余地。因此,我們在實際應用中只是將LED點陣的16條行線直接接在P0口和P2口,至于列選掃描信號則是由4-16線譯碼器74HC154來選擇控制,這樣一來列選控制只使用了單片機的4個IO口,節約了很多IO資源,為單片機系統擴充使用功能提供了條件。考慮到P0口必需設置上拉電阻,我們采用4.7 kΩ排電阻作為上拉電阻。
上傳時間: 2013-10-16
上傳用戶:ywcftc277
單片機音樂中音調和節拍的確定方法:調號-音樂上指用以確定樂曲主音高度的符號。很明顯一個八度就有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調”。同樣是“導”,不同的調唱起來的高低是不一樣的。各調的對應的標準頻率為: 單片機演奏音樂時音調和節拍的確定方法 經常看到一些剛學單片機的朋友對單片機演奏音樂比較有興趣,本人也曾是這樣。在此,本人將就這方面的知識做一些簡介,但愿能對單片機演奏音樂比較有興趣而又不知其解的朋友能有所啟迪。 一般說來,單片機演奏音樂基本都是單音頻率,它不包含相應幅度的諧波頻率,也就是說不能象電子琴那樣能奏出多種音色的聲音。因此單片機奏樂只需弄清楚兩個概念即可,也就是“音調”和“節拍”。音調表示一個音符唱多高的頻率,節拍表示一個音符唱多長的時間。 在音樂中所謂“音調”,其實就是我們常說的“音高”。在音樂中常把中央C上方的A音定為標準音高,其頻率f=440Hz。當兩個聲音信號的頻率相差一倍時,也即f2=2f1時,則稱f2比f1高一個倍頻程, 在音樂中1(do)與 ,2(來)與 ……正好相差一個倍頻程,在音樂學中稱它相差一個八度音。在一個八度音內,有12個半音。以1—i八音區為例, 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個音階的分度基本上是以對數關系來劃分的。如果我們只要知道了這十二個音符的音高,也就是其基本音調的頻率,我們就可根據倍頻程的關系得到其他音符基本音調的頻率。 知道了一個音符的頻率后,怎樣讓單片機發出相應頻率的聲音呢?一般說來,常采用的方法就是通過單片機的定時器定時中斷,將單片機上對應蜂鳴器的I/O口來回取反,或者說來回清零,置位,從而讓蜂鳴器發出聲音,為了讓單片機發出不同頻率的聲音,我們只需將定時器予置不同的定時值就可實現。那么怎樣確定一個頻率所對應的定時器的定時值呢?以標準音高A為例: A的頻率f = 440 Hz,其對應的周期為:T = 1/ f = 1/440 =2272μs 由上圖可知,單片機上對應蜂鳴器的I/O口來回取反的時間應為:t = T/2 = 2272/2 = 1136μs這個時間t也就是單片機上定時器應有的中斷觸發時間。一般情況下,單片機奏樂時,其定時器為工作方式1,它以振蕩器的十二分頻信號為計數脈沖。設振蕩器頻率為f0,則定時器的予置初值由下式來確定: t = 12 *(TALL – THL)/ f0 式中TALL = 216 = 65536,THL為定時器待確定的計數初值。因此定時器的高低計數器的初值為: TH = THL / 256 = ( TALL – t* f0/12) / 256 TL = THL % 256 = ( TALL – t* f0/12) %256 將t=1136μs代入上面兩式(注意:計算時應將時間和頻率的單位換算一致),即可求出標準音高A在單片機晶振頻率f0=12Mhz,定時器在工作方式1下的定時器高低計數器的予置初值為 : TH440Hz = (65536 – 1136 * 12/12) /256 = FBH TL440Hz = (65536 – 1136 * 12/12)%256 = 90H根據上面的求解方法,我們就可求出其他音調相應的計數器的予置初值。 音符的節拍我們可以舉例來說明。在一張樂譜中,我們經常會看到這樣的表達式,如1=C 、1=G …… 等等,這里1=C,1=G表示樂譜的曲調,和我們前面所談的音調有很大的關聯, 、 就是用來表示節拍的。以 為例加以說明,它表示樂譜中以四分音符為節拍,每一小結有三拍。比如: 其中1 、2 為一拍,3、4、5為一拍,6為一拍共三拍。1 、2的時長為四分音符的一半,即為八分音符長,3、4的時長為八分音符的一半,即為十六分音符長,5的時長為四分音符的一半,即為八分音符長,6的時長為四分音符長。那么一拍到底該唱多長呢?一般說來,如果樂曲沒有特殊說明,一拍的時長大約為400—500ms 。我們以一拍的時長為400ms為例,則當以四分音符為節拍時,四分音符的時長就為400ms,八分音符的時長就為200ms,十六分音符的時長就為100ms。可見,在單片機上控制一個音符唱多長可采用循環延時的方法來實現。首先,我們確定一個基本時長的延時程序,比如說以十六分音符的時長為基本延時時間,那么,對于一個音符,如果它為十六分音符,則只需調用一次延時程序,如果它為八分音符,則只需調用二次延時程序,如果它為四分音符,則只需調用四次延時程序,依次類推。通過上面關于一個音符音調和節拍的確定方法,我們就可以在單片機上實現演奏音樂了。具體的實現方法為:將樂譜中的每個音符的音調及節拍變換成相應的音調參數和節拍參數,將他們做成數據表格,存放在存儲器中,通過程序取出一個音符的相關參數,播放該音符,該音符唱完后,接著取出下一個音符的相關參數……,如此直到播放完畢最后一個音符,根據需要也可循環不停地播放整個樂曲。另外,對于樂曲中的休止符,一般將其音調參數設為FFH,FFH,其節拍參數與其他音符的節拍參數確定方法一致,樂曲結束用節拍參數為00H來表示。下面給出部分音符(三個八度音)的頻率以及以單片機晶振頻率f0=12Mhz,定時器在工作方式1下的定時器高低計數器的予置初值 : 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
微型51/AVR 編程器套件裝配說明書 請您在動手裝配這個編程器之前,務必先看完本說明書,避免走彎路。 1.收到套件后請對照元器件列表檢查一下,元件、配件是否齊全? Used Part Type Designator ==== ================ ========== 1 1k R6 1 1uf 50V C11 5 2k2 R2 R3 R4 R5 R11 1 10K*8 RN1 2 11.0592MHZ Q1 Q2 1 12V,0.5W D2 2 15k R7 R8 2 21k R9 R10 4 33p C6 C7 C8 C9 1 47uf 25V C10 1 74HC164 IC6 2 78L05 IC4 IC5 1 100uf 25V C12 1 220R R1 1 AT89C51 IC2 1 B40C800(W02) D1 2 BS170 T1 T2 1 BS250 T3 1 DB9/F J2 1 J1X2 J1 1 LED GN5 D3 1 LM317L IC1 1 TLC2272 IC7 1 ZIF40 IC3 5 1uf C1 C2 C3 C4 C5 另外,套件配有1.5米串行電纜一根和配套的PCB一塊,不含電源。編程器使用的15V交流電源或12V直流電源需要自己配套。2.裝配要點:先焊接阻容元件,3個集成電路插座(IC2,IC7,IC6)其次是晶振, 全橋,穩壓IC 等,然后焊接J2,最后焊接T1,T2,T3三只場效應管。焊接場效應管時務必按照以下方法:拔去電烙鐵的電源,使用電烙鐵余溫去焊接三只場效應管,否則靜電很容易損壞管子。這是裝配成功的關鍵。這三只管子有問題,最典型的現象是不能聯機。由于電源插座封裝比較特殊,國內無法配套上,已改用電源線接線柱,可直接焊接在PCB板焊盤上,如下圖1所示(在下圖中兩個紅色圓圈內指示的焊盤),然后在連接到套件中配套的電源插座上。最近有朋友反映用15V交流比較麻煩,還要另外配變壓器。如果要使用12V的直流電,無需將全橋焊上,將兩個接線柱分別焊接在全橋的正負輸出位置的焊盤上即可,如下圖2所示,藍色圓圈內指示的焊盤,連接電源的時候要注意正負極,不要接錯了。方形焊盤是正極。40腳ZIF插座焊接前,應該將BR1飛線焊接好。注意:由于焊盤比較小,注意焊接溫度,不要高溫長時間反復焊接,會導致焊盤脫落。
上傳時間: 2013-12-31
上傳用戶:caiguoqing
特性• 一系列方法支持不同的照明概念/原理UHP CCFL等• 快速執行標準80C51 器件的兩倍• 工作范圍寬2.7V~6.0V 而且在125 仍可工作• 帶晶振/諧振器和RC 的用戶可配置振蕩器不要求外部元件• 低電流操作• 豐富的特性集包括UART和I2C 串行通訊低電壓檢測和上電復位• 兩個比較器• 在系統可編程ISP• 專用的模擬和數字外圍設備• ADC 快速PWM 和DAC特殊控制的專用外圍設備• PFC 功率因素修正• 帶軟開關PWM 的半橋和全橋控制• 使用ADC 和比較器進行照明管理• 與幾乎所有遠程協議接口DALI IR RF 等• 帶鎮流ASIC 帶DAC 或PWM 的快速控制回路• 與存儲設備的I2C 接口
上傳時間: 2014-03-24
上傳用戶:ming529
晶振:12M TEMPER_L EQU 36H TEMPER_H EQU 35H TEMPER_NUM EQU 60H FLAG1 BIT 00H DQ BIT P3.3AAA:MOV SP,#70H LCALL GET_TEMPER LCALL TEMPER_COV LJMP AAA NOP ;------------------讀出轉換后的溫度值 GET_TEMPER: SETB DQ ; 定時入口 BCD:LCALL INIT_1820 JB FLAG1,S22 LJMP BCD ; 若DS18B20不存在則返回S22:LCALL DELAY1 MOV A,#0CCH ; 跳過ROM匹配------0CC LCALL WRITE_1820 MOV A,#44H ; 發出溫度轉換命令 LCALL WRITE_1820 NOP LCALL DELAY LCALL DELAY CBA:LCALL INIT_1820 JB FLAG1,ABC LJMP CBA ABC:LCALL DELAY1 MOV A,#0CCH ; 跳過ROM匹配 LCALL WRITE_1820 MOV A,#0BEH ; 發出讀溫度命令 LCALL WRITE_1820 LCALL READ_18200 ;READ_1820 RET ;------------------讀DS18B20的程序,從DS18B20中讀出一個字節的數據 READ_1820: MOV R2,#8 RE1: CLR C
上傳時間: 2013-10-09
上傳用戶:heart_2007
三種方法讀取鍵值 使用者設計行列鍵盤介面,一般常採用三種方法讀取鍵值。 中斷式 在鍵盤按下時產生一個外部中斷通知CPU,並由中斷處理程式通過不同位址讀資料線上的狀態判斷哪個按鍵被按下。 本實驗採用中斷式實現使用者鍵盤介面。 掃描法 對鍵盤上的某一行送低電位,其他為高電位,然後讀取列值,若列值中有一位是低,表明該行與低電位對應列的鍵被按下。否則掃描下一行。 反轉法 先將所有行掃描線輸出低電位,讀列值,若列值有一位是低表明有鍵按下;接著所有列掃描線輸出低電位,再讀行值。 根據讀到的值組合就可以查表得到鍵碼。4x4鍵盤按4行4列組成如圖電路結構。按鍵按下將會使行列連成通路,這也是見的使用者鍵盤設計電路。 //-----------4X4鍵盤程序--------------// uchar keboard(void) { uchar xxa,yyb,i,key; if((PINC&0x0f)!=0x0f) //是否有按鍵按下 {delayms(1); //延時去抖動 if((PINC&0x0f)!=0x0f) //有按下則判斷 { xxa=~(PINC|0xf0); //0000xxxx DDRC=0x0f; PORTC=0xf0; delay_1ms(); yyb=~(PINC|0x0f); //xxxx0000 DDRC=0xf0; //復位 PORTC=0x0f; while((PINC&0x0f)!=0x0f) //按鍵是否放開 { display(data); } i=4; //計算返回碼 while(xxa!=0) { xxa=xxa>>1; i--; } if(yyb==0x80) key=i; else if(yyb==0x40) key=4+i; else if(yyb==0x20) key=8+i; else if(yyb==0x10) key=12+i; return key; //返回按下的鍵盤碼 } } else return 17; //沒有按鍵按下 }
上傳時間: 2013-11-12
上傳用戶:a673761058
1 /**————————————————————2 〖說明〗I2C總線驅動程序(用兩個普通IO模擬I2C總線)3 包括100Khz(T=10us)的標準模式(慢速模式)選擇,4 和400Khz(T=2.5us)的快速模式選擇,5 默認11.0592Mhz的晶振。6 〖文件〗PCF8563T.C ﹫2001/11/2 77 〖作者〗龍嘯九天 c51@yeah.net http://www.c51bbs.co /8 〖修改〗修改建議請到論壇公布 http://www.c51bbs.co m9 〖版本〗V1.00A Build 080310 —————————————————————*/1112 #ifndef SDA13 #define SDA P0_014 #define SCL P0_115 #endif1617 extern uchar SystemError;1819 #define uchar unsigned char20 #define uint unsigned int21 #define Byte unsigned char22 #define Word unsigned int23 #define bool bit24 #define true 125 #define false 02627 #define SomeNOP(); _nop_();_nop_();_nop_();_nop_();2829 /**--------------------------------------------------------------------------------30 調用方式:void I2CStart(void) ﹫2001/07/0 431 函數說明:私有函數,I2C專用32 ---------------------------------------------------------------------------------*/33 void I2CStart(void)34 {35 EA=0;36 SDA=1; SCL=1; SomeNOP();//INI37 SDA=0; SomeNOP(); //START38 SCL=0;39 }4041 /**--------------------------------------------------------------------------------42 調用方式:void I2CStop(void) ﹫2001/07/0 443 函數說明:私有函數,I2C專用44 ---------------------------------------------------------------------------------*/45 void I2CStop(void)46 {47 SCL=0; SDA=0; SomeNOP(); //INI48 SCL=1; SomeNOP(); SDA=1; //STOP49 EA=1;50 }5152 /**--------------------------------------------------------------------------------53 調用方式:bit I2CAck(void) ﹫2001/07/0 454 函數說明:私有函數,I2C專用,等待從器件接收方的應答55 ---------------------------------------------------------------------------------*/56 bool WaitAck(void)57 {58 uchar errtime=255;//因故障接收方無ACK,超時值為255。59 SDA=1;SomeNOP();60 SCL=1;SomeNOP();61 while(SDA) {errtime--; if (!errtime) {I2CStop();SystemError=0x11;return false;}}62 SCL=0;63 return true;
上傳時間: 2014-04-11
上傳用戶:xg262122
核心板配置 核心板配置癿FPGA芯片是Cyclone II系列癿EP2C8Q208C,具有8256個LEs,36個M4K RAM blocks (4Kbits plus 512 parity bits),同時具有165,888bit癿RAM,支持18個Embedded multipliers和2個PLL,資源配備十分豐富。實驗證明,返款芯片在嵌入NIOS II軟核將黑釐開収板癿所有外謳全部跑起來,僅占全部資源癿70-80% ; 核心板同時配備了64Mbit癿SDRAM,對亍運行NIOS軟核提供了有力癿保障,返款芯片為時鐘頻率有143MHz,實驗證明,NIOS II軟核主頻可以平穩運行120MHz,速度迓是相當忚癿; 16Mbit癿配置芯片也為返款核心板增色丌少,丌僅可以存儲配置信息,同時迓可以實現NIOS II軟件程序存儲,你編寫癿程序再大也沒有后頊乀憂了。 20M癿有源晶振也是必丌可少癿,他是整個系統癿時鐘源泉;4個LED對亍調試來說更是提供了徑多方便;復位按鍵,重新配置按鍵,配置指示燈一個也丌能少;同時支持AS模式和JTAG模式; 除此以外,核心板一個更大的特點是它可以獨立亍底板單獨運行,為此配備了5V癿電源接口,高質量癿紅色開關,為了安全迓加入了自恢復保險絲。當然擴展口是丌能少癿,除了SDRAM占用癿38個IO口外,其他100個IO全部擴展出來,為大家可以迕行自我擴展實驗做好了充分癿準備。 四、 下擴展板配置 為了讓FPGA収揮它癿強大功能,黑釐開収板為其謳計一款資源豐富癿下擴展板(乀所以叨下擴展板,是因為我們后續迓會有上擴展板)。下面我們就來簡單介終一下下擴展板癿資源配置。 支持網絡功能,配置ENC28J60網口芯片。ENC28J60是Microchip Technology(美國微芯科技公司)推出癿28引腳獨立以太網控刢器。目前市場上大部分以太網控刢器癿封裝均赸過80引腳,而符吅IEEE 802.3協議癿ENC28J60叧有28引腳,既能提供相應癿功能,又可以大大簡化相關謳計,減小空間; 支持USB功能,配置CH376芯片。CH376 支持USB 謳備方式和USB 主機方式,幵丏內置了USB 途訊協議癿基本固件,內置了處理Mass-Storage海量存儲謳備癿與用途訊協議癿固件,內置了SD 卡癿途訊接口固件,內置了FAT16和FAT32 以及FAT12 文件系統癿管理固件,支持常用癿USB 存儲謳備(包括U 盤/USB 硬盤/USB 閃存盤/USB 讀卡器)和SD 卡(包括標準容量SD 卡和高容量HC-SD 卡以及協議兼容癿MMC 卡和TF 卡); 支持板載128*64的點陣LCD。ST7565P控刢芯片,內置DC/DC電路,途過軟件調節對比度。該芯片支持,幵口和串口丟種方式;
上傳時間: 2013-11-23
上傳用戶:ouyangtongze
LPC1100系列Cortex-M0的最小系統框圖如圖2.1所示。其中時鐘系統是可選部分,這是因為LPC1100系列Cortex-M0內部自帶12MHz的RC振蕩器,并且CPU在上電或者復位的時候默認選擇使用內部RC振蕩器為主時鐘源,所以LPC1100系列Cortex-M0可在無外部晶振的情況下運行,但由于內部RC振蕩器的精度不高(精度為1%),達不到某些片內外設的要求;因此在使用這些片內外設時將不得不使用精度更高的外部晶振。調試接口也不是必需的,但是它在工程開發階段發揮的作用極大,因此至少在樣機調試階段需設計這部分電路。
上傳時間: 2013-11-09
上傳用戶:cicizoe
Single-Ended and Differential S-Parameters Differential circuits have been important incommunication systems for many years. In the past,differential communication circuits operated at lowfrequencies, where they could be designed andanalyzed using lumped-element models andtechniques. With the frequency of operationincreasing beyond 1GHz, and above 1Gbps fordigital communications, this lumped-elementapproach is no longer valid, because the physicalsize of the circuit approaches the size of awavelength.Distributed models and analysis techniques are nowused instead of lumped-element techniques.Scattering parameters, or S-parameters, have beendeveloped for this purpose [1]. These S-parametersare defined for single-ended networks. S-parameterscan be used to describe differential networks, but astrict definition was not developed until Bockelmanand others addressed this issue [2]. Bockelman’swork also included a study on how to adapt single-ended S-parameters for use with differential circuits[2]. This adaptation, called “mixed-mode S-parameters,” addresses differential and common-mode operation, as well as the conversion betweenthe two modes of operation.This application note will explain the use of single-ended and mixed-mode S-parameters, and the basicconcepts of microwave measurement calibration.
上傳時間: 2014-03-25
上傳用戶:yyyyyyyyyy