任务11 控制秒表的启停与清零

合集下载

单片机应用技术任务11 控制秒表的启停与清零

单片机应用技术任务11 控制秒表的启停与清零

上图中,S0键未按下时,P0.0=1,S0按下后,P0.0=0。
3、独立式键盘接口
⑵键盘处理程序 键盘处理需要注意的问题是,要
开始 系统中软硬件初始化 Keytreated=0 N
防止一次按键按下被多次解释执行(连
击键除外)。 在main函数中处键盘流程如图所示 图中,keytreated为按键已处理
S2键按下。程序中可以不单独使用scan函数获取键值。 ③在独立式键盘中,常用switch/case语句实现依键值进行按键功能
解释。
3、独立式键盘接口
在定时中断服务函数中进行键盘处理
在main函数中处理键盘的主要缺陷是,程序中采用了10ms软件延时 去抖动,增加了CPU的负担,不利于采用CPU睡眠技术抗干扰。 键盘处理可以放在10ms定时中断服务函数中,利用定时时差延时去 抖动。采用这种方式处理键盘,需要用一个全局位变量down来标识10ms
控制秒表的启停与清零
任务要求
在任务10的基础上增加S0、S1、S2三个按键。S0键作启动键, 按S0键,启动秒表走时,秒表在当前显示秒数的基础上计时。例如,
当前数码管显示的是05,按S0键后,秒表在5秒的基础上计时,依次
显示06,07,……。S1键为停止键,按S1键,秒表停止走时,显示 时间一直保持不变。S2键为清0键,按S2键,秒表停止走时,显示数
continue;
}
2、键盘处理的流程
单片机系统中所用的键盘有独立式键盘和矩阵式键盘两种。键盘接口 的基本任务主要有4个方面:⑴判断是否有键按下;⑵去抖动;⑶确定所 按下键的键值,即确定是何键按下;⑷对按键功能进行解释。 在一次按键操作中,由于按键的机械特性的原因,键按下或释放都 有一个弹跳的抖动过程,抖动的时间一般为5~15ms,其波形如下:

可任意启动停止的电子秒表设计

可任意启动停止的电子秒表设计

可任意启动停止的电子秒表设计1.引言本文将介绍一种设计思路,实现了可任意启动停止的电子秒表。

在日常生活中,秒表广泛应用于计时和测量领域,例如运动比赛、实验室测量等。

设计一个方便灵活的电子秒表,可以提高计时的准确性和便捷性。

2.设计原理2.1 电路结构该电子秒表设计采用基于微控制器的数字计时器。

电路结构简单,主要由微控制器、晶振、按钮和显示器组成。

按钮用于控制启动和停止,显示器用于显示计时结果。

2.2 程序设计通过编程实现秒表的启动、停止和计时功能。

通过轮询按钮状态,实现按钮功能的触发。

使用定时器中断来实现计时功能,每次中断增加计时值,并更新显示器内容。

同时,设计一个状态机控制秒表的状态切换,如初始状态、运行状态和停止状态。

3.实现步骤3.1 硬件连接将微控制器与晶振、按钮和显示器连接正常,确保电路连接正确。

3.2 程序编写编写秒表的程序,包括按钮轮询、定时器中断和状态机设计。

程序应该简洁高效,确保计时准确。

3.3 测试验证将程序下载到微控制器中,连接电源进行测试验证。

通过按键操作验证秒表的启动、停止功能是否正常。

4.应用场景该可任意启动停止的电子秒表可广泛应用于日常生活和工作中。

例如运动比赛、游戏计时、实验室测量等场景。

5.总结通过本设计,实现了一个灵活方便的电子秒表,具有可任意启动停止的功能。

通过合理的电路设计和程序编写,提高了计时的准确性和便捷性,满足了不同场景的需求。

以上是对可任意启动停止的电子秒表设计的介绍,希望能够为读者提供一些参考和启发。

单片机控制秒表课程设计

单片机控制秒表课程设计

单片机控制秒表课程设计一、课程目标知识目标:1. 让学生理解单片机的基本原理和功能,掌握单片机在秒表设计中的应用。

2. 使学生掌握秒表计时原理,了解秒表各功能模块的工作原理。

3. 帮助学生掌握相关编程语言,实现单片机控制秒表的程序编写。

技能目标:1. 培养学生运用所学知识,设计并实现一个具有启动、停止、复位和计秒功能的单片机控制秒表。

2. 提高学生动手实践能力,学会使用编程软件、下载器和调试工具。

3. 培养学生团队协作能力,分工合作完成课程设计任务。

情感态度价值观目标:1. 培养学生热爱科学、勇于探索的精神,增强对单片机及嵌入式系统学习的兴趣。

2. 培养学生严谨、认真、负责的学习态度,养成良好的学习习惯。

3. 引导学生关注科技发展,了解单片机在日常生活和工业生产中的应用,提高创新意识。

本课程针对高年级学生,具有较强的实践性和综合性。

通过本课程的学习,使学生能够将所学理论知识与实际应用相结合,提高解决实际问题的能力。

课程目标具体、可衡量,以便学生和教师能够清晰地了解课程的预期成果。

在教学过程中,需关注学生的个体差异,激发学生的学习兴趣,培养其动手实践能力和团队协作精神,为后续学习打下坚实基础。

二、教学内容本章节教学内容主要包括以下几部分:1. 单片机基本原理:讲解单片机的组成、工作原理和功能特点,使学生了解单片机在秒表设计中的核心作用。

2. 秒表计时原理:介绍秒表的计时原理,分析秒表的启动、停止、复位和计秒功能模块。

3. 编程语言及开发环境:学习单片机编程所需的语言(如C语言),介绍编程软件、下载器和调试工具的使用。

4. 单片机控制秒表设计:根据课程目标,制定以下详细教学大纲:(1)秒表功能需求分析:讨论并明确秒表的各项功能需求。

(2)硬件设计:讲解如何选用合适的单片机、时钟电路、按键、显示屏等硬件设备。

(3)软件设计:指导学生使用C语言编写单片机控制秒表的程序代码。

(4)系统调试:教授学生如何进行硬件和软件的调试,确保秒表的正常工作。

数字电子秒表设计总结报告1

数字电子秒表设计总结报告1

数字电子秒表设计总结报告一.工作原理本数字电子秒表设计由启动、清零复位电路、多谐振荡电路、分频计数电路、译码显示电路等组成。

如下图所示:启动清零复位电路主要由U6A 、U6B 、U7B 、U7D 组成,其本质是一个RS 触发器和单稳态触发器。

J1控制数字秒表的启动和停止,J2控制数字秒表的清零复位。

开始时把J1合上,J2打开,运行本电路,数字秒表正在计数。

当打开J1,合上J2键,J2与地相接得到低电平加到U6B 的输入端,U6B 输出高电平又加到U6A 的输入端,而U6A 的另一端通过电阻R15与电源相接得到高电平,(此时U6B 与U6A 组成RS 触发器),U6A 输出低电加到U7A 的输入端,U7A 被封锁输出高电平加到U5的时钟端,因U5不具备时钟脉冲条件,U5不能输出脉冲信号,因此U3、U4时钟端无脉冲而停止计数。

当J1合上时,打开J2键,J1与地相接得到低电平加到U6A 的输入端,U6A 输出高电平加到U6B 的输入端,U6B输出低电平加至U7B,使U7B输出高电平,因电容两端电压不能跃变,因此在R7上得到高电平加到U7D输入端,U7D输出低电平(进入暂态)同时加到U3、U4、U5的清零端,使得U3、U4的QD ---QA输出0000,经U1、U2译码输出驱动U9、U10显示“00”。

因为U7B与U7D组成一个单稳态电路,经过较短的时间,U7D的输出由低电平变为高电平,允许U3、U4、U5计数。

同时U6A输出高电平加到U7A的输入端,将U7A打开,让555的3脚输出100KHZ的振荡信号经U7A加到U5的时钟脉冲端,使得U5具备时钟脉冲条件,U5的9、10、7脚接高电平,U5构成十分频器,对时钟脉冲计数。

当U5接收一个脉冲时,U5内部计数加1,如果U5接收到第十个脉冲时,U5的15脚(RCO端)输出由低电平跳变为高电平作为U4的时钟脉冲,从而实现了对振荡信号的十分频,产生周期为0.1S的脉冲加至U4的时钟端。

单片机 数码管简单秒表程序,带停止启动复位

单片机 数码管简单秒表程序,带停止启动复位

单片机+数码管简单秒表程序,带停止启动复位p0口是数码管的位选入口,P2口是数码管的段选用4位一体的数码管,P3.0 P3.1 P3.2分别是启动停止和复位按钮#include ;#define uchar unsigned char#define uint unsigned int#define DATA P2sbit start=P3^0;sbit stop=P3^1;sbit reset=P3^2;//---------启停标志-----bit SAT=0;bit RST=0;//------------数码管码表----------uchar tab[10]={0x3F, 0x06, 0x5B, 0x4F, 0x66, 0x6D, 0x7D, 0x07, 0x7F, 0x6F};//------------uint time=0; //时间uint cnt=0; //计数//------------- void delay(int k) {while(k--);}void startkey() {static uchar i,j; if(start==0) {if(i==0){j++;if(j>;3){if(start==0) {i=1;j=0; SAT=1; }}}}{i=j=0;}}void stopkey() {static uchar i,j; if(stop==0) {if(i==0){j++;if(j>;3){if(stop==0) {i=1;j=0; SAT=0; }}}}{i=j=0;}}void resetkey() {static uchar i,j; if(reset==0) {if(i==0){j++;if(j>;3){if(reset==0) {i=1;j=0; RST=1; }}}}{i=j=0;RST=0;}}//---------数码管显示 00.0------- void shownumber(int num){DATA=tab[num%10];P0=7;delay(100);DATA=0x80;P0=6;delay(100);DATA=tab[num%100/10];P0=5;delay(100);DATA=tab[num/100];P0=4;delay(100);}//---------定时器初始化ˉ--------- void time0_init(){TMOD=0x01;TH0=(65536-18348)/256;TL0=(65536-18348)%256;EA=1;ET0=1;}void T0_time()interrupt 1{TH0=(65536-18348)/256;TL0=(65536-18348)%256;cnt++;if(cnt==5){time++;cnt=0;}}void main(void){delay(50000);time0_init();while(1){shownumber(time);if(SAT==1)TR0=1;if(SAT==0)TR0=0;if(RST==1){TR0=0;SAT=0;time=0;} startkey();stopkey();resetkey();}}。

秒计时控制器vhdl

秒计时控制器vhdl

1/100秒计时控制器1. 系统说明图1是1/100秒计时控制器的方框图。

图1 1/100秒计时控制器方框图⑴ 功能要求● 计时精度为1/100s ,最长计时时间为1h 。

● 直接驱动共阴极7段数码显示时间。

● 能够支持计时器启动/停止和复位操作。

在任何情况下,按一下复位键,计时器就清零并作好计时准备;然后按一下启动/停止键,计时器就开始计时;再按一下启动/停止键,计时器停止计时。

⑵ 端口定义● RST :系统复位信号,高电平有效。

● CLK :1KHz 的系统时钟。

● RST_KEY :复位按键产生的复位信号,每按一次按键就产生一个正脉冲。

1/100s 计时控制器CLKRST7段LED 显示器分 秒 1/100秒RST_KEYSTART_STOP_KEYV CCV CC 启动/停止 按钮复位 按钮7SEGCOM6●START_STOP_KEY:启动/停止按键产生的启动/停止信号,每按一次按键就产生一个正脉冲。

●SEG:LED显示器的7段(abcdefg)显示驱动信号,高电平有效。

●COM:7段数码管的公共端控制信号。

2. 系统的总体方案、系统划分和算法设计图2是1/100秒计时控制器的总体结构框图,系统主要由时钟产生模块(CLK_GEN)、控制模块(CONTROLLER)、按键同步消抖动模块(KEY_IN)、计时模块(TIMER)和显示模块(DISPLAY)构成。

图2 1/100秒计时控制器的总体结构框图⑴时钟产生模块(CLK_GEN)时钟产生模块的作用是对输入的1kHz时钟信号CLK进行分频,输出一个25Hz 的时钟KEY_CLK和一个100Hz的时钟CNT_CLK。

时钟产生信号的结构图如图3所示。

图3 时钟产生信号的结构图时钟产生模块由两个同步加法计数器模块(COUNTER )构成,1kHz 的时钟信号CLK 先经10分频后得到100Hz 的CNT_CLK ,再经4分频后得到25Hz 的计数脉冲KEY_CLK 。

关闭秒表的方法

关闭秒表的方法

关闭秒表的方法
关闭秒表的方法如下:
1. 找到“mode”和“start/stop”键,这两个键通常位于秒表的正面或侧面,可以通过观察秒表的说明书或者直接观察秒表的外观来找到。

2. 同时按住“mode”和“start/stop”键,按住的时间需要达到3秒钟以上,这样才能确保秒表成功关机。

3. 在按住这两个键3秒钟之后,秒表会自动关闭,此时需要确认秒表已经完全关机,以免浪费电池电量或者影响秒表的使用寿命。

以上内容仅供参考,不同型号的秒表可能会有不同的关机方式,建议查看使用说明书或咨询厂家。

单键控制秒表

单键控制秒表

电子课程设计——单键控制秒表学院:电子信息工程学院专业、班级:姓名:学号:指导教师:时间:2014年12月目录一设计任务与要求 (1)二总体框图 (1)三选择器件 (2)四功能模块 (8)五总体设计图 (12)单键控制秒表一、设计任务与要求(1)计时部分由0.1s 位、s 个位、s 十位和min 个位四个计数器组成。

其中min 个位、0.1s 位分别为8421BCD 码十进制计数器,个位和十位组成六十进制8421BCD 码计数器。

计数范围0~10min ,精度为0.1s 。

(2)用一个按键实现清零、计时、停止三种工作状态。

当按键第一次按下时,秒表开始计时;第二次按下时,秒表停止计时。

按键按下超过2s ,则秒表清零。

二、总体框图1、总体原理框图如图1所示。

译 码 显 示↑ ↑ ↑ ↑ 分个位 计数器 秒十位 计数器 秒个位 计数器 0.1s 位 计数器 ↑ ↑ ↑ ↑清零﹠ 计时 停止图1 总体原理框图2、功能模块(1)时钟发生器:利用555定时器构成的多谐振荡器做时钟源,产生10HZ 的脉冲;(2)计数器:对时钟信号进行记数并进位,十毫秒和秒之间10进制,秒和分之间60进制;(3)显示器:采用4片LED 显示器把各位的数值显示出来,是秒表最终的输出,有分、秒、和十毫秒位;控制电路 10Hz 基准 脉冲源 按键(4)控制器:控制电路是对秒表的工作状态(记时开始/暂停/继续/复位等)进行控制的单元,由D触发器、192、和开关组成。

3、设计思想首先,需要一准确的时钟脉冲,脉冲频率为10Hz。

在一般教学实验箱中有连续可调的时钟脉冲,而在Multisim软件中可用模拟的信号发生器,为了达到进一步熟悉和应用数字电路模块,我们模拟应用了555振荡器。

而开关控制电路,用集成D触发器作为控制电路。

最后,需要显示电路,显示电路输出结果。

三、选择器件1.电子秒表所用全部的器件如表1元器件清单所示。

表1 元器件清单序号名称型号数量备注1 计数器74LS192 5 ——2 555定时器NE555 1 ——3 与非门74LS00 2 ——4 或非门74LS02 1 ——5 开关SPST 1 ——6 电阻RESISTOR 1 5.1KΩ7 1 4.7KΩ8 1 10.0KΩ9 电容CAP 1 10uF10 1 100nF11 SR触发器74LS279 1 ——12 七段译码显示器DCD-HEX 4 ——13 D触发器74LS74 1 ——2.用555定时器构成方波发生器555定时器引脚排列及功能表如图2所示。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

//2 定义按键已处理标志位
void
main(void)
//3 main函数
{ unsigned
char
keyval; //4 keyval:按键的键值
//系统中软硬件初始化
5
keytreated=0;
//6 键按下未处理
while(1)
//7 死循环,循环体为语句8~语句21
{
keyport=0ff;
3、独立式键盘接口
重置计数初值:10ms
N 有键按下?
Y
N
10ms前键按下过?
(down=1?)
Y
N
键没处理?
(keytreated=0)
置键未按下标志 (down=0)
Y 确定按键的位置 (确定按键键值)
按键功能解释
置键未处理标志 (keytreated=0)
置键已处理标志:keytreated=1
置键按下标志:down=1 10ms定时中断中其他事务处理
3、独立式键盘接口
在T0定时中断服务函数中处理键盘的程序:
void
tim0() interrupt 1
using 1Biblioteka //1 T0定时中断服务函数
{ unsigned
char
keyval; //2 定义局部变量keyval
//重置T0的计数初值(10ms) 3
⑵矩阵式键盘的处理程序 矩阵式键盘的处理流程与独立式键盘的框架结构一样,仅仅只是判断 是否有键按下、确定按键的位置的方法不同而已。
1)判断是否有键按下 判断矩阵式键盘是否有键按下的方法是,列线输出全0后读行线输入, 若行线输入为全1,则无键按下,否则有键按下。
判断是否有键按下的程序段:
P1=0x00;
//16 置键没处理标志
}
//17 无键按下处理结束
//10ms定时中断中的其他功能处理 18
}
//19 中断服务函数结束
4、矩阵式键盘接口
⑴矩阵式键盘的接口电路
由P2.0~P2.3、P1.0~P1.3口线与外部16个按键构成的矩阵式键盘 电路如下图。
P2.0
S0 S1 S2 S3
P2.1 P2.2
keyexplain(keyval);
//9 解释按键的功能
keytreated=1; //10 置按键已处理标志
}
//11
down=1;
//12 置键按下标志
}
//13 有键按下处理结束
else
//14 无键按下时,进行15~17处理
{
down=0;
//15 置键没按下标志
keytreated=0;
{ P1=~(0x01<<j);
//5 j列输出低电平,其他列输出高电平
P2=0xff;
//6 P2口写1,准备读P2口(准备读行输入)
tmp=P2;tmp=~tmp; //7 读行输入,并按位取反,方便程序处理
tmp=tmp&0x0f;
//8 高4位(无效位)清0
if(tmp)
//9 j列有键按下(tmp是否非0)。
上图中,S0键未按下时,P0.0=1,S0按下后,P0.0=0。
3、独立式键盘接口
⑵键盘处理程序
开始
键盘处理需要注意的问题是,要 防止一次按键按下被多次解释执行(连 击键除外)。
系统中软硬件初始化 Keytreated=0
N
有键按下?
Y 延时10ms去抖动
在main函数中处键盘流程如图所示
图中,keytreated为按键已处理 标志位,keytreated标志位与按键是 否按下控制按键解释的执行,防止一 次按键事件被多次解释处理。 流程图对应的程序代码如下:
} 语句块3;
continue;
表达式1 假 真
语句块1 表达式2 真
假 语句块2
语句块3
continue流程图
1、循环结构中的break语句与continue语句
【例】统计1~100之间能被7整除的数的个数。
void main(void)
{
unsigned char i,j;
j=0;
for(i=1;i<=100;i++)
1、循环结构中的break语句与continue语句
⑴break语句 break语句常用在循环结构的循环体中,用来结束循环,使程序跳转 至循环结构之后的语句上。while语句的循环程序的一般形式:
while(表达式1)
{ 语句块1; if(表达式2) 语句块2;
} 语句块3;
break;
表达式1 假 真
2、键盘处理的流程
软件去抖动的方法
开始 N 有键按下?
Y 延时10ms N 有键按下?
Y 确定按键的位置(确定按健的键值)
按键功能解释
结束
3、独立式键盘接口
⑴接口电路
VCC STC89C51
P10
S0
P11
S1
P12
S2
P13
S3
电路的特点
按键的一端接地,另一端接并 行口的某一根I/O口线,I/O口线 外接上拉电阻。若并行口内部 有上拉电阻(如单片机的P1口), 可不接上拉电阻。采用这种电 路时,若某个键按下,则对应 的I/O口线输入为0。 左图中,S0键未按下时, P0.0=1,S0按下后,P0.0=0。
Q1 18 Q2 17 Q3 16 Q4 15 Q5 14 Q6 13 Q7 12 Q8 11
C2 30P
18 XTAL2
Y
C3
30P
19
11.0592MHz
XTAL1
U3A 7407 P21 22 1 2 P20 21
34
U3B 7407
U4
7a 6b 4c 2d 1e 9f 10 g 5 dp
keyport=0xff;
//4 键盘控制口写1,准备读键盘输入
keyval=keyport;
//5 读按键输入
if(~keyval)
//6 判断是否有键按下,取反方便判断
{
if(down&&!keytreated)
//7 若10ms前键按下且键按下没处理
{ keyval=scan(); //8 扫描键盘,获取按键的键值
3、独立式键盘接口
在定时中断服务函数中进行键盘处理 在main函数中处理键盘的主要缺陷是,程序中采用了10ms软件延时 去抖动,增加了CPU的负担,不利于采用CPU睡眠技术抗干扰。 键盘处理可以放在10ms定时中断服务函数中,利用定时时差延时去 抖动。采用这种方式处理键盘,需要用一个全局位变量down来标识10ms 前按键是否按下过。 在10ms定时中断服函数中处理按键的流程图如下:
行 S4 线 S8
S5 S6 S7 S9 S10 S11
P2.3 S12 S13 S14 S15
P1.0
P1.1
列 线
P1.2
P1.3
VCC
矩阵式键盘采用行列电路 结构,行线为输入口(图中 P2口),外接有上拉电阻, 列线为输出口,按键位于 行线与列线的交叉处,一 端接行线,另一端接列线。
4、矩阵式键盘接口
②在独立式键盘中,按键的输入值中包含了按键的键值信息,即按 键的输入值实际上就是按键的编码值。输入值的某位为0,则表示对应 的按键按下。对于图5-15的电路,若P0口输入值为11111010B,则是S0、 S2键按下。程序中可以不单独使用scan函数获取键值。
③在独立式键盘中,常用switch/case语句实现依键值进行按键功能 解释。
//8 键输入口写1,准备读按键输入
if(~keyport)
//9 有键按下吗?
{ delay();
//10 延时10ms去抖动
keyport=0ff;
//11 键输入口写1,准备读按键输入
if(~keyport)
//12 有键按下吗?
{
if(!keytreated)
//13 键按下未处理吗,是则进行以下处理
{ switch(tmp)
//10 查是哪一根行线为0
{ case 1: i=0;break;
case 2: i=1;break;
case 4: i=2;break;
4、矩阵式键盘接口
2)确定按键的位置
case 8: i=3;break;
default: i=63;break;
//15 若为其他值,则行号设为无效值。
{
if(i%7!=0)
j++;
}
}
continue;
2、键盘处理的流程
单片机系统中所用的键盘有独立式键盘和矩阵式键盘两种。键盘接口 的基本任务主要有4个方面:⑴判断是否有键按下;⑵去抖动;⑶确定所 按下键的键值,即确定是何键按下;⑷对按键功能进行解释。
在一次按键操作中,由于按键的机械特性的原因,键按下或释放都 有一个弹跳的抖动过程,抖动的时间一般为5~15ms,其波形如下:
U2 74HC541
R2 R3 R4
S0
3×10K 10 P30
S1
11 P31
S0
12 P32
VCC
C1 10μF 9 RST
R1 8.2K
P10 1 P11 2 P12 3 P13 4 P14 5 P15 6 P16 7 P17 8
VCC EA 31
2 D1 3 D2 4 D3 5 D4 6 D5 7 D6 8 D7 9 D8 1 E1 19 E2
}
//16 行线检查结束
keyval=i*4+j;
//17 根据键的行、列号确定键值
break;
//18 跳出循环
相关文档
最新文档