课程实验 【八路抢答器】

课程实验 【八路抢答器】基于外部中断课程实验【八路抢答器】#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

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

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

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • 永恒之蓝漏洞与勒索病毒Wannacry研究

    永恒之蓝漏洞与勒索病毒Wannacry研究永恒之蓝漏洞与Wannacry病毒家族

    2022年10月17日
  • 程序解码错误:Accept-Encoding“: “gzip, deflate, br[通俗易懂]

    程序解码错误:Accept-Encoding“: “gzip, deflate, br[通俗易懂]请求头设置”Accept-Encoding”:”gzip,deflate,br”返回的数据是乱码,无论设置utf-8、gbk、gb2312都无法解码一个奇怪的现象是本地测试可以正常解码,代码在服务器上运行就无法解码,最终将该请求头去除就正常了。…

  • chroot 与 jail

    chroot 与 jail

  • ARM的中断向量表,及DCD伪指令

    ARM的中断向量表,及DCD伪指令当中断或异常发生的时候,CPU自动将PC指向一个特定的地址,这个地址就是中断向量表。在32位ARM系统中,一般都是在中断向量表中放置一条分支指令或PC寄存器加载指令,实现程序跳转到中断服务例程的功能。例如: IRQEntryBHandleIRQ;跳转范围较小 LDRPC,=HandleFIQ   ;LDR伪指令等效生成1条存储读取指令和1条32位常数定义

    2022年10月29日
  • SDL_Delay函数

    SDL_Delay函数用此函数来暂停指定的时间,单位为ms。voidSDL_Delay(Uint32ms)参考文章:http://blog.csdn.net/vagrxie/article/details/5735979http://www.cppblog.com/lf426/archive/2008/04/28/48325.html蔡军生C++培训

  • ssl证书绑定域名还是ip_ssl证书类型

    ssl证书绑定域名还是ip_ssl证书类型答案:IP地址可以申请SSL证书实现IP的https加密,快速拿到IP证书,请直接联系本站右侧在线客服。环度网信是可以帮助您的IP实现https加密的,只需要您满足如下几个条件:1、您的IP地址是公网IP,暂不支持内网IP申请可信的SSL证书,因为只有公网IP是全球唯一的,能够验证IP所有者的管理权限。2、您的IP需要开通或者临时开通80或者443端口,因为我们在验证您的IP管理权限的时候,会给您…

发表回复

您的电子邮箱地址不会被公开。

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