① 單片機定時器初值計算
呵呵 幫你分析一下啊
定時時間2ms=(2的16次方-時間常數X)12/f 即晶振為12M f=12*1000000
2ms=(2的16次方-時間常數X)12/(12*1000000)
2*0.001=(2的16次方-時間常數X)12/(12*1000000)
2*0.001=(2的16次方-時間常數X)/(1000000)
2000=65536-時間常數X
時間常數X=65536-2000
TH0=(65536-2000)/256; 就是轉換成十六進制 再除以256 取整數 即高8位送時間常數寄存器的高8位計數器
TL0=(65536-2000)%256; 就是轉換成十六進制 再除以256 取余數 即低8位送時間常數寄存器的低8位計數器
哈哈 滿意就選滿意回答吧
② 單片機中的程序計數器PC是16位的定址范圍是64KB怎麼來的呀不太明白!
根據二進制編碼、解碼的原理,n根導線可以譯成2^n個地址號,單片機中的程序計數器PC是16位,也就是16根地址線,可以譯成2^16=65536個地址號,也成為16根地址線的最大定址范圍。
單片機中用於存放下一條指令所在單元的地址的就是程序計數器,其作用是保證程序(在操作系統中理解為進程)能夠連續地執行下去,又稱為指令計數器。
每當一個指令被獲取,程序計數器的存儲地址就加1,指向順序中的下一條指令,計算機重啟或復位後,程序計數器通常恢復到0。
(2)為什麼單片機是2的十六次方擴展閱讀
51單片機程序計數器中特殊功能單元:
1)0000H:8051單片機復位後,程序從0000H開始執行指令;
2)0003H:外部中斷0入口;
3)000BH:定時器0溢出中斷入口;
4)0013H:外部中斷1入口;
5)001BH:定時器1溢出中斷入口;
6)0023H:串列口中斷入口。
③ 一個16位地址的存儲器為什麼可以儲存2的16次方個byte的數據
因為儲存器是十六位的地址,就意味著0000H-FFFFH都是存在的,那麼不就是,而每個地址可以存儲一個位元組,那麼就是2^16個了。