欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

標題: 關于單片機定時器賦初值的問題,程序里的值和定時計算器的值為什么不一樣呢? [打印本頁]

作者: 芙蓉焊料    時間: 2022-12-17 13:58
標題: 關于單片機定時器賦初值的問題,程序里的值和定時計算器的值為什么不一樣呢?
請教老師,關于定時器賦初值的問題,程序里的值和定時計算器的值為什么不一樣呢?




作者: Hephaestus    時間: 2022-12-17 16:43
三張圖,上下兩張一樣,中間不一樣,2:1判斷中間錯了。
作者: coody_sz    時間: 2022-12-17 17:22
應該是(65536-5000)
作者: wulin    時間: 2022-12-17 20:12
誰是對的,仿真圖為證。下面是驗證程序。


  1. #include<reg51.h>

  2. sbit LED1=P2^0;
  3. sbit LED2=P2^1;

  4. void Timer_Init(void)//5毫秒@12.000MHz
  5. {
  6.         TMOD= 0x00;                //設置定時器模式
  7.         TL0 = 0xC0;                //設置定時初始值
  8.         TH0 = 0x63;                //設置定時初始值
  9.         TL1 = 0x78;                //設置定時初始值
  10.         TH1 = 0x0c;                //設置定時初始值
  11.         TR0 = 1;                        //定時器0開始計時
  12.         TR1 = 1;                        //定時器1開始計時
  13.         ET0 = 1;
  14.         ET1 = 1;
  15.         EA = 1;
  16. }

  17. void main(void)
  18. {
  19.         Timer_Init();
  20.         while(1);
  21. }

  22. void Timer0Interrupt() interrupt 1
  23. {
  24.         TL0 = 0xC0;                //設置定時初始值
  25.         TH0 = 0x63;                //設置定時初始值
  26.         LED1=~LED1;
  27. }

  28. void Timer1Interrupt() interrupt 3
  29. {
  30.         TL1 = 0x78;                //設置定時初始值
  31.         TH1 = 0x0c;                //設置定時初始值
  32.         LED2=~LED2;
  33. }
復制代碼




作者: wulin    時間: 2022-12-18 08:32
Hephaestus 發表于 2022-12-17 16:43
三張圖,上下兩張一樣,中間不一樣,2:1判斷中間錯了。

恰恰相反,中間圖是對的。由于很少用到13位定時器,很多人對13位定時器的理解是想當然。



作者: 芙蓉焊料    時間: 2022-12-18 09:35
wulin 發表于 2022-12-17 20:12
誰是對的,仿真圖為證。下面是驗證程序。

學習了,但是沒看懂
作者: Y_G_G    時間: 2022-12-18 17:35
8051的定時器是計數器加到65536就溢出,產生中斷和溢出
TH0和TL0是用來存放初始值的兩個寄存器
其它的自己計算就行了,實在不明白,看STC89C52的定時器章節,里面有說明




歡迎光臨 (http://m.raoushi.com/bbs/) Powered by Discuz! X3.1