久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

標(biāo)題: 單片機數(shù)字頻率計設(shè)計 仿真 實物 PCB 原理圖 課設(shè)論文都有 [打印本頁]

作者: 51黑電子迷    時間: 2017-2-11 03:02
標(biāo)題: 單片機數(shù)字頻率計設(shè)計 仿真 實物 PCB 原理圖 課設(shè)論文都有
給大家分享一個很好的單片機設(shè)計,而且資料很全。仿真 pcb 原理圖 程序和課程設(shè)計論文都有.
頻率計的所有設(shè)計資料下載:
頻率計.rar (13.27 MB, 下載次數(shù): 754)


下面給大家分享一下本設(shè)計的相關(guān)圖片

數(shù)字頻率計實物圖:


單片機數(shù)字頻率計原理圖:





數(shù)字頻率計仿真圖:



單片機數(shù)字頻率計pcb圖:



/****** 數(shù)字頻率計元件清單 *******/

1、1602LCD液晶屏                1個        
2、排陣16P                        1個
3、排陣4P                        1個
4、排母16P                        1個
5、單片機STC89C52                1個
6、DIP40插座                        1個
7、74HC390                        1個
8、74HC14                        1個
9、DIP14                        1個
10、DIP16                        1個
11、電阻300                        1個
12、3K                                1個
13、1K                                2個
14、75                                1個
15、電容470UF                        3個
16、0.1UF(104)                2個
17、10UF                        1個
18、30P                                2個
19、排阻103                        1個
20、電位器103                        1個
21、三極管8050                        1個
22、按鍵                        1個
23、晶振12M                        1個
24、DC電源座子                        1個
25、USB轉(zhuǎn)DC線                        1個
26、電路板7*9                        1個
27、導(dǎo)線12匝                        1個
28、電路圖                        1個
29、銅柱                        4套
30、自鎖開關(guān)                        1個
/*********** 共計:29種 ***********/
/*********** 共計:41個 ***********/


單片機數(shù)字頻率計源程序:
  1. #include <reg52.h>
  2. unsigned long int fre;
  3. unsigned char time;
  4. unsigned int count;
  5. unsigned int count1;
  6. sbit   LCD_RS=P1^0;          //片選信號
  7. sbit   LCD_RW=P1^1;          //讀寫信號
  8. sbit   LCD_E=P1^2;           //使能信號
  9. #define LCD_DB  P0        //數(shù)據(jù)信號
  10. unsigned char character[10]={0};//在屏幕上顯示的字符串
  11. unsigned char character_1[]={"fre= Hz"};
  12. unsigned char FLAG = 0;  //是否分頻選擇標(biāo)志
  13. void LCD_init(void);//初始化函數(shù)   
  14. void LCD_write_command(unsigned char command);//寫指令函數(shù)         
  15. void LCD_write_data(unsigned char dat);//寫數(shù)據(jù)函數(shù)           
  16. void LCD_disp_char(unsigned char x,unsigned char y,unsigned char dat);//在某個屏幕位置上顯示一個字符,X(0-15),y(1-2)
  17. void delay_n40us(unsigned int n);//延時函數(shù)
  18. void timer_init();            //中斷初始化函數(shù)  
  19. //-----------------------------延時函數(shù)---------------------------
  20. void delay_n40us(unsigned int n)                  //延時函數(shù)
  21. {
  22.         unsigned int i;
  23.         unsigned char j;            
  24.         for(i=n;i>0;i--)
  25.         for(j=0;j<2;j++);         
  26. }
  27. void delay_1s()
  28. {
  29.         unsigned int i,j;
  30.         for(i = 0;i<100;i++)
  31.                 for(j = 0;j<1000;j++);
  32. }
  33. //---------------------lcd1602液晶顯示函數(shù)--------------------                                    
  34. void LCD_init(void)         //液晶初始化函數(shù)
  35. {
  36.         LCD_write_command(0x38);//設(shè)置8位格式,2行,5x7
  37.         LCD_write_command(0x38);//設(shè)置8位格式,2行,5x7
  38.         LCD_write_command(0x38);//設(shè)置8位格式,2行,5x7
  39.         LCD_write_command(0x0c);//整體顯示,關(guān)光標(biāo),不閃爍
  40.         LCD_write_command(0x06);//設(shè)定輸入方式,增量不移位
  41.         LCD_write_command(0x01);//清除屏幕顯示         
  42.         delay_n40us(100);//清屏延時
  43. }
  44. void LCD_write_command(unsigned char dat)  //寫命令函數(shù)
  45. {
  46.         LCD_DB=dat;
  47.         LCD_RS=0;//指令         
  48.         LCD_RW=0;//寫入         
  49.         LCD_E=1; //使能         
  50.         LCD_E=0;
  51.         delay_n40us(1);//寫命令延時   
  52. }         
  53. void LCD_write_data(unsigned char dat)          //寫數(shù)據(jù)函數(shù)
  54. {
  55.         LCD_DB=dat;
  56.         LCD_RS=1;//數(shù)據(jù)         
  57.         LCD_RW=0;//寫入         
  58.         LCD_E=1;//使能  
  59.         LCD_E=0;
  60.         delay_n40us(1);         //寫數(shù)據(jù)延時
  61. }
  62. void LCD_disp_char(unsigned char x,unsigned char y,unsigned char dat)//顯示一個字符
  63. {
  64.         unsigned char address;
  65.         if(y==1)
  66.                  address=0x80+x;         //顯示在第一排的時候的x的地址
  67.         else
  68.                  address=0xc0+x;         //顯示在第二排的時候的x的地址
  69.         LCD_write_command(address);         //輸入地址
  70.         LCD_write_data(dat);                 //輸入數(shù)據(jù)
  71. }
  72. void LCD_disp_num(unsigned char x,unsigned char y,unsigned char dat)//顯示一個數(shù)字
  73. {
  74.         unsigned char address;
  75.         if(y==1)
  76.                  address=0x80+x;         //顯示在第一排的時候的x的地址
  77.         else
  78.                  address=0xc0+x;         //顯示在第二排的時候的x的地址
  79.         LCD_write_command(address);         //輸入地址
  80.         LCD_write_data(dat+48);                 //輸入數(shù)據(jù)
  81. }
  82. void dis_num(void)
  83. {
  84.         unsigned char i=0,j=0,k=0;
  85.         LCD_write_command(0x01);//清除屏幕顯示
  86.         character[0] = fre/10000000;
  87.         character[1] = fre/1000000%10;
  88.         character[2] = fre/100000%10;
  89.         character[3] = fre/10000%10;
  90.         character[4] = fre/1000%10;
  91.         character[5] = fre/100%10;
  92.         character[6] = fre/10%10;
  93.         character[7] = fre%10;
  94.     character[8] = 'H';
  95.         character[9] = 'z';
  96.         for(i = 0;i<4;i++)                 //顯示“fre=”
  97.         {
  98.                  LCD_disp_char(i+0,1,character_1[i]);
  99.         }
  100.         for(i = 0;i<10;i++)         //判斷第一個不為0的數(shù)
  101.         {
  102.                 if(character[i]!=0)
  103.                         break;
  104.         }
  105.         k = 8-i;
  106.         for(j = 0;j<k;j++)         //顯示所有的數(shù)字
  107.         {
  108.                         LCD_disp_num(4+j,1,character[i++]);        
  109.         }
  110.     for(i = 5;i<7;i++)         //顯示“Hz”
  111.         {
  112.                  LCD_disp_char(j+4,1,character_1[i]);
  113.                 j++;
  114.         }
  115. }
  116. //----------------主函數(shù)--------------------
  117. void main()
  118. {
  119.         unsigned char i;
  120.         LCD_init();
  121.         timer_init();             //定時/計數(shù)器初始化
  122.         for(i = 0;i<4;i++)
  123.         {
  124.                  LCD_disp_char(i+0,1,character_1[i]);
  125.         }
  126.         while(1)
  127.         {
  128.                 dis_num();         //顯示
  129.                 delay_1s();
  130.         }
  131. }
  132. //-------------------定時/計數(shù)器初始化--------------
  133. void timer_init(void)         //定時/計數(shù)器初始化
  134. {
  135.         TMOD=0x66;                //計數(shù)器0和計數(shù)器1工作工作方式2,自動重裝初值
  136.         TH0=0;                    //計數(shù)器初值為0
  137.         TL0=0;
  138.         TR0=1;                    //計數(shù)器開始計數(shù)            
  139.         ET0=1;                    //打開計數(shù)器0中斷   
  140.         TH1=0;                    //計數(shù)器初值為0
  141.         TL1=0;
  142.         TR1=1;                    //計數(shù)器開始計數(shù)            
  143.         ET1=1;                    //打開計數(shù)器1中斷   
  144.         RCAP2H=(65536-62500)/256; //在程序初始化的時候給RCAP2L和RCAP2H賦值,
  145.         RCAP2L=(65536-62500)%256; //TH2和TL2將會在中斷產(chǎn)生時自動使TH2=RCAP2H,TL2=RCAP2L。
  146.         TH2=RCAP2H;               //12M晶振下每次中斷62.5ms(1s=1000ms=62.5ms×16)
  147.         TL2=RCAP2L;
  148.         ET2=1;                    //打開定時器2中斷         
  149.         TR2=1;                    //定時器2開始計時  
  150.         EA=1;                     //開總中斷   
  151. }
  152. //------------------中斷函數(shù)----------------------
  153. void timer2(void) interrupt 5 //定時器2中斷(62.5ms)
  154. {
  155.         time++;
  156.         TF2=0;                    //定時器2的中斷標(biāo)志位TF2不能夠由硬件清零,所以要在中斷服務(wù)程序中將其清零
  157.         if (time==16)             //定時1s時間到  
  158.         {
  159.            time=0;                //計時清0
  160.            EA=0;                  //關(guān)中斷                 
  161.            fre=(long)count1*256+TL1;     //count*256強制轉(zhuǎn)換成long型,否則將不產(chǎn)生進(jìn)位~先判斷分頻后(計數(shù)器1)
  162.            FLAG = 0;
  163.          
  164.            if(fre<2000)//如果不到200KHz則讀取分頻前(計數(shù)器0)頻率(200K÷100=2000)
  165.            {
  166.                            fre = (long)count*256+TL0;
  167.                         FLAG = 1;         
  168.            }
  169.                 if(!FLAG)
  170.                 {
  171.                         fre = fre *100;//100分頻
  172.                 }
  173.            TL0=0;                 //清零計數(shù)器0計數(shù)            
  174.            TH0=0;
  175.            TL1=0;
  176.            TH1=0;
  177.            count=0;               //清零計數(shù)器0計數(shù)         
  178.            count1=0;
  179.            EA=1;                  //開中斷            
  180.         }
  181. }
  182. //----------------------------------------------------------------
  183. void timer0(void) interrupt 1 //計數(shù)器0中斷(100分頻前)         
  184. {
  185.         count++;
  186. }               
  187. //----------------------------------------------------------------
  188. void timer1(void) interrupt 3 //計數(shù)器1中斷(100分頻后)
  189. {
  190.         count1++;
  191. }
復(fù)制代碼



作者: 51單片機小白    時間: 2017-3-30 11:32
謝謝高手分享!!
作者: uuu1    時間: 2017-5-17 15:29
怎么控制電壓在50mv~1v之間,然后被測信號的頻率范圍在1Hz~10MHz呢
作者: 愛小寶    時間: 2017-10-9 23:51
請問一下,你這個原理圖是在AD上還是PROTEL99SE上畫的啊
作者: liu138097    時間: 2017-11-30 23:56
可以看看
作者: TinyRay    時間: 2017-12-23 16:13
芯片可以換51嗎?
作者: wdsg    時間: 2017-12-30 19:15
我想問一下,為什么我運行的時候LCD只會亮,不顯示頻率呀?
作者: 高調(diào)的大帥哥    時間: 2018-1-2 09:45
很不錯
作者: liangxinlong    時間: 2018-1-2 16:06
wdsg 發(fā)表于 2017-12-30 19:15
我想問一下,為什么我運行的時候LCD只會亮,不顯示頻率呀?

你這個問題解決了么

作者: liangxinlong    時間: 2018-1-2 16:08
你好,我根據(jù)你的帖子做出了一個頻率計,但是液晶屏通電不顯示頻率,初始化也無法顯示
作者: qjzyx    時間: 2018-1-3 11:29
謝謝分享!下個保存!做個玩玩!
作者: a25575703    時間: 2018-1-15 03:53
感謝樓主的分享。
作者: 路過的折耳兔    時間: 2018-5-14 13:37
感謝分享!
作者: meilidianzhi    時間: 2018-5-14 20:56
厲害了我的哥
作者: fuj    時間: 2018-5-27 16:48
下載不了,浪費了我好多積分

作者: yulanhao    時間: 2018-5-28 21:33
你們都分享出來,還讓學(xué)生好好做畢設(shè)嘛?都抄襲了
作者: 大蘇打123    時間: 2018-6-2 17:13
厲害了
作者: 大玉米    時間: 2018-6-6 10:07
謝謝分享!下個保存!做個玩玩
作者: 大玉米    時間: 2018-6-6 10:08
謝謝分享!下個保存!做個玩玩
作者: zzy1259    時間: 2018-7-2 21:09
感謝分享!!!!

作者: 673191231    時間: 2018-7-6 08:42
樓主,我想問一下這個頻率計測量范圍是多少,怎么樣修改為0-999hz
作者: 帥到爆炸    時間: 2018-7-6 09:15
點擊下載點了兩次,多花了5黑幣,蛋疼。。。
作者: zh18016498169    時間: 2018-12-23 13:07
感謝分享,贊一個

作者: 小可愛我愛你    時間: 2018-12-24 21:04
謝謝分享
作者: 小可愛我愛你    時間: 2018-12-25 18:03
非常棒!
作者: 小可愛我愛你    時間: 2018-12-26 16:51
對我很有用
作者: bclafa    時間: 2019-3-28 11:27
好詳細(xì)啊!感激!
作者: 蒹葭萋萋    時間: 2019-10-19 14:34
測試范圍是多少呢
作者: cwdw    時間: 2019-10-29 22:25
感謝分享,不錯
作者: zxd0106a    時間: 2024-10-25 15:41
謝謝分享!下個保存!做個玩玩!




歡迎光臨 (http://www.zg4o1577.cn/bbs/) Powered by Discuz! X3.1
主站蜘蛛池模板: 可以在线看的黄色网址 | 欧美一区二区三区在线 | 成人精品视频在线观看 | 国产婷婷精品 | 天天天堂| 亚洲系列第一页 | 成人精品鲁一区一区二区 | 成人av在线大片 | 亚洲综合色视频在线观看 | 国产高清视频一区 | 国产精品v | 日韩成人在线观看 | 亚洲色片网站 | 一区二区三区在线 | 羞羞的视频在线观看 | 伊人一区 | 天堂在线91| 高清视频一区二区三区 | 欧美日本在线 | 91美女在线 | 五月激情婷婷在线 | 黄色一级免费看 | 久久久久久久久综合 | 天天操夜夜拍 | 欧美一区 | 国产精品一区二区三区四区五区 | 欧美福利专区 | 伊人网91| 日韩中文一区二区 | 三级av免费 | 日操夜操 | 亚洲精品视频在线 | 亚洲福利在线观看 | 免费在线观看成人 | 日本午夜免费福利视频 | 九九亚洲| 粉嫩高清一区二区三区 | 国产网站在线免费观看 | 99精品国自产在线观看 | 国产在线精品一区二区三区 | 不卡一区 |