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

📄 head.c

📁 通过89s51实现的模拟键盘代码
💻 C
字号:
#include <reg51.H>
#define Frequence 11   //晶振频率单位是MHZ
#define XIAODOU_DELAY 6	//消抖延时
#define SCAN_V_DEFAULT 0x2c	//缺省扫描速率
#define DELAY 24	//发送程序延时??12 or 10?
#define SLEEP 12	//发送程序延时
#define TIMER_COUNT 3500
sbit KBDATA=P3^0;	//键盘时钟线
sbit KBCLK=P3^1;	//键盘数据线
sbit KBSHIFT=P3^4;      //键盘输入选择键
//**************dat.c***************//
unsigned char buf_length();	//返回缓冲区数据个数
void clr_buf(void);	//清键盘缓冲区
void del_head();	//删除缓冲区头
unsigned char exist(unsigned char);	
//检查键盘缓冲区中是否有与参数相等数,有则返回位置,无则返回255
unsigned char get_head();	//取键盘缓冲区头,头指针不变
unsigned char get_head_f();
//取缓冲区头对应标记,标记为0表示对应键已经松下
bit insert(unsigned char,unsigned char);
//插入缓冲区,并设置对应标记,成功则返回1
void set_flag(unsigned char);	//设置缓冲区对应标记
//bit emputy();	//检查键盘缓冲区是否空,是返回1
//unsigned char get_end();//取键盘缓冲区尾,尾指针不变

//***************protocol.c***************//
void set_scan_v(unsigned char);	//设置扫描速度(拍发速率、延迟时间)
void set_default();	//设置缺省值
bit parity();       //计算奇偶校验值
void delay();//reentrant       //延时24us  
void sleep();       //延时16us
unsigned char receive(void);      //接收子函数
bit send(unsigned char );       //发送子函数
void receive_v();
void re_send();
void receive_led();
void receive_process();
//自己添加的函数
void reset();	//软件复位
bit command_s(); 	//键盘命令检查,有命令要接受返回1 
bit bat(void);		//基本保证测试无错误返回0,有错返回1
void ini_timer1();	//定时器初始化
void set_timer1();	//复位定时器1
void close_timer1();
void timer1_isr(void);
void ini_timer0();	//定时器0初始化
void set_timer0();	//复位定时器0
//void close_timer0();
void timer0_isr(void);

//*************send.c***************//
bit send_code(unsigned char _KeyNo,bit flag); 
//发送按键扫描码,flag=0发送断开码,flag=1发送接通码
void send_buf();			//发送缓冲区扫描码

//***************main_t.c***************//
unsigned char scankb(unsigned char );//扫描第N行,返回列值
void scan(void);


⌨️ 快捷键说明

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