基于单片机的抢答器的设计(3)
这是我大学中的资料
图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字,全部文档内容请下载后查看。喜欢就下载吧 ……相关推荐:
- [教育文库]夜场KTV服务员的岗位职责及工作流程[1]
- [教育文库]企划、网络、市场绩效考核方案
- [教育文库]学党史、知党情、强党性--“党的基本理
- [教育文库]2016年高考物理大一轮总复习(江苏专版
- [教育文库]干部廉洁自律自查自纠的报告
- [教育文库]2010年北京大学心理学系拟录取硕士研究
- [教育文库]资金时间价值练习题及答案
- [教育文库]保护环境的心得体会
- [教育文库]英语角内容:英语趣味小知识
- [教育文库]档案收集与管理工作通知
- [教育文库]劳动规章制度范本范本
- [教育文库]高考物理一轮复习课后限时作业1运动的
- [教育文库]机械工艺夹具毕业设计195推动架设计说
- [教育文库]通用技术教学比赛说课稿2
- [教育文库]2018年四年级英语下册 Module 7 Unit 2
- [教育文库]第2章 宽带IP网络的体系结构
- [教育文库]九年级化学第五单元课题3《根据化学方
- [教育文库]小学英语六年级情态动词用法归纳
- [教育文库]甲级单位编制窑井盖项目可行性报告(立
- [教育文库]2016-2021年中国城市规划行业全景调研
- 高考英语听力十大场景词汇总结
- 全省领导班子思想政治建设座谈会会议精
- 人教版新课标高一英语提优竞赛试题 下
- 江西省2014年生物中考试题
- 长沙镇食品药品安全事故应急预案
- 《金刚石、石墨和C60》片段教学设计
- 福州教育学院(王旭东)
- 基于EDA音乐播放器的设计
- 9、古诗两首《夜书所见》《九月九日忆
- 小学语文课外阅读有效策略探讨
- 贵州文化产业发展成支柱产业的问卷调查
- 膀胱类癌的诊治体会(附3例报告)
- 发动机积碳产生的原因
- Configuring Code Composer Studio for
- 学生良好的心理素质如何培养点滴谈
- 46 电沉积法制备锂离子电池用硅-锂薄膜
- 美舍雅阁公司管理中各部门职责
- 去壳剥皮的小妙招
- 六自由度运动平台的仿真研究
- Pride and Prejudice(傲慢与偏见)




