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

 找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

搜索
查看: 5857|回復(fù): 1
打印 上一主題 下一主題
收起左側(cè)

單片機(jī)試驗(yàn)數(shù)碼管上顯示定時(shí)器中斷計(jì)數(shù)

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:180782 發(fā)表于 2018-5-28 19:26 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
部分程序,內(nèi)含原理,原理圖,接線圖,源程序,需要修改里面的斷碼。網(wǎng)上有。

單片機(jī)定時(shí)器的應(yīng)用

1、單片機(jī)定時(shí)器的工原理

MCS-51 單片機(jī)內(nèi)部有兩個(gè)16 位可編程的定時(shí)器/計(jì)數(shù)器T0 和T1。它們即可用作定時(shí)器方式,又可用作計(jì)數(shù)器方式。其中T0 由TH0 和TL0 計(jì)數(shù)器構(gòu)成;T1 由TH1 和TL1 計(jì)數(shù)器構(gòu)成。

工作于定時(shí)器方式時(shí),通過(guò)對(duì)機(jī)器周期(新型51單片機(jī)可以對(duì)振蕩周期計(jì)數(shù))的計(jì)數(shù),即每一個(gè)機(jī)器周期定時(shí)器加1,來(lái)實(shí)現(xiàn)定時(shí)。故系統(tǒng)晶振頻率直接影響定時(shí)時(shí)間。如果晶振頻率為12MHZ,則定時(shí)器每隔(1/12MHZ)×12=1us 加1。

工作于計(jì)數(shù)器方式時(shí),對(duì)P3.4 或P3.5 管腳的負(fù)跳變(1→0)計(jì)數(shù)。它在每個(gè)機(jī)器周期的S5P2 時(shí)采樣外部輸入,當(dāng)采樣值在這個(gè)機(jī)器周期為高,在下一個(gè)機(jī)器周期為低時(shí),計(jì)數(shù)器加1。因此需要兩個(gè)機(jī)器周期來(lái)識(shí)別一個(gè)有效跳變,故最高計(jì)數(shù)頻率為晶振頻率的1/24。

特殊功能寄存器TMOD 用于定時(shí)器/計(jì)數(shù)器的方式控制。高4 位用于設(shè)置T1,低4 位用于設(shè)置T0。如圖1所示。



圖1 定時(shí)器模式控制字格式


TCON 寄存器用于定時(shí)器的計(jì)數(shù)控制和中斷標(biāo)志。如圖4-8所示。





圖2 定時(shí)控制寄存器數(shù)據(jù)格式

編寫程序控制這兩個(gè)寄存器就可以控制定時(shí)器的運(yùn)行方式。

2、單片機(jī)內(nèi)部定時(shí)器/計(jì)數(shù)器的使用

(1)根據(jù)需要設(shè)置工作方式,即對(duì)TMOD設(shè)置;

(2)定時(shí)/計(jì)數(shù)初值的設(shè)定;

(3)然后啟動(dòng)計(jì)數(shù),即對(duì)TR0或TR1置1。

(5)如需用中斷,則將EA和相關(guān)中斷控制位置1;則計(jì)數(shù)溢出后硬件會(huì)自動(dòng)轉(zhuǎn)入中斷入口地址;如使用查詢,則必須對(duì)溢出中斷標(biāo)志位TF0或TF1進(jìn)行判斷。

1、實(shí)驗(yàn)開發(fā)板連接圖

2、實(shí)驗(yàn)源程序

/*******************************************************************************

*  標(biāo)題:試驗(yàn)數(shù)碼管上顯示定時(shí)器中斷計(jì)數(shù)                       *

*  連接方法:參照接線圖                               *

******************************************************************************/


  1. #include < reg51.h >
  2. #include <intrins.h>

  3. sbit LS138A=P2^2;  //定義 138管腳
  4. sbit LS138B=P2^3;
  5. sbit LS138C=P2^4;



  6. unsigned int LedNumVal,LedOut[8];



  7. // 此表為 LED 的字模  //

  8. unsigned char code Disp_Tab[] = { 0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90,0x88,0x83,0xC6,0xA1,0x86,

  9. 0xbf,0xc7,0x8c,0xc1,0xff,0xf7 };



  10. /***********************************************************

  11. purpose: 系統(tǒng)初始化

  12. /**********************************************************/

  13. void system_Ini()

  14. {

  15.      TMOD = 0x00; //選擇模式0  13位計(jì)數(shù) 最大計(jì)數(shù)8192

  16.     TH0 = (8192 - 1000)/32; // TH0=0x1C;  12.000M  預(yù)裝初值

  17. TL0 = (8192 - 1000)%32              ; //TL0=0x18;            

  18.      IE = 0x8A;   //中斷            

  19.      TR0  = 1;    //開啟T0定時(shí)器

  20. }



  21. void delay(unsigned int i)

  22. {

  23.     char j;

  24.     for(i; i > 0; i--)

  25.         for(j = 200; j > 0; j--);

  26. }



  27. /********主函數(shù)****/

  28. main()

  29. {

  30.    system_Ini()              ;

  31.    while(1)

  32.    {

  33.     unsigned char i;

  34.      LedOut[0]=Disp_Tab[LedNumVal%10000/1000];

  35.      LedOut[1]=Disp_Tab[LedNumVal%1000/100];

  36.      LedOut[2]=Disp_Tab[LedNumVal%100/10];

  37.      LedOut[3]=Disp_Tab[LedNumVal%10];

  38.                 for( i=0; i<8; i++)

  39.                  { P0 = LedOut[i];

  40.                                          

  41.                 switch(i)                                                                       

  42.                    {                 

  43.                                           case 0:LS138A=0; LS138B=0; LS138C=0; break;        

  44.                       case 1:LS138A=1; LS138B=0; LS138C=0; break;                          

  45.                       case 2:LS138A=0; LS138B=1; LS138C=0; break;

  46.                       case 3:LS138A=1; LS138B=1; LS138C=0; break;

  47.                                           case 4:LS138A=0; LS138B=0; LS138C=1; break;

  48.                                           case 5:LS138A=1; LS138B=0; LS138C=1; break;

  49.                                           case 6:LS138A=0; LS138B=1; LS138C=1; break;

  50.                                           case 7:LS138A=1; LS138B=1; LS138C=1; break;            

  51.                    }

  52.                             delay(150);

  53.               }



  54.   }



  55. }



  56. /*************************************

  57. [ T0 (1ms)中斷] 中斷

  58. *************************************/

  59. void T0zd(void) interrupt 1   //3定時(shí)器1的中斷號(hào) ;1定時(shí)器0的中斷號(hào),

  60. // 0外部中斷1; 2外部中斷2 ; 4串口中斷

  61. {

  62.               TH0 = (8192 - 1000)/32              ; //TH0 = 0xFc,12.000

  63.               TL0 = (8192 - 1000)%32; //TL0 = 0x18;

  64.               LedNumVal++;

  65. }
復(fù)制代碼


思考題:

1、標(biāo)注程序,畫出流程圖
2、給出定時(shí)器定時(shí)一秒的計(jì)算過(guò)程。


完整的Word格式文檔51黑下載地址:

3單片機(jī)定時(shí)器的應(yīng)用.docx (192.92 KB, 下載次數(shù): 14)


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

使用道具 舉報(bào)

沙發(fā)
ID:370231 發(fā)表于 2018-7-26 14:52 | 只看該作者
為什么我把程序輸?shù)桨遄由希@示亂碼的,沒有數(shù)字出來(lái)的??
是要把哪個(gè)短接片拔掉嗎????
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 色啪网 | 久久久夜 | 97天天干 | 亚洲精品乱码久久久久久蜜桃91 | 国产免费一区二区 | 免费午夜视频 | 欧美视频免费在线 | 久久国产成人 | 久久精彩视频 | 国产精品爱久久久久久久 | 免费一区二区三区在线视频 | 国产在线中文字幕 | 国产精品久久久久久久久久三级 | 日韩欧美在线观看一区 | 水蜜桃亚洲一二三四在线 | 国产精品久久久久一区二区三区 | 久久男人天堂 | 久久蜜桃精品 | 欧美夜夜 | 日日射影院 | 久久久精品一区二区三区 | 情侣酒店偷拍一区二区在线播放 | 操人网站 | 国产极品车模吞精高潮呻吟 | 美女天天操 | av黄色在线 | 欧美色视频免费 | 91夜色在线观看 | 国产伦一区二区三区 | 国产三级精品三级在线观看四季网 | 中文字幕免费观看 | 国产亚洲一区二区三区 | 亚洲综合色丁香婷婷六月图片 | 日日摸日日添日日躁av | 亚洲视频三区 | 欧美在线观看一区二区 | 羞羞视频免费观看入口 | 91传媒在线观看 | 91国内产香蕉 | 日屁视频| 97国产精品视频 |