教学文库网 - 权威文档分享云平台
您的当前位置:首页 > 文库大全 > 教育文库 >

基于单片机的抢答器的设计(3)

来源:网络收集 时间:2026-08-29
导读: 这是我大学中的资料 图4-1-3 外部中断程序图 4.2 主程序 我们组所设计的抢答器的程序采用的是C程序设计,C语言的显著特点是用二进制来编写程序,程序的各个部分除了必要的信息交流外彼此之间相互独立。这种结构化方

这是我大学中的资料

图4-1-3 外部中断程序图 4.2 主程序

我们组所设计的抢答器的程序采用的是C程序设计,C语言的显著特点是用二进制来编写程序,程序的各个部分除了必要的信息交流外彼此之间相互独立。这种结构化方式可使程序层次清晰, 便于使用、维护以及调试。C语言是以函数形式提供给用户的,这些函数可方便的调用,并具有多种循环、条件语句控制程序流向,从而使程序完全结构化。虽然C语言也是强类型语言,但它的语法比较灵活,允许程序编写者有较大的自由度。本次设计的主程序中包括时钟设计程序,定时器中断子程序,LED显示程序以及按键控制子程序,程序设计如下: #include<reg52.h> sbit k0=P1^0; sbit k1=P1^1; sbit k2=P1^2; sbit k3=P1^3; sbit d0=P1^4; sbit d1=P1^5; sbit d2=P1^6; sbit d3=P1^7; sbit B0=P3^7; sbit l0=P2^0; sbit l1=P2^2; sbit l2=P2^3; sbit l3=P2^4; sbit kz=P3^0;

unsigned char qiangdanum=0x3f;

这是我大学中的资料

unsigned char code

table[]={0x3f,0xxx,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; unsigned char ge=0,shi=0; unsigned int num=0,time=0;

void display(); /*显示函数*/ void delay(unsigned int); main() {

TMOD=0X01; /*采用方式一,即十六位计数器*/ TH0=(65536-50000)/256; /*设置初始值*/ TL0=(65536-50000)%256; IT0=0;

EA=1;ET0=1; /*开启总中断源*/ EX0=1; /*启动外部中断0*/ {while(1) {display(); if(kz==0)

TR0=1; /*开启定时器0中断*/ if(num==20) { num=0; time++;

if(time==60) /*60秒的计时*/ time=0; } } } }

void exter0() interrupt 0 /*外部中断程序*/ {EA=0;l0=0;

if(k0==0) /*开关0按下*/ {d0=0;qiangdanum=1;B0=1;

}/* 1号选手抢答成功,数码管显示1,蜂鸣器响,第1个二极管亮*/

这是我大学中的资料

if(k1==0) /*开关1按下*/ {d1=0;qiangdanum=2;B0=1;

}/* 2号选手抢答成功,数码管显示2,蜂鸣器响,第2个二极管亮*/ if(k2==0) /*开关2按下*/ {d2=0;qiangdanum=3;B0=1;

}/* 3号选手抢答成功,数码管显示3,蜂鸣器响,第3个二极管亮*/

if(k3==0) /*开关3按下*/ {d3=0;qiangdanum=4;B0=1;

}/* 4号选手抢答成功,数码管显示4,蜂鸣器响,第4个二极管亮*/ }

void time0() interrupt 1 {num++;

TH0=(65536-50000)/256; TL0=(65536-50000)%256;

} /*1秒定时函数*/ void delay(unsigned int z) {unsigned int x,y; for(x=z;x>0;x--) for(y=110;y>0;y--);

} /*延迟函数*/ void display(void) {shi=time/10; ge=time%10; P2=0xef; P0=table[ge]; delay(5); P2=0xf7; P0=table[shi]; delay(5); P2=0xFE;

P0=table[qiangdanum]; delay(5);

这是我大学中的资料

} /*显示函数:来显示0-60的计数*/ 4.3 中断程序 4.3.1 什么是中断

中断是指由于某种随机事件的发生,计算机暂停现行的程序的运行,转去执行另一个程序,以处理发生的事件,处理完毕后又自动返回原来的程序继续运行。

有五种中断源:外部中断0、外部中断1、定时器中断0、定时器中断1、串行中断。它们的描述如下图所示:

表4-3-1 五种中断源的表示 4.3.2 中断所用到的寄存器

介绍定时器/计数器中所介绍的寄存器: (1)、定时器/计数器控制寄存器TCON

TCON的作用是控制定时器的启动`停止,标志定时器的溢出和中断情况; (2)、中断允许控制寄存器IE

对中断源的开放或屏蔽是由中断寄存器IE控制的,地址为0A8H,即可以按字节寻址,也可以按位寻址。当单片机复位时,IE被清零。 (3)、串行控制寄存器SCON

定时/计数器的控制方法:在启动定时/计数器工作之前CPU必须将一些命令(称为控制字)写入定时/计数器中,这个过程称为定时/

计数的初始化。(定时/计数器的初始化通过定时/计数器的方式寄存器TMOD和控制寄存器TCON来完成。︱ ①定时/定时器

…… 此处隐藏:421字,全部文档内容请下载后查看。喜欢就下载吧 ……
基于单片机的抢答器的设计(3).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.jiaowen.net/wenku/109706.html(转载请注明文章来源)
Copyright © 2020-2025 教文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:78024566 邮箱:78024566@qq.com
苏ICP备19068818号-2
Top
× 游客快捷下载通道(下载后可以自由复制和排版)
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
× 常见问题(客服时间:周一到周五 9:30-18:00)