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

正文內(nèi)容

人機(jī)界面接口及程序設(shè)計-資料下載頁

2025-05-28 01:28本頁面
  

【正文】 tel 電子競賽培訓(xùn) 驅(qū)動電路 電子競賽培訓(xùn) 驅(qū)動系統(tǒng)框圖 電子競賽培訓(xùn) 行驅(qū)動電路實(shí)例 電子競賽培訓(xùn) 系統(tǒng)主程序和顯示驅(qū)動程序框圖 電子競賽培訓(xùn) 顯示驅(qū)動程序 ? ? 多個 16*16LED顯示演示程序 ? MCU AT89C51 XAL 24MHz ? ? //以下程序能實(shí)現(xiàn)多個 16*16LED屏的多個字符顯示 ,顯示方式有整行上移、簾入簾出、左移、右移 // ? include ? define BLKN 8 //列鎖存器數(shù) (=LED顯示字?jǐn)?shù) *2) ? define TOTAL 20 //待顯示字個數(shù) ,本例共 20個 ? define CONIO P1 //顯示控制口 ? sbit G=CONIO^7。 // 154譯碼器顯示允許控制信號端口 ,0時輸出 ,1時輸出全為高阻態(tài) . ? sbit CLK=CONIO^6。 // 595輸出鎖存器時鐘信號端 ,1時輸出數(shù)據(jù) ,從 1到 0時鎖存輸出數(shù)據(jù) . ? sbit SCLR=CONIO^5。 // 595移位寄存器清零口 ,平時為 1,為 0時 ,輸出全為 0. ? unsigned char idata dispram[(BLKN/2)*32]={0}。 //顯示區(qū)緩存 ,四字共 4*32單元 ? // ? /**********顯示屏掃描(定時器 T0中斷)函數(shù) **********/ ? void leddisplay(void) interrupt 1 using 1 ? { ? register unsigned char m, n=BLKN。 ? TH0 = 0xFc。 //設(shè)定顯示屏刷新率每秒 (16毫秒每幀 ) ? TL0 = 0x18。 ? m = CONIO。 //讀取當(dāng)前顯示的行號 ? m = ++m amp。 0x0f。 //行號加 1,屏蔽高 4位 ? do { ? n。 ? SBUF = dispram[m*2+(n/2)*30 + n]。 //送顯示數(shù)據(jù) ? while (!TI)。 TI = 0。 ? }while (n)。 //完成一行數(shù)據(jù)的發(fā)送 ? G = 1。 //消隱(關(guān)閉顯示) ? CONIO amp。= 0xf0。 //行號端口清○ ? CLK=1。 //顯示數(shù)據(jù)打入輸出鎖存器 ? CONIO |= m。 //寫入行號 ? CLK=0。 //鎖存顯示數(shù)據(jù) ? G = 0。 //打開顯示 ? } ? // 電子競賽培訓(xùn) 主程序 ? /*****************主函數(shù) *********************/ ? void main(void) ? { ? register unsigned char i,j,k,l,q,w。 ? //初始化 ? SCON = 0x00。 //串口工作模式 0:移位寄存器方式 ? TMOD = 0x01。 //定時器 T0工作方式 1: 16位方式 ? TR0 = 1。 //啟動定時器 T0 ? CONIO = 0x3f。 //CONIO端口初值 ? IE = 0x82。 //允許定時器 T0中斷 ? // ? while (1) ? { ? delay(2022)。 //2秒 ? //第一種顯示效果 :卷簾出顯示笑臉圖案 ? for (i=0。i32。i++) ? { ? for(q=0。qBLKN/2。q++) {dispram[i+q*32]=Bmp1[5][i]。} ? if (i%2) delay(120)。 ? } ? delay(1000)。 ? //卷簾出顯示文字 ,每次字?jǐn)?shù)為 BLKN/2,共顯示 TOTAL*2/BLKN次 ? for (w=0。wTOTAL*2/BLKN。w++) ? { ? for (i=0。i32。i++) ? { ? for(q=0。qBLKN/2。q++) {dispram[i+q*32]=Bmp[q+w*BLKN/2][i]。} ? if (i%2) delay(120)。 ? } ? delay(3000)。 ? } ? //第一種顯示效果 :卷簾出顯示笑臉圖案 ? for (i=0。i32。i++) ? { ? for(q=0。qBLKN/2。q++) {dispram[i+q*32]=Bmp1[5][i]。} ? if (i%2) delay(120)。 ? } ? delay(1000)。 //第二種顯示效果:向上滾屏 ,每次 BLKN/2個字 for (i=0。 iTOTAL*2/BLKN。 i++) { for (j=0。 j16。 j++) { for (k=0。 k15。 k++) { for(q=0。qBLKN/2。q++) {dispram[k*2+q*32] = dispram[(k+1)*2+q*32]。dispram[k*2+1+q*32] = dispram[(k+1)*2+1+q*32]。} } for(q=0。qBLKN/2。q++) {dispram[30+q*32] = Bmp[q+i*BLKN/2][j*2]。dispram[31+q*32] = Bmp[q+i*BLKN/2][j*2+1]。} delay(100)。 } delay(3000)。//滾動暫停 } //第一種顯示效果 :卷簾出黑屏 for (i=0。i32。i++) { for(q=0。qBLKN/2。q++) {dispram[i+q*32]=0xff。} if (i%2) delay(120)。 } delay(1000)。 //第三種顯示效果:左移出顯示 for (i=0。 iTOTAL。 i++) { for (j=0。 j2。 j++) for (k=0。 k8。 k++) { for (l=0。 l16。 l++) { for(q=0。qBLKN/2。q++) { dispram[l*2+q*32] = dispram[l*2+q*32]1 | dispram[l*2+1+q*32]7。 if(q==BLKN/21) dispram[l*2+1+q*32] = dispram[l*2+1+q*32]1 | Bmp[i][l*2+j](7k)。 else dispram[l*2+1+q*32] = dispram[l*2+1+q*32]1 | dispram[l*2+(q+1)*32]7。 } } delay(100)。 } } delay(3000)。 //第一種顯示效果 :卷簾出黑屏 for (i=0。i32。i++) { for(q=0。qBLKN/2。q++) {dispram[i+q*32]=0xff。} if (i%2) delay(120)。 } delay(1000)。 //第三種顯示效果:右移出顯示 for (i=0。 iTOTAL。 i++) { for (j=2。 j0。 j) for (k=0。 k8。 k++) { for (l=0。 l16。 l++) { for(q=0。qBLKN/2。q++) { dispram[l*2+1+q*32] = dispram[l*2+1+q*32]1 | dispram[l*2+q*32]7。 if(q==0) dispram[l*2+q*32] = dispram[l*2+q*32]1 | Bmp[i][l*2+j1](7k)。 else dispram[l*2+q*32] = dispram[l*2+q*32]1 | dispram[l*2+1+(q1)*32]7。 } } delay(100)。 } } delay(3000)。 //第四種顯示效果:卷簾入 for (i=0。i32。i++) { for(q=0。qBLKN/2。q++) {dispram[i+q*32]= 0x00。} if (i%2) delay(100)。 } } } 電子競賽培訓(xùn) 以顯示漢字 “ 我 ” 為例,來說明其掃描原理 單片機(jī)首先由 P2口輸出顯示數(shù)據(jù)信號給右部分的第一行如圖 9所示,即第一行的 P20P27口。方向?yàn)?P20到 P27 ,顯示漢字“我”時, P21點(diǎn)亮 ,由左到右排,為 P20滅, P21亮 , P22滅, P23滅 , P24滅 , P25滅 , P26滅 , P27滅。即二進(jìn)制00000010,轉(zhuǎn)換為 16進(jìn)制為 0x02。 ? 右部分的第一行完成后,繼續(xù)掃描左半部的第一行,為了接線的方便,我們?nèi)栽O(shè)計成由左往右掃描,即從 P00向 P07方向掃描,從上圖可以看到,這一行只有 P0 P06亮,其它滅, 即為 00000110, 16進(jìn)制則為 0x60。然后單片機(jī)再次轉(zhuǎn)向右半部第二行,仍為 P2 P23點(diǎn)亮,為 01010000,即 16進(jìn)制 0x0A。這一行完成后繼續(xù)進(jìn)行左半部分的第二行掃描, P0 P0 P04點(diǎn)亮,為二進(jìn)制 00111000,即 16進(jìn)制 0x1C。 ? 依照這個方法,繼續(xù)進(jìn)行下面的掃描,一共掃描 32個 8位,可以得出漢字“我”的掃描代碼為: ? 0x02,0x60,0x0A,0x1C,0x12,0x10,0x12,0x10, ? 0x02,0x10,0x7F,0xFF,0x02,0x10,0x12,0x10, ? 0x14,0x70,0x0C,0x1C,0x04,0x13,0x0A,0x10, ? 0x49,0x90,0x50,0x10,0x60,0x14,0x40,0x08 ? 由這個原理可以看出, 無論顯示何種字體或圖像, 都可以用這個方法來分析出它的掃描代碼從而顯示在屏幕上。 ? 不過現(xiàn)在有很多現(xiàn)成的漢字字模生成軟件, 我們就不必自己去畫表格算代碼了。 電子競賽培訓(xùn) “機(jī)”的碼字 (共陰極) 電子競賽培訓(xùn) 動態(tài)掃描顯示的方式,顯示字符“ B” 的過程 電子競賽培訓(xùn) 靜態(tài)顯示“我”字的程序清單 ? include ? define CCED2 0x0000 /*我 */ ? unsigned char code word_zai[16][2] = {/*我 CCED2 */ ? 0x02,0x60,0x0A,0x1C,0x12,0x10,0x12,0x10, ? 0x02,0x10,0x7F,0xFF,0x02,0x10,0x12,0x10, ? 0x14,0x70,0x0C,0x1C,0x04,0x13,0x0A,0x10, ? 0x49,0x90,0x50,0x10,0x60,0x14,0x40,0x08}。 ? void main() ? { char scan,i,j。 ? P0=0。P1=0。P2=0。 ? while(1) ? { scan=0。 ? for(i=0。i16。i++) ?
點(diǎn)擊復(fù)制文檔內(nèi)容
高考資料相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1