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

正文內(nèi)容

基于單片機(jī)的數(shù)控調(diào)頻發(fā)射臺(tái)的設(shè)計(jì)畢業(yè)論文-資料下載頁(yè)

2025-06-20 12:39本頁(yè)面
  

【正文】 、C1C1C1C2C2C3C401049STC89C51單片機(jī)1LCD1602液晶顯示器1CCC2C2C281u5JT212M1 附錄3 系統(tǒng)軟件程序include include define uint unsigned intdefine uchar unsigned char//Port Definitions**********************************************************sbit LcdRs = P2^5。sbit LcdRw = P2^6。sbit LcdEn = P2^7。sfr DBPort = 0x80。 //P0=0x80,P1=0x90,P2=0xA0,P3=sfr SelPort = 0xB0。sfr KeyPort = 0x90。uchar k。uchar *clear = 。uchar key[3] = { 0 }。//內(nèi)部等待函數(shù)**************************************************************************unsigned char LCD_Wait(void){ LcdRs=0。 LcdRw=1。 _nop_()。 LcdEn=1。 _nop_()。 //while(DBPortamp。0x80)。//在用Proteus仿真時(shí),注意用屏蔽此語(yǔ)句,在調(diào)用GotoXY()時(shí),會(huì)進(jìn)入死循環(huán), //可能在寫該控制字時(shí),該模塊沒有返回寫入完備命令,即DBPortamp。0x80==0x80 //實(shí)際硬件時(shí)打開此語(yǔ)句 LcdEn=0。 return DBPort。 }//向LCD寫入命令或數(shù)據(jù)************************************************************define LCD_COMMAND 0 // Commanddefine LCD_DATA 1 // Datadefine LCD_CLEAR_SCREEN 0x01 // 清屏define LCD_HOMING 0x02 // 光標(biāo)返回原點(diǎn)void LCD_Write(bit style, unsigned char input){ LcdEn=0。 LcdRs=style。 LcdRw=0。 _nop_()。 DBPort=input。 _nop_()。//注意順序 LcdEn=1。 _nop_()。//注意順序 LcdEn=0。 _nop_()。 LCD_Wait()。 }//設(shè)置顯示模式************************************************************define LCD_SHOW 0x04 //顯示開define LCD_HIDE 0x00 //顯示關(guān) define LCD_CURSOR 0x02 //顯示光標(biāo)define LCD_NO_CURSOR 0x00 //無(wú)光標(biāo) define LCD_FLASH 0x01 //光標(biāo)閃動(dòng)define LCD_NO_FLASH 0x00 //光標(biāo)不閃動(dòng)void LCD_SetDisplay(unsigned char DisplayMode){ LCD_Write(LCD_COMMAND, 0x08|DisplayMode)。 }//設(shè)置輸入模式************************************************************define LCD_AC_UP 0x02define LCD_AC_DOWN 0x00 // defaultdefine LCD_MOVE 0x01 // 畫面可平移define LCD_NO_MOVE 0x00 //defaultvoid LCD_SetInput(unsigned char InputMode){ LCD_Write(LCD_COMMAND, 0x04|InputMode)。}//移動(dòng)光標(biāo)或屏幕************************************************************/*define LCD_CURSOR 0x02 define LCD_SCREEN 0x08define LCD_LEFT 0x00define LCD_RIGHT 0x04void LCD_Move(unsigned char object, unsigned char direction){ if(object==LCD_CURSOR) LCD_Write(LCD_COMMAND,0x10|direction)。 if(object==LCD_SCREEN) LCD_Write(LCD_COMMAND,0x18|direction)。}*///初始化LCD************************************************************void LCD_Initial(){ LcdEn=0。 LCD_Write(LCD_COMMAND,0x38)。 //8位數(shù)據(jù)端口,2行顯示,5*7點(diǎn)陣 LCD_Write(LCD_COMMAND,0x38)。 LCD_SetDisplay(LCD_SHOW|LCD_NO_CURSOR)。 //開啟顯示, 無(wú)光標(biāo) LCD_Write(LCD_COMMAND,LCD_CLEAR_SCREEN)。 //清屏 LCD_SetInput(LCD_AC_UP|LCD_NO_MOVE)。 //AC遞增, 畫面不動(dòng)}//液晶字符輸入的位置************************void GotoXY(unsigned char x, unsigned char y){ if(y==0) LCD_Write(LCD_COMMAND,0x80|x)。 if(y==1) LCD_Write(LCD_COMMAND,0x80|(x0x40))。}//將字符輸出到液晶顯示void Print(unsigned char *str){ while(*str!=39。\039。)//while(*str!=39。\039。) { LCD_Write(LCD_DATA,*str)。 str++。 }}//延遲1msvoid Delay1ms(unsigned int count){ unsigned int i,j。 for(i=0。icount。i++) for(j=0。j120。j++)。}void delay10ms(void) //延時(shí)程序{ unsigned char i,j。 for(i=100。i0。i) for(j=100。j0。j)。 }void Getch (){ unsigned char X,Y,Z。 KeyPort=0xff。 KeyPort=0x0f。 //先對(duì)P1置數(shù) 行掃描 if(P3!=0x0f) //判斷是否有鍵按下 { delay10ms()。 //延時(shí),軟件去干擾 if(KeyPort!=0x0f) //確認(rèn)按鍵按下X = P3。 { X=KeyPort。 //保存行掃描時(shí)有鍵按下時(shí)狀態(tài) KeyPort=0xf0。 //列掃描 Y=KeyPort。 //保存列掃描時(shí)有鍵按下時(shí)狀態(tài) Z=X|Y。 //取出鍵值 switch ( Z ) //判斷鍵值(那一個(gè)鍵按下) { case 0xee: k=4。 SelPort = 0xFC。 GotoXY(0,1)。Print( )。break。 //在液晶第二行,開頭處顯示 下同 case 0xde: k=3。 SelPort = 0xF4。 GotoXY(0,1)。Print( )。break。 case 0xbe: k=2。 SelPort = 0xF8。 GotoXY(0,1)。Print( )。break。 case 0x7e: k=1。 SelPort = 0xF0。 GotoXY(0,1)。Print()。break。 case 0xed: k=8。 SelPort = 0xFE。 GotoXY(0,1)。Print(STOP )。break。 case 0xdd: k=7。 SelPort = 0xF6。 GotoXY(0,1)。Print( )。break。 case 0xbd: k=6。 SelPort = 0xFA。 GotoXY(0,1)。Print( )。break。 case 0x7d: k=5。 SelPort = 0xF2。 GotoXY(0,1)。Print( )。break。 case 0xeb: k=12。SelPort = 0xFD。 GotoXY(0,1)。Print()。break。 case 0xdb: k=11。SelPort = 0xF5。 GotoXY(0,1)。Print()。break。 case 0xbb: k=10。SelPort = 0xF9。 GotoXY(0,1)。Print()。break。 case 0x7b: k=9。 SelPort = 0xF1。 GotoXY(0,1)。Print()。break。 case 0xe7: k=16。SelPort = 0xFF。 GotoXY(0,1)。Print(stop )。break。 case 0xd7: k=15。SelPort = 0xF7。 GotoXY(0,1)。Print()。break。 case 0xb7: k=14。SelPort = 0xFB。 GotoXY(0,1)。Print()。break。 case 0x77: k=13。SelPort = 0xF3。 GotoXY(0,1)。Print()。break。 }/************顯示按鍵號(hào)*****************///需要轉(zhuǎn)換成字符才能在液晶上顯示 if(k 9) //如果大于9,就是兩位數(shù),需要顯示兩個(gè)字符 { //+0x30是因?yàn)橐颜麛?shù)轉(zhuǎn)換成字符 key[0] = k/10 + 0x30。 //將k的十位提取出來(lái),并轉(zhuǎn)換成字符 key[1] = k%10 + 0x30。 //將k的個(gè)位提取出來(lái),并轉(zhuǎn)換成字符 key[2] = 39。\039。 //以空字符結(jié)尾 } else { key[0] = k + 0x30。 //如果只有個(gè)位數(shù)的話,就直接轉(zhuǎn)換 key[1] = 39。 39。 key[2] = 39。\039。 } GotoXY(0,0)。 Print(key)。/*****************************************************/ } }}int main(){ SelPort = 0xff。 Delay1ms(800)。 LCD_Initial()。 //液晶初始化 GotoXY(0,0)。 //將液晶第一行清空 Print(clear)。 GotoXY(0,1)。 //將液晶第二行清空 Print(clear)。 while(1) { Getch ()。 //掃描按鍵 }。} 附錄4 設(shè)計(jì)實(shí)物圖第52頁(yè) 共49頁(yè)
點(diǎn)擊復(fù)制文檔內(nèi)容
環(huán)評(píng)公示相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1