標(biāo)題: 單片機(jī)頻率計(jì)設(shè)計(jì),包括仿真和代碼 [打印本頁]

作者: 忘記時(shí)間    時(shí)間: 2017-5-25 13:15
標(biāo)題: 單片機(jī)頻率計(jì)設(shè)計(jì),包括仿真和代碼
基于單片機(jī)的數(shù)字頻率計(jì)的設(shè)計(jì),包括仿真和代碼,仿真用的proteus,有興趣的同學(xué)可以看看。


單片機(jī)源程序如下:
  1. #include "reg51.h"
  2. #include "absacc.h"
  3. #define LED4 XBYTE[0x1FFF]
  4. #define LED3 XBYTE[0X3FFF]
  5. #define LED2 XBYTE[0X5FFF]
  6. #define LED1 XBYTE[0X7FFF]
  7. #define uint unsigned int
  8. unsigned char code table[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
  9. int i=0,counter=0;
  10. unsigned char l4,l3,l2,l1;
  11. uint frequency;
  12. void t0ser(void);
  13. void int1ser(void);
  14. sbit P3_7=P3^7;
  15. void Display()
  16. {

  17. //        unsigned char l4,l3,l2,l1;//定義數(shù)的各個(gè)位
  18.         l4=frequency/1000;//千位
  19.         l3=(frequency-l4*1000)/100;//百位
  20.         l2=(frequency-l4*1000-l3*100)/10;//十位
  21.         l1=frequency-l4*1000-l3*100-l2*10;//個(gè)位
  22.         while(1)
  23.         {
  24.     LED4=table[l4];//送顯千位
  25.     LED3=table[l3];//送顯百位
  26.     LED2=table[l2];//送顯十位
  27.     LED1=table[l1];//送顯個(gè)位
  28.         if(P3_7==1) break;//對(duì)顯示屏上的頻率進(jìn)行鎖定
  29.         }
  30. }       
  31. void main()         //主函數(shù)
  32. {                 
  33.                 TMOD=0x51;//T0 記時(shí) T1計(jì)數(shù)
  34.                 TH0=0x3c;//定時(shí)50ms
  35.                 TL0=0xB0;
  36.                 TH1=0x00;//計(jì)數(shù)
  37.                 TL1=0x00;
  38.                 TR0=1; //開T0
  39.                 TR1=1;//開T1
  40.                 ET0=1;//開中斷
  41.                 EA=1;//打開總中斷                                         
  42.                 while(1)
  43.                 {
  44.                         Display();
  45.                         }                       
  46.                         }

  47. void t0ser(void) interrupt 1 using 1 //中斷源1 “interrupt 1”:定時(shí)器0溢出中斷
  48. {
  49. counter++;
  50. if(counter<20)//記不滿一秒
  51. {
  52. TH0=0x3C; //重置T0時(shí)間常數(shù)高8位
  53. TL0=0xB0; //重置T0時(shí)間常數(shù)低8位
  54. }
  55. else
  56. {                          TR0=0; //啟動(dòng)定時(shí)器T0
  57.                         TR1=0; //啟動(dòng)定時(shí)器T1
  58.                         frequency=TH1*256+TL1; //計(jì)算頻率值
  59.                         TH1=0;//清T1高8位
  60.                         TL1=0;//清T1低8位
  61. ……………………

  62. …………限于本文篇幅 余下代碼請(qǐng)從51黑下載附件…………
復(fù)制代碼

所有資料51hei提供下載:
單片機(jī)的簡(jiǎn)易頻率計(jì)設(shè)計(jì).zip (63.77 KB, 下載次數(shù): 111)



作者: 1361116237    時(shí)間: 2018-11-17 18:18
前來學(xué)習(xí),謝謝樓主
作者: 弓長(zhǎng)小賤    時(shí)間: 2018-11-28 12:50
跪著樓主,樓主萬歲
作者: vnvmfnbkjfnbkf    時(shí)間: 2018-12-4 08:44
666謝謝大神
作者: vnvmfnbkjfnbkf    時(shí)間: 2018-12-4 08:52
666樓主 大神




歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1