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

正文內(nèi)容

可編程彩燈控制器畢業(yè)論文(編輯修改稿)

2024-10-04 13:52 本頁(yè)面
 

【文章內(nèi)容簡(jiǎn)介】 即為輸出顯示設(shè)備,由P2口和P0口共同控制。 圖33 系統(tǒng)原理圖 顯示電路此顯示部分時(shí)由一個(gè)個(gè)LED發(fā)光二極管構(gòu)成的,它具有單向?qū)щ娦裕话阃ㄟ^(guò)5mA左右的電流即可發(fā)光,一般控制在3mA~20mA之間。電流越大,其亮度越強(qiáng),但若電流過(guò)大,會(huì)引起二極管或單片機(jī)I/O口引腳的燒毀。因此在設(shè)計(jì)硬件電路時(shí),要在LED二極管電路中串接一個(gè)限流電阻,阻值在300~1之間,調(diào)節(jié)阻值的大小可以控制發(fā)光二極管的發(fā)光亮度。在使用數(shù)字集成電路時(shí),拉電流輸出和灌電流輸出是一個(gè)很重要的概念,兩者都是針對(duì)端口而言的,是衡量電路輸出驅(qū)動(dòng)能力的參數(shù)。由于數(shù)字電路的輸出只有高、低(0、1)兩種電平值,對(duì)一個(gè)端口而言,如果電流的方向是向其外部流動(dòng)的則是“拉電流”,一般是對(duì)負(fù)載提供電流,其提供電流的數(shù)值叫“拉電流”。如果電流方向是向其內(nèi)部流動(dòng)的則是“灌電流”,一般是要吸收負(fù)載的電流,其吸收電流的數(shù)值叫“灌電流”。AT89C51單片機(jī)I/O口內(nèi)部結(jié)構(gòu)決定了灌電流能力比較大,拉電流能力比較小。所以在實(shí)際設(shè)計(jì)中應(yīng)當(dāng)盡量采用灌電流。圖34為可編程彩燈控制器顯示部分。由于AT89C51單片機(jī)P0口內(nèi)部沒(méi)有上拉電阻,呈現(xiàn)高阻狀態(tài),所以不能正常地輸出高、低電平,因此該組I/O口在使用時(shí)務(wù)必要外接上拉電阻。本設(shè)計(jì)采用10k的排阻。顯示元件采用88單色LED點(diǎn)陣顯示器。LED點(diǎn)陣顯示器單塊使用時(shí),既可替代數(shù)碼管顯示數(shù)字,也可顯示各種中西文字及符號(hào)。在實(shí)際應(yīng)用中一般采用動(dòng)態(tài)顯示方式,動(dòng)態(tài)顯示采用掃描的方式工作,從上到下逐次不斷地對(duì)顯示屏的各行進(jìn)行選通,同時(shí)又向各列送出表示圖形或文字信息的列數(shù)據(jù)信號(hào),反復(fù)循環(huán)以上操作,就可顯示各種圖形或文字。 圖34 顯示部分為了保證各個(gè)數(shù)碼管的顯示效果不產(chǎn)生閃爍,則首先應(yīng)保證在1s內(nèi)循環(huán)掃描各行的次數(shù)大于25次。這里利用了人眼的視覺(jué)滯留效應(yīng)。本例中選擇40次,即至少每隔1000ms/40=25ms將8行循環(huán)掃描一次。第二,要注意的是,在25ms時(shí)間內(nèi),要逐一輪流點(diǎn)亮8行,而且每行點(diǎn)亮的持續(xù)時(shí)間要相同,這樣亮度才能均勻。第三,在25ms內(nèi)點(diǎn)亮每行的時(shí)間,如果這個(gè)時(shí)間長(zhǎng),則數(shù)碼管的亮度高,反之則暗。 第四章 軟件設(shè)計(jì) 軟件開(kāi)發(fā)流程圖41為系統(tǒng)主程序流程圖,系統(tǒng)上電后初始化,進(jìn)入按鍵掃描程序,當(dāng)有相應(yīng)按鍵按下時(shí),執(zhí)行相應(yīng)顯示方式。本系統(tǒng)共有8個(gè)按鍵,對(duì)應(yīng)8種不同的顯示方式。開(kāi)始否否否否否否否否按鍵8按鍵7按鍵6按鍵5按鍵4按鍵3按鍵2按鍵1是是是是是是是是方式8方式7方式6方式5方式4方式3方式2方式1結(jié)束圖41 主程序流程圖 代碼分析本系統(tǒng)程序代碼如下。(1) 函數(shù)聲明及變量定義 nclude void delay_ms(unsigned int)。 //函數(shù)聲明void disp0(void)。void disp1(void)。 void disp2(void)。 void disp3(void)。 void disp4(void)。 void disp5(void)。 void disp6(void)。 void disp7(void)。 unsigned char code biao0[]={ //流動(dòng)箭頭方式0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x18,0x3C,0x7E,0xDB,0x99,0x18,0x18,0x18, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}。 unsigned char code biao1[4][8]={ //漸大四邊形0x00,0x00,0x00,0x18,0x18,0x00,0x00,0x00, 0x00,0x00,0x3C,0x24,0x24,0x3C,0x00,0x00, 0x00,0x7E,0x42,0x42,0x42,0x42,0x7E,0x00, 0xFF,0x81,0x81,0x81,0x81,0x81,0x81,0xFF}。 unsigned char code biao2[7][8]={ //圓邊四邊形0x00,0x00,0x00,0x18,0x18,0x00,0x00,0x00, 0x00,0x00,0x18,0x24,0x24,0x18,0x00,0x00, 0x00,0x18,0x24,0x42,0x42,0x24,0x18,0x00, 0x18,0x24,0x42,0x81,0x81,0x42,0x24,0x18, 0x24,0x42,0x81,0x00,0x00,0x81,0x42,0x24, 0x42,0x81,0x00,0x00,0x00,0x00,0x81,0x42, 0x81,0x00,0x00,0x00,0x00,0x00,0x00,0x81}。 unsigned char code biao3[][8]={ //實(shí)體四邊形0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x18,0x18,0x00,0x00,0x00, 0x00,0x00,0x18,0x3C,0x3C,0x18,0x00,0x00, 0x00,0x18,0x3C,0x7E,0x7E,0x3C,0x18,0x00, 0x18,0x3C,0x7E,0xFF,0xFF,0x7E,0x3C,0x18}。 unsigned char code biao4[10][8]={ //流動(dòng)雪花形0x00,0x00,0x00,0x18,0x18,0x00,0x00,0x00, 0x42,0xA5,0x42,0x18,0x18,0x42,0xA5,0x42, 0x04,0x0A,0x44,0xBA,0x5D,0x12,0x38,0x10, 0x04,0x4A,0xA4,0x58,0x1A,0x25,0x52,0x20, 0x04,0x4E,0xE4,0x58,0x1A,0x27,0x72,0x20, 0x42,0xA5,0x42,0x18,0x18,0x42,0xA5,0x42, 0x42,0xE7,0x42,0x18,0x18,0x42,0xE7,0x42, 0x20,0x72,0x27,0x1A,0x58,0xE4,0x4E,0x04, 0x10,0x38,0x12,0x5F,0xFA,0x48,0x1C,0x08, 0x08,0x1C,0x48,0xFA,0x5F,0x12,0x38,0x10}。 (2) 主程序本系統(tǒng)主程序主要用來(lái)檢測(cè)按鍵。當(dāng)檢測(cè)到鍵盤有鍵按下,經(jīng)去抖確定為此鍵按下時(shí),執(zhí)行相應(yīng)的功能程序。/*************************主程序***********************/void main(void){ while (1) { switch (P1) //檢測(cè)按鍵 { case 0xfe:delay_ms(10)。 //去抖動(dòng) if (P1==0xfe) //此鍵按下 { for (。) { if (P1==0xfe) //確認(rèn)此鍵按下 continue。 else break。 } for (。) //按鍵釋放檢測(cè) { while (P1==0xfe)。 //如為干擾繼續(xù)循環(huán) if (P1==0xfe) continue。 else break。 //正常釋放跳出循環(huán) } disp0()。 //執(zhí)行此按鍵功能 } break。 case 0xfd:delay_ms(10)。 //去抖動(dòng) if (P1==0xfd) //此鍵按下 { for (。) { if (P1==0xfd) //確認(rèn)此鍵按下 continue。 else break。 } for (。) //按鍵釋放檢測(cè) { while (P1==0xfd)。 //如為干擾繼續(xù)循環(huán) if (P1==0xfd) continue。 else break。 //正常釋放跳出循環(huán) } disp1()。 //執(zhí)行此按鍵功能 } break。 case 0xfb:delay_ms(10)。 //去抖動(dòng) if (P1==0xfb) //此鍵按下 { for (。) { if (P1==0xfb) //確認(rèn)此鍵按下 continue。 else break。 } for (。) //按鍵釋放檢測(cè) { while (P1==0xfb)。 //如為干擾繼續(xù)循環(huán) if (P1==0xfb) continue。 else break。 //正常釋放跳出循環(huán) } disp2()。 //執(zhí)行此按鍵功能 } break。 case 0xf7:delay_ms(10)。 //去抖動(dòng) if (P1==0xf7) //此鍵按下 { for (。) { if (P1==0xf7) //確認(rèn)此鍵按下 continue。 else break。
點(diǎn)擊復(fù)制文檔內(nèi)容
環(huán)評(píng)公示相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖片鄂ICP備17016276號(hào)-1