课程实验 【八路抢答器】

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


相关推荐

  • Apache kylin概览

    Apache kylin概览

    2021年11月27日
    41
  • php 5 与7有什么区别

    php 5 与7有什么区别

    2021年11月10日
    44
  • Python中sort与sorted函数

    Python中sort与sorted函数python中列表的内置函数sort()可以对列表中的元素进行排序,而全局性的sorted()函数则对所有可迭代的序列都是适用的;并且sort()函数是内置函数,会改变当前对象,而sorted()函数只会返回一个排序后的当前对象的副本,而不会改变当前对象。sort原型:sort(fun,key,reverse=False)参数fun是表明此sort函数是基于何种算法进行排序的,一般默认情况…

    2025年5月27日
    3
  • pycharm选哪个版本_pycharm版本区别

    pycharm选哪个版本_pycharm版本区别在pycharm中点击file-&gt;setting-&gt;project-&gt;projectInterpreter。 在出现的projectInterpreter右边的齿轮形状的图标点击add如下图,可以选择自己的版本

    2022年8月26日
    11
  • unity安装使用教程_免费版签名

    unity安装使用教程_免费版签名1、进入Unity官网,滑动到最底部,点击“所有版本”:

    2022年4月19日
    71
  • 基于Java swing+mysql+eclipse的【水电费管理系统】

    基于Java swing+mysql+eclipse的【水电费管理系统】本项目为前几天收费帮学妹做的一个项目,Javaswing项目,在工作环境中基本使用不到,但是很多学校把这个当做编程入门的项目来做,故分享出本项目供初学者参考。CSDN9.9赞助下载:https://download.csdn.net/download/weixin_44893902/20545860白嫖:加QQ68872185一、效果演示主要功能:普通用户:用户用水用电查询(根据时间查询、导出Excel)管理员用户:用户信息管理>>平台用户信息查询(修改信.

    2022年6月17日
    22

发表回复

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

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