┊ 网站导航 ┊ 管理登陆 ┊ 免责声明 ┊ 问题反馈 ┊ 友链说明┊本站部分内容来自网络共享资源,如有冒犯您的权利请来信告之删除或纠正! 不得对本站进行复制、盗链或镜像,转载内容须获得同意或授权;欢迎友情链接、站务合作! ![]() ![]() ![]() ![]() ![]() ![]() 本站学习交流群:138..158(高级群1-满)、77930286(高级群2)、61804809(群3) Copyright© MCUSY All Rights Reserved 本站网警备案号: WZ36040002485 ICP备案证书号:粤ICP备09034963号 |
作者:未知 来源:网路
实验源程序
#include <reg51.h>
#include <INTRINS.H>
unsigned char KeyCode; //键盘键值
#define WAITFORKEYBOARDPULSE while(!scl); while(scl);
bit KeyBoardConnectFlag = 0;
sbit scl=P1^4;
sbit sda=P1^3;
sbit P2_1=P2^1;
sbit LED1=P0^0;
sbit LED2=P0^1;
sbit LED3=P0^2;
sbit LED4=P0^3;
sbit LED5=P0^4;
sbit LED6=P0^5;
sbit LED7=P0^6;
sbit LED8=P0^7;
/*********************************************************/
//函数:Delay()
//功能:延时
//输入:延时时间设定值
//输出:?
//描述:
/*********************************************************/
void Delay(unsigned char Times)
{
unsigned char n;
n = 120;
for(;Times>0;Times--)
{
for(;n>0;n--);
}
}
/*********************************************************/
//函数:ReadPS2()
//功能:扫描键盘
//输入:
//输出:键值
//描述:
/*********************************************************/\
unsigned char ReadPS2()
{
//unsigned char KeyCode; //键盘键值
unsigned char bitCount; //位数
while(scl); // 等待键盘把时钟第一次拉低
for(bitCount = 8; bitCount != 0; bitCount --) // 把起始位算入
{
WAITFORKEYBOARDPULSE; // 等待一个有效的下跳沿
KeyCode >>= 1; // 按照PS2格式,数据低位在前
scl = 1;
sda = 1;
if(sda == 1)
{
KeyCode |= 0x80; // 得到有效的数据位
}
}
WAITFORKEYBOARDPULSE; // 等待按键发送效验位
WAITFORKEYBOARDPULSE; // 等待按键发送终止位
while(!scl); // 等待键盘把时钟线拉高
// return(KeyCode); // 返回按键扫描
}
/*****************************************************************************/
//main.c
//功能:从PS/2口接受键盘信息控制led灯
//修改:
//时间:2006-10-19
//作者:
/*****************************************************************************/
void main()
{
P0=0xff; //初始化P0口
// P2_1=0; //屏蔽LCD
while(1){
ReadPS2();
switch(KeyCode)
{
case 0x05: //f1
LED1=0;
break;
case 0x06:
LED2=0;
break;
case 0x04:
LED3=0;
break;
case 0x0c:
LED4=0;
break;
case 0x03:
LED5= 0;
break;
case 0x0b:
LED6=0;
break;
case 0x83:
LED7= 0;
break;
case 0x0a:
LED8= 0;
break;
case 0x76:
P0=0xff;
break;
default:
break;
}
}
}
┊ 网站导航 ┊ 管理登陆 ┊ 免责声明 ┊ 问题反馈 ┊ 友链说明┊本站部分内容来自网络共享资源,如有冒犯您的权利请来信告之删除或纠正! 不得对本站进行复制、盗链或镜像,转载内容须获得同意或授权;欢迎友情链接、站务合作! ![]() ![]() ![]() ![]() ![]() ![]() 本站学习交流群:138..158(高级群1-满)、77930286(高级群2)、61804809(群3) Copyright© MCUSY All Rights Reserved 本站网警备案号: WZ36040002485 ICP备案证书号:粤ICP备09034963号 |