独立键盘接口设计(Keil+Proteus)

这篇具有很好参考价值的文章主要介绍了独立键盘接口设计(Keil+Proteus)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

前言

软件的操作参考这篇博客。

LED数码管的静态显示与动态显示(Keil+Proteus)-CSDN博客https://blog.csdn.net/weixin_64066303/article/details/134101256?spm=1001.2014.3001.5501实验:用4个独立按键控制8个LED指示灯。

按下k1键,P3口8个LED正向(由上至下)流水点亮;

按下k2键,P3口8个LED反向(由下而上)流水点亮;

按下k3键,高、低4个LED交替点亮;

按下k4键,P3口8个LED闪烁点亮。

Keil

这个程序就很好理解了,通过检查P1口的引脚来判断是否有按键被按下(每次只允许一个键被按下),然后调用相对应的函数即可。

由于采用的是共阳极,所以端口为0的时候表示LED亮,所以LED流水灯、交替这种就是通过控制端口是1还是0来实现的。

#include<reg51.h>
sbit S1=P1^0;//将S1位定义为P1.0引脚
sbit S2=P1^1;//将S2位定义为P1.1引脚
sbit S3=P1^2;//将S3位定义为P1.2引脚
sbit S4=P1^3;//将S4位定义为P1.3引脚

unsigned char keyval;//定义键值储存变量单元

void key_scan(void);//扫描键盘
void forward(void);//正向流水点亮
void backward(void);//反向流水点亮
void alter(void);//高、低位交替点亮
void blink(void);//闪烁点亮
void led_delay(void);//LED显示延时
void delay10ms(void);//软件消除抖动,延时

void main(void){
	keyval=0;//键值初始化为0
	while(1){
		key_scan();//键盘扫描
		switch(keyval){
			case 1:forward();break;//键值为1,调用正向流水点亮函数
			case 2:backward();break;//键值为2,调用反向流水点亮函数
			case 3:alter();break;//键值为3,调用高、低位交替点亮函数
			case 4:blink();break;//键值为4,调用闪烁点亮函数
		}
	}
}

//键盘扫描
void key_scan(void){
	P1=0xFF;
	if((P1&0x0F)!=0x0F){
		delay10ms();
		if(S1==0)keyval=1;//按键K1被按下
		if(S2==0)keyval=2;//按键K1被按下
		if(S3==0)keyval=3;//按键K1被按下
		if(S4==0)keyval=4;//按键K1被按下
	}
}

//正向流水点亮LED
void forward(void){
	P3=0xFE;//LED0亮1111 1110
	led_delay();
	P3=0xFD;//LED1亮1111 1101
	led_delay();
	P3=0xFB;//LED2亮1111 1011
	led_delay();
	P3=0xF7;//LED3亮1111 0111
	led_delay();
	P3=0xEF;//LED4亮1110 1111
	led_delay();
	P3=0xDF;//LED5亮1101 1111
	led_delay();
	P3=0xBF;//LED6亮1011 1111
	led_delay();
	P3=0x7F;//LED7亮0111 1111
	led_delay();
}

//反向流水点亮LED
void backward(void){
	P3=0x7F;//LED7亮0111 1111
	led_delay();
	P3=0xBF;//LED6亮1011 1111
	led_delay();
	P3=0xDF;//LED5亮1101 1111
	led_delay();
	P3=0xEF;//LED4亮1110 1111
	led_delay();
	P3=0xF7;//LED3亮1111 0111
	led_delay();
	P3=0xFB;//LED2亮1111 1011
	led_delay();
	P3=0xFD;//LED1亮1111 1101
	led_delay();
	P3=0xFE;//LED0亮1111 1110
	led_delay();
}

//交替点亮高4位与低4位LED
void alter(void){
	P3=0x0F;//高4位亮0000 1111
	led_delay();
	P3=0xF0;//低4位亮1111 0000
	led_delay();
}

//闪烁点亮LED
void blink(void){
	P3=0xFF;//全灭1111 1111
	led_delay();
	P3=0x00;//全亮0000 0000
	led_delay();
}

//LED显示延时
void led_delay(void){
	unsigned char i,j;
	for(i=0;i<220;i++){
		for(j=0;j<220;j++);
	}
}
	
//软件消除抖动,延时
void delay10ms(void){
	unsigned char i,j;
	for(i=0;i<100;i++){
		for(j=0;j<100;j++);
	}
}

Proteus

这里需要用到的器件前面基本上都出现过了。

元件名称 Proteus关键字
51单片机 AT89C51
复位按钮 BUTTON
电阻 RES
LED灯 LED
LED-BIBY
LED-BIGY
LED-BIRG
LED-BIRY
LED-BLUE
LED-GREEN
LED-RED
LED-YELLOW

独立键盘接口设计(Keil+Proteus),计算机外设,proteus,单片机

 这种LED灯蓝色表示灯亮,红色表示灯灭,所以不是很明显。

独立键盘接口设计(Keil+Proteus),计算机外设,proteus,单片机可以换成这种LED灯(如果这里还是没有亮的话需要调整右边一列电阻的阻值,调至220

独立键盘接口设计(Keil+Proteus),计算机外设,proteus,单片机

K1被按下

K2被按下

K3被按下

K4被按下

总结

继续努力。文章来源地址https://www.toymoban.com/news/detail-752152.html

到了这里,关于独立键盘接口设计(Keil+Proteus)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • FifthOne:用于矢量搜索的计算机视觉接口

             数据太多了。数据湖和数据仓库;广阔的像素牧场和充满文字的海洋。找到 正确的 数据就像大海捞针一样!如果你喜欢开源机器学习库 FiftyOne,矢量搜索引擎通过将复杂数据(图像的原始像素值、文本文档中的字符)转换为称为嵌入矢量的实体来解决此问题。   

    2024年02月12日
    浏览(43)
  • 【计算机组成原理·笔记】I/O接口

    概述 I/O接口的功能和组成 I/O接口的组成 I/O接口的功能 I/O接口类型 按数据传送方式 按功能灵活性 按通用性 按数据传输的控制方式 I/O接口通常是指主机与I/O设备之间设置的硬件电路以及相应的软件控制,主机通过I/O接口和I/O设备相连接。 I/O接口的组成 总线连接方式的I/O接

    2024年02月08日
    浏览(51)
  • HDMI接口的计算机外接DP接口的显示器

    2019年8月入手了一台HKCGX329S显示器(31.5英寸, 144hz, 1500R曲面屏), 用来做PC主机的显示器. HKCGX329S 显示接口为VGA和DP. 当时买了转接线(VGA转miniDP, 因为PC主机外接显卡的接口是miniDP), 在台式机上使用正常, 说明显示器没问题. 因为DP比VGA的显示效果好, 当时也尝试买了DP转miniDP的线, 好

    2024年02月10日
    浏览(66)
  • 计算机设计大赛 交通目标检测-行人车辆检测流量计数 - 计算机设计大赛

    🔥 优质竞赛项目系列,今天要分享的是 🚩 毕业设计 交通目标检测-行人车辆检测流量计数 该项目较为新颖,适合作为竞赛课题方向,学长非常推荐! 🥇学长这里给一个题目综合评分(每项满分5分) 难度系数:3分 工作量:3分 创新点:4分 🧿 更多资料, 项目分享: https://

    2024年01月25日
    浏览(53)
  • 计算机毕业设计选题-最新最全机器视觉 计算机视觉选题推荐汇总

      大四是整个大学期间最忙碌的时光,一边要忙着准备考研、考公、考教资或者实习为毕业后面临的升学就业做准备,一边要为毕业设计耗费大量精力。学长给大家整理了机器视觉,计算机视觉不同方向最新精选选题,如对选题有任何疑问,都可以问学长哦! 以下是学长精心整

    2024年02月06日
    浏览(70)
  • 【计算机毕业设计】

          摘  要 随着人民生活水平的提高,旅游业已经越来越大众化,而旅游业的核心是信息,不论是对旅游管理部门、对旅游企业,或是对旅游者而言,有效的获取旅游信息,都显得特别重要.旅游管理系统将使旅游相关信息管理工作规范化、信息化、程序化,提供旅游景点、旅游线路

    2024年02月06日
    浏览(51)
  • 计算机组成原理——课程设计

      深入了解计算机各种指令的执行过程,以及控制器的组成,指令系统微程序设计的具体知识,进一步理解和掌握动态微程序设计的概念;完成微程序控制的特定功能计算机的指令系统设计和调试。 1.    TEC-2机一台 2.    电脑一台 3.    TEC-2模拟软件一套 1.分析TEC-2机的功

    2024年02月08日
    浏览(58)
  • 【计算机视觉】基于OpenCV计算机视觉的摄像头测距技术设计与实现

    在当今技术日益进步的时代,计算机视觉已成为我们生活中不可或缺的一部分。从智能监控到虚拟现实,计算机视觉技术的应用范围日益广泛。在这篇博客中,我们将探索一个特别实用的计算机视觉案例:使用OpenCV实现摄像头测距。这一技术不仅对专业人士有用,也为编程爱

    2024年02月04日
    浏览(54)
  • 计算机组成原理实验三-----系统总线和具有基本输入输出功能的总线接口实验

        总线是计算机中连接各个功能部件的纽带,是计算机各部件之间进行信息传输的公共通路。 总线不只是一组简单的信号传输线,它还是一组协议。他有两大特征   分时:   同一总线在同一时刻, 只能有一个部件占领总线发送信息 ,其他部件要发送信息得在该 部件发送

    2024年02月01日
    浏览(68)
  • 【计算机毕业设计】水果商城系统

          摘要: 网络购物作为一种全新的 销售 方式赢得了越来越多 销售 者的青睐,近年来销售额更是以连年翻番的惊人速度成倍增长.网络购物已经形成了自身特有的网络 销售 市场和全新的网络营销模式,也使网络营销渠道应运而生.同时,伴随着 水果 市场的不断扩大, 水果 行

    2024年01月20日
    浏览(55)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包