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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2392|回復: 1
收起左側

讓我的STC單片機發揮余熱

[復制鏈接]
ID:91350 發表于 2015-10-1 00:41 | 顯示全部樓層 |閱讀模式
     10年前學習單片機記得是從AT89C51開始的,回想起那時候做遙控器解碼等很多東西用到它,用到TR1,很多接觸單片機的人我想對這個語句非常的收悉,TR1 = 1; 或 SETB TR1   .這是當年用Keil編譯器的語句,10年后的我改變了對Keil的看法,覺得它太肆無忌憚了,雖然很方便,語句也很簡潔,可是我感覺計算機語言不應該那么隨意,應該規范化,這樣才容易移植.自從我接觸AVR單片機,一直用的是IAR編譯器,自從IAR編譯器后,我才知道什么才是計算機語言.比如剛才那句TR1 = 1; 應該這樣寫TCON_bit.TR1 = 1;至少在IAR中是這么約定的,TCON_bit代表一個結構,TR1是它的一個成員,這樣更容易理解而且如果移植到其他平臺上,TR1發生沖突的幾率至少會少很多以下是我回到8051寫的timer1
程序,它設定了一個時間,MCU_OSC在宏里已經定義,它指定了MCU的工作頻率,MCU_SPEED指定了MCU的工作速度,STC有兩種模式6T和12T,nReship_timer1是一個全局變量,它指定了timer1的重裝值,在timer1的中斷函數里重新裝載到TR1里.我準備再做一個音頻指示燈,10年前的作品現在重新做一次,我手頭還有很多STC12C2052AD,讓他們發揮出當年的色彩.
/***********  設定定時器1為定時器    ***********************/

bool set_timer1_us(unsigned long time)
{
   float scale = 1000000.0 / MCU_OSC * MCU_SPEED;//  計算分辨率(us)

   if(scale * 0xFFFF < time)
   {
      err0 = 1;//          標記錯誤
      err1 = 0;
      return false;
   }

   TMOD_bit.M01 = 1;
   TMOD_bit.M11 = 0;//  設置為16位定時器模式
   nReship_timer1 = 0x10000 - (unsigned int)(time / scale);//計算重裝載值
   IE_bit.ET1 = 1;//    打開定時器1中斷
   TCON_bit.TR1 = 1;//  打開定時器1

   return true;
}




回復

使用道具 舉報

ID:88707 發表于 2015-10-1 13:44 | 顯示全部樓層
向前輩學習
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 在线视频国产一区 | 国产人久久人人人人爽 | 日韩精品一区二区三区免费观看 | 久久久久久久久淑女av国产精品 | 精品一区二区三区在线视频 | 在线亚洲免费视频 | 美女黄视频网站 | 欧美一区日韩一区 | 国产一区二区久久 | 久久久久久久夜 | 99国内精品久久久久久久 | 亚洲国产精品人人爽夜夜爽 | 欧美又大粗又爽又黄大片视频 | 亚洲国产成人精品女人久久久 | 国产精品久久久亚洲 | 99爱国产 | 日本精品免费在线观看 | 激情影院久久 | 亚洲超碰在线观看 | 亚洲美女一区二区三区 | h肉视频 | 成人亚洲精品久久久久软件 | 午夜影院毛片 | 美女在线国产 | 美女爽到呻吟久久久久 | 少妇精品亚洲一区二区成人 | 人干人操| 欧美性久久 | 久久视频精品在线 | 欧美一区2区三区4区公司二百 | 日韩精品在线视频免费观看 | 欧美一区二区三区视频 | 中文字幕日韩一区二区 | 蜜桃视频在线观看www社区 | 日韩av在线播 | 黄片毛片免费观看 | 亚洲三区在线 | 久久精品色视频 | 日韩高清在线观看 | av三级在线观看 | 免费的色网站 |