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

QQ登錄

只需一步,快速開始

帖子
查看: 23361|回復(fù): 42
打印 上一主題 下一主題
收起左側(cè)

51單片機(jī)入門經(jīng)驗(yàn)分享4-定時(shí)器的使用

  [復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:74187 發(fā)表于 2018-10-13 08:48 | 只看該作者 |只看大圖 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
本帖最后由 dabing89 于 2018-10-14 18:56 編輯

                                                    定時(shí)器的使用 ---20181013


好,繼續(xù)更新這個(gè)帖子,前邊我們點(diǎn)亮了流水燈,然而定時(shí)是用DELAY實(shí)現(xiàn)的,實(shí)際上在實(shí)際的項(xiàng)目中,DELAY基本上不會(huì)用,如果一個(gè)程序中,主循環(huán)有大量的DELAY出現(xiàn),那么就不合理了,所以必須要用定時(shí)器 ,保證程序的實(shí)時(shí)性,這一貼,我們寫一個(gè)程序,用定時(shí)器0來(lái)實(shí)現(xiàn)LED間隔500MS閃爍的效果   ,代碼如下:   
  1. /*******************************************************************
  2. * 文件名  LED0 500MS閃爍
  3. * 描述:        點(diǎn)亮LED---用定時(shí)器的辦法
  4. * 2018-09-19 調(diào)試通過(guò)
  5. * 功能  入門模板
  6. * 作者: 大核桃
  7. * 版本號(hào):V1.00(2018.09.19)
  8. ********************************************************************/
  9. #include "config.h"
  10. #include "intrins.h"


  11. /*******************************************************************
  12. * 文件名 變量重新定義區(qū)域
  13. * 描述:        
  14. * 功 能
  15. * 作者:大核桃
  16. * 版本號(hào):V1.00(2018.09.17)
  17. ********************************************************************/

  18. typedef unsigned char uint8;//無(wú)符號(hào)字符型
  19. typedef unsigned int  uint16;//無(wú)符號(hào)整型
  20. typedef unsigned long uint32;//無(wú)符號(hào)長(zhǎng)整型


  21. /*******************************************************************
  22. * 文件名:位重新定義區(qū)域 函數(shù)前置聲明
  23. * 描述:        
  24. * 功 能
  25. * 作者:大核桃
  26. * 版本號(hào):V1.00(2018.09.17)
  27. ********************************************************************/
  28. void Delay500ms();                //@11.0592MHz
  29. void MCU_Port_Init(void);
  30. void Bsp_Tim0_Init(void);

  31. sbit LED0 = P1^0;
  32. sbit LED1 = P1^1;
  33. sbit LED2 = P1^2;
  34. sbit LED3 = P1^3;
  35. sbit LED4 = P1^4;
  36. sbit LED5 = P3^2;
  37. sbit LED6 = P0^0;
  38. sbit LED7 = P0^1;

  39. bit flag500ms = 0;//500ms定時(shí)標(biāo)志位


  40. /*******************************************************************
  41. * 文件名 main函數(shù)入口
  42. * 描述:        
  43. * 功 能
  44. * 作者:大核桃
  45. * 版本號(hào):V1.00(2018.09.17)
  46. ********************************************************************/
  47. void main(void)
  48. {
  49.         MCU_Port_Init();//端口模式初始化函數(shù)
  50.         Bsp_Tim0_Init();//定時(shí)器0初始化函數(shù)


  51.         while(1)
  52.         {           
  53.                 if(flag500ms)
  54.                 {
  55.                         P2 = 0XFE;//1111_1110;
  56.                 }
  57.                 else
  58.                 {
  59.                    P2 = 0XFF;//1111_1111;        
  60.                 }

  61.         }
  62. }

  63. /*******************************************************************
  64. * 文件名:void MCU_Port_Init(void)
  65. * 描述:        MCU端口上電初始化函數(shù)
  66. * 功 能
  67. * 作者:大核桃
  68. * 版本號(hào):V1.00(2018.09.17)
  69. ********************************************************************/
  70. void MCU_Port_Init(void)
  71. {
  72.         //第0 和1位配置推完輸出模式,大電流
  73.         P0M1 = 0XFC; //        1111_1100
  74.         P0M0 = 0X03; // 0000_0011

  75.         //第01234位配置推完輸出模式,大電流,567配置高阻輸入,用于ADC
  76.         P1M1 = 0XE0; //1110_0000        
  77.         P1M0 = 0X1F; //0001_1111

  78.         //P2配置位準(zhǔn)雙向口
  79.         P2M1 = 0X00; //0000_0000        
  80.         P2M0 = 0X00; //0000_0000

  81.         P2 = 0XFF;//P2口初始化為1

  82.         //P5配置位準(zhǔn)雙向口
  83.         P5M1 = 0X00; //0000_0000        
  84.         P5M0 = 0X00; //0000_0000

  85.         P5 = 0XFF;//P5口初始化為1

  86.         //P3 23467推完輸出
  87.         P3M1 = 0X00; //0000_0000        
  88.         P3M0 = 0XFC; //1101_1100

  89.         P3 = 0X23;  //0010_0011


  90.         //上電IO默認(rèn)是0
  91.         LED0 = 1;//輸出1
  92.         LED1 = 0;
  93.         LED2 = 0;
  94.         LED3 = 0;
  95.         LED4 = 0;
  96.         LED5 = 0;
  97.         LED6 = 0;
  98.         LED7 = 0;//
  99.                
  100. }

  101. /*******************************************************************
  102. * 文件名:void Bsp_Tim0_Init(void)
  103. * 描述:        定時(shí)器0初始化函數(shù)
  104. * 功 能
  105. * 作者:大核桃
  106. * 版本號(hào):V1.00(2018.09.19)
  107. ********************************************************************/
  108. void Bsp_Tim0_Init(void)                //1000微秒@11.0592MHz
  109. {
  110.         AUXR |= 0x80;                //定時(shí)器時(shí)鐘1T模式
  111.         TMOD &= 0xF0;                //設(shè)置定時(shí)器模式
  112.         TMOD |= 0X01;      
  113.         TH0 = 0xD4;                    //設(shè)置定時(shí)初值
  114.         TL0 = 0xCD;                    //設(shè)置定時(shí)初值
  115.         TR0 = 1;                    //定時(shí)器0開始計(jì)時(shí)
  116.         ET0 = 1;            //使能定時(shí)器0的中斷
  117.         EA = 1;             //打開總中斷
  118. }

  119. /*******************************************************************
  120. * 文件名:TIM0_IRQ_Handler
  121. * 描  述:中斷服務(wù)函數(shù)        
  122. * 功  能 中斷服務(wù)標(biāo)號(hào) INT0 ET0 INT1 ET1 UART1 ADC LVD TIME2
  123. * 優(yōu)先級(jí):                      0            1    2         3          4           5   6    12
  124. * 版本號(hào):V1.00(2018.09.19)
  125. ********************************************************************/
  126. void TIM0_IRQ_Handler(void) interrupt 1
  127. {
  128.     static uint16 tmr500ms = 0;

  129.         TH0 = 0xD4;                    //設(shè)置定時(shí)初值
  130.         TL0 = 0xCD;                    //設(shè)置定時(shí)初值

  131.         tmr500ms++;
  132.         if(tmr500ms >= 500)
  133.         {
  134.                 tmr500ms = 0;

  135.                 flag500ms = !flag500ms;        //500MS閃爍
  136.         }
  137.         
  138.                
  139. }
復(fù)制代碼


因?yàn)樵趯?shí)際使用中,定時(shí)器和中斷都是在一起配合使用,所以這兒我們就不分開,但是要說(shuō)的是,定時(shí)器是硬件,是單片機(jī)內(nèi)部存在的一個(gè)模塊,而中斷僅僅是一種處理問(wèn)題的機(jī)制,上面這個(gè)d代碼看著不多,但是消息量很大,我們一點(diǎn)一點(diǎn)解剖,理解了定時(shí)器的的原理,等你上手STM32的時(shí)候,定時(shí)器原理可以直接不看,直接拿來(lái)用就好了。
    先從STC89C52RC的開始說(shuō)起,我們知道,STC89C52RC是標(biāo)準(zhǔn)51內(nèi)核,在標(biāo)準(zhǔn)51的體系下,12個(gè)時(shí)鐘周期是一個(gè)機(jī)器周期,啥意思呢?比如你的外部晶振是11.0592MHZ,那么11059200的倒數(shù),也就是周期了,這個(gè)倒數(shù)叫做時(shí)鐘周期,也叫震蕩周期,算一下時(shí)間,1/11059200 = 0.0904US,這就是STC89C52的時(shí)鐘周期,那么51單片機(jī)就規(guī)定,12個(gè)這樣的時(shí)鐘周期為一個(gè)機(jī)器周期,所以在乘以12,那么一個(gè)機(jī)器周期的數(shù)值是1.085US,注意這是在11.0592MHZ下,如果是在12MHZ下,那么一個(gè)機(jī)器周期就是1US,這就是定時(shí)器的時(shí)間基準(zhǔn)。我們?cè)賮?lái)看下,如果我們用STC89C52來(lái)做一個(gè)500MS的定時(shí)器該怎么做呢?配置如下即可實(shí)現(xiàn):
  1. /*******************************************************************
  2. * 文件名:void Bsp_Tim0_Init(void)
  3. * 描述:        定時(shí)器0初始化函數(shù)
  4. * 功 能
  5. * 作者:大核桃
  6. * 版本號(hào):V1.00(2018.09.19)
  7. ********************************************************************/
  8. void Bsp_Tim0_Init(void)                //1000微秒@11.0592MHz
  9. {
  10.         TMOD &= 0xF0;                //設(shè)置定時(shí)器模式
  11.         TMOD |= 0X01;      
  12.         TH0 = 0xFC;                    //設(shè)置定時(shí)初值
  13.         TL0 = 0x66;                    //設(shè)置定時(shí)初值
  14.         TR0 = 1;                    //定時(shí)器0開始計(jì)時(shí)
  15.         ET0 = 1;            //使能定時(shí)器0的中斷
  16.         EA = 1;             //打開總中斷

  17. }

  18. /*******************************************************************
  19. * 文件名:TIM0_IRQ_Handler
  20. * 描  述:中斷服務(wù)函數(shù)        
  21. * 功  能 中斷服務(wù)標(biāo)號(hào) INT0 ET0 INT1 ET1 UART1 ADC LVD TIME2
  22. * 優(yōu)先級(jí):                      0            1    2         3          4           5   6    12
  23. * 版本號(hào):V1.00(2018.09.19)
  24. ********************************************************************/
  25. void TIM0_IRQ_Handler(void) interrupt 1
  26. {
  27.     static uint16 tmr500ms = 0;

  28.         TH0 = 0xFC;                    //設(shè)置定時(shí)初值
  29.         TL0 = 0x66;                    //設(shè)置定時(shí)初值

  30.         tmr500ms++;
  31.         if(tmr500ms >= 500)
  32.         {
  33.                 tmr500ms = 0;

  34.                 flag500ms = !flag500ms;        //500MS閃爍
  35.         }
  36.         
  37.                
  38. }
復(fù)制代碼



還是來(lái)解釋下,首先定時(shí)器的配置步驟是這樣的:
1.先設(shè)置TMOD這個(gè)寄存器,選擇定時(shí)器0的模式寄存器,配置定時(shí)器0為16位不可重裝載模式

2.設(shè)置定時(shí)器的定時(shí)初值,高八位和低八位
3.打開定時(shí)器的運(yùn)行標(biāo)志位,因?yàn)門CON是一個(gè)可位尋址的寄存器,所以直接TR0 = 1;就好。
4.使能定時(shí)器0的中斷ET0
5.打開總中斷EA
OK,這樣就配置好了寄存器,定時(shí)器也可以工作了,然而我們了解定時(shí)器是怎么運(yùn)行的了嗎?沒(méi)有!�。『芏嗳瞬恢罏樯妒沁@個(gè)數(shù)值,而且定時(shí)器的的初值還有好幾種寫法,如果有人用了不一樣的而寫法,你一定要知道是等價(jià)的寫法。


  關(guān)于初值的計(jì)算
   我們知道定時(shí)器0是一個(gè)16位的定時(shí)器,最大計(jì)數(shù)65536(0-65535)分為高八位和低八位,TH0存儲(chǔ)的是高八位的數(shù)據(jù),TL0存儲(chǔ)的是低八位的數(shù)據(jù),0XFC是一個(gè)16進(jìn)制數(shù)值,換算10進(jìn)制是252,0X66是102,我們知道低八位最大計(jì)數(shù)到255,TH0就變成1,然后進(jìn)位,清零,又開始從0計(jì)數(shù),那么我們可以算算這個(gè)初值是多少?252*256 +102�。健�64614,而64614的16進(jìn)制表示形式就是0XFC66,這樣我們就搞清楚定時(shí)器的計(jì)時(shí)原理了,如下所示,初值代碼可以改寫成這樣:
  1. TH0 = (65535 - 921) / 256;                    //設(shè)置定時(shí)初值
  2.         TL0 = (65535 - 921) % 256;                    //設(shè)置定時(shí)初值
復(fù)制代碼
也就是說(shuō),我們讓單片機(jī)從64614開始計(jì)數(shù),到65535溢出,總共計(jì)數(shù)921個(gè),而我們又知道1個(gè)機(jī)器周期是1.085US,那么921個(gè)機(jī)器周期是多少呢?921*1.085 = 1000US,正好是1MS的定時(shí),我們?cè)诔绦蛑凶屍湟绯?00次,那么不就是500MS了嗎?就是這樣來(lái)的,原理一定要搞清楚。不管什么STM32,64,128都是這樣的原理{:lol:}。關(guān)于中斷使用的時(shí)候,打開使能就好了,EA是總中斷使能位,如果這個(gè)不打開,ET0單獨(dú)打開是沒(méi)用的,這才是一把手。
   關(guān)于STC15W系列的定時(shí)器
好了,既然我們搞清楚了,STC89C52的定時(shí)器的原理了,我們來(lái)看下,STC15W的定時(shí)器配置,因?yàn)槲覀兌际嵌〞r(shí)1MS,那么,為啥初值不一樣呢?我們來(lái)算下STC15W的這個(gè)初值對(duì)應(yīng)的10進(jìn)制數(shù)值是多少?是54477,好陌生的數(shù)字,怎么來(lái)的呢?65536-54477 = 11059,也就是說(shuō)在STC15W的內(nèi)核下,我們只要計(jì)數(shù)11059個(gè),就可以達(dá)到1MS的定時(shí),我們知道,STC15W是單周期的時(shí)鐘,也就是說(shuō)我們不12分頻,我們直接就是一個(gè)時(shí)鐘周期就是一個(gè)機(jī)器周期,(1/11059200)*11059 = 1ms,明白了吧?所以,本節(jié)的程序代碼,也可以這樣寫,是一樣的作用的。
  1. /*******************************************************************
  2. * 文件名:void Bsp_Tim0_Init(void)
  3. * 描述:        定時(shí)器0初始化函數(shù)
  4. * 功 能
  5. * 作者:大核桃
  6. * 版本號(hào):V1.00(2018.09.19)
  7. ********************************************************************/
  8. void Bsp_Tim0_Init(void)                //1000微秒@11.0592MHz
  9. {
  10.         AUXR |= 0x80;                //定時(shí)器時(shí)鐘1T模式
  11.         TMOD &= 0xF0;                //設(shè)置定時(shí)器模式
  12.         TMOD |= 0X01;      
  13. //        TH0 = 0xD4;                    //設(shè)置定時(shí)初值
  14. //        TL0 = 0xCD;                    //設(shè)置定時(shí)初值
  15.         TH0 = (65535 - 11059) / 256;//設(shè)置定時(shí)初值
  16.         TL0 = (65535 - 11059) % 256;//設(shè)置定時(shí)初值
  17.         TR0 = 1;                    //定時(shí)器0開始計(jì)時(shí)
  18.         ET0 = 1;            //使能定時(shí)器0的中斷
  19.         EA = 1;             //打開總中斷

  20. }
復(fù)制代碼




關(guān)于在單片機(jī)中大量存在的& |運(yùn)算的詳細(xì)說(shuō)明
    其實(shí)這個(gè),不太想說(shuō),但無(wú)奈上網(wǎng)看到好多初學(xué)者根本不知道& |的作用,還是詳細(xì)的說(shuō)明下比較好,以定時(shí)器0的配置為例。
    AUXR |= 0x80; AUXR是一個(gè)輔助寄存器,這不需要多說(shuō),|= 0x80有什么講究呢?|(或),是讓某一位置1的意思,讓那一位置一呢?很明顯,讓是1的那一位置一,0X80不就是最高位是1嗎?那就是讓最高位置一好了,有人說(shuō),這有啥用呢?本來(lái)不就是1嗎?人家還有后半句,而其他位保持不變,其他位?啥位?等于0的那些對(duì)吧?也就是低7位不變了。這樣操作有啥好處呢?我們知道ET0 = 1;TR0 = 1;之所以可以這樣操作,是因?yàn)樗麄兛梢员晃粚ぶ�,可以進(jìn)行單獨(dú)的位操作,而AUXR是不可以進(jìn)行位尋址的,因此一次操作必須操作8個(gè)位,你想想看,AUXR這個(gè)寄存器的功能如下圖:

   你能保證直接讓AUXR = 0X80,不對(duì)其他位造成影響嗎?現(xiàn)在大家的編程還比較簡(jiǎn)單,只有一個(gè)定時(shí)器,要是用到3個(gè),4個(gè)定時(shí)器呢?這樣不就互相干擾了嗎?扯淡么?所以 & |的重要性也就凸現(xiàn)出來(lái)了。
   再來(lái)看后面這2句,很明顯TMOD是不可以位尋址的,按照我們剛才的分析,|是讓某一位置一,那么&,自然就是讓某一位清零了,來(lái)看下0XF0,二進(jìn)制是1111_0000,也就是低4位置0,高4位不要管,因?yàn)?amp;是乘法運(yùn)算啊,只要都是1,那么就是1,很明顯讓低4位清零,下一句是0000_0001,讓最低為置一啊,對(duì)吧,要注意,這里的2句是連續(xù)操作的,不是單獨(dú)的的操作,什么意思?前者的運(yùn)算結(jié)果,又給了后者,所以我們總體來(lái)看這2句代碼,先讓低四位清零,高四位不變,然后將這個(gè)結(jié)果進(jìn)行或運(yùn)算,讓最低位置一,而高7位都不變,因?yàn)槿魏螖?shù)|還是任何數(shù)啊,對(duì)吧,這就達(dá)到了一個(gè)互不干擾的目的,這樣的代碼在STM32上好多好多的,都是起到一個(gè)互不干擾的作用。這樣的做法可以確保定時(shí)器0和定時(shí)器1是獨(dú)立的,如果我們不這樣做,你看看是工作在啥模式?除了定時(shí)器配置在16位不可重裝模式在,定時(shí)器1被配置在了16位自動(dòng)重裝定時(shí)器,我們沒(méi)有使用定時(shí)器1,萬(wàn)一出錯(cuò)怎么辦?這就不好了。
  

關(guān)于自動(dòng)重裝載和不可自動(dòng)重裝模式
  其實(shí),沒(méi)啥太大的區(qū)別,如果是自動(dòng)重裝,那么在中斷服務(wù)函數(shù)中,TH0 TL0就不需要去再去重新賦值了,直接刪掉就好,如果不是自動(dòng)重裝,則必須要加。還差點(diǎn)忘了一個(gè)事,你怎么確定你的定時(shí)是500MS呢?答案不能靠眼睛看把,看看示波器觀察的結(jié)果,嗯,是對(duì)的。如下圖,1S 1HZ的方波信號(hào)

好了,今天就到這里吧,代碼上傳 004 定時(shí)器的使用.rar (30.68 KB, 下載次數(shù): 92)






評(píng)分

參與人數(shù) 2黑幣 +11 收起 理由
新鄉(xiāng)家電維修 + 5 很給力!
jstele + 6

查看全部評(píng)分

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

使用道具 舉報(bào)

沙發(fā)
ID:371529 發(fā)表于 2018-10-14 14:51 | 只看該作者
我不明白為啥這么好的分享瀏覽量這么低呢,樓主加油
回復(fù)

使用道具 舉報(bào)

板凳
ID:74187 發(fā)表于 2018-10-14 15:28 | 只看該作者
哈哈我哈哈 發(fā)表于 2018-10-14 14:51
我不明白為啥這么好的分享瀏覽量這么低呢,樓主加油

謝謝支持
回復(fù)

使用道具 舉報(bào)

地板
ID:410928 發(fā)表于 2018-10-26 09:53 | 只看該作者
樓主厲害
回復(fù)

使用道具 舉報(bào)

5#
ID:388099 發(fā)表于 2018-10-27 16:29 | 只看該作者
感謝分享,正在學(xué)習(xí)單片機(jī),
回復(fù)

使用道具 舉報(bào)

6#
ID:406748 發(fā)表于 2018-10-27 22:41 | 只看該作者
感謝分享
回復(fù)

使用道具 舉報(bào)

7#
ID:85743 發(fā)表于 2018-10-29 14:15 | 只看該作者

感謝分享,正在學(xué)習(xí)單片機(jī),
回復(fù)

使用道具 舉報(bào)

8#
ID:417624 發(fā)表于 2018-10-29 22:45 | 只看該作者
真的好實(shí)用,正好解決了我的疑惑,力贊!�。。�!
回復(fù)

使用道具 舉報(bào)

9#
ID:400074 發(fā)表于 2018-11-2 06:55 | 只看該作者
挺不錯(cuò)的資料
回復(fù)

使用道具 舉報(bào)

10#
ID:218360 發(fā)表于 2018-11-15 18:25 | 只看該作者
咋沒(méi)有專門寫匯編語(yǔ)言的內(nèi)容?
回復(fù)

使用道具 舉報(bào)

11#
ID:156220 發(fā)表于 2018-11-20 08:49 | 只看該作者
謝謝樓主的分享,很詳細(xì)的講解
回復(fù)

使用道具 舉報(bào)

12#
ID:244544 發(fā)表于 2018-11-20 11:33 | 只看該作者
好東東,下載學(xué)習(xí)下��!1
回復(fù)

使用道具 舉報(bào)

13#
ID:400349 發(fā)表于 2018-11-21 01:22 來(lái)自觸屏版 | 只看該作者
樓主,我有個(gè)地方不懂,從第二次溢出開始,進(jìn)入中斷后tmr500ms不是都會(huì)重新賦值為零嗎,這樣子不是不會(huì)大于或等于500嗎,那怎么執(zhí)行if函數(shù)
回復(fù)

使用道具 舉報(bào)

14#
ID:74187 發(fā)表于 2018-11-21 15:40 | 只看該作者
陳臣?jí)m 發(fā)表于 2018-11-21 01:22
樓主,我有個(gè)地方不懂,從第二次溢出開始,進(jìn)入中斷后tmr500ms不是都會(huì)重新賦值為零嗎,這樣子不是不會(huì)大于 ...

void TIM0_IRQ_Handler(void) interrupt 1
{
    static uint16 tmr500ms = 0;

        TH0 = 0xFC;                    //設(shè)置定時(shí)初值
        TL0 = 0x66;                    //設(shè)置定時(shí)初值

        tmr500ms++;//這個(gè)你應(yīng)該沒(méi)有看到
回復(fù)

使用道具 舉報(bào)

15#
ID:421232 發(fā)表于 2018-12-13 11:39 | 只看該作者
謝謝樓主分享
回復(fù)

使用道具 舉報(bào)

16#
ID:450718 發(fā)表于 2018-12-24 14:33 | 只看該作者
學(xué)習(xí) 學(xué)習(xí)
回復(fù)

使用道具 舉報(bào)

17#
ID:461889 發(fā)表于 2019-1-23 11:46 | 只看該作者
感謝分享
回復(fù)

使用道具 舉報(bào)

18#
ID:345426 發(fā)表于 2019-3-23 21:42 | 只看該作者
謝謝分享好好學(xué)習(xí)。
回復(fù)

使用道具 舉報(bào)

19#
ID:511868 發(fā)表于 2019-4-14 14:46 | 只看該作者
謝謝分享好好學(xué)習(xí)
回復(fù)

使用道具 舉報(bào)

20#
ID:505803 發(fā)表于 2019-4-14 16:34 | 只看該作者
這個(gè)文章真是太接地氣了,基本上把定時(shí)掰開了講清楚了
說(shuō)的非常好,初學(xué)者都能夠看懂,
受益良多
回復(fù)

使用道具 舉報(bào)

21#
ID:278200 發(fā)表于 2019-6-15 14:24 | 只看該作者
感謝分享!!!
回復(fù)

使用道具 舉報(bào)

22#
ID:138119 發(fā)表于 2019-7-28 18:23 | 只看該作者
很適合初學(xué)者,或者這方面理解不清的朋友!
講的非常好,樓主加油~~~~~
回復(fù)

使用道具 舉報(bào)

23#
ID:546770 發(fā)表于 2019-7-28 18:37 | 只看該作者
這是真的好貼,加油!
回復(fù)

使用道具 舉報(bào)

24#
ID:600135 發(fā)表于 2019-8-15 08:31 來(lái)自觸屏版 | 只看該作者
樓主 是怎么自學(xué)的
回復(fù)

使用道具 舉報(bào)

25#
ID:689073 發(fā)表于 2020-2-11 07:21 | 只看該作者


感謝分享,正在學(xué)習(xí)單片機(jī),
回復(fù)

使用道具 舉報(bào)

26#
ID:781074 發(fā)表于 2020-6-16 15:12 | 只看該作者
謝謝樓主的分享,很詳細(xì)的講解
回復(fù)

使用道具 舉報(bào)

27#
ID:785551 發(fā)表于 2020-9-2 16:36 | 只看該作者
樓主,還有后續(xù)經(jīng)驗(yàn)分享嗎??
回復(fù)

使用道具 舉報(bào)

28#
ID:816540 發(fā)表于 2020-9-15 22:38 | 只看該作者
講解的很清楚,謝謝!
回復(fù)

使用道具 舉報(bào)

29#
ID:863412 發(fā)表于 2021-1-12 16:38 | 只看該作者
樓主高手,謝謝了!
回復(fù)

使用道具 舉報(bào)

30#
ID:878420 發(fā)表于 2021-1-23 20:14 | 只看該作者
感謝分享,正在學(xué)習(xí)單片機(jī)!
回復(fù)

使用道具 舉報(bào)

31#
ID:883622 發(fā)表于 2021-2-10 20:52 | 只看該作者
回復(fù)

使用道具 舉報(bào)

32#
ID:513213 發(fā)表于 2021-3-2 08:50 | 只看該作者
感謝分享,正在學(xué)習(xí)單片機(jī)
回復(fù)

使用道具 舉報(bào)

33#
ID:928284 發(fā)表于 2021-7-9 17:57 | 只看該作者
溫習(xí)定時(shí)器的使用,多看看有啟發(fā)。
回復(fù)

使用道具 舉報(bào)

34#
ID:497561 發(fā)表于 2022-3-7 09:43 | 只看該作者
對(duì)初學(xué)者很友發(fā),值得多看幾次
回復(fù)

使用道具 舉報(bào)

35#
ID:1001745 發(fā)表于 2022-4-9 18:53 | 只看該作者
這樣的C教材還是第一次拜讀,比那些所謂名校的教材更加通俗易懂
回復(fù)

使用道具 舉報(bào)

36#
ID:1007896 發(fā)表于 2022-5-1 20:34 | 只看該作者
別的不服,就服樓主。&、|、TH0、TL0講得非常非常清楚!
回復(fù)

使用道具 舉報(bào)

37#
ID:962396 發(fā)表于 2022-6-22 17:28 | 只看該作者
謝謝樓主我會(huì)來(lái)學(xué)習(xí)的
回復(fù)

使用道具 舉報(bào)

38#
ID:260656 發(fā)表于 2022-10-19 10:44 | 只看該作者
就是定時(shí)器搞不懂,這文章太好了,萬(wàn)分感謝!
回復(fù)

使用道具 舉報(bào)

39#
ID:1049825 發(fā)表于 2022-10-31 20:19 | 只看該作者
聽君一席話,勝讀十年書,拜謝!
回復(fù)

使用道具 舉報(bào)

40#
ID:958799 發(fā)表于 2022-12-29 16:44 | 只看該作者
說(shuō)實(shí)話,這是我看過(guò)講定時(shí)器講的最清楚的了,點(diǎn)贊
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表