freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

基于51單片機的led立方體顯示器設(shè)計-在線瀏覽

2025-03-07 14:45本頁面
  

【正文】 腳由于內(nèi)部電阻的原因,將輸出電流(IIL)。P3 口是一個具有內(nèi)部上拉電阻的8 位雙向I/O 口,p2 輸出緩沖器能驅(qū)動4 個 TTL 邏輯電平。作為輸入使用時,被外部拉低的引腳由于內(nèi)部電阻的原因,將輸出電流。當振蕩器工作時,RST引腳出現(xiàn)兩個機器周期以上高電平將是單片機復(fù)位。一般情況下,ALE仍以時鐘振蕩頻率的1/6輸出固定的脈沖信號,因此它可對外輸出時鐘或用于定時目的。PSEN——程序儲存允許(PSEN)輸出是外部程序存儲器的讀選通信號,當STC89C52由外部程序存儲器取指令(或數(shù)據(jù))時,每個機器周期兩次PSEN有效,即輸出兩個脈沖,在此期間,當訪問外部數(shù)據(jù)存儲器,將跳過兩次PSEN信號。需注意的是:如果加密位LB1被編程,復(fù)位時內(nèi)部會鎖存EA端狀態(tài)。當使能為低時,輸出將鎖存在已建立的數(shù)據(jù)電平上。這種電路可以驅(qū)動大電容或低阻抗負載,可以直接與系統(tǒng)總線接口并驅(qū)動總線,而不需要外接口。引腳如圖331174HC573引腳功能表: PIN No 引腳號SYMBOL符號NAME AND FUNCTION名稱及功能1OE3 State output Enable Input (Active LOW)3態(tài)輸出使能輸入(低電平)2, 3, 4, 5, 6, 7, 8, 9D0 to D7Data Inputs數(shù)據(jù)輸入12,13,14,15,16,17,18,19Q0 to Q73 State Latch Outputs 3態(tài)鎖存輸出11LELatch Enable Input 鎖存使能輸入10GNDGround接地(0V)20VCCPositive Supply Voltage電源電壓圖3311 74HC573引腳 HC573 邏輯圖真值表: INPUTS 輸入Outputs輸出OE LE D Q (HC573) Q (HC563) HXXZZLLXNO CHANGE *NO CHANGE *LHLLHLHHHL 放大三極管S8550參數(shù):(貼片:)集電極基極電壓40V集電極發(fā)射極擊穿電壓25V集電極發(fā)射極飽和電壓 特征頻率fT 最小150MHZ 典型值產(chǎn)家的目錄沒給出引腳排列為EBC或ECB 838電子按三極管后綴號分為 B C D檔 C120200 H200350 三極管74HC573 單片機最小系統(tǒng) 晶振電路: 最小系統(tǒng)晶振電路如圖3321所示。時鐘可以由內(nèi)部方式產(chǎn)生或外部方式產(chǎn)生。定時元件通常采用石英晶體和電容組成的并聯(lián)諧振回路。單片機晶振兩個電容的作用:這兩個電容叫晶振的負載電容,分別接在晶振的兩個腳上和對地的電容,一般在幾十pf。晶振的負載電容=[(Cd*Cg)/(Cd+Cg)]+Cic+△C式中Cd,Cg為分別接在晶振的兩個腳上和對地的電容,經(jīng)驗值為3至5pf。復(fù)位電路的基本功能是:系統(tǒng)上電時提供復(fù)位信號,直至系統(tǒng)電源穩(wěn)定后,撤銷復(fù)位信號。 驅(qū)動模塊驅(qū)動模塊由8塊74HC573和單片機的最小系統(tǒng)組成,STC89C52的P1口用于控制鎖存器的開啟和關(guān)閉;P2口提供鎖存器控制512個LED的指令;P3用于控制從上到下每層的開關(guān),可以單獨開啟每一層的開關(guān),相互獨立不受影響。 信號放大 由于STC89C52的驅(qū)動能力有限難以同時驅(qū)動512個LED,如果LED全部亮起來的話單片機的輸出會很大有可能把單片機燒壞,而且全部亮起來也不是LED的最佳工作狀態(tài)。~,B極接電源的正極用作信號的放大,C極則接入光立方由上到下的8層LED。最先由8個LED組成一條,然后把8條LED組合成一個LED點陣,最后把8個點陣組合為一個立方體,實現(xiàn)每一層共陽極接入到P3口。 第四章 軟件設(shè)計 檢測程序//8*8*8光立方程序//p1口為鎖存器鎖存控制,p2口為鎖存器輸入,p3口為上下控制,p0口為按鍵//由于鎖存器與共陰極電路必須輸出為1才能工作故置1為開啟 置0為關(guān)閉 org 0000H//程序開始 。 acall anjian //檢查按鍵 jmp qishi //無限循環(huán)*///層移程序cengyi: mov r0,1 //程序1 dec r0 mov r1,40 //將r1賦予5層移5次 mov r3,01H //設(shè)置從第一層開始 mov p2,00H //開啟p2口 mov p1,0ffH //同步鎖存器輸入輸出 mov p1,0ffH //鎖存 loop11: mov p3,r3 //p3口按r3中的值開啟相應(yīng)輸出 mov a,r3 //開始左移 rl a mov r3,a //將左移后的值保存 acall delay //調(diào)用延時。 acall anjian //檢查按鍵 mov p2,00H //關(guān)閉p2口 acall delay //調(diào)用延時。 acall anjian //檢測按鍵 djnz r4,loop33 //沒有8次循環(huán) ret //返回yudian: mov dptr,table1 //保存束移表格 mov a,r1 //將r1值作為指針給a movc a,a+dptr //查表 mov p2,a //結(jié)果送入p2口 acall suo //調(diào)用鎖存程序 ret //返回suo: mov dptr,table1 //保存第一類鎖存表格 mov a,r2 //將r2作為指針給a movc a,a+dptr //查表 mov p1,a //結(jié)果送p1口 mov p1,00H //鎖存 ret //返回suo2: mov dptr,table3 //保存第二類鎖存地址 mov a,r2 //將r2作為指針給a movc a,a+dptr //查表 mov p1,a //結(jié)果送p1口 mov p1,00H //鎖存 ret //返回bo1: mov dptr,table2 //保存橫向波紋表格 mov a,r1 //將r1作為指針給a movc a,a+dptr //查表 mov p2,a //結(jié)果送p2口 ret //返回bo2: mov dptr,table3 //保存縱向波紋表格 mov a,r1 //將r1作為指針給a movc a,a+dptr //查表 mov p2,a //結(jié)果送p2口 ret //返回table1: db 3fH,1fH,0fH,07H,03H,01H table2: db 1fH,0fH,07H,03H,01H,00Htable3: db 5fH,2fH,17H,0bH,05H,02H//結(jié)束程序an: lcall guanbi //調(diào)用關(guān)閉程序 jmp an //無限循環(huán)//關(guān)閉所有輸出guanbi: mov p2,0ffH //關(guān)閉p2口 mov p1,0ffH //同步輸出 mov p1,00H //鎖存 mov p3,0ffH //關(guān)閉p3口 ret //返回/*//按鍵檢測子程序anjian: mov p0,0ffH //p0口復(fù)位 mov a,p0 //取p0口值 cjne a,0ffH,loop1 //判斷是否有按鍵按下有按鍵按下跳轉(zhuǎn) ret //無按鍵返回loop1: lcall yanshi //調(diào)用延時去抖動 mov a,p0 //取p0口值 cjne a,0ffH,loop2 //判斷是否有按鍵按下有按鍵按下跳轉(zhuǎn) jmp loop1 //沒檢測到循環(huán)loop2: jnb ,kaishi // jnb ,jieshu // jnb ,zdjx // jnb ,jian // jmp jixu //誤讀跳轉(zhuǎn)繼續(xù)jian: ljmp jiancha //跳轉(zhuǎn)檢查程序 jmp jian //循環(huán)kaishi: ljmp cengyi //跳轉(zhuǎn)層移程序 jmp kaishi //循環(huán)jieshu: ljmp an //跳轉(zhuǎn)結(jié)束程序 jmp jieshu //循環(huán)zdjx: cjne r4,1,ting1 // 第一次跳轉(zhuǎn)暫停程序(r4為1)第二次執(zhí)行繼續(xù)指令 mov r4,00H //將r4復(fù)位 jmp jixu //跳轉(zhuǎn)繼續(xù)指令ting1: mov r4,1 //將r4置1 ting2: acall anjian //檢測按鍵 jmp ting2 //無按鍵按下停止jixu: mov b,3 mov a,r0 //取程序序號程序 mul ab //因為每次長條轉(zhuǎn)為3字節(jié) 所以每次乘3 mov dptr,jjmp //保存跳轉(zhuǎn)表格 jmp a+dptr //按表格轉(zhuǎn)移jjmp: ljmp loop11 ljmp loop21 ljmp loop31//按鍵去抖動延時子程序yanshi: mov r6,120dly: mov r7,248 djnz r7,$ djnz r6,dly ret*/ //delay: mov r5,20dly1: mov r6,100dly2: mov r7,100 djnz r7,$ djnz r6,dly2 djnz r5,dly1 ret//delay1: mov r5,8dly3: mov r6,100dly4: mov r7,100 djnz r7,$ djnz r6,dly4 djnz r5,dly3 ret end //程序結(jié)束include include include include includeincludeinclude xdata unsigned char cube[CUBE_SIZE][CUBE_SIZE]=0。 void show() interrupt 1{ int i,j。 TL0 = (6553650000)%256。i8。j8。}//************************************************************** void UART_Send (uint8_t cData) { SBUF = cData。 TI = 0。 } // 單束賦值函數(shù) void funPrintColumn(uint8_t cColumn, uint8_t cData) { UART_Send(0xf1)。 UART_Send(cData)。 for ( 。 x){ for ( y = 0 。 y++){ for ( z = 0 。 z++){ _nop_()。}// Set a single voxel in the temporary cube buffer to ONvoid tmpsetvoxel(int x, int y, int z){ fb[x][y] |= (1 z)。= ~(1 z)。= ~(1 z)。amp。amp。amp。amp。amp。 } else { // One of the coordinates was outside the cube. return 0。 (1 z)) { return 1。 } } else { return 0。 } else { clrvoxel(x,y,z)。 //異或}// Makes sure x1 is alwas smaller than x2// This is usefull for functions that uses for loops,// to avoid infinite loopsvoid argorder(int ix1, int ix2, int *ox1, int *ox2){ if (ix1ix2) { int tmp。 ix1= ix2。 } *ox1 = ix1。}// Sets all voxels along a Z/Y plane at a given point// on axis Xvoid setplane_x (int x){ int i。amp。iCUBE_SIZE。 }}// Clears voxels in the same manner as abovevoid clrplane_x (int x){ int i。amp。iCUBE_SIZE。 }}void
點擊復(fù)制文檔內(nèi)容
范文總結(jié)相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1