<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          MC8051微處理器硬件模塊

          作者: 時(shí)間:2012-11-15 來(lái)源:網(wǎng)絡(luò) 收藏

            單片機(jī)作為一個(gè)大型設(shè)計(jì),其內(nèi)核由定時(shí)器時(shí)鐘管理單元、ALU算數(shù)邏輯單元、串口及控制單元、存儲(chǔ)單元RAM及ROM等模塊組成。

            1 時(shí)鐘管理單元

            內(nèi)核采用完全同步的時(shí)鐘設(shè)計(jì)。只有一個(gè)時(shí)鐘信號(hào)控制每個(gè)存儲(chǔ)單元的輸入。沒(méi)有使用門(mén)時(shí)鐘,時(shí)鐘沒(méi)有輸入到任何組合邏輯單元。中斷輸入線使用兩級(jí)同步(鎖存2次)與全局時(shí)鐘同步??梢赃_(dá)到完全同步,即使用其他時(shí)鐘的外部電路在驅(qū)動(dòng)。并行I/0端口沒(méi)有采用這種同步方式。

            2 定時(shí)器、串口和中斷

            標(biāo)準(zhǔn)8051微控制器只提供兩個(gè)定時(shí)/計(jì)數(shù)器單元、一個(gè)串口單元及兩個(gè)外部中斷源。而在MC805l IP核中,這些單元最多可增加到256組,只需修改VHDL源代碼增加兼容的單元數(shù)。在VHDL源程序文件mc8051_p.vhd中,更改C_IMPL_N_TMR、C_IMPL_N_SIU、C_IMPL_N_EXT的常量值就可以,其范圍是1~256。相關(guān)的VHDL代碼如圖1所示。

          MC8051微處理器硬件模塊
          圖1 相關(guān)VHDL代碼

            這里C_IMPL_N_TMR、C_IMPL_N_SIU、C_IMPL_N_EXT3個(gè)常量參數(shù)不能獨(dú)立修改數(shù)值,只能同時(shí)增減。C_IMPL_N_TMR加l意味著對(duì)應(yīng)的添加了2個(gè)定時(shí)/計(jì)數(shù)器、一個(gè)串口單元和2個(gè)外部中斷源。為了能尋址所生成的單元而不改變微控制器的地址空間,在微控制器的特殊功能寄存器(SFR)內(nèi)存空間增加了2個(gè)8位寄存器作為附加功能寄存器:分別是TSEL(定時(shí)/計(jì)數(shù)器選擇寄存器,地址為Ox8E)和SSEL(串口選擇寄存器,地址為Ox9A)。如果以上的寄存器指向不存在的器件單元,將使用默認(rèn)的l單元,如果沒(méi)有對(duì)這兩個(gè)寄存器賦值,其缺省值為1。如果在中斷發(fā)生期間設(shè)備(寄存器)沒(méi)被選中(比如TSEL),那么相應(yīng)的中斷標(biāo)志位將保持置位,直到執(zhí)行中斷服務(wù)程序。

            3 存儲(chǔ)器接口單元

            由于采用優(yōu)化結(jié)構(gòu)設(shè)計(jì),存儲(chǔ)器采用同步結(jié)構(gòu),限制輸入、輸出的時(shí)序,因而存儲(chǔ)器輸入、輸出數(shù)據(jù)沒(méi)用寄存器寄存。



          關(guān)鍵詞: MC8051 微處理器 硬件模塊

          評(píng)論


          相關(guān)推薦

          技術(shù)專(zhuān)區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();