51单片机c语言脉冲计数并显示程序

51单片机c语言脉冲计数并显示程序,第1张

TMOD=0x05;

TH0=0;TL0=0;磨饥衡肢液

TR0=1;

while(1)

{

a=TH0*256+TL0;

display(a);瞎做

}

#include<reg51.h>

#define uchar unsigned char

#define uint unsigned int

uchar code ledtab[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}//0-9

uchar scanled

uchar disdat[4]

uint ss,time

sbit led=P1^0

void dischg()

{

disdat[3]=ss%10

disdat[2]=(ss/10)%10

disdat[1]=(ss/100)%10

disdat[0]=(ss/1000)%10

}

void t0isr() interrupt 1 

{

ss++

dischg()

}

void t1isr() interrupt 3 //显示

{

TH1=(65536-5000)/256

TL1=(65536-5000)%256

P2=1<<scanled

P0=~ledtab[disdat[scanled]]

scanled++

scanled%=4

time++

if(time>100){time=0led=~led}

}

main()

{

TMOD=0x16

TH0=0xff

TL0=0xff

TH1=(65536-5000)/256

TL1=(65536-5000)%256

TR1=1

TR0=1

ET0=1

ET1=1

EA=1

led=0

scanled=0

ss=0

dischg()

while(1)

}

#include <reg51.h>

sbit k1=P3^0

sbit k2=P3^1

unsigned char shi,ge

unsigned char code 敬做tab[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90} //共阳极数码管亮春衡

void 森脊delay(unsigned int z)

{

unsigned int x,y

for(x=zx>0x--)

for(y=110y>0y--)

}

void display()

{

P2=0x01

P0=tab[shi]

delay(10)

P2=0x02

P0=tab[ge]

delay(10)

}

void keyscan()

{

if(k1==0)

{

delay(2)

if(k1==0)

{

while(!k1)

shi++

if(shi==10)

shi=0

}

}

if(k2==0)

{

delay(2)

if(k2==0)

{

while(!k2)

ge++

if(ge==10)

{

ge=0

shi++

if(shi==10)

shi=0

}

}

}

}

void main()

{

while(1)

{

display()

keyscan()

}

}


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

原文地址: http://outofmemory.cn/yw/12461736.html

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

发表评论

登录后才能评论

评论列表(0条)

保存