pc_8535.rar

  • PUDN用户
    了解作者
  • MultiPlatform
    开发工具
  • 32KB
    文件大小
  • rar
    文件格式
  • 0
    收藏次数
  • 1 积分
    下载积分
  • 3
    下载次数
  • 2005-08-12 02:28
    上传日期
单片机pc8535开发程序 (利用iccavr等开发工具开发)
pc_8535.rar
  • pc_8535
  • pindefs.h
    188B
  • kbc._c
    2.8KB
  • pc_8535.lk
    18B
  • pc_8535.dp2
    95B
  • pc_8535.s
    3KB
  • kbc.o
    7.9KB
  • pc_8535.cof
    4.2KB
  • kbc.c
    2.8KB
  • scancodes.h
    1.6KB
  • pc_8535.mp
    3.1KB
  • pc_8535.prj
    780B
  • pc_8535.dbg
    2.6KB
  • pc_8535.mak
    787B
  • pc_8535.o
    1.6KB
  • pc_8535.ds2
    16.8KB
  • kbc.lis
    30.2KB
  • PC_8535.SRC
    51B
  • kbc.dp2
    148B
  • pc_8535.lis
    6.8KB
  • pc_8535._c
    1.3KB
  • pc_8535.lst
    18.4KB
  • pc_8535.hex
    3.1KB
  • kbc.s
    12KB
  • pc_8535.c
    1.3KB
  • www.pudn.com.txt
    218B
内容介绍
#include <io8535.h> #include <macros.h> #include "pindefs.h" #include "scancodes.h" #define BUFF_SIZE 64 //const ascii[16]={0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38, // 0x39,0x41,0x42,0x43,0x44,0x45,0x46}; unsigned char bitcount;//PC键盘数据长度计数 unsigned char kb_buffer[BUFF_SIZE];//键盘缓冲区 unsigned char input=0;//缓冲区读指针 unsigned char output=0;//缓冲区写指针 //送键盘按键ASCII码到键盘缓冲区 void put_kbbuff(unsigned char c) { kb_buffer[input]=c; if (input<(BUFF_SIZE-1)) input++; else input=0; } //从键盘缓冲区读取按键的ASCII码 unsigned char get_char(void) { unsigned char temp; if(output==input) return 0; else { temp=kb_buffer[output]; if(output<(BUFF_SIZE-1)) { output++; } else output=0; return temp; } } //为运行读取PC键盘程序进行初始化 void init_kb(void) { MCUCR=0x02;//设置8515的INT0为下降沿触发中断 GIMSK|=(1<<INT0);//使能INT0中断 SEI(); //开中断 bitcount = 11; } //对PC键盘的扫描码进行解码 void decode(unsigned char sc) { static unsigned char shift,up,shiftup; unsigned char i; if (sc==0xf0)//按键释放 { up=1; return; } if (up==1)//SHIF键开关 { up=0; if ((sc==0x12)|(sc==0x59)) shift=0; return; } switch (sc) { case 0x12:{//检测左SHIF键 shift=1; shiftup=1; } case 0x59:{//检测右SHIF键 shift=1; shiftup=1; } default:{ if (shift==0) { for(i = 0;unshifted[i][0]!=sc && unshifted[i][0]; i++); if (unshifted[i][0] == sc) put_kbbuff(unshifted[i][1]); } else { for(i = 0;shifted[i][0]!=sc && shifted[i][0]; i++); if (shifted[i][0] == sc) { put_kbbuff(shifted[i][1]); } } } } } //键盘数据读取程序 #pragma interrupt_handler int0_isr:2 void int0_isr(void) { static unsigned char data; switch (bitcount) { case 11:{ if ((PIN_KB&(1<<DATAPIN))!=0) return; else bitcount--; break;} case 2:{ bitcount--; break;} case 1:{ bitcount--; if ((PIN_KB&(1<<DATAPIN))==0) { bitcount=11; return; } else { bitcount=11; decode(data); } break;} default:{ data = (data >> 1); if((PIN_KB&(1<<DATAPIN))!=0) data|=0x80; bitcount--; } } }
评论
    相关推荐
    • 数据库课程设计
      一个数据库课程设计,access管理工具实现,用的是窗体!
    • 数据库课程设计
      数据库课程设计十分完整有需要的请下载啊谢谢
    • 数据库课程设计
      广东工业大学数据库课程设计,可视化界面连接数据库,delphi7
    • 数据库课程设计
      数据库课程设计实验及其描述 数据库课程设计实验及其描述 数据库课程设计实验及其描述 数据库课程设计实验及其描述 数据库课程设计实验及其描述 数据库课程设计实验及其描述
    • 数据库课程设计
      数据库课程设计》由周爱武、汪海威、肖云编著,遵循数据库课程设计的具体要求,独立于具体的数据库教材,从实际应用系统的需求着手,引导读者逐步完成数据库设计全过程,重点讲解数据库系统的需求分析、概念设计、...
    • 数据库课程设计
      数据库课程设计人事管理系统 数据库课程设计人事管理系统数据库课程设计人事管理系统数据库课程设计人事管理系统数据库课程设计人事管理系统数据库课程设计人事管理系统数据库课程设计人事管理系统数据库课程设计...
    • 数据库课程设计
      数据库课程设计,基于visual basic自助银行管理系统,界面很清爽,实用。同学都说好,所以就上传了!!!
    • 数据库课程设计
      数据库课程设计 里面有详细的文档资料 包含数据库一切的图 以及生成的数据库表文件 期末得分为优秀
    • 数据库课程设计
      可以作为数据库课程设计,也可以作为Java的课程设计,内容全面。本资源转载的,非本人原创。用于交流学习,特此申明!
    • 数据库课程设计
      数据库课程设计蓝天大学学生管理系统 2.商店信息管理系统 3.实验室机房收费管理系统 4.图书馆资料检索系统 5.企业库存管理系统 6.仓库管理系统 7.工程项目管理系统 8.教材管理系统 9.企业人事管理系统 10.企业财务...