课程实验 【八路抢答器】

课程实验 【八路抢答器】基于外部中断课程实验【八路抢答器】#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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 2020/7/7学习记录

    2020/7/7学习记录1.微信小程序text内容显示空格<text decode=”{{true}}”space=”{{true}}”>报名人数&nbsp;</text>decode=”{{true}}”space=”{{true}}2.

    2022年8月18日
    8
  • 如何训练一个词向量

    如何训练一个词向量现在在NLP领域,词向量是一切自然语言处理的基础,有了词向量我们就可以进行数据分析,文本聚类分类的一系列操作了。接下来我们就开始学习如何训练词向量,之前我们有介绍关于word2vec的博文word2vec算法理解和数学推导,这篇博文我们就一起来学习如何实现词向量的训练。首先我们运用的语料是我之前爬取的京东小米9的好评,训练一个关于手机类的词向量。数据如下所示:首先我们需要给数据进行分词…

    2022年6月2日
    34
  • batch内负采样

    batch内负采样一般在计算softmax交叉熵时,需要用tf.nn.log_uniform_candidate_sampler多itemid做随机负采样。但是在类似dssm这种双塔模型中,item侧特征除了itemid外,还有其他meta特征,此时负样本对itemid做负采样后,还需要取相应负样本的meta特征。可是在tf训练数据中并不方便建立itemid与各类meta特征的映射表。为了解决dssm类模型的负采样问题,可以取一个batch内其他用户的正样本做为本用户的负样本,以解决负采样meta特征问题。好了,废话少说,

    2022年6月23日
    65
  • 推导Lasso回归「建议收藏」

    推导Lasso回归「建议收藏」推导Lasso回归文章目录推导Lasso回归一、推导过程二、用python编写求解函数三、Lasso求解稀疏表示做人脸识别代码展示:运行结果四、调整不同的超参lambda,对seta的影响代码展示一、推导过程​ Lasso方法是在普通线性模型中增加L1L_1L1​惩罚项,有助于降低过拟合风险,更容易获得稀疏解,求得的θ\thetaθ会有更少的非零分量。与岭回归的不同在于,此约束条件使用了绝对值的一阶惩罚函数代替了平方和的二阶函数。Lasso回归原式: arg⁡min⁡θ∣∣Aθ−

    2022年5月29日
    54
  • 【Android】PreferenceFragment「建议收藏」

    【Android】PreferenceFragment「建议收藏」调用PreferenceFragment类出错,用了我三天时间才搞定,查官方文档,看百度最后在这位大佬的帖子帮助下终于搞定了。https://blog.csdn.net/cqx13763055264/article/details/78498419#commentBoxPreferenceActivity创建和使用比较复杂,Android官方现在不建议使用了,使用Preferenc…

    2025年8月28日
    6
  • css画三角形「建议收藏」

    css画三角形「建议收藏」实现原理将div的高和宽设置为0,然后设置四个border不同的颜色。效果如下:div#triangle{width:0;height:0;border-top:50pxsolidblue;border-right:50pxsolidred;border-bottom:50pxsolidgreen;bord…

    2022年6月30日
    28

发表回复

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

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