欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

標(biāo)題: 51單片機(jī)數(shù)字頻率計(jì)仿真(可按鍵切換量程)含源碼 [打印本頁(yè)]

作者: ltpsweet    時(shí)間: 2018-4-19 18:17
標(biāo)題: 51單片機(jī)數(shù)字頻率計(jì)仿真(可按鍵切換量程)含源碼
之前課程設(shè)計(jì)做的  誤差很小   分享給大家  里面有程序和仿真   也做過(guò)實(shí)物  可以按鍵切換量程10倍和1倍


單片機(jī)源程序如下:
  1. #include <reg52.h >
  2. #include <intrins.h >
  3. #define uint unsigned int
  4. #define uchar unsigned char
  5. sbit  k1=P3^0;
  6. sbit  k2=P2^0;
  7. sbit  LED=P2^1;
  8. unsigned  char code dispbit[8]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};//共陰數(shù)碼管
  9. unsigned  char code dispcode[11]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x00};//顯示0-9    /修改   新增0x00
  10. unsigned  char count [8]={0, 0, 0, 0, 0, 0, 0, 0};//定義數(shù)組存放顯示數(shù)據(jù)的各位
  11. unsigned  int  T0count =0;
  12. unsigned  char time1tick =0;
  13. unsigned  char i =0,a=0,j=0,y=0;
  14. unsigned  int x ;//int最大是65536
  15. void pulse_init (void)
  16. {
  17. TMOD =0x16;//T0工作在方式2,計(jì)數(shù)器模式,T1工作方式為方式1,定時(shí)器模式
  18. TH0=0x00;
  19. TL0=0x00;
  20. TH1=(65536-50000)/256;//50ms中斷一次,中斷20次完成1秒定時(shí),計(jì)算初值
  21. TL1=(65536-50000)%256;
  22. ET0=1;
  23. ET1=1;
  24. //EX0=1;
  25. //EX1=1;
  26. EA=1;       
  27. }


  28. void delay (uint ms)
  29. {
  30. unsigned char i,j;
  31. for(i =0; i<ms; i ++)
  32. for(j =0; j<250;j ++)
  33.                                         {
  34.                                                 _nop_();
  35.                                           _nop_();
  36.                                           _nop_();
  37.           }
  38. }
  39. static void time0_int (void) interrupt 1 using 0
  40. {
  41. T0count ++;
  42. }
  43. void t1(void) interrupt 3 using 0
  44. {
  45. time1tick++;
  46. TH1=(65536-50000)/256;//50ms中斷一次,中斷50次完成1秒定時(shí),計(jì)算初值
  47. TL1=(65536-50000)%256;
  48. if (time1tick==10*a)
  49. {
  50. time1tick=0;
  51. TR0=0;
  52. TR1=0;
  53. ET0=0;
  54. ET1=0;
  55. }
  56. }

  57. void display (void)
  58. {
  59.   x=256*T0count+TL0;//轉(zhuǎn)換成10進(jìn)制
  60.         i=7; //數(shù)碼管的顯示高位為數(shù)據(jù)的低位
  61.         while(x)//賦值
  62. {
  63. count[i]=x%10;
  64. x=x/10;
  65. i--;       
  66. }
  67. while(i--)
  68. {
  69. count[i]=10;//修改
  70. }
  71. for(i=0;i<8;i++)
  72. {     
  73.         if(i==7&&j==1)
  74.         {
  75.                 P1=0x80;
  76.                 delay(1);
  77.    }
  78.            P0=dispbit[i];
  79.             P1=dispcode[count[i]];
  80.             delay(1);
  81. }
  82. }

  83. //void  int0_int(void) interrupt 0
  84. //{
  85. //  j=1;
  86. //}

  87. //void  int1_int(void) interrupt 3
  88. //{
  89. //  j=0;
  90. //}

  91. void main()
  92. {       

  93. if(!k2)
  94. {delay(5);
  95.         if(!k2)
  96.         j=0;
  97.         else
  98. ……………………

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

所有資料51hei提供下載:
頻率計(jì).zip (81.66 KB, 下載次數(shù): 144)







作者: 左大爺886    時(shí)間: 2018-7-5 16:09
謝謝樓主

作者: djk天津,回家,    時(shí)間: 2018-7-13 11:03
謝謝樓主
作者: djk天津,回家,    時(shí)間: 2018-7-13 11:04
謝謝樓主
作者: 249796790    時(shí)間: 2018-7-14 16:06
那要是做實(shí)物,怎樣實(shí)現(xiàn)的頻率輸入啊,求解
作者: 乾坤    時(shí)間: 2018-10-16 10:01
請(qǐng)問(wèn)切換量程為10倍是什么原理?是由哪一段代碼控制的?
作者: 單片機(jī)1234567    時(shí)間: 2018-10-18 14:33
乾坤 發(fā)表于 2018-10-16 10:01
請(qǐng)問(wèn)切換量程為10倍是什么原理?是由哪一段代碼控制的?

同問(wèn),這個(gè)也搞不懂,希望指教
作者: 乾坤    時(shí)間: 2018-10-22 20:35
單片機(jī)1234567 發(fā)表于 2018-10-18 14:33
同問(wèn),這個(gè)也搞不懂,希望指教

最后一段代碼中,delay(5)改為delay(20)后,就能按一下按鍵后一直有小數(shù)點(diǎn),這一句case(1):a=20; break;代碼,a=20時(shí)就能使測(cè)出的頻率達(dá)到0.1Hz,a=2時(shí)測(cè)出的頻率為原頻率的十分之一;
delay(5)改為delay(0)后,按按鍵就不會(huì)出現(xiàn)小數(shù)點(diǎn)。
作者: 單片機(jī)1234567    時(shí)間: 2018-10-30 23:16
你好,我們現(xiàn)在是做51單片機(jī),這個(gè)52單片機(jī)可以用嗎
作者: 妖魔鬼怪    時(shí)間: 2018-12-19 17:36
單片機(jī)1234567 發(fā)表于 2018-10-30 23:16
你好,我們現(xiàn)在是做51單片機(jī),這個(gè)52單片機(jī)可以用嗎

52和51區(qū)別在硬件上,和軟件關(guān)系不大




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