wzhscj 发表于 2006-10-7 15:18:14

想用M128制作一个防PS2的键盘往电脑送简单的字符,不知道如何着手?望DX指点.谢谢!!!

最近想用单片机制作一个仿PS2键盘往电脑里送字符的小东西,不知如何着手;在网络上只看见用单片机读PS2键盘的。


-----此内容被wzhscj于2006-10-07,15:19:46编辑过

lijunyuhao 发表于 2006-10-7 16:17:44

//ICC-AVR application builder : 2005/12/15 下午 03:52:38

// Target : M8

// Crystal: 8.0000Mhz



#include <iom8v.h>

#include <macros.h>

#include "miniplc.h"





void uart0_init(void)

{

UCSRB = 0x00; //disable while setting baud rate

UCSRA = 0x00;

UCSRC = BIT(URSEL) | 0x06;

UBRRL = 0x33; //set baud rate lo

UBRRH = 0x00; //set baud rate hi

UCSRB = 0x98;

}



#pragma interrupt_handler uart0_rx_isr:12

void uart0_rx_isr(void)

{

//uart has received a character in UDR

P=UDR;

if(P=='1')Y1(0);

if(P=='2')Y1(1);

if(P=='3')Y2(0);

if(P=='4')Y2(1);

if(P=='5')Y3(0);

if(P=='6')Y3(1);

if(P=='7')Y4(0);

if(P=='8')Y4(1);

if(P=='9')Y5(0);

if(P=='A')Y5(1);

if(P=='S')Y6(0);

if(P=='D')Y6(1);



}



void main()

{unsigned char t,m;

//stop errant interrupts until set up

CLI(); //disable all interrupts

DDRD=0X00;

PORTD=0X00;

uart0_init();

MCUCR = 0B00000000;

GICR= 0x00;

TIMSK = 0x00; //timer interrupt sources

SEI(); //re-enable interrupts

//all peripherals are now initialized



WDTCR=0B00011000;

WDTCR=0B00001000;//wdt initial





while(1);

{

if(X1(1)==0)

{if( (!X2(1)) && (!X3(1)) && (!X4(1)) && (!X5(1)) && (X6(1)) )Y1(0);

else

Y1(1);}

}

}

peterf 发表于 2006-10-7 19:58:03

2楼的朋友,你这程序不完整呀!

avrDIY_44 发表于 2006-10-7 21:22:25

2楼的朋友,能不能发完整些。多谢!

wzhscj 发表于 2006-10-8 07:10:47

2楼的朋友,能不能发完整些。多谢!

li0713 发表于 2006-10-8 08:06:52

双龙的开发板有demo.

发给你!

点击此处下载armok01131276.rar

avrDIY_44 发表于 2006-10-8 09:50:30

感谢5楼的li0713,请问有汇编语言的吗?

li0713 发表于 2006-10-8 15:59:53

没得,通过icc编译后就有汇编了

。哈哈哈

wzhscj 发表于 2006-10-8 18:49:16

非常感谢楼上的各位朋友支持

zhouyh 发表于 2007-1-19 17:57:05

双龙的开发板有demo.

发给你!

li0713:好象没有PS2_KB.C

xinjie1023 发表于 2009-10-6 14:53:13

学习
页: [1]
查看完整版本: 想用M128制作一个防PS2的键盘往电脑送简单的字符,不知道如何着手?望DX指点.谢谢!!!