找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

搜索
查看: 6131|回復(fù): 4
收起左側(cè)

51單片機(jī)+74LS160頻率計(jì),最高可測(cè)頻10M

  [復(fù)制鏈接]
ID:374056 發(fā)表于 2018-7-19 20:51 | 顯示全部樓層 |閱讀模式
因?yàn)?1單片機(jī)晶振的原因,測(cè)頻的范圍有限制,這時(shí)就需要外置74LS160分頻器,進(jìn)行分頻。
本程序采用了定時(shí)器的方式2定時(shí),8位自動(dòng)重裝計(jì)數(shù)器,精準(zhǔn)定時(shí)。

電路原理圖如下:
Q]2$LO$~`6%LM__~WXKVXOJ.png


單片機(jī)源程序:
  1. #include<reg52.h>
  2. #include<intrins.h>
  3. #define Duan P2
  4. #define Wei P1
  5. sbit mr = P3^0;
  6. unsigned char code smg_duan[] ={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
  7. unsigned char code smg_wei[] ={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};
  8. unsigned int Num;
  9. long int pin;
  10. long int count;
  11. void delay_ms(int i)
  12. {
  13.         int j;
  14.         for(i;i>0;i--)
  15.                 for(j=100;j>0;j--);
  16. }

  17. void display(long int num)
  18. {
  19.         long num1[8],i;
  20.         num1[7] = num/10000000;
  21.         num1[6] = (num/1000000)%10;
  22.         num1[5] = (num/100000)%10;
  23.         num1[4] = (num/10000)%10;
  24.         num1[3] = (num/1000)%10;
  25.         num1[2] = (num/100)%10;
  26.         num1[1] = (num/10)%10;
  27.         num1[0] = num%10;
  28.         for(i=0;i<8;i++){
  29.         Wei = smg_wei[i];
  30.         Duan = smg_duan[num1[i]];
  31.         delay_ms(1);
  32.         }
  33. }

  34. void main()
  35. {
  36.         TMOD = 0x72;
  37.         TH0 = 0x06;
  38.         TL0 = 0x06;
  39.         TH1 = 0x00;
  40.         TL1 = 0x00;
  41.         ET1 = 1;
  42.         ET0 = 1;
  43.         EA = 1;
  44.         //PT1=1;
  45.         TCON = 0x50;
  46.         while(1)
  47.         {
  48.                 display(pin);
  49.         }

  50. }

  51. void timer0() interrupt 1   //定時(shí)器
  52. {
  53.                 unsigned char a;
  54.                 if(Num==3999)
  55.                 {
  56.                 TCON = 0x00;
  57.                 EA=0;
  58.                 Num = 0;
  59.                 a=P0&0x0f;               //分頻器讀數(shù)
  60.                 pin = (256*count+TL1)*10+a;    //溢出的次數(shù)*256+還未溢出的次數(shù)+分頻器的計(jì)數(shù)
  61.                 TH1 = 0x00;
  62.                 TL1 = 0x00;
  63.                 TL0 = 0x06;
  64.                 TH0 = 0x06;
  65.                 count = 0;
  66.                 mr=0;
  67.                 _nop_();
  68.                 EA=1;
  69.                 TCON = 0x50;
  70.                 mr=1;
  71.                 }
  72.                 else Num++;
  73.                 //display(pin);
  74. }

  75. void timer1() interrupt 3    //計(jì)數(shù)器
  76. {
  77.         count++;    中斷溢出的次數(shù)
  78. }
復(fù)制代碼

評(píng)分

參與人數(shù) 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎(jiǎng)勵(lì)!

查看全部評(píng)分

回復(fù)

使用道具 舉報(bào)

ID:855982 發(fā)表于 2020-12-7 14:28 | 顯示全部樓層
為啥我按著你的仿真做 數(shù)碼管亂碼呀
回復(fù)

使用道具 舉報(bào)

ID:855982 發(fā)表于 2020-12-7 15:32 來自手機(jī) | 顯示全部樓層
大佬,為啥我的數(shù)碼管不行
回復(fù)

使用道具 舉報(bào)

ID:899981 發(fā)表于 2022-6-13 14:34 | 顯示全部樓層
沒有代碼?
回復(fù)

使用道具 舉報(bào)

ID:1110848 發(fā)表于 2024-2-10 01:46 | 顯示全部樓層
可以、拋磚引玉之作
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表