具体的还有一些问题,请大家看看
下载:
单片机练习.zip
(46.26 KB, 下载次数: 12)
主程序预览:
- #include <reg52.h>
- #include <LCD1602_4.h>
- #include <mouse.h>
- #include <string.h>
- #include <DELAY52.h>
- sbit beep=P3^7;
- void main()
- {
- mouse_SDA=1;
- mouse_CLK=1;
- LCD1602_Init(); //初始化液晶屏幕1602
- LCD1602_write_cmd(0x80);//写命令,光标定位在第一行
- write_bytes("Initializing````");
- LCD1602_Init(); //初始化液晶屏幕1602
- CLEARSCREEN; //清屏
- Init_mouse(); //中断
- delayms(500); //延时500ms,必须
- num(0,2,mouse_byte); //LCD显示
- delayms(500);
- host_to_mouse(0xf3); //设置采样频率
- num(0,2,mouse_byte); //LCD显示
- num(0,10,1);
- delayms(500);
- delay10us(1);
- host_to_mouse(0xc8);
- num(0,2,mouse_byte);
- num(0,10,2);
- delayms(500);
- delay10us(1);
- host_to_mouse(0xf3);
- num(0,2,mouse_byte);
- num(0,10,3);
- delayms(500);
- host_to_mouse(0x64);
- num(0,2,mouse_byte);
- num(0,10,4);
- delayms(500);
- host_to_mouse(0xf3);
- num(0,2,mouse_byte);
- num(0,10,5);
- delayms(500);
- host_to_mouse(0x50);
- num(0,2,mouse_byte);
- num(0,10,6);
- delayms(50);
- delay10us(1);
- host_to_mouse(0xf2);
- num(0,2,mouse_byte);
- num(0,10,7);
- delayms(50);
- if(mouse_byte==0x03)
- {
- LCD1602_write_string(0,0,"ok");
- delayms(500);
- }
- else
- {
- LCD1602_write_string(0,0,"DE");
- delayms(500);
- }
- delayms(500);
- while(1);
- {
- led=1;
- CLEARSCREEN;//清屏
- LCD1602_write_string(0,0,"x:");
- num(0,2,move_x);//X坐标值
- LCD1602_write_string(0,0,"y:");
- num(0,10,move_y);//Y坐标值
- LCD1602_write_string(0,0,"z:");
- num(1,10,move_z);//Z坐标值
- if(mouse_data[0]&0x01)//如果点下左键
- {
- beep=0;
- LCD1602_write_string(1,0,"left");
- }
- else if(mouse_data[0]&0x02)//如果点下右键
- {
- beep=0;
- LCD1602_write_string(1,0,"right");
- }
- else if(mouse_data[0]&0x04)//如果点下中键
- {
- beep=0;
- LCD1602_write_string(1,0,"middle");
- }
- else
- {
- beep=1;
- LCD1602_write_string(1,0,"nothing");
- }
- delayms(50);
- }
- }
复制代码
|