新聞中心

        EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > PSTN短消息終端SoC系統(tǒng)的軟硬件設(shè)計(jì)

        PSTN短消息終端SoC系統(tǒng)的軟硬件設(shè)計(jì)

        作者: 時(shí)間:2010-12-06 來(lái)源:網(wǎng)絡(luò) 收藏
          sfr MODEM_CTRL = 0xf2;/* 擴(kuò)展,Modem控制,只寫(xiě) */

        本文引用地址:http://www.104case.com/article/151285.htm

          sfr KEYPAD_VALUE = 0xf4;/* 擴(kuò)展,讀鍵盤(pán)值,只讀 */

          sfr FLASH_PAGE = 0xf5; /* 擴(kuò)展,頁(yè)面尋址,只寫(xiě) */

          sfr LCD_DATA = 0xf6; /* 擴(kuò)展,LCD數(shù)據(jù),讀寫(xiě) */

          sfr LCD_CTRL = 0xf7; /* 擴(kuò)展,LCD控制,只寫(xiě) */

          sfr CIRCUIT_STATUS = 0xff; /* 擴(kuò)展,線(xiàn)路狀態(tài),只讀 */

          sfr CIRCUIT_CTRL = 0xff; /* 擴(kuò)展,線(xiàn)路控制,只寫(xiě) */

          為了節(jié)約SFR總線(xiàn)地址資源,一些擴(kuò)展的SFR寄存器在硬件上為只能寫(xiě)、不可讀,另外一些被為只能讀、不可寫(xiě)。這樣,二者可以復(fù)用同一個(gè)SFR總線(xiàn)地址,比如MODEM_CTRL和READ_DTMF_DECODE寄存器;但是這樣在需要先將那些“只寫(xiě)”寄存器的內(nèi)容讀出,運(yùn)算后再進(jìn)行寫(xiě)回操作的時(shí)候就很不方便。這里采用了鏡像變量的方法,為每一個(gè)“只寫(xiě)”寄存器建立一個(gè)全局變量,每次寫(xiě)寄存器操作后,都對(duì)這個(gè)全局變量進(jìn)行同樣的寫(xiě)操作,時(shí)刻保持變量值和寄存器的內(nèi)容一致,在需要讀出的時(shí)候就使用此全局變量。MODEM_CTRL寄存器的bit0控制Modem是DTMF還是FSK模式。下面以對(duì)這一位的操作為例說(shuō)明。

          建立它的鏡像全局變量:

          unsigned char xdata modem_ctrl_mirror;

          定義控制位:

          #define MODEM_B0_MODE0x01// 1-DTMF, 0-FSK

          

        片上外設(shè)在SFR總線(xiàn)上的物理連接

          圖2 片上外設(shè)在SFR總線(xiàn)上的物理連接

          設(shè)置Modem為FSK模式:

          void Modem_SetMode_FSK() {

          MODEM_CTRL = modem_ctrl_mirror (~MODEM_B0_MODE);

          modem_ctrl_mirror = modem_ctrl_mirror (~MODEM_B0_MODE);

          }

          在初始化程序中對(duì)這些“只寫(xiě)”寄存器及其鏡像全局變量進(jìn)行賦值。

          void DevicesInit() {

          MODEM_CTRL = MODEM_CTRL_INI;

          modem_ctrl_mirror = MODEM_CTRL_INI;

          }



        評(píng)論


        相關(guān)推薦

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

        關(guān)閉
        主站蜘蛛池模板: 格尔木市| 武冈市| 桃园县| 托克逊县| 宁乡县| 齐河县| 二连浩特市| 柳江县| 衢州市| 开远市| 永康市| 丹棱县| 华亭县| 汉沽区| 寻乌县| 景德镇市| 泽库县| 景洪市| 扶绥县| 宜都市| 青川县| 陆良县| 浦县| 衡阳市| 西丰县| 岳普湖县| 南雄市| 武夷山市| 四平市| 汕尾市| 临泉县| 尚义县| 新密市| 行唐县| 舞钢市| 沙洋县| 体育| 顺平县| 茶陵县| 云梦县| 马山县|