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

正文內(nèi)容

基于51單片機(jī)的簡(jiǎn)易帶密碼計(jì)算器設(shè)計(jì)報(bào)告-文庫(kù)吧

2025-06-03 21:42 本頁(yè)面


【正文】 算器輸入數(shù)字和其他功能按鍵要用到很多按鍵,如果采用獨(dú)立按鍵的方式,在這種情況下,編程會(huì)很簡(jiǎn)單,但是會(huì)占用大量的I/O 口資源,因此在很多情況下都不采用這種方式,而是采用矩陣鍵盤的方案。矩陣鍵盤采用四條I/O 線作為行線,四條I/O 線作為列線組成鍵盤,在行線和列線的每個(gè)交叉點(diǎn)上設(shè)置一個(gè)按鍵。這樣鍵盤上按鍵的個(gè)數(shù)就為44個(gè)。這種行列式鍵盤結(jié)構(gòu)能有效地提高單片機(jī)系統(tǒng)中I/O 口的利用率。矩陣鍵盤的工作原理:計(jì)算器的鍵盤布局如圖1所示:一般有16個(gè)鍵組成,在單片機(jī)中正好可以用一個(gè)P口實(shí)現(xiàn)16個(gè)按鍵功能,這種形式在單片機(jī)系統(tǒng)中也最常用。矩陣鍵盤內(nèi)部電路圖如圖所示:鍵盤掃描函數(shù)代碼:unsigned char KeyScan(void) //鍵盤掃描函數(shù),使用行列反轉(zhuǎn)掃描法{ unsigned char cord_h,cord_l。//行列值中間變量 KeyPort=0x0f。 //行線輸出全為0 cord_h=KeyPortamp。0x0f。 //讀入列線值 if(cord_h!=0x0f) //先檢測(cè)有無(wú)按鍵按下 { DelayMs(10)。 //去抖 if((KeyPortamp。0x0f)!=0x0f) { cord_h=KeyPortamp。0x0f。 //讀入列線值 KeyPort=cord_h|0xf0。 //輸出當(dāng)前列線值 cord_l=KeyPortamp。0xf0。 //讀入行線值 while((KeyPortamp。0xf0)!=0xf0)。 //等待松開(kāi)并輸出 return(cord_h+cord_l)。 //鍵盤最后組合碼值 } }return(0xff)。 //沒(méi)按下鍵返回0xff }(四)、LCD顯示模塊:本設(shè)計(jì)采用LCD液晶顯示器來(lái)顯示輸出數(shù)據(jù)。通過(guò)D0D7引腳向LCD寫指令字或?qū)憯?shù)據(jù)以使LCD實(shí)現(xiàn)不同的功能或顯示相應(yīng)數(shù)據(jù)。(protues仿真圖) 1602LCD主要技術(shù)參數(shù):顯示容量:162個(gè)字符芯片工作電壓:—工作電流:()模塊最佳工作電壓:字符尺寸:(WH)mm引腳功能說(shuō)明1602LCD采用標(biāo)準(zhǔn)的14腳(無(wú)背光)或16腳(帶背光)接口,各引腳接口說(shuō)明如表1013所示:編號(hào)符號(hào)引腳說(shuō)明編號(hào)符號(hào)引腳說(shuō)明1VSS電源地9D2數(shù)據(jù)2VDD電源正極10D3數(shù)據(jù)3VL液晶顯示偏壓11D4數(shù)據(jù)4RS數(shù)據(jù)/命令選擇12D5數(shù)據(jù)5R/W讀/寫選擇13D6數(shù)據(jù)6E使能信號(hào)14D7數(shù)據(jù)7D0數(shù)據(jù)15BLA背光源正極8D1數(shù)據(jù)16BLK背光源負(fù)極10.8.2.3 1602LCD的指令說(shuō)明及時(shí)序1602液晶模塊內(nèi)部的控制器共有11條控制指令,如表1014所示:序號(hào)指令RSR/WD7D6D5D4D3D2D1D01清顯示00000000012光標(biāo)返回000000001*3置輸入模式00000001I/DS4顯示開(kāi)/關(guān)控制0000001DCB5光標(biāo)或字符移位000001S/CR/L**6置功能00001DLNF**7置字符發(fā)生存貯器地址0001字符發(fā)生存貯器地址8置數(shù)據(jù)存貯器地址001顯示數(shù)據(jù)存貯器地址9讀忙標(biāo)志或地址01BF計(jì)數(shù)器地址10寫數(shù)到CGRAM或DDRAM)10要寫的數(shù)據(jù)內(nèi)容11從CGRAM或DDRAM讀數(shù)11讀出的數(shù)據(jù)內(nèi)容與HD44780相兼容的芯片時(shí)序表如下:讀狀態(tài)輸入RS=L,R/W=H,E=H輸出D0—D7=狀態(tài)字寫指令輸入RS=L,R/W=L,D0—D7=指令碼,E=高脈沖輸出無(wú)讀數(shù)據(jù)輸入RS=H,R/W=H,E=H輸出D0—D7=數(shù)據(jù)寫數(shù)據(jù)輸入RS=H,R/W=L,D0—D7=數(shù)據(jù),E=高脈沖輸出無(wú)表1015:基本操作時(shí)序表寫操作時(shí)序如圖所示:寫操作時(shí)序:/* 引腳定義如下:1VSS 2VDD 3V0 4RS 5R/W 6E 714 DB0DB7 15BLA 16BLK*/include include define CHECK_BUSYsbit RS = P2^0。 //液晶定義端口 sbit RW = P2^1。 //sbit EN = P2^2。 //define RS_CLR RS=0 define RS_SET RS=1define RW_CLR RW=0 define RW_SET RW=1 define EN_CLR EN=0define EN_SET EN=1define DataPort P0/* 寫入命令函數(shù)*/ void LCD_Write_Com(unsigned char ) { // while(LCD_Check_Busy())。 //忙則等待 DelayMs(5)。 RS_CLR。 RW_CLR。 EN_SET。 DataPort= 。 _nop_()。 EN_CLR。 }/* 寫入數(shù)據(jù)函數(shù)*/ void LCD_Write_Data(unsigned char Data) { //while(LCD_Check_Busy())。 //忙則等待 DelayMs(5)。 RS_SET。 RW_CLR。 EN_SET。 DataPort= Data。 _nop_()。 EN_CLR。 }/* 清屏函數(shù)*/ void LCD_Clear(void) { LCD_Write_Com(0x01)。 DelayMs(5)。 }/* 靜態(tài)顯示字符串函數(shù)*/ void LCD_Write_String(unsigned char x,unsigned char y,unsigned char *s) { while (*s) { LCD_Write_Char(x,y,*s)。 s ++。 x++。 } } /* 移動(dòng)顯示字符串函數(shù)*/ void LCD_Write_String_Move(unsigned char x,unsigned char y,unsigned char *s) { //字符串的起始位置 ,字符串的行0為第一行1為第二行,放字符串 if (y == 0) { LCD_Write_Com(0x80 + x)。 //表示第一行 } else { LCD_Write_Com(0xC0 + x)。 //表示第二行 } while (*s) { LCD_Write_Data( *s)。 s ++。 } }/* 寫入字符函數(shù)*/void LCD_Write_Char(unsigned char x,unsigned char y,unsigned char Data) { if (y == 0) { LCD_Write_Com(0x80 + x)。 } else { LCD_Write_Com(0xC0 + x)。 } LCD_Write_Data( Data)。 }/* 初始化函數(shù)*/ void LCD_Init(void) { LCD_Write_Com(0x38)。 /*顯示模式設(shè)置*/ DelayMs(5)。 LCD_Write_Com(0x38)。 DelayMs(5)。 LCD_Write_Com(0x38)。 DelayMs(5)。 LCD_Write_Com(0x38)。 LCD_Write_Com(0x08)。 /*顯示關(guān)閉*/ LCD_Write_Com(0x01)。 /*顯示清屏*/ LCD_Write_Com(0x06)。 /*顯示光標(biāo)移動(dòng)設(shè)置*/ DelayMs(5)。 LCD_Write_Com(0x0C)。 /*顯示開(kāi)及光標(biāo)設(shè)置*/ }(五)運(yùn)算模塊(單片機(jī)控制):MCS51 單片機(jī)是在一塊芯片中集成了CPU、RAM、ROM、定時(shí)器/計(jì)數(shù)器和多功能I/O等一臺(tái)計(jì)算機(jī)所需要的基本功能部件。如果按功能劃分,它由如下功能部件組成,即微處理器(CPU)、數(shù)據(jù)存儲(chǔ)器(RAM)、程序存儲(chǔ)器(ROM/EPROM)、并行I/O 口、串行口、定時(shí)器/計(jì)數(shù)器、中斷系統(tǒng)及特殊功能寄存器(SFR)。單片機(jī)是靠程序運(yùn)行的,并且可以修改。通過(guò)不同的程序?qū)崿F(xiàn)不同的功能,尤其是特殊的獨(dú)特的一些功能,通過(guò)使用單片機(jī)編寫的程序可以實(shí)現(xiàn)高智能,高效率,以及高可靠性!因此我們采用單片機(jī)作為計(jì)算器的主要功能部件,可以很快地實(shí)現(xiàn)運(yùn)算功能。運(yùn)算模塊具體代碼void calculate(void){ unsigned c
點(diǎn)擊復(fù)制文檔內(nèi)容
環(huán)評(píng)公示相關(guān)推薦

畢業(yè)設(shè)計(jì)(論文)-基于mc51單片機(jī)的簡(jiǎn)易計(jì)算器設(shè)計(jì)-資料下載頁(yè)

【總結(jié)】電》