单片机实验秒表设计程序c语言,如何使用单片机实现秒表的设计
描述
1. 实验任务
(1. 开始时,显示“00”,第1次按下SP1后单片机秒表就开始计时。
(2. 第2次按SP1后,计时停止。
(3. 第3次按SP1后,计时归零。
2. 电路原理图
图4.17.1
3. 系统板上硬件连线
(1. 把“单片机系统”区域中的P0.0/AD0-P0.7/AD7端口用8芯排线连接到“四路静态数码显示模块”区域中的任一个a-h端口上;要求:P0.0/AD0对应着a,P0.1/AD1对应着b,……,P0.7/AD7对应着h。
(2. 把“单片机系统”区域中的P2.0/A8-P2.7/A15端口用8芯排线连接到“四路静态数码显示模块”区域中的任一个a-h端口上;要求:P2.0/A8对应着a,P2.1/A9对应着b,……,P2.7/A15对应着h。
(3. 把“单片机系统“区域中的P3.5/T1用导线连接到”独立式键盘“区域中的SP1端口上;
4. 程序框
T0中断服务程序框
图4.17.2
5. 汇编源程序
TCNTA EQU 30H
TCNTB EQU 31H
SEC EQU 32H
KEYCNT EQU 33H
SP1 BIT P3.5
ORG 00H
LJMP START
ORG 0BH
LJMP INT_T0
START: MOV KEYCNT,#00H
MOV SEC,#00H
MOV A,SEC
MOV B,#10
DIV AB
MOV DPTR,#TABLE
MOVC A,@A+DPTR
MOV P0,A
MOV A,B
MOV DPTR,#TABLE
MOVC A,@A+DPTR
MOV P2,A
MOV TMOD,#02H
SETB ET0
SETB EA
WT: JB SP1,WT
LCALL DELY10MS
JB SP1,WT
INC KEYCNT
MOV A,KEYCNT
CJNE A,#01H,KN1
SETB TR0
MOV TH0,#06H
MOV TL0,#06H
MOV TCNTA,#00H
MOV TCNTB,#00H
LJMP DKN
KN1: CJNE A,#02H,KN2
CLR TR0
LJMP DKN
KN2: CJNE A,#03H,DKN
MOV SEC,#00H
MOV A,SEC
MOV B,#10
DIV AB
MOV DPTR,#TABLE
MOVC A,@A+DPTR
MOV P0,A
MOV A,B
MOV DPTR,#TABLE
MOVC A,@A+DPTR
MOV P2,A
MOV KEYCNT,#00H
DKN: JNB SP1,$
LJMP WT
DELY10MS:
MOV R6,#20
D1: MOV R7,#248
DJNZ R7,$
DJNZ R6,D1
RET
INT_T0:
INC TCNTA
MOV A,TCNTA
CJNE A,#100,NEXT
MOV TCNTA,#00H
INC TCNTB
MOV A,TCNTB
CJNE A,#4,NEXT
MOV TCNTB,#00H
INC SEC
MOV A,SEC
CJNE A,#100,DONE
MOV SEC,#00H
DONE: MOV A,SEC
MOV B,#10
DIV AB
MOV DPTR,#TABLE
MOVC A,@A+DPTR
MOV P0,A
MOV A,B
MOV DPTR,#TABLE
MOVC A,@A+DPTR
MOV P2,A
NEXT: RETI
TABLE: DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH
END
6. C语言源程序
#include 《AT89X51.H》
unsigned char code dispcode[]={0x3f,0x06,0x5b,0x4f,
0x66,0x6d,0x7d,0x07,
0x7f,0x6f,0x77,0x7c,
0x39,0x5e,0x79,0x71,0x00};
unsigned char second;
unsigned char keycnt;
unsigned int tcnt;
void main(void)
{
unsigned char i,j;
TMOD=0x02;
ET0=1;
EA=1;
second=0;
P0=dispcode[second/10];
P2=dispcode[second];
while(1)
{
if(P3_5==0)
{
for(i=20;i》0;i--)
for(j=248;j》0;j--);
if(P3_5==0)
{
keycnt++;
switch(keycnt)
{
case 1:
TH0=0x06;
TL0=0x06;
TR0=1;
break;
case 2:
TR0=0;
break;
case 3:
keycnt=0;
second=0;
P0=dispcode[second/10];
P2=dispcode[second];
break;
}
while(P3_5==0);
}
}
}
}
void t0(void) interrupt 1 using 0
{
tcnt++;
if(tcnt==400)
{
tcnt=0;
second++;
if(second==100)
{
second=0;
}
P0=dispcode[second/10];
P2=dispcode[second];
}
}
打开APP精彩内容
点击阅读全文
单片机实验秒表设计程序c语言,如何使用单片机实现秒表的设计相关推荐
- 单片机实验:使用c语言实现LED流水灯
单片机实验:使用c语言实现LED流水灯 目的:实现一个简单的流水灯程序 仿真软件:Portues 编程软件:Keil Portues 原理图绘制: 需要用到的模块: 单片机:AT89C51 电容:04 ...
- 用1602液晶显示秒表功能 c语言编写程序 单片机 加注释,单片机课程设计--1602LCD显示的秒表.doc...
单片机课程设计 题目: 1602LCD显示的秒表 系别/班级:信息工程系11级嵌入式技术与应用专业 小组成员: 小组成员学号: 指导老师: 目录 1 单片机原理-------------------3 ...
- 基于单片机的倒车雷达系统设计c语言,基于AT89C2051单片机实现超声波倒车雷达系统的设计...
描述 倒车雷达(Car Reversing Aid Systems)的全称是"倒车防撞雷达",也称"泊车辅助装置",是汽车泊车安全辅助装置,能以声音或者更为直观 ...
- 用单片机c51电子秤的c语言,基于51单片机的电子秤系统设计
微机原理论文第八篇:基于51单片机的电子秤系统设计 摘要:本文主要分析51单片机下的数字电子秤.在设计过程中,这种电子秤具体包括电源.传感器.蓝牙.转换器.单片机.键盘.开关.显示器等组成部分,在实践 ...
- 单片机实验秒表设计程序c语言,单片机数字计时器的系统设计与型式试验
摘要:设计了一种以PIC16F887单片机为控制器.LED数码管动态显示的数字计时器.详细介绍了整个系统的工作原理.硬件设计.软件程序设计和型式试验过程.软件程序采用C语言编写,便于移植与升级.计时器 ...
- c51单片机秒表程序c语言,利用51单片机制作秒表的详细过程
前面的话: 和很多朋友一样,在学51单片机的过程中我们肯定会涉及到制作一个秒表,牵涉到把单片机的多个部分组合起来使用,这对于我们初学者来说可能显得有些困难,我同大家一样,百思不得其解,最后头都弄大了才 ...
- 用1602液晶显示秒表功能 c语言编写程序 单片机 加注释,1602LCD液晶显示秒表
1602LCD液晶显示秒表 [源程序:] ;------------------------------------------------------------------ ; ME30 ...
- c51单片机秒表程序c语言,用51单片机制作一个秒表的详细过程(教程有程序)
char code table2[]={0xc0,0xf9,0xa4, 0xb0,0x99,0x92,0x82,0xf8,0x80,0x90}; //不带小数点的共阳极数码管段码0-9 void Di ...
- 单片机检测电机频率c语言,基于51单片机的电动机测速表的设计.doc
基于51单片机的电动机测速表的设计 基于51单片机的电动机测速表设计 摘 要 本文介绍了采用光电传感器实施电机转速测量的方法.基本原理,完成了一种基于AT89C51单片机平台的电动机测速表的软硬件设计 ...
最新文章
- intellij 打开node项目 一直停留在scanning files to index....,或跳出内存不够的提示框...
- 改造HINT的输出方式
- Django 2 零基础 - 待办清单网站
- Obstacle-- last interrupt reason
- 基于JAVA+SpringMVC+Mybatis+MYSQL的大学生毕业设计管理系统
- 假如明天灾难来临_北京医保容灾
- Android 谷歌巨头,国际巨头强势助攻,谷歌新系统开始提速,华为的对手不止一个...
- IIS6.0系统日志中出现此错误Timer_MinBytesPerSecond,Timer_ConnectionIdle
- 进销存excel_excel进销存管理系统
- f1c100s 源码_GitHub - hcly/f1c100s: f1c100s source code
- 锂电池电量百分比计算_怎样估计锂电池剩余电量SOC
- 关于Windows和Linux的那些事儿
- Windows下wafw00f的安装
- PageHelper分页永远返回第一页数据
- 卫生事业单位计算机科学与技术,卫生事业单位考试计算机科学与技术学习知识点.docx...
- ssm基于BS架构的校园爱心捐赠与物品交换平台的设计与实现毕业设计源码301133
- 顶会竟然攀比起了拒稿率?教授发文怒斥「挑刺式审稿」
- 量词辖域扩张和收缩律的8个等价式 根本理解
- 华为轮值CEO徐直军全面剖析华为
- 基于simulink的转速反馈单闭环直流调速系统
热门文章
- OPEN-SET RECOGNITION:A GOOD CLOSED-SET CLASSIFIER IS ALL YOU NEED
- php源码 拼车网顺风车_php版某拼车网源码分享 微信拼车打车约车源码 微信拼车+手机拼车+双终端+发布平台...
- 工作杂谈:由IT行业技术变革 谈当今技术趋势
- 某些Win10无法进入安全模式的修复
- 985硕毕业,面试13家企业,拿7个大厂offer,回顾面试总结
- Tomcat漏洞ip:port/manager/html
- HTML观鸟网小练习
- python用谷歌内核制作浏览器_用cef Python打造自己的浏览器
- z-buffer算法
- 2018——广东工业大学校赛题解