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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3402|回復: 1
打印 上一主題 下一主題
收起左側

單片機NE555脈沖發生器程序(1602+數碼管顯示)

[復制鏈接]
跳轉到指定樓層
樓主
ID:449581 發表于 2018-12-19 09:52 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
單片機源程序如下:
  1. /*******************************************************************************
  2. --------------------------------------------------------------------------------
  3. * 實 驗 名                 : NE555脈沖計數顯示試驗
  4. * 實驗說明       : LCD1602顯示接收到的脈沖頻率。
  5. * 連接方式       : 見連接圖
  6. * 注    意                 :
  7. *******************************************************************************/

  8. #include<reg51.h>
  9. #include"lcd.h"

  10. #define uchar unsigned char
  11. #define uint  unsigned int
  12. #define ulong        unsigned long
  13. //--定義LCD顯示的文字--//
  14. uchar code EN_CHAR1[16]={"   CYMOMETER    "};
  15. uchar code EN_CHAR2[16]={"FREQ:         HZ"};

  16. //--聲明全局函數--//
  17. void TIMER_Configuration();        //初始化定時器
  18. //--定義全局變量--//
  19. ulong Freq;        //用來存放要顯示的頻率值
  20. ulong        TimeCount; //用于計算1S鐘的
  21. /*******************************************
  22. *函數名                :main
  23. *功  能         :主函數
  24. *輸         入         :無
  25. *輸  出                :無
  26. *******************************************/

  27. void main()
  28. {
  29.         uchar i, freqValue[6];

  30.         LcdInit();
  31.         TIMER_Configuration();

  32.         //--顯示要寫的字母--//
  33.         for(i=0;i<16;i++)
  34.         {
  35.                 LcdWriteData(EN_CHAR1[i]);
  36.         }        
  37.         LcdWriteCom(0xc0);//第二行顯示
  38.         for(i=0;i<16;i++)
  39.         {
  40.                 LcdWriteData(EN_CHAR2[i]);
  41.         }
  42.         
  43.         while(1)
  44.         {
  45.                 if(TR0==0)         //當計數器停下的時候,表明計數完畢
  46.                 {
  47.                         Freq = Freq + TL1;       //讀取TL的值
  48.                         Freq = Freq + (TH1 * 256); //讀取TH的值
  49.                         LcdWriteCom(0xc8);
  50.                         //--求頻率的個十百千萬十萬位--//
  51.                         freqValue[0]='0'+Freq%1000000/100000;        
  52.                         freqValue[1]='0'+Freq%100000/10000;        
  53.                         freqValue[2]='0'+Freq%10000/1000;        
  54.                         freqValue[3]='0'+Freq%1000/100;        
  55.                         freqValue[4]='0'+Freq%100/10;        
  56.                         freqValue[5]='0'+Freq%10;        
  57.                         //--顯示求得的數值--//
  58.                         for(i=0;i<5;i++)//從最高位開始查找不為0的數開始顯示(最低位為0顯示0)
  59.                         {
  60.                                 if(freqValue[i]==0x30)
  61.                                 {
  62.                                         freqValue[i]=0x20;        //若為0則賦值空格鍵
  63.                                 }
  64.                                                                
  65.                                 else
  66.                                 {
  67.                                         break;
  68.                                 }
  69.                                        
  70.                         }
  71.                         for(i=0;i<6;i++)
  72.                         {
  73.                                 LcdWriteData(freqValue[i]);        
  74.                         }
  75.                         //--顯示完,重新計算下一次頻率。--//        
  76.                         Freq=0;//將計算的頻率清零
  77.                         TH1=0; //將計數器的值清零
  78.                         TL1=0;
  79.                         TR0=1; //開啟定時器
  80.                         TR1=1; //開啟計數器
  81.                 }
  82.         }
  83. }

  84. /*******************************************
  85. *函數名                :TIMER_Configuration
  86. *功  能         :配置定時/計數器T0和T1
  87. *輸         入         :無
  88. *輸  出                :無
  89. *******************************************/

  90. void TIMER_Configuration()
  91. {
  92.         //--定時器T1做計數器,工作方式1(16位定時器),只由TRx打開計數器--//
  93.         //--定時器T0做定時器,工作方式1(16位定時器),只由TRx打開定時器--//        
  94.         TMOD=0x51;

  95.         //--設置定時器晶振為12MHZ時定時50ms--//
  96.         TH0=0x3C;
  97.         TL0=0xB0;

  98.         //--打開中斷-//
  99.         ET0=1;
  100.         ET1=1;
  101.         EA=1;

  102.         //--打開定時器*/
  103.         TR0=1;
  104.         TR1=1;
  105. }
  106. /*******************************************
  107. *函數名                :Timer0
  108. *功  能         :定時器0的中斷函數
  109. *輸         入         :無
  110. *輸  出                :無
  111. *******************************************/

  112. void Timer0()        interrupt 1
  113. {
  114.         TimeCount++;
  115.         if(TimeCount==20)//計時到1S
  116.         {
  117.                 TR0=0;
  118.                 TR1=0;
  119.                 TimeCount=0;               
  120.         }

  121.         //--12MHZ設置定時50ms的初值--//
  122.         TH0=0x3C;
  123.         TL0=0xB0;        
  124. }
  125. /*******************************************
  126. *函數名                :Timer1
  127. *功  能         :定時器1的中斷函數
  128. *輸         入         :無
  129. *輸  出                :無
  130. *******************************************/

  131. void Timer1()        interrupt 3
  132. {        
  133.         //--進入一次中斷,表明計數到了65536--//
  134.         Freq=Freq+65536;               
  135. }
復制代碼

所有資料51hei提供下載:
NE555脈沖發生器.rar (2.65 MB, 下載次數: 49)


分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:1 發表于 2018-12-19 15:45 | 只看該作者
補全原理圖或者詳細說明一下電路連接即可獲得100+黑幣
回復

使用道具 舉報

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

本版積分規則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 久久精品成人 | 免费精品视频一区 | 99精品视频在线观看 | 日本一区二区在线视频 | 国产精品久久久久久久久久99 | 亚洲成av片人久久久 | 黄色成人在线观看 | 国产精品久久久久久久久久免费 | 国产日韩欧美中文字幕 | 成人国产精品久久 | 伊人网站在线 | 欧美v免费 | 亚洲一区免费 | 亚洲欧美中文日韩在线v日本 | 久久精品二区 | 欧美在线观看免费观看视频 | 天天干视频在线 | 精品国产乱码一区二区三区a | 成人激情视频网 | 日本一区二区三区四区 | 人人操日日干 | 午夜电影在线播放 | 欧美福利三区 | 亚洲欧美精品在线 | 日本精品一区二区三区视频 | 99资源| 在线播放亚洲 | 亚洲三区在线 | 亚洲午夜视频在线观看 | 精品三区| 国产一级一片免费播放 | 日韩欧美三级在线 | 91一区| 成人欧美一区二区三区色青冈 | 精品一区二区三区四区 | 精品久久久久香蕉网 | 蜜桃视频在线观看免费视频网站www | 欧美一区二区网站 | 综合色在线 | 久久久久国产一区二区三区四区 | 亚洲视频在线观看 |