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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

51單片機(jī)智能頻率計(jì)程序設(shè)計(jì)

[復(fù)制鏈接]
ID:664287 發(fā)表于 2019-12-15 14:44 | 顯示全部樓層 |閱讀模式
設(shè)計(jì)一個(gè)智能頻率計(jì),外部提供四種頻率信號,要求:
(1)上電后,LCD1601字符屏先顯示初始化界面:“Frequency Testing
(2)通過開關(guān)選擇四種頻率信號,再按下測量開關(guān),測量頻率,測量完成后在字符屏上顯示測量結(jié)果。

仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)
1.png 51hei截圖20191215143758.png

單片機(jī)源程序如下:
  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. }
復(fù)制代碼

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


回復(fù)

使用道具 舉報(bào)

ID:677584 發(fā)表于 2020-1-3 17:21 來自觸屏版 | 顯示全部樓層
頻率范圍多少
回復(fù)

使用道具 舉報(bào)

ID:8222 發(fā)表于 2020-1-3 21:20 | 顯示全部樓層

對于沒有分頻器的,這種單片機(jī)在12M頻率下,最多能有400KHZ的測量范圍。
回復(fù)

使用道具 舉報(bào)

ID:685981 發(fā)表于 2020-1-14 12:33 | 顯示全部樓層
運(yùn)行之后按下按鈕不顯示所測數(shù)據(jù),是什么原因呢
回復(fù)

使用道具 舉報(bào)

ID:685981 發(fā)表于 2020-1-14 12:41 | 顯示全部樓層
請問不顯示所測頻率是什么原因呢
回復(fù)

使用道具 舉報(bào)

ID:685981 發(fā)表于 2020-1-14 14:29 | 顯示全部樓層
運(yùn)行后不顯示頻率表
回復(fù)

使用道具 舉報(bào)

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

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

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

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