版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
项目四0-99计数器的制作
硬件设计系统调试任务导读任务导入软件设计任务一、00—99加一计数器任务目标导读学习目标技能目标了解八段LED数码管的结构、分类以及其工作原理。了解8段LED数码管的显示码。掌握8段LED数码管检测方法掌握数字0-9的编码概念会用万用表测试数码管的好坏。会用软件方法测试数码管的好坏。1.了解8段LED数码管的结构及其工作原理。2.独立按键的工作原理。3.掌握数码管显示电路的硬件设计。4.掌握单片机对数码管的动态显示控制方式及C语言驱动程序编写。知识教学点
任务目标导读教学重点、难点
教学重点:1.数码管显示电路的硬件设计。2.单片机对数码管的动态显示控制方式。教学难点:1.单片机对数码管的动态显示C语言驱动程序编写
。参考学时:1学时~2学时
什么是计数器?计数器在数字系统中主要是对脉冲的个数进行计数,以实现测量、计数和控制的功能。任务导入任务一00—99加一计数器项目要求:实现用数码管显示00~99的加一计数。学习单片机与数码管LED显示器接口及按键的有关知识。本项目中要完成2个任务。任务1.实现按键控制数码管显示0~9的加一计数。任务2.实现按键控制数码管显示00~99的加一计数。任务一00—99加一计数器你知道怎样用单片机做一个计数器吗?实物任务一00—99加一计数器LED数码管任务一00—99加一计数器
一个8段LED数码管由8个发光二极管组成,其中7个发光二极管构成字型“8”的各个笔划(字段)a-g,另一个小数点为dp发光二极管。8段LED数码管的显示原理任务一00—99加一计数器5V8段LED数码管又分共阴极和共阳极两种。当在某段二极管上施加一定的正向电压时,该段笔划即亮;不加电压则暗。8段LED数码管的显示原理任务一00—99加一计数器共阴极LED数码管结构发光二极管的阴极连接在一起的称为共阴极LED数码管。显示“0”的段码:0x3f00111111接低电平发光二极管任务一00—99加一计数器显示“1”的段码:0x06如果显示“1”,段码为多少?00000110任务一00—99加一计数器TEXTTEXTTEXTTEXT共阳极LED数码管结构发光二极管的阳极连接在一起的称为共阳极LED数码管。显示“0”的段码:0xc0接高电平发光二极管11000000任务一00—99加一计数器TEXTTEXTTEXT共阳极与共阴极8段LED数码管编码表任务一00—99加一计数器单片机数码管按键复位晶振硬件电路设计方案:任务一00—99加一计数器实验板硬件电路设计电路组成控制器采用STC89C52单片机,P0口接6个一位共阳极数码管,通过两片74HL573S锁存数据,其中P0.0—P0.7分别连接数码管的a—g引脚。P0.0—P0.5分别分别作为6个共阴极数码管的位选端。数码管硬件电路如图所示:任务一00—99加一计数器单片机硬件电路任务一00—99加一计数器软件设计思路
任务1.实现按键控制数码管显示0~9的加一计数。按键按下作为判断条件,循环9次通过P0口送0-9段码,1个数码管选通。任务2.实现按键控制数码管显示00~99的加一计数按键按下作为判断条件,循环100次通过P0口送00-99段码,2个数码管选通。通过取整和取余得到十位和个位的值
具体程序调试过程见keil软件调试过程。
任务一00—99加一计数器仿真效果:任务一00—99加一计数器Count初始为0数码显示“00”按键识别成功吗?Count=Count+1Count=100吗?显示Count计数器YNNY开始程序流程图:任务一00—99加一计数器#include<reg8952.H>unsignedcharcodetable[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};unsignedcharCount;voiddelay10ms(void){unsignedchari,j;for(i=20;i>0;i--)for(j=248;j>0;j--);}voidmain(void){Count=0;P0=table[Count/10];P2=table[Count%10];
while(1){if(P3_7==0){delay10ms();if(P3_7==0){Count++;if(Count==100){Count=0;}P0=table[Count/10];P2=table[Count%10];while(P3_7==0);}}}}项目四0-99计数器的制作
硬件设计系统调试任务导读任务导入软件设计任务二、00—99加减计数器任务目标导读学习目标技能目标了解八段LED数码管的结构、分类以及其工作原理。了解8段LED数码管的显示码。掌握8段LED数码管检测方法掌握数字0-9的编码概念会用万用表测试数码管的好坏。会用软件方法测试数码管的好坏。1.了解8段LED数码管的结构及其工作原理。2.独立按键的工作原理。3.掌握数码管显示电路的硬件设计。4.掌握单片机对数码管的动态显示控制方式及C语言驱动程序编写。知识教学点
任务目标导读教学重点、难点
教学重点:1.数码管显示电路的硬件设计。2.单片机对数码管的动态显示控制方式。教学难点:1.单片机对数码管的动态显示C语言驱动程序编写
。参考学时:1学时~2学时
什么是计数器?计数器在数字系统中主要是对脉冲的个数进行计数,以实现测量、计数和控制的功能。任务导入任务二00—99加减计数器项目要求:实现用数码管显示00~99的加减计数。学习单片机与数码管LED显示器接口及按键的有关知识。本项目中要完成2个任务。任务1.实现按键控制数码管显示00~99的加一计数。
当按下按键KA,加一计数,任务2.实现按键控制数码管显示00~99的加减计数。
当按下按键KA,加一计数,当按下按键KB,减一计数,当按下KC,清零。任务二00—99加减计数器你知道怎样用单片机做一个计数器吗?实物任务二00—99加减计数器LED数码管任务二00—99加减计数器
一个8段LED数码管由8个发光二极管组成,其中7个发光二极管构成字型“8”的各个笔划(字段)a-g,另一个小数点为dp发光二极管。8段LED数码管的显示原理任务二00—99加减计数器5V8段LED数码管又分共阴极和共阳极两种。当在某段二极管上施加一定的正向电压时,该段笔划即亮;不加电压则暗。8段LED数码管的显示原理任务二00—99加减计数器共阴极LED数码管结构发光二极管的阴极连接在一起的称为共阴极LED数码管。显示“0”的段码:0x3f00111111接低电平发光二极管任务二00—99加减计数器显示“1”的段码:0x06如果显示“1”,段码为多少?00000110任务二00—99加减计数器TEXTTEXTTEXTTEXT共阳极LED数码管结构发光二极管的阳极连接在一起的称为共阳极LED数码管。显示“0”的段码:0xc0接高电平发光二极管11000000任务二00—99加减计数器TEXTTEXTTEXT共阳极与共阴极8段LED数码管编码表任务二00—99加减计数器单片机数码管按键复位晶振硬件电路设计方案:任务二00—99加减计数器实验板硬件电路设计电路组成控制器采用STC89C52单片机,P0口接6个一位共阳极数码管,通过两片74HL573S锁存数据,其中P0.0—P0.7分别连接数码管的a—g引脚。P0.0—P0.5分别分别作为6个共阴极数码管的位选端。数码管硬件电路如图所示:任务二00—99加减计数器单片机硬件电路任务二00—99加减计数器软件设计思路
任务1.实现按键控制数码管显示00~99的加一计数
若按键KA按下,变量自加,循环100次。通过P0口送00-99段码,2个数码管选通。通过取整和取余得到十位和个位的值。任务2.实现按键控制数码管显示00~99的加减计数
若按键KA按下,变量自加,循环100次。若按键KB按下,变量自减,循环100次。若按键KC按下,变量清零。通过P0口送00-99段码,2个数码管选通。具体程序调试过程见keil软件调试过程。
任务二00—99加减计数器仿真效果:任务二00—99加减计数器Count初始为0数码显示“00”按键KA识别成功吗?Count=Count+1Count=100吗?显示Count计数器YNNY开始程序流程图:任务一00—99加减计数器Count初始为0数码显示“00”KB按键识别成功吗?Count=Count-1Count=100吗?显示Count计数器YNNY开始程序流程图:任务一00—99加减计数器硬件设计软件设计任务导读
任务一、数码管显示矩阵按键号任务导入系统调试项目四0-99计数器的制作
任务目标导读学习目标技能目标了解八段LED数码管的结构、分类以及其工作原理。了解8段LED数码管的显示码。掌握8段LED数码管检测方法掌握数字0-9的编码概念会用万用表测试数码管的好坏。会用软件方法测试数码管的好坏。1.了解8段LED数码管的结构及其工作原理。2.独立按键的工作原理。3.掌握数码管显示电路的硬件设计。4.掌握单片机对数码管的动态显示控制方式及C语言驱动程序编写。知识教学点
任务目标导读教学重点、难点
教学重点:1.数码管显示电路的硬件设计。2.单片机对数码管的动态显示控制方式。教学难点:1.单片机对数码管的动态显示C语言驱动程序编写
。参考学时:1学时~2学时
常见按键类型及其应用场合44任务三数码管显示矩阵按键号提出任务:4X4小键盘,16个键分别对应0~9、A~F;有键按下,数码管显示;无键按下,数码管无显示;具体任务:1.独立按键按下,显示键号2.矩阵按键按下,显示键号任务三数码管显示矩阵按键号认识键盘键盘是单片机应用系统中人机交流不可缺少的输入设备。键盘由一组规则排列的按键组成,一个按键实际上是一个开关元件。键盘通常使用机械触点式按键开关,其主要功能是把机械上的通断转换为电气上的逻辑关系(1和0)。常见的种类有:查询(独立)式键盘
矩阵式键盘
任务三数码管显示矩阵按键号键盘分类
按键按照结构原理可分为两类触点式开关按键,如机械式开关、导电橡胶式开关等;无触点开关按键,如电气式按键,磁感应按键等。前者造价低,后者寿命长。按键按照接口原理可分为两类按键按照接口原理可分为两类
编码键盘,主要是用硬件来实现对按键的识别,硬件结构复杂;非编码键盘,主要是由软件来实现按键的定义与识别,硬件结构简单,软件编程量大。这里我们主要介绍单片机中常用的触点式开关按键、非编码键盘。任务三数码管显示矩阵按键号独立式键盘电路独立式键盘电路设计时,每个按键的一端与Px口的一个引脚相连,另一端接地。CPU可以通过检测Px的8个I/O口线哪个是“0”就可以识别是否有键按下,并能识别出是哪一个键按下。
任务三数码管显示矩阵按键号独立式按键与单片机的接口设计
芯片内有上拉电阻芯片内无上拉电阻此种接口适于键数较少或操作速度较高的场合1.工作原理:独立式按键的软件常采用查询式结构。先逐位查询每根I/O口线的输入状态,如某一根I/O口线输入为低电平,则可确认该I/O口线所对应的按键已按下,然后,再转向该键的功能处理程序。49任务三数码管显示矩阵按键号键盘设计应注意的问题机械式按键在按下或释放时,由于机械弹性作用的影响,通常伴随有一定时间的触点机械抖动,然后其触点才稳定下来。其抖动过程如右图所示,抖动时间的长短与开关的机械特性有关,一般为5
10ms。若有抖动,按键按下会被错误地认为是多次操作。
按键触点的机械抖动任务三数码管显示矩阵按键号防抖动措施为了克服按键触点机械抖动所致的检测误判,必须采取去抖动措施,可从硬件、软件两方面予以考虑。键数较少时,采用硬件去抖(用RS触发器);键数较多时,采用软件去抖。
软件上采取的措施是在检测到有按键按下时,执行一个10ms左右(具体时间应视所使用的按键进行调整)的延时程序,再确认该键电平是否仍保持闭合状态电平,若仍保持闭合状态电平,则确认该键处于闭合状态,从而消除抖动的影响。任务三数码管显示矩阵按键号用什么指令实现呢?软件消抖流程图:有键按下?延时10ms
YYNN
读按键输入有键按下?
读按键输入52任务三数码管显示矩阵按键号01111111100111111011111100100101110111110000110111101111100110011111011101001001111110110100000111111101000111111111111000000001独立式按键检测的过程演示独立式按键检测的过程演示,无键按下时数码管显示0,有键按下时数码管显示相应的按键号码(1~8)53任务三数码管显示矩阵按键号独立式按键检测程序#include<AT89X52.H>/***********共阳极数码管0~9的代码段**************/unsignedcharcodetab[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};/******延时子函数,12MHz晶振******/voiddelay(unsignedintn){unsignedchari;while(n--) {for(i=0;i<125;i++) {;} }}/**********主函数***********/main(){P1=0xff;P2=0xff;while(1) { P2=tab[key_scan()];//显示按键按下的号码
}}54任务三数码管显示矩阵按键号/*********键盘扫描子函数*********/unsignedcharkey_scan(){unsignedchartemp=0xff;//临时存储变量
unsignedcharkey_value=0;//存储按键号码变量
temp=P1; //读取P1口所接按键的状态
if(temp!=0xff) //temp中的值不等于0xff,说明有键按下
delay(10);//调延时子函数
else //temp中的值等于0xff,说明无键按下
return0; //无键按下,返回值为0temp=P1; //再读取P1口所接按键的状态
switch(~temp){case0x01:key_value=1;break;case0x02:key_value=2;break;case0x04:key_value=3;break;case0x08:key_value=4;break;case0x10:key_value=5;break;case0x20:key_value=6;break;case0x40:key_value=7;break;case0x80:key_value=8;break;}returnkey_value;//返回按键号码的值}55任务三数码管显示矩阵按键号矩阵式键盘电路任务三数码管显示矩阵按键号键盘的结构与原理矩阵式键盘单片机系统中,若使用按键较多时,通常采用矩阵式键盘,其结构如下图所示。由图可知,一个4×4的行、列结构,可以构成一个含有16个按键的键盘,节省了很多I/O口。控制方式:先判断是否有键按下。如有,再判断哪一键按下,并得到键码值,然后根据键码值转向不同的功能程序。最常用的识别方法是键盘扫描法。任务三数码管显示矩阵按键号判断按键按下的方法判断是否有键按下的方法是:向所有的列输出口线输出低电平(不能为高电平,因为若为高电平,按键按下与否都不会引起行线电平的变化),然后将行线的电平状态读入。若无键按下,所有的行线仍保持高电平状态;若有键按下,行线中至少应有一条线为低电平。例如:第2行与第2列交叉点的键被按下,则第2行与第2列导通,第2行电平被拉低,读入的行信号就为低电平,表示有键按下。任务三数码管显示矩阵按键号识别按键的方法按键识别的扫描方法:往列线上按顺序一列一列的送出低电平。先送第0列为低电平,其他列为高电平,读入的行的电平状态就表明了第0列的4个键的情况,若读入的行值全为高电平,则表示无键按下;再送第1列为低电平,其他列为高电平,读入的行的电平状态则显示了该行上的4个按键的情况;依次轮流给各列送出低电平,直至4列全部送完,再从第0列开始,依此循环。采用键盘扫描,我们再来观察第2行与第2列交叉点的键按下时的判断过程,当第2列送出低电平时,读第2行为低电平,而其他列送出低电平时,读第2行却为高电平,由此即可断定按下的键应是第2行与第2列交叉点的键。任务三数码管显示矩阵按键号键盘扫描程序具体实现方法判断有无键按下去除按键的抖动求按键的键值判断闭合键是否释放
任务三数码管显示矩阵按键号判断有无键按下P0.4~P0.7输出0,然后读P0口;若低4位P0.0~P0.3全为1,则键盘上没有键按下;若P0.0~P0.3不全为1,则有键按下。while(tmp==0x0f)//循环判断是否有键按下{P0=0x0f;//所有列输出低电平
tmp=P0;//读行信号}
任务三数码管显示矩阵按键号去除按键的抖动当判断到键盘上有键按下后;延时一段时间再判断键盘的状态;若仍为有键按下状态,则认为有一个键按下,否则当作按键抖动来处理。delay10ms();//延时10ms去抖P0=0x0f;//所有列输出低电平tmp=P0;//再次读键盘状态if(tmp==0x0f)continue;//如果无键按下则认为是按键抖动,重新扫描键盘
任务三数码管显示矩阵按键号求按键的键值对键盘的列线进行扫描,P0.4~P0.7循环输出1110、1101、1011和0111,依次读P0口,若低4位全为1,则断定该列上没有键按下;否则,该列上就有键按下,并且就是行线为0,列线为0的交叉点,行号和列号按公式:rol*4+col计算得到按下键的键值。例如,P0.4~P0.7输出1101时,P0口的低四位读入的值为1011,不全为1,就可以断定有键按下,并且是第2行和第1列交叉点的键。于是,该键的键值=2×4+1=9。按照相同的方法可以得到所有键的键值。如:return(rol*4+col);
任务三数码管显示矩阵按键号判断闭合键是否释放按键闭合一次只能进行一次功能操作,因此,等按键释放后才能根据键号执行相应的功能键操作。key=scan_key();//有键按下,调用键盘扫描程序,并把键值送keywhile(k!=-1)//判断闭合键是否释放,直到其释放{delay10ms();k=scan_key();}
任务三数码管显示矩阵按键号矩阵式键盘程序程序要判断是否有2个或2个以上的键盘同时按下,以免键盘分析错误。16个按键分别为0~9、A~F,用数码管显示按下的按键。矩阵式键盘程序任务三数码管显示矩阵按键号单片机系统中,若使用按键较多时,通常采用矩阵式(也称行列式)键盘。矩阵式按键与单片机的接口设计
1.矩阵式键盘的结构及原理(1)结构:矩阵式键盘由行线和列线组成,按键位于行、列线的交叉点上。66任务三数码管显示矩阵按键号#include<AT89X52.H>/***********共阳极LED显示0~F的代码********/unsignedcharLED_code[]={0xc0,0xf9,0xa4,0xb0, 0x99,0x92,0x82,0xf8, 0x80,0x90,0x88,0x83, 0xc6,0xa1,0x86,0x8e, 0x8c//共阳极LED显示P的代码
};/********延时子函数*********/voiddelay(unsignedintn){unsignedchari; while(n--) {for(i=0;i<125;i++) {;} }}矩阵式键盘
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 房屋租赁合同主要风险表现
- java课程设计sql数据库
- 2023年武汉市青山区社区专职人员招聘考试真题
- 中班英语微课程设计
- 民事诉状解除股权转让合同(3篇)
- 2023年红河州特殊教育学校招聘考试真题
- qt打地鼠课程设计
- 移动签合同7篇
- 跨年晚会节目策划书范文(3篇)
- Ai软件设计课程设计
- 本科教学工作审核评估学院汇报PPT课件
- 回转窑安装施工方案
- 城市轨道交通车站的作用
- 联合国国际货物买卖合同公约(CISG)
- 从组织行为学的视角探讨医院办公室管理工作
- 超声波电脱盐技术
- 人大主任在人大代表述职报告会上的讲话
- 桩基础工程施工安全协议书(完整版)
- 餐饮单位食品安全综合管理自查表(模版)
- 初中数学《北师大版》教材目录
- Barratt冲动量表(巴瑞特冲动性人格问卷)(BIS-11)
评论
0/150
提交评论