- 1、本文档共25页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于单片机简易抢答器设计
基于单片机的简易抢答器设计 * 基于单片机的简易抢答器 一、基本要求 1.抢答器输入路数为4/8路,用按键抢答 2.带有一位LED数码管显示器,用于显示抢答结果 3.具备复位功能 4.具备定时抢答功能,显示计时秒数0~9秒 二、发挥部分 1.增加1位LED显示器,使计时时间达到0~99秒 2.增加音响功能 3.增加违规报警功能 按钮 数码管 蜂鸣器 单片机 引脚要怎么分配? 所以………… 出现了两种思路: 思路一: 利用中断源扩展 思路二: 利用I/O口扩展 思路一: 利用与门扩展中断源来作为选手的按钮,采用P3.1作为开始按钮,外部中断0作为复位按钮。计时结果显示分别接在P0口和P2口,违规显示接在P1口。具体接线图如下所示: 用来减小干扰 预定义 主函数 外部中断0 外部中断1 定时计数器T0中断 预定义与初始化部分主要完成包含文件设置、输入输出口定义、函数声明、变量声明和LED数码管显示字形代码定义等内容。具体C51代码如下: #includereg51.h //MCS-51资源包含文件 sbit xuan1=P3^4; sbit xuan2=P3^5; sbit xuan3=P3^6; sbit xuan4=P3^7; sbit kai=P3^1; sbit buzzer=P3^0; #define led1 P0 #define led2 P1 #define led3 P2 unsigned int i,time,j; unsigned char code table[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0 x80,0x90}; //共阳极数码管显示器字形代码 void int0(); //外部中断0服务函数 void int1(); //外部中断1服务函数 void t0(); //定时计数器T0中断服务函数 主函数主要完成系统的初始化,主要包括中断的开放与禁止、定时计数器工作方式的设定、定时计数器初值的装载等。具体C51代码如下: main() //主函数 { //主函数开始 EA=1; //开总中断 TMOD=0x01; //定时计数器T0设置为方式1,16位定时器方式 TH0=0x3c; TL0=0xb0; ET0=1; //开定时计数器T0中断 EX0=1; //开外部中断0 EX1=1; //开外部中断1 IT0=1; //外部中断0设置为边沿触发方式 IT1=1; //外部中断0设置为边沿触发方式 PX0=0; PX1=1; buzzer=0; led1=table[0]; led3=table[0]; led2=0x8e; while(1) {if(kai==0) {TR0=1; time=99;}}} 复位函数 具体C51代码如下: void int0() interrupt 0 //外部中断0服务函数定义 { TR0=0; time=0; led1=table[0]; led2=0x8e; led3=table[0]; xuan1=1; xuan2=1; xuan3=1; xuan4=1; buzzer=0; } 按钮控制函数 具体C51代码如下: void int1() interrupt 2 //外部中断1服务函数定义 { if(TR0==0time==0) {if(xuan1==0led2==0x8e) {buzzer=1;led2=table[1];} else if(xuan2==0led2
文档评论(0)