内容正文:
用按键控制时钟启停的仿真
更多模板请关注:https://haosc.taobao.com
CONTENTS
目录
01
02
按键控制时钟启动的电路设计
按键控制时钟启动的程序设计
道艺兼修
敬业乐群
按键控制时钟启动的电路设计
01
(1)带一个按键控制的时钟的电路
3
按键控制时钟启动的电路设计
01
(2)按键的工作方式
1)循环扫描方式
*保证100ms内扫描一次键盘状态
*循环读键盘状态
4
按键控制时钟启动的电路设计
01
(1)键盘在单片机控制系统中的应用
2)定时扫描方式
3)中断方式
利用定时器循环扫描
占用中断资源
5
按键控制时钟启动的程序设计
02
(1)程序设计流程图
主程序
开始
初始化
Y
秒==60?
定时器中断50次?
Y
N
Y
次数回0,秒++
分==60?
N
秒回0,分++
时==24?
Y
分回0,时++
N
时回0
N
键盘识别
6
24h计时程序设计
02
02
(1)程序设计流程图
TH、TL初始值
8位动态显示一次
中断入口
记录中断次数
返回
定时器中断程序
标志位==0?
Y
N
7
按键控制时钟启动的程序设计
02
#include <reg51.h>
unsigned char code duan[]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6f,0x40};// 共阴极数码管字型码
unsigned char shi,fen,miao;
unsigned char dis[8]={0,0,10,0,0,10,0,9};
unsigned char T_count0;
sbit key=P3^0; //特殊位定义
bit con_flag; //时钟启动控制位
(2)初始化
8
按键控制时钟启动的程序设计
02
(3)按键识别程序
if(key==0) // key=P3.0, 若key=0,键按下
{
delay_nms(10); // 按下消抖
if(key==0) ;//确认按键按下
con_flag=~con_flag; // 改变运行状态控制位
while(key==0); // 等待抬起
delay_nms(10); // 抬起消抖‘
while(key==0);//确认按键抬起
}
9
按键控制时钟启动的程序设计
02
(4)T0中断程序
void T0_IR( ) interrupt 1
{ unsigned char j;
TH0=0xb1;
TL0=0xe0;
if(con_flag==0)
{
T_count0++;
}
for(j=0;j<8;j++)
{
P2=j;
P0=duan[dis[j]];
delay_nms(1);
}
}
10
谢谢观看!
Simple Gifts
Jewel
Lullaby
167584.05
$$