收藏 分销(赏)

C51单片机秒表计时(C语言).doc

上传人:w****g 文档编号:3653610 上传时间:2024-07-12 格式:DOC 页数:4 大小:36.50KB 下载积分:5 金币
下载 相关 举报
C51单片机秒表计时(C语言).doc_第1页
第1页 / 共4页
C51单片机秒表计时(C语言).doc_第2页
第2页 / 共4页


点击查看更多>>
资源描述
精品文档 南开大学滨海学院 C51嵌入式软件设计(C语言) 题目:计时秒表 l 功能描述:本设计实现在99秒内的秒表计时,一个按键实现开始、暂停、复位。 l 原理概述:P1接四位七段数码管,P3.2接一按键产生外部中断0,P3.4-P3.7控制扫描显示。计时使用定时器0产生10ms中断累计。按键不同次序决定了对应的控制功能,因为第一次按键必定为开始计时,所以第二次按键判断为暂停,依次第三次为置零。主程序调用显示程序,显示程序实时显示计时时间。 l 效果显示 l 图一(电路总图) l 图二(效果显示) 注:第四位显示为单位:S l 程序清单 #include<reg51.h> #include<stdio.h> unsigned char Tab[]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F }; sbit P37=P3^7; sbit P36=P3^6; sbit P35=P3^5; sbit P34=P3^4; unsigned int a=0,cout=0,mm=0;x,y,p,q; /*********延时*********************/ void delay() { int g; for(g=70;g>0;g--); } /*********显示程序*****************/ void display() { x=cout/10; //秒十位 P34=0; P1=Tab[x]; delay(); P34=1; y=cout-x*10; //秒各位 P35=0; P1=Tab[y]; delay(); P1=0x80; delay(); P35=1; p=mm/10; //ms的高位 P36=0; P1=Tab[p];delay(); P36=1; P37=0; //显示单位:S P1=Tab[5]; delay(); P37=1; } /*********主程序********************/ void main() { IT0=1; EX0=1; ET0=1; TMOD=0x01; TH0=0xD8; //装初值,10ms TL0=0xF0; EA=1; while(1) { display(); }; }/*********外部按键中断子程序*********/ void int0 ()interrupt 0 { if(a==0) //开始计时 { TR0=1; mm=0; a++; } else if(a==1) //暂停计时 { TR0=0; a++;} else //置零 { a=0; mm=0; cout=0;} } /*********定时器子程序****************/ void time0() interrupt 1 { TH0=0xD8; TL0=0xF0; mm++; if(mm==80) //考虑其它损耗,调整后约为1S { cout++; mm=0;} } 可修改
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 通信科技 > 开发语言

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服