锐单电子商城 , 一站式电子元器件采购平台!
  • 电话:400-990-0325

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

时间:2024-05-17 22:37:10

p0口是数码管的位选入口,P2口是数码管的段选用4位一体的数码管,P3.0 P3.1 P3.2分别是启动停止和复位按钮

#include
#define uchar unsigned char #define uint unsigned int
#define DATA P2 sbit start=P3^0; sbit stop=P3^1; sbit reset=P3^2;
//---------启停标志----- bit SAT=0;
bit R =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; } } } } else { 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; } } } } else { 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; } } } } else { 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(); } }
-电子元器件采购网(www.ruidan.com)是本土元器件目录分销商,采用“小批量、现货、样品”销售模式,致力于满足客户多型号、高质量、快速交付的采购需求。 自建高效智能仓储,拥有自营库存超过50,000种,提供一站式正品现货采购、个性化解决方案、选型替代等多元化服务。
锐单商城拥有海量元器件数据手册IC替代型号,打造电子元器件IC百科大全!

相关文章