⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 test2.c

📁 PS/2 keyboard atmega128
💻 C
字号:
#include <iom128.h>
#include <ina90.h>//AVR 菩剐府甫 困茄 郴厘窃荐 沥狼(inavr.h, conp_a90.h)
#include <math.h>
//#include"DebugATmega128.h"

void Initial_CPU(void);
void init_SERIAL(void);
void putch(unsigned char data);
void m_delay(unsigned int m);

unsigned int k;
unsigned char Result_Low, Result_High;
unsigned char getch(void);

main(void)
{ 
  unsigned int i;
  
  Initial_CPU();            // Initialize CPU such as PortB, PortD
  init_SERIAL();            // Initialize UART
  
  asm("   sei   ");
  
  //AtMg128DebugInit();
  
  while(1)                  //led 谎妨林绰巴
  {
    for(k=0;k<256;k++)
    {
      i=getch();
      if(i)                 //getch 甫 罐酒辑 0捞酒囱 蔼 i甫 罐栏搁 关栏肺 拌魂 等绊 i啊 酒囱 0捞搁 狐廉唱埃促.
      {  
                            //i<<3;//i=k<<3; ->getch俊辑 府畔蔼阑 罐酒辑 led俊 谎赴促. 3父怒 谅矫橇飘
      PORTB =~((i<<3)&0x78);//PORTB =~(i&0x78); //LED0-LED3 are PB3-PB6 bits.
      PORTD = ~(i&0xF0);    //PORTD = ~(k&0xF0);//LED4-LED7 are PD-4-PD7 bits.
      }
      putch(i);             //IBM PC肺 茄巩磊 免仿茄促. putch(k); (i绰 郴啊 虐焊靛肺 敬巴捞 led肺 焊郴柳促.)
      m_delay(100);         //Time felay for 100msec
     }
  }
}

void m_delay(unsigned int m)
{
  unsigned int i,j;
   __disable_interrupt();
   
   for(i=0; i<m; i++)
    for(j=0; j<2650; j++);  //16Mhz : 1msec
  __enable_interrupt();
 }
 void Initial_CPU(void)
 {
      DDRD= 0xF0;           //1=Out, 0=Input
      PORTD = 0x00;         //Data Teg
      
      DDRB = 0x78;          //1=Out, 0 =Input
      PORTB = 0X00;         //Data Reg
      
 }

void init_SERIAL(void)      //矫府倔 窃荐 檬扁拳 
{
   /*DDRE=0x52;              //PE1(TXD) 免仿(1), PE0(RXD) 涝仿(0)
    
    UCSR1A=0x00;
    UCSR1B=0x18;            //Receive enable, Transmitte enable
    UCSR1C=0x06;            //厚悼扁 规侥, No parity bit, 1 stop bit
    
    UBRR1H=0X00;
    UBRR1L=0X67;*/            //16Mhz俊辑 9600bps(10柳荐 103)
 }
                            //矫府倔 器飘肺 茄 巩磊甫 价脚茄促.
 void putch(unsigned char data)
 {
    while(!(/*UCSR1A*/ & 0X20));
    /*UDR1*/=data;  
    /*UCSR1A*/ |=0X20;          //努府绢 UDRE0
 }
 
                            //矫府倔 器飘肺 茄巩磊甫 荐脚茄促.
 unsigned char getch(void)
 {
    if(!(/*UCSR1A*/& 0X80))return 0; //0捞搁 府畔秦滚府绊    
   /*UCSR1A*/ &=0X7F; 
    return(UDR1);           //1捞搁 佬阑 单捞磐啊 乐窜 抗扁绊
    
    
 }

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -