C语言数字频率计课程设计,c#实现51单片机频率计的代码分享(数字频率计设计)...

#include

#define uchar unsigned char

#define uint unsigned int

#define ulong unsigned long

//按键

sbit button=P1^7;

//LED

sbit led2=P3^5;

sbit led3=P3^7;

//数码管位选

sbit c0 = P3^0;

sbit c1 = P3^1;

sbit c2 = P3^2;

sbit c3 = P3^3;

//数码管段码

uchar code dm[]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90};

uchar wm[]={0,0,0,0};

ulong pl;

uchar mode;

void delay3ms(void)   //误差 0us

{

unsigned char a,b,c;

for(c=1;c>0;c--)

for(b=176;b>0;b--)

for(a=7;a>0;a--);

}

void smg()

{

static uchar i=0;

c0=1;c1=1;c2=1;c3=1;

P1 = 0XFF;

switch(i)

{

case 0: c0=0;

break;

case 1: c1=0;

break;

case 2: c2=0;

break;

case 3: c3=0;

break;

}

P1 = dm[wm[i]];

i++;

if(i>3)

{

i=0;

}

}

void ledmode()

{

switch(mode)

{

case 0:led2=led3=0;

break;

case 1:led2=1;led3=0;

break;

case 2:led2=0;led3=1;

break;

case 3:led2=led3=1;

break;

}

}

void key()

{

static uchar num;

delay3ms();

button=1;

switch(num)

{

case 0: if(!button)

{

num=1;

}

break;

case 1: if(!button)

{

if(mode<3)

{

mode++;

}

else

{

mode=0;

}

num=2;

}

else

{

num=0;

}

break;

case 2: if(button)num=3;

break;

case 3: if(button)num=0;

break;

}

}

void timeinit()

{

TMOD=0x15;  //设置T0T1控制字

TH0=0x00;

TL0=0x00;

TH1=0xfC;

TL1=0x18;

ET0=1;  //定时器0中断允许

ET1=1;

TR0=1;  //启动T0计数

TR1=1;  //并启动T1计数

EA=1;  //CPU开中断

}

void main()

{

timeinit();

while(1)

{

smg();

ledmode();

key();

}

}

void t1()interrupt 3

{

static uint time;

TR0=0;

TH1=(65536-10000)/256;

TL1=(65536-10000)%256;

time++;

if(time>99)

{

time=0;

pl=TH0*256+TL0;

wm[0]=(pl/1000)%10;

wm[1]=(pl/100)%10;

wm[2]=(pl/10)%10;

wm[3]=pl%10;

TH0=TL0=0;

}

TR0=1;

}

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值