简易数字频率计

2019-07-15 17:30发布

#include <REG52.H>
unsigned long int n,tt;
unsigned long int f;
sbit Ls151_a=P3^0;
sbit Ls151_b=P3^1;
sbit Ls151_c=P3^2;
void delay_ms(unsigned int ms)
{
        unsigned char i;
        while(ms--)
    for(i = 0;i<120;i++);
}
#define duan P1
#define wei P2
unsigned  char code duan_ma[] = {0xc0,0xf9,0xa4,0xb0,0x99,0x92,
0x82,0xf8,0x80,0x90,};//黄板 共阳
unsigned char code wei_ma[]= {0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};
void led_show_delay_us(unsigned int us)//微秒级的延时
{
        while(us--);
}
void led_show_number(unsigned char len,unsigned long int num)
{
  unsigned char n;
        unsigned char temp[8];
    temp[7] =  num%100000000/10000000;
        temp[6]  = num%10000000/1000000;
        temp[5]  = num%1000000/100000;
        temp[4]  = num%100000/10000;
        temp[3]  = num%10000/1000;
        temp[2]  = num%1000/100;
        temp[1]  = num%100/10;
        temp[0]  = num%10;
        if(len>8) len =8;
        for(n = 0;n<len;n++)
        {       
          wei = wei_ma[n];
                duan = duan_ma[temp[n]];
                led_show_delay_us(100);
        }
}
void main()
{
    TMOD |= 0X15;//设置定时器模式  0001 0101
        TH0 = 0;//装载高八位数据
        TL0 = 0;//装载低八位数据
         
        TH1 =(65536-50000)/256;//装载高八位数据
        TL1 =(65536-50000)%256;//装载低八位数据
       
        ET1 = 1;//开启定时中断1
        TR1 = 1;//开启定时

        ET0 = 1;//开启计数中断0
        TR0 = 1;//开启计数

        EA = 1;//打开总中断
        while(1)
         {
                       Ls151_a=1;
                        Ls151_b=0;
                        Ls151_c=0;
       led_show_number(8,f);
   }
}
void time0()interrupt 1
{   
        TH0 =0;//装载高八位数据
        TL0 =0;//装载低八位数据
    n++;
}
void time1()interrupt 3
{   
        TH1 =(65536-50000)/256;//装载高八位数据
        TL1 =(65536-50000)%256;//装载低八位数据
        if(tt++== 19)
        {
                tt = 0;       
                TR0 = 0;
                f = n*65536+TH0*256+TL0;               
                n = 0;
                TH0 =0;//装载高八位数据
                TL0 =0;//装载低八位数据
                TR0 = 1;
        }       
}用三个按键 如何用switch()分支来编写八种可能,以上的程序中我只编写一种情况而已,就是100,还有七种没有列出来的。编完switch()后,如何用到显示里面的,让显示模块随着按键的选择,相应就会发生变化的呢?

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
9条回答
kaiserzhang
1楼-- · 2019-07-15 22:59
居然可以有程序?
gyzh818
2楼-- · 2019-07-16 02:57
不错不错
gh037
3楼-- · 2019-07-16 05:20
 精彩回答 2  元偷偷看……
ryan24541
4楼-- · 2019-07-16 09:55
简单实用!
LJJWY
5楼-- · 2019-07-16 10:13
学习学习。。。。。。。。。。。
爱的意义
6楼-- · 2019-07-16 12:26
我还没有编完的,这只是其中的一个通道而已。还有其余的都还没有弄出来的。求各位大神帮我编出来。可好

一周热门 更多>