📄 main.c
字号:
#include <iom8.h>
#include "board.h"
void intset(void);
volatile uchar no,star,bitno,data,ps2_time;
//*************//
void main(void)
{
no=0;
bitno=0;
star=0;
data=2;
ps2_time=0;
intset();
//while(UCSRA&(1<<TXC));
// UDR=0xff;
while(1);
//{
// while(UCSRA&(1<<TXC));
// UDR=0xff;
//}
}
//***********//
void intset(void)
{
CLI(); //禁止所有中断
MCUCR = 0x00;
MCUCSR = 0x80;//禁止JTAG
//**串口设置**//
UCSRB = 0x00;//禁止中断
UCSRA = 0x00;
UCSRC =0x86;
UBRRL = 0x0C;
UBRRH = 0x00;
UCSRB = 0x18;
//**外部中断1**//
MCUCR |= 0x08;
MCUCSR|= 0x00;
GICR |= 0x80;
//**IO设置**//
DDRD&=~(1<<4);
//**定时器设置**//
TCNT0 = 0x64;
TIMSK|=0x01;
TCCR0=0X03;
SEI();//开全局中断
}
//****外部中断程序****//
#pragma vector=INT1_vect
__interrupt void INT1_vcct_isr(void)
{
ps2_time=0;
bitno++;
if((bitno==1)|| (bitno==10)) {return;}
if(bitno==11) {UDR=data;bitno=0;return;}
data>>=1;
if(PIND&(1<<4)) data+=0x80;
}
//****定时器0溢出中断***//
#pragma vector=TIMER0_OVF_vect
__interrupt void TIMER0_ovf_isr(void)
{
TCNT0 = 0x64;
ps2_time++;
if(ps2_time>5) {bitno=0;ps2_time=0;}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -