18luck网站

18luck网站電子設計 | 18luck网站Rss 2.0 會員中心 會員注冊
搜索: 您現在的位置: 18luck网站 >> 18luck平台 >> 單片機 >> 正文

單片機程序TH0=(65536-50000)/256; 是什麽意思?

作者:佚名    文章來源:本站原創    點擊數:    更新時間:2018-03-07

TL0=(65536-50000)%256; 這兩(liang) 個(ge) 是什麽(me) 意思呢??為(wei) 什麽(me) 要是256,是固定的嗎???在知道裏看到了答案,可是還是不大懂,
這是網上的:
標準答案:定時器0設置於(yu) 模式1時,計數寄存器為(wei) 16位模式,由高8位TH0和低8位TL0兩(liang) 個(ge) 8位寄存器組成,當設定計算值為(wei) 65536-50000=15536(D)時,轉換為(wei) 十六進製就是3CB0(H),此時,TH0=3C,TL0=B0分別裝入即可,為(wei) 了免除這些計算步驟,很多編程者采用“TH0=(65536-50000)/256;TL0=(65536-50000)%256“的編程方式,去讓單片機自己去計算結果,那麽(me) 為(wei) 什麽(me) 要介入256呢?其實並不難理解,做一下10——16進製的換算就知道了,256(D)=0100(H),這裏01就是高8位的數據,00就是低8位的數據,通俗點說,15536(D)裏有多少個(ge) 256,就相當於(yu) 高8位有多少數值,就是除的關(guan) 係了,商存入高8位寄存器後餘(yu) 下的數存入低8位即可,取商計算就是TH0=(65536-50000)/256;而取餘(yu) 計算就是TL0=(65536-50000)%256 。

 

答案:定時器工作於(yu) 模式一時,計數器是16位的,16位的二進製可以表示0~2^16(65535),計數器時向上計數的,一個(ge) 一個(ge) 數的加,首先要設置它的計數初值(不設置默認為(wei) 0),如果要它每數50000次溢出一次產(chan) 生中斷,那麽(me) 初值就是2^16-50000+1=15536,現在將15536這個(ge) 初值裝到TH0和TL0中就行了,但是由於(yu) 51是8位單片機,每次隻能處理8位數據,所以就要將15536分成高8位和低8位分別給TH0和TL0,15536/256就是將高八位取出,15536%256就是將低八位取出,類似於(yu) 十進製中25/10=2......5,將十位2和個(ge) 位5取出一樣。說白了就是數製的轉換。

Tags:單片機,中斷,程序  
責任編輯:admin
請文明參與討論,禁止漫罵攻擊,不要惡意評論、違禁詞語。 昵稱:
1分 2分 3分 4分 5分

還可以輸入 200 個字
[ 查看全部 ] 網友評論
關於我們 - 聯係我們 - 廣告服務 - 友情鏈接 - 網站地圖 - 版權聲明 - 在線幫助 - 文章列表
返回頂部
刷新頁麵
下到頁底
晶體管查詢