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

正文內(nèi)容

畢業(yè)論文無線鼠標(biāo)的設(shè)計(jì)與實(shí)現(xiàn)-資料下載頁

2024-10-07 09:33本頁面

【導(dǎo)讀】而鼠標(biāo)是人們操作計(jì)算機(jī)的最重要的外設(shè),隨著無線通信技術(shù)的發(fā)展,無線。鼠標(biāo)也將逐步取代有線鼠標(biāo),成為主流的產(chǎn)品。USB接口作為近年來發(fā)展較快的一種通信。方式,逐漸代替了PS/2串行接口通信。PS/2鼠標(biāo)逐漸退出市場,如果在單片機(jī)應(yīng)用中能。充分利用這些資源將可以設(shè)計(jì)出性價(jià)比很高又很有創(chuàng)意的產(chǎn)品。PS/2鼠標(biāo)解碼的硬件和軟件的設(shè)計(jì),對(duì)鼠標(biāo)信息進(jìn)行解碼。解碼后利用LCD1602顯示鼠

  

【正文】 _string(0, 8, y: ); num(0, 10, move_y); //y 坐標(biāo)值 if(mouse_data[0]amp。0x01) //如果點(diǎn)下左鍵 { LCD1602_write_string(1, 0, left); mosleft=0; } else mosleft = 1; if(mouse_data[0]amp。0x02) //如果點(diǎn)下右鍵 { LCD1602_write_string(1, 0, right); mosright=0; } else mosright = 1; if(mouse_data[0]amp。0x04) //如果點(diǎn)下中鍵 { LCD1602_write_string(1, 0, middle); } if((mouse_data[0]amp。0x0f)==0x08) { LCD1602_write_string(1, 0, nothing); mosright=1; mosleft=1; } delayms(50); } } /**********************鼠標(biāo)驅(qū)動(dòng)頭文件 ******************/ include include ifndef __MOUSE_H__ define __MOUSE_H__ sbit mouse_SDA=P3^6; //數(shù)據(jù)線 P3_6 sbit mouse_CLK=P3^3; //時(shí)鐘線 P3_3 sbit up=P1^0; sbit down=P1^1; sbit left=P1^2; sbit right=P1^3; sbit mosleft=P3^0; sbit mosright=P3^1; unsigned char bdata mouse_byte; //接收字節(jié) sbit mouse_byte_bit0=mouse_byte^0; //mouse_byte 第 0 位 sbit mouse_byte_bit1=mouse_byte^1; //mouse_byte 第 1 位 sbit mouse_byte_bit2=mouse_byte^2; //mouse_byte 第 2 位 sbit mouse_byte_bit3=mouse_byte^3; //mouse_byte 第 3 位 sbit mouse_byte_bit4=mouse_byte^4; //mouse_byte 第 4 位 sbit mouse_byte_bit5=mouse_byte^5; //mouse_byte 第 5 位 sbit mouse_byte_bit6=mouse_byte^6; //mouse_byte 第 6 位 無線鼠標(biāo)的設(shè)計(jì)與實(shí)現(xiàn) 28 sbit mouse_byte_bit7=mouse_byte^7; //mouse_byte 第 7 位 unsigned char bdata mouse_fuction; //功能信息字節(jié) unsigned char mouse_buffer[11]; //接收位數(shù)據(jù)緩沖區(qū) unsigned char mouse_buffer_bit=0; //mouse_buffer[mouse_buffer_bit] unsigned char mouse_data[3]; //接收鼠標(biāo)數(shù)據(jù)緩沖區(qū),分別存放:功能信息字節(jié), x 位移量, y 位移量 unsigned char mouse_data_bit=0; //mouse_data[mouse_data_bit] unsigned int move_x=10000; //存放橫坐標(biāo) unsigned int move_y=10000; //存放縱坐標(biāo) unsigned int pre_move_x=10000; //存放橫坐標(biāo) unsigned int pre_move_y=10000; //存放縱坐標(biāo) void Init_mouse(void) { TCON=0x00; EA=1; EX1=1; //允許外部中斷 1 ET0=0x01; //允許全局中斷,允許定時(shí)器 /計(jì)數(shù)器 0 溢出中斷 PX1=1; //設(shè)置中斷優(yōu)先級(jí) } /********* 發(fā)送數(shù)據(jù) *********/ void mouse_send_data(unsigned char dat) { unsigned char i; EX1=0; /*關(guān)閉外部中斷 1*/ ACC=dat; /*將要發(fā) 送的數(shù)據(jù)放入 A 寄存器 */ mouse_CLK=0; /*拉低時(shí)鐘線 */ delay10us(200); /*延時(shí) 100us 以上 */ mouse_SDA=0; /*拉低數(shù)據(jù)線 */ delay10us(40); mouse_CLK=1; /*釋放時(shí)鐘線 */ for(i=0; i=7; i++) /*低位在前,一次發(fā)送 8 個(gè)數(shù)據(jù)位 */ { while(mouse_CLK==1); /*等待設(shè)備拉低時(shí)鐘線 */ mouse_SDA=(dati)amp。0x01; /*發(fā)送數(shù)據(jù)位 */ while(mouse_CLK==0); /*等待設(shè)備釋放時(shí)鐘線 */ } while(mouse_CLK==1); mouse_SDA=~P; /*發(fā)送校驗(yàn)位,奇校驗(yàn) */ while(mouse_CLK==0); while(mouse_CLK==1); mouse_SDA=1; /*發(fā)送停止位 */ while(mouse_CLK==0); while(mouse_CLK==1); /*應(yīng)答位 */ while(mouse_CLK==0); EX1=1; /*打開外部中斷 1*/ } /********************************************* 奇校檢 **********************************************/ unsigned char Checkout(void) { ACC=mouse_byte; if(~P==mouse_buffer[9]) return 1; 河北北方 學(xué)院 2020 屆 本科生畢業(yè)論文 29 else return 0; } /********* 數(shù)據(jù)分析及處理 **********/ void data_analyse(void) //將收到的 11 位信號(hào)中截取 8 位數(shù)據(jù)放進(jìn) mouse_byte { mouse_byte_bit0=mouse_buffer[1]; mouse_byte_bit1=mouse_buffer[2]; mouse_byte_bit2=mouse_buffer[3]; mouse_byte_bit3=mouse_buffer[4]; mouse_byte_bit4=mouse_buffer[5]; mouse_byte_bit5=mouse_buffer[6]; mouse_byte_bit6=mouse_buffer[7]; mouse_byte_bit7=mouse_buffer[8]; if(Checkout()) //如果校驗(yàn)正確 { if(mouse_data_bit3) mouse_data[mouse_data_bit++]=mouse_byte; if(mouse_data_bit==3) { mouse_data_bit=0; if(mouse_data[0]amp。0x10) //如果 X sign bit為 1,表示鼠標(biāo)向左移 { move_x=(256mouse_data[1]); if(move_x!=pre_move_x) { pre_move_x=move_x; left=0; right = 1; } else { left = 1; } } else { move_x+=mouse_data[1]; if(move_x!=pre_move_x) { pre_move_x=move_x; right=0; left = 1; } else { right = 1; } } delayms(7); if(mouse_data[0]amp。0x20) { 無線鼠標(biāo)的設(shè)計(jì)與實(shí)現(xiàn) 30 move_y=(256mouse_data[2]); if(move_y!=pre_move_y) { pre_move_y = move_y; down=0; up = 1; } else { down = 1; } } else { move_y+=mouse_data[2]; if(move_y!=pre_move_y) { pre_move_y = move_y; up=0; down = 1; } else { up = 1; } } delayms(7); } } } /************************ LCD1602 顯示 ***********************/ ifndef LCD1602_H define LCD1602_H include define LCD1602_DATA P0 sbit LCD1602_RS=P2^5; sbit LCD1602_RW=P2^6; sbit LCD1602_EN=P2^7; void LCD1602_Init(void); //液晶初始化 void LCD1602_write_cmd(unsigned char mand); //寫命令 void LCD1602_write_data(unsigned char temp); //寫數(shù)據(jù) void LCD1602_set_xy(unsigned char x, unsigned char y); //設(shè)置坐標(biāo) void LCD1602_write_char(unsigned x, unsigned char y, unsigned char dat); //寫一個(gè)字符到第x 行 y 列 void LCD1602_write_string(unsigned char x, unsigned char y, unsigned char *s); //寫字符串到第 x 行 y 列 void LCD1602_Read_BF(void); //讀忙信號(hào) void num(unsigned char x, unsigned char y, unsigned int n); //在第 x 行 , 第 y 列顯示整型數(shù)字n void LCD1602_Init(void) { LCD1602_write_cmd(0x28); LCD1602_write_cmd(0x28); LCD1602_write_cmd(0x28); //設(shè)置 4 位數(shù)據(jù)傳輸模式 LCD1602_write_cmd(0x0C); LCD1602_write_cmd(0x80); LCD1602_write_cmd(0x01); 河北北方 學(xué)院 2020 屆 本科生畢業(yè)論文 31 } void LCD1602_Read_BF(void) { LCD1602_RW=1; //RW 1 LCD1602_RS=0; //RS 0 LCD1602_EN=1; //EN 1 Read B
點(diǎn)擊復(fù)制文檔內(nèi)容
黨政相關(guān)相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1