导航:首页 > 操作系统 > 单片机秒表电路

单片机秒表电路

发布时间:2023-01-09 17:27:00

单片机秒表设计

用AT89C51设计一个2位的LED数码显示作为“秒表”,这应该是一个仿真题,可用两位一体的共阴数码管,用定时器T0定时,得到1秒计时。

② 单片机程序 根据电路图,请编写程序,使前两个数码管实现00到59的秒表功能,希望大神用汇编和中断

请设计一个2位静态数码管从00到59显示的程序
#include <reg51.h>
unsigned char show[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
int n, j;
qc()interrupt 1 using 3
{TH0=(65336-10000)/256;
TL0=(65336-10000)%256;
n++;
if (n>=100)
{n=0;
j++;
if (j>=60)
j=0;
}
}
main ()
{int gw,sw ;
ET0=1;
EA =1;
TMOD =0x01;
TH0=(65536-10000)/256;
TL0=(65336-10000)%256;
TR0=1;
while (1)
{ gw =j/10;
sw =j%10;
P0=show[gw];
P1=show[sw];
}
}

③ 求大神写一下单片机at89c52控制秒表电路循环显示0到99的程序

我写的是共阳极,你想共阴极,自己改RXD和TDX输入电平以及P2码值就好。

根据你题目要求连接的。两个LED动态显示,交替间隔时间常量stime我设的50ms,因为我是仿真软件,间隔太短显示不出交替效果,你用板子测试的话,可以把间隔调小。

另外你题目暂停按钮连在普通引脚, 如果按钮直接连外部中断0来实现暂停会更敏感。

#include <reg52.h>

#define uint unsigned int

#define uchar unsigned char

#define an P2

#define stime 50 //LED交替闪烁间隔时间

void init();

void pause();

sbit wei1=P3^0;

sbit wei2=P3^1;

sbit s2=P1^4;

sbit s3=P1^6;

//共阳极

void delay(uint xms);

uint g=0;

uint s=0;

uint count=0;

uint ispause=0;

void main()

{

uchar nums[10]={0xc0,0xf9,0xa4,0xB0,0x99,0x92,0x82,0xf8,0x80,0x98};

init();

while(1)

{

if(s2==0 && ispause==0)

{

if(s2==0)

{

while(s2==0);

ispause=1;

pause();

}

}

else if(s3==0 && ispause==1)

{

if(s3==0)

{

while(s3==0);

ispause=0;

pause();

}

}

if(s==0)

{

an=nums[g];

wei1=0;

wei2=1;

}

else

{

an=nums[s];

wei1=1;

wei2=0;

delay(stime);

an=nums[g];

wei1=0;

wei2=1;

delay(stime);

}

}

}

void pause()

{

EA=~EA;

}

void init()

{

TMOD=0x02; //T0 工作模式2 自动装填8位 200us

TH0=0x38;

TL0=0x38;

EA=1;

ET0=1;

TR0=1;

}

void ct() interrupt 1

{

if(count<5000)

count++;

else

{

count=0;

if(g==9)

{

g=0;

if(s==9)

s=0;

else

s++;

}

else

g++;

}

}

void delay(uint xms)

{

uint i,j;

for(i=xms;i>0;i--)

for(j=112;j>0;j--);

}

④ 单片机课程设计电子秒表

电路原理图已画好

实现你描述的全部功能

KeiluVision3编译通过,C语言编写,有详细注释

实机调试通过

留个邮箱发给你...

----------------------------

邮件已发......

⑤ 求用单片机设计一个秒表AT89C51

;汇编程序如下。

;使用T0定时方式1,每隔50ms中断一次,用于修改时间及显示

;使用外部中断0、1,用于控制启动和清零

;========================================================

ORG0000H

AJMPMAIN

ORG0003H

AJMPX0_INT

ORG000BH

AJMPT0_INT

ORG0013H

AJMPX1_INT

MAIN:

MOVTMOD,#01H;T0定时方式1

MOVTH0,#(65536-50000)/256;50ms@12MHz

MOVTL0,#(65536-50000)MOD256;

SETBTR0

SETBET0;开启定时中断

SETBEX0

SETBEX1

SETBEA;定时器初始化结束,下面循环显示即可

MOVR1,#99H;0~99计数.

MOVR7,#1;50ms计数.

MOVP0,#0C0H

MOVP2,#0C0H

LOOP:

SJMPLOOP

;-----------------------------------------------------------

DELAY:;延时子程序.

AA4:MOVR4,#0

DJNZR4,$

DJNZR4,$

RET

;-----------------------------------------------------------

X0_INT:;启动/停止

CPLF0

RETI

;-----------------------------------------------------------

X1_INT:;清零

MOVR1,#0

MOVP0,#0C0H

MOVP2,#0C0H

RETI

;-----------------------------------------------------------

T0_INT:;50ms中断执行一次.

MOVTL0,#(65536-50000)MOD256;

MOVTH0,#(65536-50000)/256;50ms@12MHz

DJNZR7,T0_END;中断不到20次.

MOVR7,#20

JNBF0,T0_END

MOVA,R1

ADDA,#1

DAA

MOVR1,A

ANLA,#0FH

MOVDPTR,#TAB

MOVCA,@A+DPTR;查出段码

MOVP2,A

MOVA,R1

SWAPA

ANLA,#0FH

MOVCA,@A+DPTR;查出段码

MOVP0,A;显示十位数.

T0_END:

RETI

;-----------------------------------------------------------

TAB:

DB0c0H,0f9H,0a4H,0b0H,99H,92H,82H,0f8H,80H,90H

;===========================================================

;仿真截图如下:

⑥ 51单片机秒表电路单片机电压达不到5v是什么问题

一种可能是电源输出功率太小,另一种可能是电路中有可能出现短路。

⑦ 用51单片机做秒表设计

遇到懒学生了,这个不就是一个定时器加显示吗,有什么难的,自己翻翻微机原理书就可以做 了,也就四五十行汇编语言就行了,用C就更加简单,具体的方法:用定时器定时0.2ms,定时到了就给固定的一个变量加1,然后判断这个变量是不是到了500,到了就清零然后把秒的变量加1,就是1s了,(分和时也是如此,秒为60,秒清零,分加1);主程序就只管显示和按键,按键随便用中断还是查询,我建议你查询,因为程序简单,显示程序就是查个表,自己把数码显示的断码表编好就可以了,把秒的数值查表对应显示,完了就查询按键,按键累加,值为0是没按,1是按1次,2是按2次,3是按3次,同时清零,很简单的

⑧ 关于51单片机 的秒表/时钟计时器设计摘要

本设计以AT89S51单片机为核心芯片,与型号为1602的液晶显示器构成数字电子时钟电路。AT89S51是一个低功耗,高性能CMOS 8位单片机,片内含4K Bytes ISP(In-system programmable)的可反复擦写1000次的Flash只读程序存储器,器件采用ATMEL公司的高密度、非易失性存储技术制造,兼容标准MCS-51指令系统及AT89C51引脚结构,芯片内集成了通用8位中央处理器和ISP Flash存储单元,功能强大的微型计算机的AT89S51可为许多嵌入式控制应用系统提供高性价比的解决方案.液晶显示器以其微功耗、体积小、显示内容丰富、超薄轻巧的诸多优点,在袖珍式仪表和低功耗应用系统中得到越来越广泛的应用。

⑨ 如何用单片机汇编语言设计一个秒表

C51 http://..com/question/42921479.html?fr=qrl&cid=192&index=1

http://..com/question/29519178.html?fr=qrl&cid=192&index=2
1.基于单片机的设计
2.计时精度:百分之一秒
2.5键操作完成 清除 启动 停止 设置初值 程序退出的功能
采用LED显示时、分、秒、百分之一.PROTEL图最好也有

用89C51,外接晶振,复位电路,二个数码管,二个按键,做一个电子秒表,具体要求为用按键起停电子表,可用按键设计倒计时时间(如10S,20S,60S),并启动倒计时功能。能用按键选择以上两功能之一。
三、程序代码:
A_BIT EQU 20H
B_BIT EQU 21H
TEMP EQU 22H
MOV P3,#0FFH
MOV P0,#0FFH
CLR F0
CLR F1
MOV DPTR,#NUMTAB
MOV P3,#0FFH
MOV P0,#0FFH
START:JB P3.6,START1
ACALL DELAY10
JB P3.6,START
JNB P3.6,$
LJMP GN1
START1: JB P3.7,START
ACALL DELAY10
JB P3.7,START1
JNB P3.7,$
LJMP GN2
GN1:
S1:MOV A,#0
MOV TEMP,A
GOON1: MOV R2,#2
JS1: MOV R3,#250
TIME1: MOV A,TEMP
MOV B,#10
DIV AB
MOV B_BIT,A
MOV A_BIT,B
LCALL DPLOP1
C1: JB P3.6,B1
ACALL DELAY10
JB P3.6,C1
JNB P3.6,$
CPL F0
ZT1: ; MOV P3,#0FFH
JB P3.6,$
ACALL DELAY10
JB P3.6,ZT1
JNB P3.6,$
LCALL DPLOP1

B1: JB P3.7,LOOP1
ACALL DELAY10
JB P3.7,B1
JNB P3.7,$
AJMP OVER
LOOP1: DJNZ R3,TIME1
DJNZ R2,JS1
INC TEMP
MOV A,TEMP
CLR C
SUBB A,#60
JNZ GOON1

ACALL OVER
RET
GN2: MOV A,#14H
MOV TEMP,A
MOV P3,#0FFH
MOV P0,#14H
GOON2: MOV R2,#2
JS2: MOV R3,#250
TIME2: MOV A,TEMP
MOV B,#10
DIV AB
MOV B_BIT,A
MOV A_BIT,B
MOV DPTR,#NUMTAB
DPLOP2: MOV A,A_BIT
MOVC A,@A+DPTR
MOV P0,A

CLR P2.5
ACALL DELY1
SETB P2.5
MOV A,B_BIT
MOVC A,@A+DPTR

MOV P0,A

CLR P2.6
ACALL DELY1
SETB P2.6
C2: JB P3.6,B2
ACALL DELAY10
JB P3.6,C2
JNB P3.6,$

ZT2: MOV P3,#0FFH
JB P3.6,$
ACALL DELAY10
JB P3.6,ZT2
JNB P3.6,$

B2: JB P3.7,LOOP2
ACALL DELAY10
JB P3.7,B1
JNB P3.7,$
AJMP OVER
LOOP2: DJNZ R3,TIME2
DJNZ R2,JS2
DEC TEMP
MOV A,TEMP
JNZ GOON2
ACALL OVER
RET

OVER: AJMP START
DELY1: MOV R4,#2
D1:MOV R5,#248
DJNZ R5,$
DJNZ R4,D1
RET
DELAY10: MOV R4,#20
D2:MOV R5,#248
DJNZ R5,$
DJNZ R4,D2
RET
NUMTAB: DB 40H,79H,24H,30H,19H,12H,02H,78H,00H,10H
DPLOP1: MOV A,A_BIT
MOVC A,@A+DPTR
MOV P0,A

CLR P2.5
ACALL DELY1
SETB P2.5
MOV A,B_BIT
MOVC A,@A+DPTR
MOV P0,A
CLR P2.6
ACALL DELY1
SETB P2.6
RET
END

⑩ 单片机 按键秒表

秒表的设计程序
用89C51,外接晶振,复位电路,二个数码管,二个按键,做一个电子秒表,具体要求为用按键起停电子表,可用按键设计倒计时时间(如10S,20S,60S),并启动倒计时功能。能用按键选择以上两功能之一。
三、程序代码:
A_BIT EQU 20H ;数码管个位数存放内存位置
B_BIT EQU 21H ;数码管十位数存放内存位置
TEMP EQU 22H ;计数器数值存放内存位置 ;开机初始化
MOV P3,#0FFH;对P3口初始化,设置为高电平,用于按键输入
MOV P0,#0FFH;使显示时间数码管熄灭
CLR F0
CLR F1
MOV DPTR,#NUMTAB ;指定查表启始地址
;等待按键输入
;根据按键的输入判断执行什么功能;按键1按下则执行功能1
MOV P3,#0FFH;对P3口初始化,设置为高电平,用于按键输入
MOV P0,#0FFH;使显示时间数码管熄灭
START:JB P3.6,START1;循环判断开始按钮K1是否按下?
ACALL DELAY10;延时10毫秒触点消抖
JB P3.6,START;如果是干扰就返回
JNB P3.6,$;等待按键松开
LJMP GN1 ;按键2按下则执行功能2START1: JB P3.7,START;循环判断开始按钮K2是否按下?
ACALL DELAY10;延时10毫秒触点消抖
JB P3.7,START1;如果是干扰就返回
JNB P3.7,$
LJMP GN2;数码管显示秒表时间的程序
GN1: ;先初始化
S1:MOV A,#0
MOV TEMP,A
GOON1: MOV R2,#2
JS1: MOV R3,#250
TIME1: MOV A,TEMP ;将TEMP中的十六进制数转换成10进制
MOV B,#10 ;10进制/10=10进制
DIV AB
MOV B_BIT,A ;十位在A
MOV A_BIT,B ;个位在B LCALL DPLOP1 ;插入一段判断定时过程中是否有按键输入的程序段
C1: JB P3.6,B1
ACALL DELAY10;延时10毫秒消抖
JB P3.6,C1
JNB P3.6,$;等待按键松开
CPL F0
ZT1: ; MOV P3,#0FFH;对P3口初始化,设置为高电平,用于按键输入
JB P3.6,$;循环判断开始按钮K1是否按下?
ACALL DELAY10;延时10毫秒触点消抖
JB P3.6,ZT1;如果是干扰就返回
JNB P3.6,$;等待按键松开
LCALL DPLOP1

B1: JB P3.7,LOOP1
ACALL DELAY10;延时10毫秒消抖
JB P3.7,B1
JNB P3.7,$;等待按键松开
AJMP OVERLOOP1: DJNZ R3,TIME1 ;2毫秒循环执行250次,时间约0.5秒
DJNZ R2,JS1 ;循环执行2次,时间为1 秒钟INC TEMP;满一秒钟对时间加1
MOV A,TEMP
CLR C
SUBB A,#60
JNZ GOON1;判断TEMP的数值是否为60?不为60循环
ACALL OVER
RET
GN2: MOV A,#14H ; 设定倒计时的时间20S
MOV TEMP,A;数码管显示倒计时时间的程序
;初始化
MOV P3,#0FFH;对P3口初始化,设置为高电平,用于按键输入
MOV P0,#14H;使显示时间为设定的倒计时时间 GOON2: MOV R2,#2
JS2: MOV R3,#250
TIME2: MOV A,TEMP ;将TEMP中的十六进制数转换成10进制
MOV B,#10 ;10进制/10=10进制
DIV AB
MOV B_BIT,A ;十位在A
MOV A_BIT,B ;个位在B MOV DPTR,#NUMTAB ;指定查表启始地址
DPLOP2: MOV A,A_BIT ;取个位数
MOVC A,@A+DPTR ;查个位数的7段代码
MOV P0,A ;送出个位的7段代码

CLR P2.5 ;开个位显示
ACALL DELY1;显示1毫秒
SETB P2.5;关闭个位显示,防止鬼影
MOV A,B_BIT ;取十位数
MOVC A,@A+DPTR ;查十位数的7段代码
MOV P0,A ;送出十位的7段代码
CLR P2.6 ;开十位显示
ACALL DELY1;显示1毫秒
SETB P2.6;关闭十位显示,防止鬼影 ;插入一段判断定时过程中是否有按键输入的程序段
C2: JB P3.6,B2
ACALL DELAY10;延时10毫秒消抖
JB P3.6,C2
JNB P3.6,$;等待按键松开

ZT2: MOV P3,#0FFH;对P3口初始化,设置为高电平,用于按键输入
JB P3.6,$;循环判断开始按钮K1是否按下?
ACALL DELAY10;延时10毫秒触点消抖
JB P3.6,ZT2;如果是干扰就返回
JNB P3.6,$;等待按键松开

B2: JB P3.7,LOOP2
ACALL DELAY10;延时10毫秒消抖
JB P3.7,B1
JNB P3.7,$;等待按键松开
AJMP OVERLOOP2: DJNZ R3,TIME2 ;2毫秒循环执行250次,时间约0.5秒
DJNZ R2,JS2 ;循环执行2次,时间为1 秒钟DEC TEMP;满一秒钟对时间减1
MOV A,TEMP
JNZ GOON2;判断TEMP的数值是否为0?不为0循环
ACALL OVER
RET
;结束定时
OVER: AJMP START;退到开机初始化状态;1毫秒延时子程序
DELY1: MOV R4,#2
D1:MOV R5,#248
DJNZ R5,$
DJNZ R4,D1
RET;10毫秒延时子程序
DELAY10: MOV R4,#20
D2:MOV R5,#248
DJNZ R5,$
DJNZ R4,D2
RET;实验板上的两位一体的数码管0~9各数字的显示代码
NUMTAB: DB 40H,79H,24H,30H,19H,12H,02H,78H,00H,10H
DPLOP1: MOV A,A_BIT ;取个位数
MOVC A,@A+DPTR ;查个位数的7段代码
MOV P0,A ;送出个位的7段代码

CLR P2.5 ;开个位显示
ACALL DELY1;显示1毫秒
SETB P2.5;关闭个位显示,防止鬼影
MOV A,B_BIT ;取十位数
MOVC A,@A+DPTR ;查十位数的7段代码
MOV P0,A ;送出十位的7段代码
CLR P2.6 ;开十位显示
ACALL DELY1;显示1毫秒
SETB P2.6;关闭十位显示,防止鬼影
RET
END

阅读全文

与单片机秒表电路相关的资料

热点内容
未来最值得投资的加密货币 浏览:524
ascii码是编译的时候用吗 浏览:779
压缩机感应包可以通用吗 浏览:410
方舟服务器怎么发布到搜索列表 浏览:270
xml防反编译 浏览:239
数据传输加密系统技术方案 浏览:842
程序员没有准备去面试 浏览:4
51单片机usb鼠标 浏览:879
qq服务器的ip地址查询 浏览:112
java仿qq聊天 浏览:400
解压的ipa重新打包 浏览:142
程序员那么可爱vip版 浏览:239
程序员怎么升职 浏览:243
图形化命令按钮vb 浏览:987
vcu盘加密怎么设置 浏览:414
如何加密备份微信聊天记录 浏览:529
安卓手机如何模拟键盘 浏览:931
查看dns地址命令 浏览:768
android录屏工具 浏览:841
成都互动直播系统源码 浏览:955