c语言编计分秒时的程序,用c语言编写程序,用于c51单片机四位共阴数码管显示,显示分秒的计时器。...
匿名用户
1级
2014-05-07 回答
/***************************************************************************
标题: 定时器中断 精确到00.00秒表
效果: 按1键启动或按2键停止数码管做精确的秒计数
说明: 板使用12M晶振
******************************************************************************/
//头文件:
#include "reg51.h"
//变量定义:
code unsigned char table[]=
{0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F};
//表:共阴数码管 0-9
unsigned char l_posit=0; //显示位置
unsigned int tt=0; //作为计数时间量,1个单位表示0.01秒
//引脚定义:
sbit key1 = P3^7; //定义按键1
sbit key2 = P3^6; //定义按键2
sbit SMG_q = P1^0; //定义数码管阳级控制脚(千位)
sbit SMG_b = P1^1; //定义数码管阳级控制脚(百位)
sbit SMG_s = P1^2; //定义数码管阳级控制脚(十位)
sbit SMG_g = P1^3; //定义数码管阳级控制脚(个位)
//函数声明:
void display(unsigned int da);//定义显示函数,参数为显示内容
void delay(unsigned int timer);
void init(); //初如化函数
//主函数,C语言的入口函数:
void main()
{
init(); //初始化中断控制寄存器
while(1){
if(key1==0){ //按键1按下,清0且启动计数
tt=0;
TR0=1;
}
if(key2==0){ //按键2按下,停止计数
TR0=0;
}
if(tt>=9999) //超范围停止
TR0=0;
display(tt); //显示变量内容
delay(100);
}
}
//初始化函数
void init()
{
tt=0;
TMOD=0X01; //设置定时器1为模式一,即16位计算模式
TH0=(65536-10000)/256; //给计数寄存器赋值,50毫秒时间
TL0=(65536-10000)%256;
EA=1; //开启总中断
ET0=1; //开启定时器0中断
TR0=0; //先不启动定时
}
//中断函数,关键字"interrupt" , 这是C语言的中断函数表示法,1表时定地器0
void timer() interrupt 1
{
TH0=(65536-10000)/256; //重新赋值
TL0=(65536-10000)%256;
tt++; //10毫秒加1
}
//显示函数,参数为显示内容
void display(unsigned int da)
{
P0=0XFF; //
da=da%10000;
switch(l_posit){
case 0: //选择千位数码管,关闭其它位
SMG_q=0;
SMG_b=1;
SMG_s=1;
SMG_g=1;
P0=table[da/1000]; //输出显示内容
break;
case 1: //选择百位数码管,关闭其它位
SMG_q=1;
SMG_b=0;
SMG_s=1;
SMG_g=1;
P0=table[da%1000/100]&0x7f;//加上小数点
break;
case 2: //选择十位数码管,关闭其它位
SMG_q=1;
SMG_b=1;
SMG_s=0;
SMG_g=1;
P0=table[da%100/10];
break;
case 3: //选择个位数码管,关闭其它位
SMG_q=1;
SMG_b=1;
SMG_s=1;
SMG_g=0;
P0=table[da%10];
break;
}
l_posit++; //每调用一次将轮流显示一位
if(l_posit>3)
l_posit=0;
}
//延时子函数,短暂延时
void delay(unsigned int timer){
while(timer--);
}
c语言编计分秒时的程序,用c语言编写程序,用于c51单片机四位共阴数码管显示,显示分秒的计时器。...相关推荐
- c语言共阴极数码管数字6,共阴数码管 显示数字 C语言程序
共阴数码管显示数字C语言程序#include void Delay(unsigned char a) { unsigned char i; while( --a != 0) { for(i = 0; ...
- C语言数码管是共阴共阳程序,单片机程序怎么把共阴数码管程序改成共阳的
#include #define uchar unsigned char #define uint unsigned int //数码管位端口定义 sbit w1=P2^0; sbit w2=P2^1 ...
- 共阳极数码时钟c语言程序,51单片机_DS1302时钟芯片_共阴数码管_时钟实例【中为电子科技工作室】_51单片机ds1302数码管时钟...
该文档包括原理图.源代码,系统的介绍了51单片机和DS1302的应用,显示方式为4位共阴时钟数码管,具有调时功能,原理图和源代码都已验证是可用的. E:\Demo\Keil3\IS EB51M V10 ...
- 数码管显示1到8c语言,单片机控制八只数码管滚动显示1~8 附PROTEUS软件仿真图
数码管显示是每一个单片机初学者都必须学的,而单片机驱动数码管的数字循环显示实验,又是单片机基础中的基础,同时也是学好C语言编程的关键,此实验在硬件上可以弄清楚单片机驱动原理和数码管的显示原理,在软件上 ...
- 按键自加自减的c语言数码管编程,8位共阴数码管动态扫描自增自减
//包含头文件,一般情况不需要改动,头文件包含特殊功能寄存器的定义 sbit duan=P2^2;//定义P2.2为段操作,爱设置哪个都行 sbit wei=P2^3;//定义P2.3为位操作 /*- ...
- 用计算机语言编写累加程序,如何在S7-1200PLC编写程序时实现流量累积?
在使用s7-1200PLC编写程序的时候,如果项目上需要用到流量累积功能,但是本款PLC并没有自带流量累积功能块.这时,就需要我们组态工程师自己编写一个具有流量累积功能程序,或者将该程序封装为FB块或 ...
- c语言输入10个国名要求按字母顺序输出,编写程序,输入10至20个城市名,按字母顺序输出城市名清单。...
满意答案 yinjinzhe10 2013.09.02 采纳率:49% 等级:12 已帮助:23437人 编写程序,输入10至20个城市名,按字母顺序输出城市名清单: #include #inc ...
- 51单片机c语言共阳断码表,单片机的共阴共阳8段码的原理及显示代码
描述 共阴极数码管 1.共阴极数码管的结构 共阴极数码管是把所有led的阴极连接到共同接点com,而每个led的阳极分别为a.b.c.d.e.f.g及dp(小数点),如下图所示.图中的8个led分别与 ...
- java程序 键盘事件_java编写程序实现键盘钢琴,运用键盘事件、鼠标事件
java编写程序实现键盘钢琴,运用键盘事件.鼠标事件 界面 实现 MouseListener,MouseMotionListener,KeyListener接口,当鼠标进入不同按钮时,会播放不 ...
最新文章
- 烂大街的Spring循环依赖该如何回答?
- linux c 内存泄漏调试工具 《valgrind用户手册》 2. 使用和理解Valgrind核心
- mysql给数据做排名_mysql给数据统计做排名
- 做一个项目,平时都用到哪些工具提高效率(上)
- 甲骨文正式发布Java 14(Oracle JDK 14),下载下来尝尝鲜~~~
- JVM调优:指定垃圾回收器组合
- .NET5发布了,腾讯招聘点名要求精通MySQL,而不是SQLServer!
- Flutter透明度渐变动画Opacity实现透明度渐变动画效果
- 基础正则和扩展正则的作用
- http协议编程java_Java与Http协议的详细介绍
- php算法求出一个数可以被分解成多少个_小学数学必考的34个数学重难点公式,赶紧给孩子收藏!...
- java web/Maven项目结构分析
- 关于文件的MIME类型
- amd显卡用黑苹果输出黑屏_黑苹果AMD NVIDIA Intel显卡咋驱动?速戳这里
- The bean sellergoods.FeignClientSpecification could not be registered. A bean with that name has a
- ProxySQL+MGR实现读写分离和主节点故障无感知切换
- The Things Network LoRaWAN Stack V3 学习笔记 2.2 使用 CLI 进行 OAuth 登录
- 使用Java打印字母菱形
- 迁移wordpress_WordPress迁移变得容易
- 欧拉系统安装与部署NextCloud与常见部署问题解决以及数据盘迁移
热门文章
- kali 安装netspeed 网络流量监视器
- 2012科技业大公司与大事件:苹果不再创新垄断(转)(二)
- 微服务设计指导-使用云原生微服务解决传统海量跑批时引起的系统间“级联雪崩”以及效率
- Excel中在方框里打钩
- 规范小区电瓶车充电桩的分布保障充电安全
- 又java基础学php多久_php自学需要多久?
- iphone微信用计算机隐身,苹果手机使用微信不能换行?原来隐藏键在这,网友:冷知识...
- DolphinScheduler征稿 —手把手教你如何使用小豚调度
- PostgreSQL 大会与DBA培训交流记录
- jzoj 4246【五校联考6day2】san