论文部分内容阅读
摘要:抢答器在日常生活工作中使用较多,本文结合单片机的常用外围,设计一个简易的三路抢答系统,以此为例,让同学们综合开发,融合按键、数码管、1602液晶、发光二极管、蜂鸣器、定时中断等,学习单片机应用系统的设计方法。
关键字:51单片机;三路抢答系统
中图分类号:TP276 文献标识码:A
文章编号:1009-3044(2020)33-0232-02
开放科学(资源服务)标识码(OSID):
单片机的初期学习过程,各个模块的单独使用通常较为简单,但对于系统功能设计时却容易出现不知如何下手的问题。如何将1602液晶显示、数码管动态显示、独立按键识别、定时器中断使用等功能融合利用,需要进行系统设计。而抢答器是日常工作中应用较多的一种典型系统,为此,本系统采用了MCS51单片机进行三路抢答系统的设计,可实现抢答器的全部要求,同时为单片机的综合学习提供思路。
1 三路抢答系统整体要求
主持人有一个按键,可以控制抢答的开始与停止(复位),三组成员分别为A、B、C,各有一个按键进行抢答申请;当主持人允许抢答时,三组成员才能抢答,当任一组抢答成功后,另外两组则抢答无效。
2 具体设计要求
1)1602液晶显示要求:
上电后,1602液晶显示一行字符“zhi shi jing sai”;
2)数码管显示要求:
上电后,数码管不显示;当有按键按下时,则按按键的要求进行显示;
3)按键要求:
(1)S1:主持人按键:
当主持人第一次按下后,数码管的前两位显示“20”,代表抢答时间为20秒,然后按秒减法显示;后两位数码管显示“00”,直至某一组抢答成功或抢答时间结束;
当主持人第二次按下后,复位,数码管不再显示,时间也复位;
之后就反复循环;
(2) S2(A组)、S3(B组)、S4(C组)抢答申请键:
在主持人允许抢答的前提下,按下此键后,秒表停止计时,倒计时开始计时,数码管前两位显示抢答所花的时间,数码管后两位显示“叭(或02或03)”,表示第一组(或第二组或第三组)抢答成功,数码管中间两位开始“30s”倒计时,显示答题剩余时间;
4)发表二极管和蜂鸣器要求:
(1)开始抢答后,八个发光二极管均亮;
(2)有效按键按下或时间到,蜂鸣器响一声。
3 硬件设计思路
系统中主要用到的模块非常明确,涉及最小系统、发光显示、数码显示、独立按键输入、液晶显示、蜂鸣器输出等。
1)单片机最小系统:包括电源电路(VCC,CND)、时钟电路(由于设计中有用到中断,因此选择11.0592MHZ晶振)、复位电路(上电复位、按键复位)、程序存储器选择电路(EA=1);
2)发光显示:(1)直接接人发光二极管,注意限流电阻的选择。发光二极管具有单向导电性,通过SmA左右的电流即可,电流越大,其亮度越强,但若电流过大,会烧毁二极管,一般我们控制在3 - 20mA之间;(2)考虑到P1口有可能会重复使用,在发光二极管与单片机之间加入一个锁存器用以隔离。
3)数码管显示:数码管分为共阴和共阳两类,不同的类型只需关注其不同的字形碼和位选码值。本项目中,为减少单片机1/0口的使用,增加两个锁存器,一个控制段码,一个控制位选。
4)独立按键输入:本任务中,只需要用到四个按键,可直接采用独立按键,公共端接地,当按键按下时,其对应端口置0。
5) 1602液晶显示:(1)液晶1、2端为电源,15、16为背光电源,为防止直接加SV电压烧坏背光灯,在15脚串一个10欧电阻用于限流;(2)液晶3端为液晶对比度调节端,通过一个IOK欧电位器接地来调节液晶显示对比度;(3)液晶5端为读/写选择端,因为不从液晶读取任何数据,只向其写人命令和显示数据,因此此端始终选择为写状态,即低电平接地;
6)采用Proteus软件进行硬件系统设计,为保持美观,注意使用网络进行线路连接,同时设计完成后要进行电气检测,具体如下图所示:
4 硬件设计思路
此功能任务中,涉及单片机最小系统、发光显示、数码显示。
5 部分软件设计思路
1)初始化设置:
(1)1602液晶初始化、写人命令、写人数据,调用在1602液晶显示函数;就其常用的几个命令解释如下:
Write_com(Ox38);//设置16*2显示,5*7点阵,8位数据端口;
Write_com(OxOC);/设置开显示,不显示光标;
Write_com(Ox38);//写一个字符后地址指针自动加1;
Write_com(Ox38);//显示清0,数据指针清0;
(2)定时器TO(抢答的时间)、定时器T1(抢答成功后的作答时间)初始化及中断函数;
2)键盘扫描:独立按键扫描中主要涉及按键按下的识别、延时去抖动、按键释放等。
(1)首先扫描判断主持人是否按下键允许抢答,注意允许抢答和停止抢答用的同一个按键,可设置一个变化进行取反操作;
(2)在允许抢答和抢答时间到达之前,扫描判断是否有人抢答,注意任何一组抢答后其余两组都不再能抢答,参看后续程序段;
3)数码管显示:采用动态扫描显示,即轮流向各位数码管送出字形码和相应的位选,利用发光管的余辉和人眼视觉暂留作用,使人的感觉好像各位数码管同时都在显示,而实际上多位数码管是一位一位轮流显示的,只是轮流的速度非常快,人眼已经无法分辨出来。在程序设计中要特别注意动态显示过程中的“消影”处理,避免数码管出现显示混乱的现象。 (1)不允许抢答前,数码管不显示,通过控制数码管公共端电平实现;
(2)允许抢答时,数码管显示抢答剩余时间。定时器TO计时,动态显示;
(3)抢答成功后,数码管主要显示作答时间和小组组别号。作答时间由定时器T1计时,小组组别号由按键扫描函数返回。
6 部分程序及说明
#include //头文件包含
#define uchar unsigned char//宏定义,uchar代表unsignedchar
#define uint unsigned int
//宏定义,uint代表unsigned int
sbit DULA=P2^6;
//段显的锁存器控制位定义
sbit WELA=P2^7;
//位显的锁存器控制位定义
sbit FM=P2“3;
//蜂鸣器位定义
sbit qiting=P3^4;
//位定义,s2定义为qiting;
sbit zuI=P3^5. //位定义,s3定义为zul;
sbit zu2=P3“6; //位定义,s4定义为zu2;
sbit zu3=P3“7; //位定义,s5定义为zu3;
uchar x,flag,m,n,flagl;
//字符型变量申明
uchar code table[]=”zhi shi jing sai”;//液晶屏显示内容的编码列表
uchar code tablel[l={ //数码管显示数字的编码列表
Ox3f:,Ox06,Ox5b,Ox4f,
Ox66,Ox6d,Ox7d,Ox07,
Ox7f,Ox6f,Ox77,Ox7c,
Ox39,Ox5e,Ox79,Ox7l,Ox00};
uchar num=21,shijian=17,zubie;//字型变量申明
7 结束语
在电脑上提前安装proteus仿真软件进行硬件设计,安装Keil编程软件进行程序設计,仿真后再下载确认。本三路抢答系统虽然所用外围设备不多,但却是常用部件的综合应用,让学员对功能设计的方法和思路有所了解,同时可实际应用到普通竞赛用具中,在提升学习兴趣的同时增强应用,拓宽运用知识创新创业的思路。
参考文献:
[1]薛春玲,蔡晓艳.基于AT89S52单片机的8路抢答器的设计[J].光学仪器,2014,36(2):156-160.
[2]文明月.基于AT89S52单片机的抢答器设计与实现[J].科技创新导报,2009,6(28):35.
[3]宋春华,刘江涛,王贵恩。裴小英.基于单片机控制的数字抢答器[J].河南机电高等专科学校学报,2005,13(5):28-29.
【通联编辑:李雅琪】
关键字:51单片机;三路抢答系统
中图分类号:TP276 文献标识码:A
文章编号:1009-3044(2020)33-0232-02
开放科学(资源服务)标识码(OSID):
单片机的初期学习过程,各个模块的单独使用通常较为简单,但对于系统功能设计时却容易出现不知如何下手的问题。如何将1602液晶显示、数码管动态显示、独立按键识别、定时器中断使用等功能融合利用,需要进行系统设计。而抢答器是日常工作中应用较多的一种典型系统,为此,本系统采用了MCS51单片机进行三路抢答系统的设计,可实现抢答器的全部要求,同时为单片机的综合学习提供思路。
1 三路抢答系统整体要求
主持人有一个按键,可以控制抢答的开始与停止(复位),三组成员分别为A、B、C,各有一个按键进行抢答申请;当主持人允许抢答时,三组成员才能抢答,当任一组抢答成功后,另外两组则抢答无效。
2 具体设计要求
1)1602液晶显示要求:
上电后,1602液晶显示一行字符“zhi shi jing sai”;
2)数码管显示要求:
上电后,数码管不显示;当有按键按下时,则按按键的要求进行显示;
3)按键要求:
(1)S1:主持人按键:
当主持人第一次按下后,数码管的前两位显示“20”,代表抢答时间为20秒,然后按秒减法显示;后两位数码管显示“00”,直至某一组抢答成功或抢答时间结束;
当主持人第二次按下后,复位,数码管不再显示,时间也复位;
之后就反复循环;
(2) S2(A组)、S3(B组)、S4(C组)抢答申请键:
在主持人允许抢答的前提下,按下此键后,秒表停止计时,倒计时开始计时,数码管前两位显示抢答所花的时间,数码管后两位显示“叭(或02或03)”,表示第一组(或第二组或第三组)抢答成功,数码管中间两位开始“30s”倒计时,显示答题剩余时间;
4)发表二极管和蜂鸣器要求:
(1)开始抢答后,八个发光二极管均亮;
(2)有效按键按下或时间到,蜂鸣器响一声。
3 硬件设计思路
系统中主要用到的模块非常明确,涉及最小系统、发光显示、数码显示、独立按键输入、液晶显示、蜂鸣器输出等。
1)单片机最小系统:包括电源电路(VCC,CND)、时钟电路(由于设计中有用到中断,因此选择11.0592MHZ晶振)、复位电路(上电复位、按键复位)、程序存储器选择电路(EA=1);
2)发光显示:(1)直接接人发光二极管,注意限流电阻的选择。发光二极管具有单向导电性,通过SmA左右的电流即可,电流越大,其亮度越强,但若电流过大,会烧毁二极管,一般我们控制在3 - 20mA之间;(2)考虑到P1口有可能会重复使用,在发光二极管与单片机之间加入一个锁存器用以隔离。
3)数码管显示:数码管分为共阴和共阳两类,不同的类型只需关注其不同的字形碼和位选码值。本项目中,为减少单片机1/0口的使用,增加两个锁存器,一个控制段码,一个控制位选。
4)独立按键输入:本任务中,只需要用到四个按键,可直接采用独立按键,公共端接地,当按键按下时,其对应端口置0。
5) 1602液晶显示:(1)液晶1、2端为电源,15、16为背光电源,为防止直接加SV电压烧坏背光灯,在15脚串一个10欧电阻用于限流;(2)液晶3端为液晶对比度调节端,通过一个IOK欧电位器接地来调节液晶显示对比度;(3)液晶5端为读/写选择端,因为不从液晶读取任何数据,只向其写人命令和显示数据,因此此端始终选择为写状态,即低电平接地;
6)采用Proteus软件进行硬件系统设计,为保持美观,注意使用网络进行线路连接,同时设计完成后要进行电气检测,具体如下图所示:
4 硬件设计思路
此功能任务中,涉及单片机最小系统、发光显示、数码显示。
5 部分软件设计思路
1)初始化设置:
(1)1602液晶初始化、写人命令、写人数据,调用在1602液晶显示函数;就其常用的几个命令解释如下:
Write_com(Ox38);//设置16*2显示,5*7点阵,8位数据端口;
Write_com(OxOC);/设置开显示,不显示光标;
Write_com(Ox38);//写一个字符后地址指针自动加1;
Write_com(Ox38);//显示清0,数据指针清0;
(2)定时器TO(抢答的时间)、定时器T1(抢答成功后的作答时间)初始化及中断函数;
2)键盘扫描:独立按键扫描中主要涉及按键按下的识别、延时去抖动、按键释放等。
(1)首先扫描判断主持人是否按下键允许抢答,注意允许抢答和停止抢答用的同一个按键,可设置一个变化进行取反操作;
(2)在允许抢答和抢答时间到达之前,扫描判断是否有人抢答,注意任何一组抢答后其余两组都不再能抢答,参看后续程序段;
3)数码管显示:采用动态扫描显示,即轮流向各位数码管送出字形码和相应的位选,利用发光管的余辉和人眼视觉暂留作用,使人的感觉好像各位数码管同时都在显示,而实际上多位数码管是一位一位轮流显示的,只是轮流的速度非常快,人眼已经无法分辨出来。在程序设计中要特别注意动态显示过程中的“消影”处理,避免数码管出现显示混乱的现象。 (1)不允许抢答前,数码管不显示,通过控制数码管公共端电平实现;
(2)允许抢答时,数码管显示抢答剩余时间。定时器TO计时,动态显示;
(3)抢答成功后,数码管主要显示作答时间和小组组别号。作答时间由定时器T1计时,小组组别号由按键扫描函数返回。
6 部分程序及说明
#include //头文件包含
#define uchar unsigned char//宏定义,uchar代表unsignedchar
#define uint unsigned int
//宏定义,uint代表unsigned int
sbit DULA=P2^6;
//段显的锁存器控制位定义
sbit WELA=P2^7;
//位显的锁存器控制位定义
sbit FM=P2“3;
//蜂鸣器位定义
sbit qiting=P3^4;
//位定义,s2定义为qiting;
sbit zuI=P3^5. //位定义,s3定义为zul;
sbit zu2=P3“6; //位定义,s4定义为zu2;
sbit zu3=P3“7; //位定义,s5定义为zu3;
uchar x,flag,m,n,flagl;
//字符型变量申明
uchar code table[]=”zhi shi jing sai”;//液晶屏显示内容的编码列表
uchar code tablel[l={ //数码管显示数字的编码列表
Ox3f:,Ox06,Ox5b,Ox4f,
Ox66,Ox6d,Ox7d,Ox07,
Ox7f,Ox6f,Ox77,Ox7c,
Ox39,Ox5e,Ox79,Ox7l,Ox00};
uchar num=21,shijian=17,zubie;//字型变量申明
7 结束语
在电脑上提前安装proteus仿真软件进行硬件设计,安装Keil编程软件进行程序設计,仿真后再下载确认。本三路抢答系统虽然所用外围设备不多,但却是常用部件的综合应用,让学员对功能设计的方法和思路有所了解,同时可实际应用到普通竞赛用具中,在提升学习兴趣的同时增强应用,拓宽运用知识创新创业的思路。
参考文献:
[1]薛春玲,蔡晓艳.基于AT89S52单片机的8路抢答器的设计[J].光学仪器,2014,36(2):156-160.
[2]文明月.基于AT89S52单片机的抢答器设计与实现[J].科技创新导报,2009,6(28):35.
[3]宋春华,刘江涛,王贵恩。裴小英.基于单片机控制的数字抢答器[J].河南机电高等专科学校学报,2005,13(5):28-29.
【通联编辑:李雅琪】