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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

《单片机》实验——实验4 MCS-51内部定时/计数器实验(2)

發布時間:2023/12/29 42 豆豆
生活随笔 收集整理的這篇文章主要介紹了 《单片机》实验——实验4 MCS-51内部定时/计数器实验(2) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

《單片機》實驗——實驗4 MCS-51內部定時/計數器實驗(2)

  • 一、實驗目的
  • 二、知識要點
  • 三、實驗內容

實驗一至實驗七配套源代碼、電路圖、hex文件、實驗報告,請點擊此處

一、實驗目的

  • 進一步掌握定時/計數器的4種工作方式的應用
  • 掌握查詢控制的定時/計數器的編程
  • 二、知識要點

    (1)8051內部有兩個定時/計數器T0和T1,均可對系統內部的機器周期計數(定時模式)和芯片之外的脈沖信號計數(計數模式);都有4種工作方式,其不同之處在于計數值寬度不一樣(13位/16位/8位)以及計數初值是否能自動重裝。
    (2)與定時/計數器相關的控制字及控制位主要有TMOD,TH0/TH1,TL0/TL1,TCON

    三、實驗內容

    (1)通過并行口P1實現十字路口交通燈的模擬控制。
    關于交通路燈的亮滅規律說明:設有一個十字路口分為南北方向和東西方向,初始狀態為紅燈全亮,之后,南北綠燈亮,東西紅燈亮,南北方向通車。延時一段時間后,南北綠燈熄滅,而南北黃燈開始閃爍,閃爍若干次以后,南北紅燈亮,而同時東西的綠燈亮,東西方向通車,延時一段時間后,東西綠燈熄滅,而東西黃燈開始閃爍,閃爍若干次以后,再切換到南北方向,之后,重復上述過程。
    編程提示:(實現6個燈按交通變化規律亮、滅或閃爍)
    通過定時器實現精準定時,用較短的定時控制黃燈的閃爍(如0.5s或1s),較長的定時控制通行(如5s或10s)。

    #include<reg51.h> char t; char i; void main(){TMOD=0x01;TH0=0x3c;TL0=0xB0;while(1){P1=0x7e;while(1){TR0=1;while(TF0){TF0=0;t++;TH0=0x3c;TL0=0xB0;} if(t==100){TR0=0;t=0;break;}}P1=0xbe;while(1){TR0=1;while(TF0){TF0=0;t++;TH0=0x3c;TL0=0xB0;} if(t%10==0){P1=0xfe;}if(t%20==10){P1=0xbe;}if(t==70){TR0=0;t=0;break;}}P1=0xdb;while(1){TR0=1;while(TF0){TF0=0;t++;TH0=0x3c;TL0=0xB0;} if(t==100){TR0=0;t=0;break;}} } }

    (2)(選做題)利用8051的定時/計數器控制4個發光二極管循環閃爍,要求點亮時間為1S,采用方式3的TH0與TL0聯合實現,TH0用于定時,TL0用于對TH0溢出次數的計數。

    #include<reg51.h> char t; char i=0; char num=0; char a=0; char led[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f}; void main(){TMOD=0x07;TH0=0x06;TL0=0x38;TR1=1;TR0=1;EA=1;ET0=1;while(1){while(TF1==0);TF1=0;P3=0;P3=0x10;TH0=0x06;} } timer() interrupt 1{TF0=0;num++;a=i%8;if(num%20==0){P1=led[a];i++;}TL0=0x38; }

    總結

    以上是生活随笔為你收集整理的《单片机》实验——实验4 MCS-51内部定时/计数器实验(2)的全部內容,希望文章能夠幫你解決所遇到的問題。

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