分别用汇编语言,定时器T0方式二,制作LED数码管显示的秒表,计数范围0.1~0.9,2位数码管

分别用汇编语言,定时器T0方式二,制作LED数码管显示的秒表,计数范围0.1~0.9,2位数码管,第1张

分别用汇编语言,定时器T0方式二,制作LED数码管显示的秒表,计数范围 01~09。

2位数码管,只有一个键。

第一次按下计时功能键,开始计数,并显示;

第二次按下计时功能键,停止计时,并计算两次按下计时功能键的时间并显示,

第三次按下,清零,如果计时到99,停止计时,再按计时功能键清零。

类似的如下:

满 900s,计时停止,并报响。

#include "reg51h"

void delay1s();

void display(unsigned char x);

void main()

{

unsigned char i;

while(1)

{

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

{

display(i);

delay1s();}

}

}

void delay1s()

{

unsigned char i,j,k;

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

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

for(k=250;k>0;k--);

}

void display(unsigned char x)

{

unsigned char dispcode[10]={0x3f,0x06,0x5b,0x4f,

0x66,0x6d,0x7d,0x07,0x7f,0x6f};

P2=dispcode[x/10];

P1=dispcode[x%10];

}

单片机led数码管 秒表仿真实例,很简单的,可以参考一下,

#include<reg52h>    // 秒表程序

#define uint unsigned int

#define uchar unsigned char

uchar code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};

uchar bai,shi;

uint a1,a2;

sbit D1=P3^0;

sbit D2=P3^1;

sbit D3=P3^2;

sbit D4=P3^3;

sbit key=P3^5;

sbit key1=P3^7;

bit   j ;

uint  y ;

void main()

{

TMOD=0x01;

TH0=(65536-10000)/256;

TL0=(65536-10000)%256;

EA=1;

ET0=1;

TR0=1;

bai=0;

shi=0;

while(1)

{

if(key==0)

{

j=0;

}

if(key1==0)

{

j=1; a2=0;

}

}

}

void timer0()interrupt 1

{

TH0=(65536-10000)/256;

TL0=(65536-10000)%256;

a1++;

y++;

if(a1==100)

{

a1=0;

if(j==1)  a2++;

if(a2>=10000) a2=0;

}

D1 = 1; D2 = 1; D3 = 1; D4 = 1;

if(y==1)

{

P1=table[a2%10000/1000];

D4=0;

}

if(y==2)

{

P1=table[a2%1000/100];

D3=0;

}

if(y==3)

{

P1=table[a2%100/10];

D2=0;

}

if(y==4)

{

P1=table[a2%10];

D1=0;

y=0;

}

}

#include <reg51h> ——整个程序会是怎么控制数码管? #define SEG P2 ——这个的作用就不懂 //宏定义 就是SEG替代P2 void T1_8ms(void) interrupt 3 ——这个中断干什么用的? //动态扫描显示的 这个程序是错的。#define TH_M1(256-count_M2) 改成 #define TH_M2(256-count_M2) #define TL_M1(256-count_M2) 改成 #define TL_M2(256-count_M2) SEG=0xff; 这个可以不要 SCANP=~scan; 改成 SCANP=~(0x01<<(scan-1)); SEG=disp[scan-1] ; 改成 SEG=TAB[disp[scan-1] ];

以上就是关于分别用汇编语言,定时器T0方式二,制作LED数码管显示的秒表,计数范围0.1~0.9,2位数码管全部的内容,包括:分别用汇编语言,定时器T0方式二,制作LED数码管显示的秒表,计数范围0.1~0.9,2位数码管、编程实现倒计时的秒表,2位LED数码管显示,延时采用软件延时的方法。求大神!、单片机led数码管实验等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/10113197.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-05
下一篇 2023-05-05

发表评论

登录后才能评论

评论列表(0条)

保存