c语言4x4矩形列互换,线反转法4x4键盘C语言程序问题.急...
我发一个C的给你参考一下
********************************************************************************
* 描述: *
* 矩阵键盘数码管显示键值 *
* *
* 矩阵键盘定义: *
* P1.0-P1.3为列线,P1.4-P1.7为行线 *
* 喇叭接P3.7口 矩阵键盘P1口, 数码管数据P0口,数码管控制P2口 *
#include
#define uchar unsigned char
#define uint unsigned int
uchar table[17]= {0x28,0x7e,0xa2,0x62,0x74,0x61,0x21,0x7a,0x20,0x60,0x30,0x25,0xa9,0x26,0xa1,0xb1};//数码管代码
sbit BEEP = P3^7; //蜂鸣器驱动线
uchar dis_buf; //显示缓存
uchar temp;
uchar key; //键顺序吗
void beep(); //蜂鸣器
void delay0(uchar x); //x*0.14MS
//--------------------------------------------------
/* 延时子程序*/
void delay(uchar x)
{ uchar j;
while((x--)!=0)
{ for(j=0;j<125;j++)
{;}
}
}
//--------------------------------------------------
/*键扫描子程序*/
void keyscan(void)
{
P1=0x0F; //低四位输入
delay(1);
temp=P1; //读P1口
temp=temp&0x0F;
temp=~(temp|0xF0);
if(temp==1)
key=0;
else if(temp==2)
key=1;
else if(temp==4)
key=2;
else if(temp==8)
key=3;
else
key=16;
P1=0xF0; //高四位输入
delay(1);
temp=P1; //读P1口
temp=temp&0xF0;
temp=~((temp>>4)|0xF0);
if(temp==1)
key=key+0;
else if(temp==2)
key=key+4;
else if(temp==4)
key=key+8;
else if(temp==8)
key=key+12;
else
key=16;
dis_buf=table[key]; //查表得键值
}
//--------------------------------------------------
/*判断键是否按下*/
void keydown(void)
{
 
1=0xF0;
if(P1!=0xF0)
{
keyscan();
beep();
// while(P1!=0xF0); //等待键释放
}
}
//--------------------------------------------------
void beep()
{
unsigned char i;
for (i=0;i<100;i++)
{
delay0(4);
BEEP=!BEEP; //BEEP取反
}
BEEP=1; //关闭蜂鸣器
delay(250); //延时
}
//--------------------------------------------------
void delay0(uchar x) //x*0.14MS
{
unsigned char i;
while(x--)
{
for (i = 0; i<13; i++) {}
}
}
//--------------------------------------------------
main()
{
P0=0xFF; //置P0口
P2=0xFF; //置P2口
dis_buf=0xBF;
while(1)
{
keydown();
P0 = dis_buf; //键值送显示
delay(2);
P2 = 0x7F;
}
}
//--------------------------------------------------
[此贴子已经被作者于2007-7-17 16:07:18编辑过]
c语言4x4矩形列互换,线反转法4x4键盘C语言程序问题.急...相关推荐
- lisp语言画阿基米德线_如何用VB语言Line方法绘制阿基米德螺线
展开全部 我是用picturebox实现的 (1)先用打开notepad,粘贴下面e69da5e887aa3231313335323631343130323136353331333236393832的 ...
- 矩阵键盘线反法C语言,矩阵键盘线反转法实现
;project: 线反转法扫描键盘,一位数码显示 ;version:20130611 ;problems: 1.有时出现数码管显示相应数字后变暗闪烁,键盘失灵 ;a.尝试加全部键盘检测完,没有找到则 ...
- 用c语言编写线反转法键盘输入,电子密码锁的方案设计书与实现[1]
<电子密码锁的方案设计书与实现[1]>由会员分享,可在线阅读,更多相关<电子密码锁的方案设计书与实现[1](21页珍藏版)>请在技术文库上搜索. 1.沈阳理工大学创新实践周课程 ...
- C语言学习之将一个二维数组的行和列互换,存到另一个二维数组中
C语言学习之将一个二维数组的行和列互换,存到另一个二维数组中 #include <stdio.h> int main(){int a[2][3]={{1,2,3},{4,5,6}}; // ...
- r语言怎么以第二列绘制线图_用卫星图像绘制世界海岸线图-第二部分
r语言怎么以第二列绘制线图 Part I of this blog series is here. 本博客系列的第一部分 在这里 . At the UKHO we are interested in ...
- 蓝桥杯单片机学习日记3-矩阵键盘的使用,线反转法,三步消抖,按键长按与短按
此片文章用于记录蓝桥杯单片机的学习 篮球杯单片机上的矩阵按键原理图如下: 使用矩阵键盘时,要将跳线帽J5跳至KBD模式. 值得注意的是,若开发板上的单片机使用的为STC15,那么以上原理图适用.如果单 ...
- R语言ggplot2可视化在lines线图的尾端添加线图标签、并且去除图例实战
R语言ggplot2可视化在lines线图的尾端添加线图标签实战 目录 R语言ggplot2可视化在lines线图的尾端添加线图标签实战 #仿真数据
- R语言dataframe数据列中的缺失值NA的个数统计实战:特定数据列的NA值统计、所有特征的NA值统计
R语言dataframe数据列中的缺失值NA的个数统计实战:特定数据列的NA值统计.所有特征的NA值统计 目录
- R语言将数据列中的多种日期格式统一变化为一种固定格式实战:使用lubridate包中的parse_date_time函数
R语言将数据列中的多种日期格式统一变化为一种固定格式实战:使用lubridate包中的parse_date_time函数 目录
最新文章
- python气象数据可视化_python grib气象数据可视化
- 通信与信号处理杂文目录
- 缺少物联网杀手级应用的运营商,到底该怎么办?
- VC++ .Net 实例学习
- 在MFC框架下使用osg报内存泄露的解决办法
- IIS 7.5绑定中文域名转码启动站点报“值不在预期的范围内”
- iOS ReactiveCocoa 最全常用API整理(可做为手册查询)
- ORACLE--Connect By、Level、Start With的使用(Hierarchical query-层次查询)
- 微服务笔记(二) 服务发现
- No Pain No Game
- C# SOCKE通信
- NumPy库--数组的索引和切片
- 联合概率分布与边缘分布
- 北京市居住证办理问题的整理
- Mantis 安装与配置及使用
- windows手动清理垃圾文件
- 医疗是什么?AI医疗概念解析AI
- springboot导入后Spring包飘红问题解决
- 轮盘赌算法原理(ACO算法概率选择方法)
- MyEclipse优化、常用设置、快捷键
热门文章
- 【报告分享】中国营销数字化行业趋势报告:全渠道时代,品牌商如何抓住消费者?(附下载链接)...
- 【报告分享】2020年重点行业薪酬趋势指南.pdf(附下载链接)
- 159挑战 | 1:59:40,基普乔格打开人类新时代!
- leetcode力扣647. 回文子串
- 娓娓道来!那些BERT模型压缩方法(一)
- 搜索推荐广告中的Position Bias:美团DPIN
- EMNLP 2021 | 百度:多语言预训练模型ERNIE-M
- python类和对象的定义_day15_python_类和对象
- signature=c0c1b69f720d190a4a817d6bf2ff57c3,Fungicidal substituted N-(1-iodopropargyl)thiazolidinones
- 花书+吴恩达深度学习(十五)序列模型之循环神经网络 RNN