日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

定时器计数器实验C语言程序,单片机定时器计数器实验报告.docx

發布時間:2023/12/29 编程问答 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 定时器计数器实验C语言程序,单片机定时器计数器实验报告.docx 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

單片機定時器計數器實驗報告

單片機定時器計數器實驗報告

篇一:單片機計數器實驗報告  計數器實驗報告  ㈠ 實驗目的  1. 學習單片機內部定時/計數器的使用和編程方法; 2. 進一步掌握中斷處理程序的編程方法。  ㈡ 實驗器材  1. 2. 3. 4. 5.  G6W仿真器一臺 MCS—51實驗板 一臺 PC機 一臺 電源 一臺 信號發生器 一臺  ㈢ 實驗內容及要求  8051內部定時計數器,按計數器模式和方式1工作,對P3.4(T0)引腳進行計數,使用8051的T1作定時器,50ms中斷一次,看T0內每50ms來了多少脈沖,將計數值送顯(通過LED發光二極管8421碼來表示),1秒后再次測試。   ㈣ 實驗說明   1. 本實驗中內部計數器其計數器的作用,外部事件計數器脈沖由P3.4引入  定時器T0。單片機在每個機器周期采樣一次輸入波形,因此單片機至少需要兩個機器周期才能檢測到一次跳變,這就要求被采樣電平至少維持一個完整的機器周期,以保證電平在變化之前即被采樣,同時這就決定了輸入波形的頻率不能超過機器周期頻率。 2. 計數脈沖由信號發生器輸入(從T0端接入)。  3. 計數值通過發光二極管顯示,要求:顯示兩位,十位用L4~L1的8421  碼表示,個位用L8~L5的8421碼表示  4. 將脈搏檢查模塊接入電路中,對脈搏進行計數,計算出每分鐘脈搏跳動  次數并顯示  ㈤ 實驗框圖(見下頁)  程序源代碼 ORG 00000H LJMP MAIN  ORG 001BH AJMP MAIN1 MAIN:  MOV SP,#60H  MOV TMOD,#15H MOV 20H,#14H MOV TL1,#0B0H MOV TH1,#3CHMOV TL0,#00H   ;T0的中斷入口地址 ;設置T1做定時器,T0做計數器,都于方式1工作 ;裝入中斷次數 ;裝入計數值低8位 ;裝入計數值高8位   MOV TH0,#00H  SETB TR1 ;啟動定時器T1 SETB TR0 ;啟動計數器T0 SETB ET1 ;允許T1中斷 SETB EA ;允許CPU中斷 SJMP $;等待中斷  MAIN1: PUSH PSW PUSH ACC CLR TR0  CLR TR1 MOV TL1,#0B0H MOV TH1,#3CH  DJNZ 20H,RETUNT MOV 20H ,#14H  SHOW: MOV R0,TH0 MOV R1,TL0  MOV A,R1 MOV B,#0AH DIV AB  MOV C,ACC.3MOV P1.0,C MOV C,ACC.2 MOV P1.1,C MOV C,ACC.1 MOV P1.2,C MOV C,ACC.0 MOV P1.3,C  MOV A,B MOV C,ACC.3MOV P1.4,C MOV C,ACC.2 MOV P1.5,C MOV C,ACC.1 MOV P1.6,C MOV C,ACC.0  MOV P1.7,C ;保護現場  ;裝入計數值低8位  ;裝入計數值高8位,50ms;允許T1中斷  ;未到1s,繼續計時 ;1s到重新開始  ;顯示計數器T0的值;讀計數器當前值 ;將計數值轉為十進制  ;顯示部分,將A中保存的十位賦給L0~L3 將B中保存的各位轉移到A中 ;將個位的數字顯示在L4~L7上  ;  RETUNT:  MOV TL0,#00H;將計數器T0清零 MOV TH0,#00H  SETB TR0SETB TR1POP ACCPOP PSW  RETI ;中斷返回  在頻率為1000HZ時,L0~L7顯示為50;頻率為300HZ時,L0~L7顯示為15,結果正確,程序可以正確運行。 思考與小結:  有了前面的定時器實驗做基礎,定時器計數器的選擇以及初始化已經不再是難點,本次試驗的重點是寫入兩個中斷判斷程序和十六進制到十進制的轉化和顯示。 MOV TL1,#0B0H ;裝入計數值低8位  MOV TH1,#3CH;裝入計數值高8位,50ms  MOV 20H,#14H ;未到1s,繼續計時 DJNZ 20H,RETUNT;1s到重新開始 RETUNT:  MOV TL0,#00H;將計數器T0清零 MOV TH0,#00H  由于書上詳細解釋了設置中斷時間的問題,所以中斷程序并沒有什么太大的難點,主要是要思考一下程序的執行順序問題。  十六進制到十進制的轉化和顯示使我們這次實驗遇到的比較大的困難,剛開始采用的是DA指令,由于沒有搞清楚它的實質錯誤的使用了DA。DA用于十六進制到BCD的轉換,不能用于十六進制到8421的轉換,于是我們思考了很久

總結

以上是生活随笔為你收集整理的定时器计数器实验C语言程序,单片机定时器计数器实验报告.docx的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。