秒表计时功能(模仿)单片机程序

发布者:泉趣人最新更新时间:2012-10-11 来源: 21ic 关键字:秒表计时功能  单片机程序  精确度控制 手机看文章 扫描二维码
随时随地手机看文章

下面这个仿真效果图,大家可按上面的电路来制作

点击浏览下一页

 

/**
//模仿秒表计时功能,独立按键可控制计时数字的“暂停/走动”。(程序没有考虑计时精确度控制)
/*P2.2~P2.4与138译码器输入口连接
/*P1.0连接独立按键
/*P0口输出数据
***/
#include
code unsigned char tab[]={0x3f,0x06,0x5b,0x4f,0x66,
                          0x6d,0x7d,0x07,0x7f,0x6f,0x40}; //共阴数码管 0-9  '-' '熄灭‘表
unsigned int count,a,b,sec,min,hour; 
bit c_flag; // 暂停/计时 标志          

/*****T1初始化*****/
void timer_1(void)
{
  TH1=0x0ec;
  TL1=0x078;
  TR1=1;
  }
/*****数据计数******/
void time_count(viod)
{
 if(hour==60){sec=0,min=0,hour=0;}
   else if(sec!=59) sec++;
      else if(min!=59) {sec=0,min++;}
     else {min=0,hour++;}
 }
/******数字调整*******/
void get_count(unsigned int x)
{
  a=x/10;
  b=x%10;
  }
/*******按键检测********/
void key_tach(void)
{
   int i,j;
   j=P1&0x01;
   if(j==0){
     for(i=0;i<=200;i++);
  j=P1&0x01;
  if(j==0) 
   {if(c_flag==1) c_flag=0;
         else c_flag=1;}
   }
   }
/*******显示程序********/
void display(viod)
{   
   int flag;
   P0=0x00;
   flag=count%8;
   switch(flag){
    case 0:P2=flag*4;
        get_count(hour);
     P0=tab[a];
     break;
 case 1:P2=flag*4;
     P0=tab[b];
     break;
 case 2:P2=flag*4;
     P0=tab[10];
     break;
 case 3:P2=flag*4;
        get_count(min);
     P0=tab[a];
     break;
 case 4:P2=flag*4;
     P0=tab[b];
     break;
 case 5:P2=flag*4;
     P0=tab[10];
     break;
 case 6:P2=flag*4;
        get_count(sec);
     P0=tab[a];
     break;
 case 7:P2=flag*4;
     P0=tab[b];
     break;
 default:return;
    }
   }
/*******中断服务程序********/
void int1() interrupt 3
{
   key_tach();
   if(c_flag==0)
   {
     if(count==7) {count=0;time_count();}
       else count++;}
    else
    {
        if(count==7) {count=0;}
        else count++;} 
   display();
   timer_1();
   }

/******主程序*****/
void main()
{
  c_flag=0;
  count=0;
  sec=0;
  min=0;
  hour=0;
  TMOD=0x10;
  EA=1;
  ET1=1;
  timer_1();
  while(1);
  }
关键字:秒表计时功能  单片机程序  精确度控制 引用地址:秒表计时功能(模仿)单片机程序

上一篇:单片机控制三盏LED灯亮灭的程序
下一篇:拉暮式数码管显示

推荐阅读最新更新时间:2024-03-16 13:10

单片机+DAC0832来解码wav音乐C51程序
本程序是从国外一个论坛下载的用51单片机+dac0832 播放wav音乐,音乐数据可以从串行输入,如果声音很小的话可以把数据接入功放的输入端.完整的程序源代码从这里下载 http://www.51hei.com/f/waefd.rar 下面是main文件: /*************************************************************** name : main.c desctiption : mp3 main file for testing serial port author : coolfire update : 6/17/07 /*************
[单片机]
用PIC10F202单片机制作两路开关源程序
//=======================================用户配置区,供用户修改=========================================== #define TIME2 1000 //长按键时间设置,单位ms ,1000 = 1s 范围:1~10s //========================================================================================================= //************************************
[单片机]
数模转换器DAC7724与51单片机的接口及程序设计
0 引言 在微计算机电机控制的机电设备中,常常需要把数字信号变成模拟信号,以驱动机电设备的运行。在这个过程中,D/A转换是一个十分重要的环节,同时也是微计算机电机控制系统重要的组成部分。 1 DAC7724的主要特点 DAC7724是TI公司生产的12位并行输入4通道D/A转换器,该转换器具有以下特征: ◇±15V以内的双电源工作; ◇输出电压:VREFL~VREFH,VREF:-10~+10V; ◇采用12位并口输入和4通道隔离输出方式; ◇可以上电自动复位; ◇转换速率快,更新率为1 MHz; ◇工作温度范围在-40~85℃的范围内。 2 内部结构及引脚说明 2.1 结构原理 DAC7724的
[单片机]
数模转换器DAC7724与51<font color='red'>单片机</font>的接口及<font color='red'>程序</font>设计
基于单片机的单键电路设计及对应程序
单键,就是每个按键占用一个单片机的管脚,这种接法的特点是电路和程序都很简单,缺点是占用单片机的管脚多、消耗硬件资源大。这种接法一般适合于 6个或不多于6个按键。 单键电路的电路图见图1,由图可以看出,每一个按键的一端都直接连有一个8255的PC端口的一个管脚作为输入管脚,并且这个端口管脚只连有一个按键,这样的接法就是单键接法。单键接法要求按键的一端接有一个上拉电阻,而按键的另一端直接接地,这样可以在按键没有合上的时候保持输入管脚始终是高电平。如果程序检测到这个管脚为高电平,就会认为该管脚的按键没有按下,而按键合上以后,输入管脚的电平就会变成低电平,这样当程序检测出输入管脚为低电平以后,就会认为这个按键被按下。 单键电路 图1单键电
[单片机]
基于<font color='red'>单片机</font>的单键电路设计及对应<font color='red'>程序</font>
单片机C语言C51程序中的基本结构
一.顺序结构 顺序结构是最基本、最简单的结构,在这种结构中,程序由低地址到高地址依次执行,如图给出顺序结构流程图,程序先执行A操作,然后再执行B操作。 二.选择结构 选择结构可使程序根据不同的情况,选择执行不同的分支,在选择结构中,程序先都对一个条件进行判断。当条件成立,即条件语句为“真”时,执行一个分支,当条件不成立时,即条件语句为“假”时,执行另一个分支。如图:当条件S成立时,执行分支A,当条件P不成立时,执行分支B。 在C51中,实现选择结构的语句为if/else,if/else if语句。另外在C51中还支持多分支结构,多分支结构既可以通过if和else if语句嵌套实现,可用swith/case语句实现。
[单片机]
<font color='red'>单片机</font>C语言C51<font color='red'>程序</font>中的基本结构
STC单片机IO管脚毁坏动态自检程序
/*--------------------------------------------------------- STC单片机IO管脚毁坏动态自检程序 HotPower@126.com 2005.6.6 于西安大雁塔村队部 ----------------------------------------------------------*/ #include REGX52.h #include stdio.h #include absacc.h #include intrins.h #include string.h #pragma NOAREGS //STC ISP_V2.0 PCB的晶振为1
[单片机]
单片机温度检测报警程序(ds18b20)
程序采用数字温度采集芯片 ds18b20 获取温度 分辨率为12位 可以由此程序获的更低分辨率温度 ds18b20 只有三个i/o接口 其中两个为电源引脚 一个为数据总线 只需要一条口线通信 简化了分布式温度传感应用 无需外部元件 可用数据总线供电 电压范围为3.0 V至5.5 V 无需备用电源 测量温度范围为-55 ° C至+125 ℃ ds18b20 相关介绍: ds18b20 百度百科 Proteus 仿真: Code: #include reg51.h #include math.h #define uchar unsigned char // 宏定义uchar 为无符号字符 #define ui
[单片机]
<font color='red'>单片机</font>温度检测报警<font color='red'>程序</font>(ds18b20)
大神教你快速上手:标准80C51单片机模拟I2C总线的主机程序
I2C总线协议程序 在做程序是我在网上找的是周立功的程序,感觉还不错顺便转载;在使用的过程中一定要注意时序、时间的问题。 “i2c.h文件” //I2C总线综合发送函数,向从机发送多个字节的数据 I2C读写EEPROM流程图 bit I2C_Puts( unsigned char SlaveAddr, unsigned int SubAddr, unsigned char SubMod, char *dat, unsigned int Size ); //I2C总线综合接收函数,从从机接收多个字节的数据 bit I2C_Gets ( unsigned char SlaveAddr, unsigned int SubAddr
[单片机]
大神教你快速上手:标准80C51<font color='red'>单片机</font>模拟I2C总线的主机<font color='red'>程序</font>
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
  • ARM裸机篇--按键中断
    先看看GPOI的输入实验:按键电路图:GPF1管教的功能:EINT1要使用GPF1作为EINT1的功能时,只要将GPFCON的3:2位配置成10就可以了!GPF1先配 ...
  • 网上下的--ARM入门笔记
    简单的介绍打今天起菜鸟的ARM笔记算是开张了,也算给我的这些笔记找个存的地方。为什么要发布出来?也许是大家感兴趣的,其实这些笔记之所 ...
  • 学习ARM开发(23)
    三个任务准备与运行结果下来看看创建任务和任运的栈空间怎么样的,以及运行输出。Made in china by UCSDN(caijunsheng)Lichee 1 0 0 ...
  • 学习ARM开发(22)
    关闭中断与打开中断中断是一种高效的对话机制,但有时并不想程序运行的过程中中断运行,比如正在打印东西,但程序突然中断了,又让另外一个 ...
  • 学习ARM开发(21)
    先要声明任务指针,因为后面需要使用。 任务指针 volatile TASK_TCB* volatile g_pCurrentTask = NULL;volatile TASK_TCB* vol ...
  • 学习ARM开发(20)
  • 学习ARM开发(19)
  • 学习ARM开发(14)
  • 学习ARM开发(15)
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved