课程实验 【八路抢答器】

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


相关推荐

  • pycharm安装后无法运行_pycharm代码运行不了

    pycharm安装后无法运行_pycharm代码运行不了问题:pycharm安装后不能执行python脚本的问题原因:pycharm没有设置解析器解决方法:打开pycharm->File->Settings->ProjectInterpreter->设置未你的python路径,我的是:C:\Python27\python.exe,你们根据各自python安装路径修改一下即可

    2022年8月26日
  • 强大易用的网页在线excel转json工具,值得一看「建议收藏」

    强大易用的网页在线excel转json工具,值得一看「建议收藏」强大易用的网页在线excel转json工具,值得一看很多游戏公司或者软件公司,客户端里一般无法读取策划写的excel配置表,需要先转成可以用的格式,例如json,xml格式。而现在普遍也是json格式传输,因此很有必要把excel格式文件转成json格式数据这里我一般是用这个在线EXCEL转JSON工具:http://www.yzcopen.com/doc/exceljson这个工具把excel第一行当json对象的key,然后会生成三种数据格式解析excel后会把数据分解成三.

    2022年5月4日
  • mac idea激活码永久【中文破解版】2022.02.13

    (mac idea激活码永久)好多小伙伴总是说激活码老是失效,太麻烦,关注/收藏全栈君太难教程,2021永久激活的方法等着你。https://javaforall.net/100143.htmlIntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,上面是详细链接哦~4KDDGND3CI-eyJsaWNlbnNlSWQiOi…

    2022年4月1日
  • sql数据库查询语句大全_sql基本语句大全

    sql数据库查询语句大全_sql基本语句大全1、今天select*from表名whereto_days(时间字段名)=to_days(now());2、昨天SELECT*FROM表名WHERETO_DAYS(NOW())-TO_DAYS(时间字段名)<=13、近7天SELECT*FROM表名whereDATE_SUB(CURDATE(),INTERVAL7DAY)<=date(时间字段名)4、近30天SELECT*FROM表名where

    2022年9月8日
  • 获取DNS服务器列表

    获取DNS服务器列表publicstaticvoidDisplayDnsAddresses()       {           NetworkInterface[]adapters=NetworkInterface.GetAllNetworkInterfaces();           foreach(NetworkInterfaceadapterinadapters)        

    2022年6月3日
  • 二、面向对象编程

    二、面向对象编程

    2021年8月19日

发表回复

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

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