问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

用单片机的汇编语言编写一个(十秒秒表 的编程)14

发布网友 发布时间:2024-02-15 01:52

我来回答

4个回答

热心网友 时间:2024-02-18 17:15

这是一个秒表,有按键实现 启动、暂停核清零功能。
#include <reg51.H>
sbit P3_5 =P3^5;
unsigned char code dispcode[]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,
0x80,0x90,0x88,0x83,0xC6,0xA1,0x86,0x8E,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;
P1=dispcode[second/10];
P2=dispcode[second%10];
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;
P1=dispcode[second/10];
P2=dispcode[second%10];
break;
}
while(P3_5==0);
}
}
}
}

void t0(void) interrupt 1 using 0
{
tcnt++;
if(tcnt==4000)
{
tcnt=0;
second++;
if(second==100)
{
second=0;
}
P1=dispcode[second/10];
P2=dispcode[second%10];
}
}

热心网友 时间:2024-02-18 17:15

;功能:0~9,数码管显示计时;共阳接法
;P1口接数码管
ORG 0000H
LJMP MAIN
ORG 001BH ;定时器T1,中断入口
LJMP T1_ISR

ORG 0030H
;主程序
MAIN: MOV TMOD,#10H ;定时器初始化
MOV TH1,#3CH ;设定时时间50ms
MOV TL1,#0B0H
SETB EA ;开中断
SETB ET1
SETB TR1 ;启动T1
MOV R0,#20 ;中断计数器(循环次数)
MOV A,#00 ;显示计时初值
LCALL DISP ;调显示程序
SJMP $
;定时中断子程序
T1_ISR: DJNZ R0,ISR_OUT ;一秒不到退出
MOV R0,#20 ;到了,重赋计数器初值
INC A ;计时值加1
LCALL DISP ;调转换显示程序
CJNE A,#9,ISR_OUT ;判断计时值是否大于9,不是退出
MOV A,#00 ;大于9,重新赋0
ISR_OUT:MOV TH1,#3CH ;重新给计数器赋初值
MOV TL1,#0B0H
RETI
;显示子程序
DISP: MOV DPTR,#TAB ;查表
MOVC A,@A+DPTR
MOV P1,A
RET
;字符表,共阳接法0~9
TAB: DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H

END

曾经回答过一个类似题目,这个是在那个基础上修改的,你用Proteus仿真一下有问题Hi我
http://zhidao.baidu.com/question/158422617.html

热心网友 时间:2024-02-18 17:16

这是一个秒表,有按键实现
启动、暂停核清零功能。
#include
<reg51.H>
sbit
P3_5
=P3^5;
unsigned
char
code
dispcode[]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,
0x80,0x90,0x88,0x83,0xC6,0xA1,0x86,0x8E,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;
P1=dispcode[second/10];
P2=dispcode[second%10];
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;
P1=dispcode[second/10];
P2=dispcode[second%10];
break;
}
while(P3_5==0);
}
}
}
}
void
t0(void)
interrupt
1
using
0
{
tcnt++;
if(tcnt==4000)
{
tcnt=0;
second++;
if(second==100)
{
second=0;
}
P1=dispcode[second/10];
P2=dispcode[second%10];
}
}

热心网友 时间:2024-02-18 17:16

用的是什么单片机?
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
什么车险可以分期花呗 请问“有几个虫子怕什么"改为陈述句是"有几个虫子不可怕"。为什么要加... 一只狼身边有一只羊为什么狼不吃羊? 路边有一只羊,过来一只狼,却没有吃羊,为什么? ...有没有一个厂叫【福高】厂的,是做电子产品的。。3Q 明道冒险王百度云如何下载 冒险王2cps联系谁? 350分到400分的二本大学 廊坊高考400分能上什么学校 河北2023年高考400分左右能上什么大学 如何用单片机汇编语言设计一个秒表6 公民的政治权利和自由与民主选举、民主决策、民主管理、 民主监督的... 高中政治,政治生活问题,民主管理和民族决策有什么区别吗?题干感觉2... ...的,以前用的很正常,下载300-400KB/S,可现在最多70,怎么回事啊?_百度... 我的网速是电信3M的,但是下载速度却不是很快,最多也就250KB/S,我朋友... 我家的电脑用的是电信3M宽带,我和我房东用一个宽带《路由器》 我的下载... ...一下变得很慢,我家电信的,原来300KB一秒,现在最多60KB一秒了。_百度... 两个月宝宝晚上吃几次奶正常 孩子不想和妈妈户口可以上妈妈的学区房吗? 父母离异,孩子户口随爸爸,上初中可以去妈妈的学区房吗? 孩子和母亲不同户籍,孩子可以在母亲名下的房产学区房入学吗? 用白醋去除松木气味的方法 松木豆腐模具怎么去异味儿 ...事物,展开联想,以一篇600字左右的咏物抒怀的作文 ...小草、海潮、桥”其中一个写一篇500字左右咏物抒情文章! ...树根,小草”等,展开联想,写篇500字咏物抒怀的作文。要具体描绘事物的... 国家公务员考试地点,有徐州考点吗,可不可以自己选择考试地点啊... 国考公务员可以报其他省份么? 国考考点只能在省会么?我报名的时候只选了山东! 请问国考报名考试所在地为什么只能选择省份不能选择城市? 蟋蟀分红头和青头吗?如果分辨的话,那他又依靠什么分辨? 2016年沈阳东北中山中学高考一本上线率 信阳到新县有多少公里? 丰田皇冠50000公里保养费用皇冠5万公里保养项目 在圣诞节的前一天晚上为什么称为平安夜? 央视有个节目是各个大学的大学生抢答的知识竞赛叫什么名字? 中国教育频道那档教素描的节目叫什么 我记得小时候中国教育频道播过一个节目,就是一个外国男人教人做... 教育频道上,有个节目,搞创意的,主持人是外国人,是什么节目啊... 易武十大普洱茶排名? 羽绒被怎么清洗 羽绒被清洗方法1 鹅绒被怎么收纳3 鹅绒被能用压缩袋收藏吗4 收藏羽绒被要注意什么?4 有关粉丝的谚语 如果我要查监控,可以去交警大队查看吗5 在怀疑老婆出轨了,要怎样才可以去派出所调取监控?2 怀疑老婆出轨,可以去派出所调取她必经之路的监控吗??6 娅雯,娅惠,娅涵哪个名字好,原因?3 娅雯有多少人叫你的名字1