No.43570 作者:guest 邮件:guest@guest.com ID:6 登陆:16560次 文章数:7648篇 最后登陆IP:219.68.9.43 最后登陆:2005/5/20 1:37:44 注册:2003/3/10 16:21:00 财富:35062 发帖时间:2003/10/17 22:30:59 发贴者IP:61.187.179.69 标题:guest:ps/2 问题求救!为什么我的ps/2程序收不到pc机发过来的数据! 摘要:No.43570ps/2 问题求救!为什么我的ps/2程序收不到pc机发过来的数据! ps/2程序如下,大家帮帮我?#include <reg51.h> bit keyput_char(unsigned char put_char); unsigned char keyrev_char(); void mouseput_char(); unsigned char mouserev_char(); bit parity(); bit command(); void receive_process(); void serial_init(); void delay_16us(); void delay_24us(); void delay_ms(unsigned char ms_number); sbit key_data=P1^0; sbit key_clk=P1^1; unsigned char bdata s_buf,r_buf,parity_buf; unsigned char buffer[5];num=0; sbit mouse_data=P1^2; sbit mouse_clk=P1^3; sbit s_buf0=s_buf^0; sbit parity_buf0=parity_buf^0; sbit r_buf7=r_buf^7; main() { unsigned char loop; serial_init(); for(loop=0;loop <10;loop++) { SBUF=loop; while(TI==0); TI=0; } do { receive_process(); }while(1); } unsigned char keyrev_char() { unsigned char i; bit PARITY; r_buf=0; while(!key_clk); delay_24us(); if(key_data) { return 1; } delay_24us(); delay_16us(); key_clk=0; for(i=0;i <8;i++) { delay_24us(); delay_16us(); key_clk=1; delay_16us(); r_buf7=key_data; if(i=!7) r_buf=r_buf> > 1; delay_24us(); key_clk=0; } delay_24us(); delay_16us(); key_clk=1; delay_16us(); PARITY=key_data; delay_24us(); key_clk=0; delay_16us(); delay_24us(); key_clk=1; delay_24us(); if(!key_data){return 1;}; key_data=0; delay_16us(); key_clk=0; delay_16us(); delay_24us(); key_clk=1; delay_16us(); key_data=1; delay_16us(); parity_buf=r_buf; if(PARITY==parity()) return r_buf; else {return 1;} } bit keyput_char(unsigned char put_char) { unsigned char i; bit PARI ......
>>返回讨论的主题
|