课程实验 【八路抢答器】

课程实验 【八路抢答器】基于外部中断课程实验【八路抢答器】#defineucharunsignedchar#defineuintunsignedintsbitLED_main=P3^6;sbitKey=P3^0;ucharcodetabie[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};ucharmain_go=0;//主线voidInit_E…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用

先声明本人小菜鸡一枚,然后上传的都是一些基础51课程实验,利用外部中断写的一个八路抢答器,该内容还有可能存在一些bug,故仅供参考

注意:仿真使用的是共阴数码管

#include<reg52.h>

#define uchar unsigned char
#define uint unsigned int
	
sbit LED_main = P3^6;
sbit Key = P3^0 ; 


uchar code tabie [] = {0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};

uchar main_go = 0;//主线


void Init_EX_0()//中断初始化函数
{
	EA = 1;
	EX0 = 1;
	IT0 = 1;
}

void Servoice_EX_0()  interrupt 0  //中断服务函数
{
	if(main_go == 1)
	{
		main_go = 0;//恢复主线,防止点亮多个LED灯
		P2 = 0xff;//读P2口的状态
		switch(P2)//判断是哪一个按键按下
		{
			case 0xfe : P1 = 0xfe; P0 = tabie [1] ; LED_main = 1; break;//第一个按键按下(下面递推)
			case 0xfd : P1 = 0xfd; P0 = tabie [2] ; LED_main = 1; break;
			case 0xfb : P1 = 0xfb; P0 = tabie [3] ; LED_main = 1; break;
			case 0xf7 : P1 = 0xf7; P0 = tabie [4] ; LED_main = 1; break;
			case 0xef : P1 = 0xef; P0 = tabie [5] ; LED_main = 1; break;
			case 0xdf : P1 = 0xdf; P0 = tabie [6] ; LED_main = 1; break;
			case 0xbf : P1 = 0xbf; P0 = tabie [7] ; LED_main = 1; break;
			case 0x7f : P1 = 0x7f; P0 = tabie [8] ; LED_main = 1; break;
		}
	}
}

void Scan_Key()//裁判按键扫描函数
{
	if(Key == 0)
	{
		main_go = 1;  //主线等于 1 时说明可进行抢答
		LED_main = 0 ;//同时点亮裁判灯
		P0 = 0x00;//关闭数码管
		P1 = 0xff;//关闭LED灯
	}
}

void main()
{
	Init_EX_0();//进行初始化操作
	while(1)
	{
		Scan_Key();//不断扫描裁判按键
	}
}

仿真图如下

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5qSw5ZWK5qSw5ZOm,size_20,color_FFFFFF,t_70,g_se,x_16

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/179864.html原文链接:https://javaforall.net

(0)
上一篇 2022年10月20日 下午4:00
下一篇 2022年10月20日 下午4:00


相关推荐

  • 企业微信机器人发送消息[通俗易懂]

    企业微信机器人发送消息[通俗易懂]背景:之前用钉钉机器人可以发送消息,可以将线上的告警通知发送到消息群中,后来企业微信也支持在群组中增加机器人了,钉钉和企业微信机器人的使用很相似,都是使用webhook的方式来进行实现的,话不多说,咱们先配置机器人,然后再上代码。1.在企业微信的聊天群中增加机器人注意:目前只能在聊天群中添加机器人,所以我当时的做法是,先拉一个同事进群,然后再让他退群,具体步骤如下…

    2022年6月28日
    36
  • ecmall模板语法

    ecmall模板语法ECMall 的模板解析语法介绍 nbsp 用 开头 以 结尾就构成一个标签单元在 2011 年 07 月 19 日那天写的 nbsp nbsp nbsp 已经有 19105 次阅读了感谢 nbsp 参考或原文 nbsp 在 ECMall 模板中 用 开头 以 结尾就构成一个标签单元 紧接着的单词就是标签名 在标签单元中单词前含 美元符 的为变量名 资源引用 res 标签功能 返回当

    2026年3月18日
    3
  • Bytebuf_分析报告图文

    Bytebuf_分析报告图文ByteBuf是什么ByteBuf是Netty中非常重要的一个组件,他就像物流公司的运输工具:卡车,火车,甚至是飞机。而物流公司靠什么盈利,就是靠运输货物,可想而知ByteBuf在Netty中是多么的重要。没有了ByteBuf,Netty就失去了灵魂,其他所有的都将变得毫无意义。ByteBuf是由Byte和Buffer两个词组合成的一个词,但是因为JDK中已经有了一个ByteBuffer,并且使用…

    2026年1月27日
    6
  • python xml转excel_一个python 脚本将XML文件转换到excel

    python xml转excel_一个python 脚本将XML文件转换到excel需要下载一个module:xlwt,如下是sourcecodeimportxml.dom.minidomimportxlwtimportsyscol=0row=0defhandle_xml_report(xml_report,excel):problems=xml_report.getElementsByTagName(“problem”)handle_problems(p…

    2022年8月22日
    9
  • python subprocess_python的subprocess模块

    python subprocess_python的subprocess模块1os 与 commands 模块 2subprocess 模块 3subprocess Popen 类我们几乎可以在任何操作系统上通过命令行指令与操作系统进行交互 比如 Linux 平台下的 shell 那么我们如何通过 Python 来完成这些命令行指令的执行呢 另外 我们应该知道的是命令行指令的执行通常有两个我们比较关注的结果 1 命令执行的状态码表示命令执行是否成功 2 命令执行的输出结果命令执行成功

    2026年3月16日
    3
  • Sparse Filtering 学习笔记(三)目标函数的建立和求解

    Sparse Filtering 学习笔记(三)目标函数的建立和求解SparseFilter 是一个用于提取特征的无监督学习算法 与通常特征学习算法试图建模训练数据的分布的做法不同 SparseFilter 直接对训练数据的特征分布进行分析 在所谓 好特征 的指导下构建目标函数来进行优化 其中只涉及一个可调参数 本文将主要讨论两个问题 1 什么样的特征是好的特征 2 如何利用好特征的条件来构造 SparseFilter 的目标函数

    2026年3月26日
    2

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号