51单片机实例8——9秒倒计时
9秒倒计时
1、设计目的
9秒倒计时,计时结束灯闪烁,设置开始按键与重置按键
2、仿真电路
3、程序
#include<reg51.h>
#include<math.h>
sbit led=P1^0;
int t0_num=0; //定义T0中断响应次数
int number_led=9; //定义8段led显示数字
/****************************************
函数功能:8段共阳极led显示数字a —f b | |g —e c | |d h — .
*****************************************/
int led_8CA_number(int number)
{int led;int num[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90}; //8段共阳极led数字显示段码编码switch(number){case 0:led=num[0];break;case 1:led=num[1];break;case 2:led=num[2];break;case 3:led=num[3];break;case 4:led=num[4];break;case 5:led=num[5];break;case 6:led=num[6];break;case 7:led=num[7];break;case 8:led=num[8];break;case 9:led=num[9];break;default:led=0xff;break;}return led;
}
/****************************************
函数功能:定时器T0的初始值设置
*****************************************/
void t0_init_value(int t)
{TH0=((int) (pow(2,16)-t*pow(10,-3)*12*pow(10,6)/12))/256; TL0=((int) (pow(2,16)-t*pow(10,-3)*12*pow(10,6)/12))%256; //设置定时器初值
}
/****************************************
函数功能:定时器T0的定时初始化
*****************************************/
void t0_init(int t)
{TMOD=0x01; //设置T0工作于定时工作方式1t0_init_value(t);IE=0x00; //禁止中断ET0=1; //开启T0溢出中断EA=1; //开启总中断
}
/****************************************
函数功能:外部中断0服务子程序,开始倒计时
*****************************************/
void start() interrupt 0
{TR0=1;
}
/****************************************
函数功能:外部中断1服务子程序,重置倒计时
*****************************************/
void stop() interrupt 3
{TR0=0;led=1;P2=0xff;number_led=9;TH0=15536/256; TL0=15536%256; //设置定时器初值
}
/****************************************
函数功能:定时器T0的中断服务子程序,1s定时闪烁
*****************************************/
void second_1s() interrupt 1
{TH0=15536/256; TL0=15536%256; //设置定时器初值if(t0_num==20){t0_num=0;P2=led_8CA_number(number_led);number_led--;if(number_led==-1){led=~led;number_led=0;}}elset0_num++; //中断次数计数
}
/****************************************
函数功能:主函数
*****************************************/
void main()
{t0_init(50); //调用定时初始化函数EX0=1;EX1=1;PX1=1;while(1); //持续运行
}
设计(C语言)
51单片机实例8——9秒倒计时相关推荐
- 51单片机实验 LED半秒闪烁 定时器0方式2 中断实现
51单片机实验 LED半秒闪烁 定时器0方式2 中断实现 实验目的: P1.0接一个发光管,实现亮半秒灭半秒, 要求使用定时器0工作方式2,中断实现. C语言代码: #include "at ...
- 单片机c语言99秒倒计时,51单片机99秒倒计时C语言源程序
51单片机99秒倒计时C语言源程序 51单片机实现数码管99秒倒计时,其实很简单,就是使用定时器中断来实现.目的就是学习怎样用单片机实现倒计时,从而实现一些延时控制类的东西,99秒只是一个例子,你完全 ...
- 51单片机数码管交通灯倒计时c语言,51单片机数码管倒计时模拟交通灯汇编程序...
/********************************************************************** 51单片机数码管倒计时模拟交通灯汇编程序 LED数码管为 ...
- 【51单片机实例】智能小车(一)--------小车的前进、后退和停止
51智能小车系列 智能小车(二)-------- 小车的红外遥控调速 智能小车(三)-------- 小车的红外循迹 文章目录 前言 一.硬件选择 1.1 小车底盘 1.2 电机 1.3 51单片机最 ...
- 单片机课堂思考题-2000秒倒计时?
99秒倒计时,改为2000(6666)秒倒计时. #include<8052.h> #define LSC P1_7 //特殊功能寄存器的位定义, #define LSB P1_6 //3 ...
- 51单片机实例1——用单片机控制一个灯亮
用单片机控制一个灯亮 1.设计目的 用单片机I/O口控制一个灯亮 2.仿真电路 3.程序设计(C语言) #include<reg51.h> //包含51单片机寄存器定义的头文件sbit l ...
- 51单片机实例5——基于单片机的花样彩灯
基于单片机的花样彩灯 1.设计目的 (1)4种样式持续循环 (2)花样1:从上到下依次点亮8位led (3)花样2:从下到上依次熄灭8位led (4)花样3:从两边向中间依次点亮8位led (5)花样 ...
- 51单片机实例4——使用P3口实现8位LED依次点亮与熄灭
使用P3口实现8位LED依次点亮与熄灭 1.设计目的 使用P3口实现8位LED依次点亮与熄灭 2.仿真电路 3.程序设计(C语言) #include<reg51.h> //包含单片机寄存器 ...
- 51单片机实例3——使用P3口依次点亮8位LED
使用P3口依次点亮8位LED 1.设计目的 使用P3口流水点亮8位LED 2.仿真电路 3.程序设计(C语言) #include<reg51.h> //包含单片机寄存器的头文件 /**** ...
最新文章
- R语言构建xgboost模型:使用xgboost构建泊松回归(poisson regression)模型
- APK Expansion Files / Obb 接入介绍
- objc swift 混编
- Avaddon勒索解密工具原理解析
- Redis 命令--Redis列表(List))
- 数据清洗最基础的10个问题,基本涵盖目前常见的数分场景!
- 阿里云发布OAMKubernetes标准实现与核心依赖库
- 电脑安装系统出错蓝屏报错为 STOP 0xc0000020 ,什么原因?
- php 数据导出到excel文件,PHP - 如何将数据动态导出到Excel文件(.xls)?
- verilog中的initial块、always块详细解释
- 排序 --- 6.2 Merge Two Sorted Lists || 6.3 Merge k Sorted Lists --- 图解
- 新疆大学ACM-ICPC程序设计竞赛五月月赛(同步赛)
- 94 - 绘制谢尔宾斯基三角形
- 设置Win7自动关机的两种方法
- 【H5】两种加密解密方法:
- linux mint安装搜狗输入法
- 如何用java语言编写小游戏?(贪吃蛇)
- 台式计算机的选购注意事项,笔记本电脑选购注意事项大全
- 软件工程期末概念复习
- 服务器怎么买,腾讯云服务器新手购买的流程方法步骤