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

標題: 51單片機智能頻率計程序設計 [打印本頁]

作者: 寧1018    時間: 2019-12-15 14:44
標題: 51單片機智能頻率計程序設計
設計一個智能頻率計,外部提供四種頻率信號,要求:
(1)上電后,LCD1601字符屏先顯示初始化界面:“Frequency Testing;
(2)通過開關選擇四種頻率信號,再按下測量開關,測量頻率,測量完成后在字符屏上顯示測量結(jié)果。

仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)


單片機源程序如下:
  1. #include<reg51.h>
  2. #include<absacc.h>
  3. #include<string.h>
  4. #define uchar unsigned char
  5. #define uint unsigned int
  6. #define WCOMM XBYTE[0x0000]
  7. #define RCOMM XBYTE[0x0001]
  8. #define WDATA XBYTE[0x0002]
  9. #define RDATA XBYTE[0x0003]
  10. uchar LCD_Disp_Buffer[]="Frequency Testing";
  11. uchar count=0;
  12. sbit K1=P1^0;
  13. uint temp;
  14. void BusyWait()
  15. {
  16.    while((RCOMM & 0x80) != 0x00);
  17. }
  18. void Write_Command(uchar cmd)
  19. {
  20.    BusyWait();
  21.    WCOMM=cmd;
  22. }
  23. void Write_Data(uchar dat)
  24. {
  25.    BusyWait();
  26.    WDATA=dat;
  27. }
  28. void Initialise()
  29. {
  30.    Write_Command(0x30);
  31.    Write_Command(0x01);
  32.    Write_Command(0x06);
  33.    Write_Command(0x0c);
  34. }
  35. void ShowString(uchar *str)
  36. {
  37.     uchar i=0;
  38.         Write_Command(0x80);
  39.         while(str[i]!='\0'&&i<16&&str[i]!='A')
  40.         Write_Data(str[i++]);
  41.         for(;i<16;i++) Write_Data(' ');
  42.   }
  43. void Init()
  44. {
  45.    TMOD=0x51;
  46.    EA=1;
  47.    ET0=1;
  48.    ET1=1;
  49.    TL1=255;
  50.    TH1=255;
  51.    TH0=(65536-50000)/256;
  52.    TL0=(65536-50000)%256;
  53. }
  54. void Delay(uchar t)
  55. {
  56.    uchar a,b;
  57.    for(;t>0;t--)
  58.    for(a=38;a>0;a--)
  59.    for(b=140;b>0;b--);
  60. }
  61. void main()
  62. {
  63.   uchar i=0;
  64.   Initialise();
  65.   Init();
  66.   ShowString(LCD_Disp_Buffer);
  67.   while(1)
  68.   {
  69.          if(K1==0)
  70.          {
  71.            temp=0;
  72.            TR1=1;
  73.            TR0=1;
  74.          }
  75.          ShowString(LCD_Disp_Buffer);
  76.   }
  77. }
  78. void jishu( ) interrupt 3
  79. {
  80.    TL1=255;
  81.    TH1=255;
  82.    temp++;
  83. }
  84. void time_0( ) interrupt 1
  85. {
  86.     uchar i;
  87.    TH0=(65536-50000)/256;
  88.    TL0=(65536-50000)%256;
  89.    if(++count==20)
  90.    {
  91.           TR1=0;
  92.           TR0=0;
  93.       count=0;
  94.           LCD_Disp_Buffer[0]=temp/10000+'0';
  95.       LCD_Disp_Buffer[1]=temp/1000%10+'0';
  96.       LCD_Disp_Buffer[2]=temp/100%10+'0';
  97.       LCD_Disp_Buffer[3]=temp%100/10+'0';
  98.       LCD_Disp_Buffer[4]=temp%10+'0';
  99.           for(i=5;i<16;i++)
  100.            LCD_Disp_Buffer[i]=' ';
  101.           TL1=255;
  102.       TH1=255;
  103.    }
  104. }
復制代碼

所有資料51hei提供下載:
智能頻率計.zip (30.66 KB, 下載次數(shù): 44)



作者: @@;    時間: 2020-1-3 17:21
頻率范圍多少
作者: 溫xyz    時間: 2020-1-3 21:20
@@; 發(fā)表于 2020-1-3 17:21
頻率范圍多少

對于沒有分頻器的,這種單片機在12M頻率下,最多能有400KHZ的測量范圍。
作者: limuzi0916    時間: 2020-1-14 12:33
運行之后按下按鈕不顯示所測數(shù)據(jù),是什么原因呢

作者: limuzi0916    時間: 2020-1-14 12:41
請問不顯示所測頻率是什么原因呢
作者: limuzi0916    時間: 2020-1-14 14:29
運行后不顯示頻率表




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