电子产业
数字化服务平台

扫码下载
手机洽洽

  • 微信小程序

    让找料更便捷

  • 扫码下载手机洽洽

    随时找料

    即刻洽谈

    点击下载PC版
  • 华强电子网公众号

    电子元器件

    采购信息平台

  • 华强电子网移动端

    生意随身带

    随时随地找货

  • 华强商城公众号

    一站式电子元器件

    采购平台

  • 芯八哥公众号

    半导体行业观察第一站

单片机C语言程序设计:10s 的秒表

来源:华强电子网 作者:华仔 浏览:839

标签:

摘要: /* 名称:10s 的秒表说明:首次按键计时开始,再次按键暂停,第三次按键清零。*/#include#define uchar unsigned char#define uint unsigned intsbit K1=P3^7;uchari,Second_Counts,Key_Flag_Idx;bit Key_State;ucharDSY_CODE[]={0x3f,0x06,0x5b,0x4f,

/* 名称:10s 的秒表

说明:首次按键计时开始,再次按键暂停,第三次按键清零。

*/

#include

#define uchar unsigned char

#define uint unsigned int

sbit K1=P3^7;

uchar

i,Second_Counts,Key_Flag_Idx;

bit Key_State;

uchar

DSY_CODE[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};

//延时

void DelayMS(uint ms)

{

uchar t;

while(ms--) for(t=0;t<120;t++);

}

//处理按键事件

void Key_Event_Handle()

{

if(Key_State==0)

{

Key_Flag_Idx=(Key_Flag_Idx+1)%3;

switch(Key_Flag_Idx)

{

case 1:EA=1;ET0=1;TR0=1;break;

case 2:EA=0;ET0=0;TR0=0;break;

case 0:P0=0x3f;P2=0x3f;i=0;Second_Counts=0;

}

}

}

//主程序

void main()

{

Second_Counts=0;

Key_Flag_Idx=0; //按键次数(取值 0,1,2,3)

Key_State=1; //按键状态

TMOD=0x01; //定时器 0 方式 1

TH0=(65536-50000)/256; //定时器 0:15ms

TL0=(65536-50000)%256;

while(1)

{

if(Key_State!=K1)

{

DelayMS(10);

Key_State=K1;

Key_Event_Handle();

}

}

}

/T0 中断函数

void DSY_Refresh() interrupt 1

{

TH0=(65536-50000)/256; //恢复定时器 0 初值

TL0=(65536-50000)%256;

if(++i==2)

{

i=0;

Second_Counts++; //50ms*2=0.1s 转换状态

P0=DSY_CODE[Second_Counts/10];

P2=DSY_CODE[Second_Counts%10];

if(Second_Counts==100) Second_Counts=0; //满 100(10s)后显示 00

}

}

单片机C语言程序设计:10s 的秒表 0

型号 厂商 价格
EPCOS 爱普科斯 /
STM32F103RCT6 ST ¥461.23
STM32F103C8T6 ST ¥84
STM32F103VET6 ST ¥426.57
STM32F103RET6 ST ¥780.82
STM8S003F3P6 ST ¥10.62
STM32F103VCT6 ST ¥275.84
STM32F103CBT6 ST ¥130.66
STM32F030C8T6 ST ¥18.11
N76E003AT20 NUVOTON ¥9.67