導航:首頁 > 操作系統 > mc9s12x單片機

mc9s12x單片機

發布時間:2022-12-10 20:31:46

Ⅰ 飛思卡爾MC9S12XS單片機可以用什麼模擬軟體模擬

飛思卡爾的,原配自然是CodeWarrior了。
注意CodeWarrior是區分極多版本的(飛思卡爾的晶元種類太多了),要選適合12系列的版本。10.x的大雜燴版本似乎是支持的。

Ⅱ mc9s12xs128是不是屬於單片機晶元還是屬於ARM嵌入式晶元

不是ARM,這是飛思卡爾設計的、基於摩托羅拉內核的16位微控制器(MCU)。
單片機這個東西是相對於80年代的「單板機」來說的,以前具有復雜控制功能的器件,被組裝在很大一個板子上,現在越做越小,集成到了一個晶元里,所以叫「單片機」。
ARM晶元也可以被稱作單片機。
其實ARM只是一種硬體內核架構,而我們常用的51也是一種硬體內核架構,你所列舉的MC9S12xs128里的摩托羅拉內核也是一種硬體內核架構。
晶元廠家拿到一種硬體內核,就像拿到了一個大腦,廠家會給它配上外圍模塊,就等於給它裝上「手腳」,至於裝多少「手腳」,每個廠家各有不同,所以有很多晶元型號。
ARM是個英國計算機公司名字,專門做ARM硬體內核,有很多內核系列,類似於不同的「大腦」,最新的是cortex系列,而STM32F103C8就是屬於ARM
cortex
-
M系列,cortex有三個系列,A系列、R系列、M系列,M系列是面對低端工控領域,特點是硬體資源緊湊、響應速度快。
還有,因為單片機這個定義在國內不是很規范,很多學校喜歡把低端的叫做單片機、高端的叫做嵌入式系統,其實都一樣,誰對誰錯也不好說。。。。

Ⅲ MC9S12XS128實驗開發板GPIO初始化都涉及到哪些寄存器,這些寄存器的名稱和作用

MC9S12XS128實驗開發板GPIO初始化都涉及到寄存器,這些寄存器的名稱和作用:ATDnCTLx表示多組ATD中的第n組,控制寄存器x。

寄存器是CPU內部重要的數據存儲資源,匯編程序員能直接使用的硬體資源。由於寄存器的存取速度比內存快,用匯編語言編寫程序時,要盡可能充分利用寄存器的存儲功能。寄存器一般用來保存程序的中間結果,為隨後的指令快速提供操作數,避免把中間結果存入內存,再讀取內存的操作。

基本含義

寄存器是CPU內部用來存放數據的一些小型存儲區域,用來暫時存放參與運算的數據和運算結果。其實寄存器就是一種常用的時序邏輯電路,但這種時序邏輯電路只包含存儲電路。寄存器的存儲電路是由鎖存器或觸發器構成的,因為一個鎖存器或觸發器能存儲1位二進制數,所以由N個鎖存器或觸發器可以構成N位寄存器。

Ⅳ DS18B20直接用單片機(MC9S12X128)的IO口驅動,採集溫度,最遠能採到多遠

DS18B20在匯流排上的掛接個數問題。當匯流排上掛接超過8個DS18B20時,要考慮微處理器匯流排驅動的問題。一般情況下,在寄生電源的工作方式下,由於單個DS18B20的工作電流為1mA,而匯流排上的電流為5V/4.7kΩ=1.06mA,加上一個MOSFET管可幫助提供能量,但是由於DS18B20和MOSFET管之間的充放電和功耗問題,導致單匯流排上的DS18B20個數不能超過8個。
連接DS18B20的匯流排電纜(普通三芯線)在只有上拉電阻的情況下可靠傳輸長度可達45m左右,距離過長時需根據分支點數、匯流排長度匹配其線間電容及阻抗;一般情況下,採用普通信號電纜傳輸長度超過50m時,讀取的測溫數據將發生錯誤。當將匯流排電纜改為雙絞線帶屏蔽電纜時,正常通信距離可達150m,當採用每米絞合次數更多的雙絞線帶屏蔽電纜時,正常通信距離進一步加長。

Ⅳ MC9S12XS單片機原理及嵌入式系統開發的目錄

第1章 嵌入式系統簡介 1
1.1 嵌入式系統 1
1.1.1 系統 1
1.1.2 嵌入式系統 1
1.1.3 嵌入式系統的分類 2
1.2 嵌入式系統硬體 3
1.2.1 嵌入式微處理器 3
1.2.2 嵌入式微控制器 3
1.2.3 嵌入式DSP處理器 4
1.2.4 嵌入式片上系統 4
1.3 嵌入式系統軟體 4
1.4 嵌入式操作系統 5
1.4.1 嵌入式操作系統的種類 5
1.4.2 嵌入式操作系統的發展 5
1.4.3 使用實時操作系統的必要性 6
1.4.4 實時操作系統的優缺點 6
1.5 嵌入式系統開發方法 6
第2章 Freescale HCS12和HCS12X系列單片機簡介 8
2.1 HCS12系列單片機概述 8
2.1.1 HCS12系列單片機的命名規則 8
2.1.2 HCS12系列單片機簡介 9
2.2 HCS12X系列單片機概述 10
2.2.1 HCS12X系列單片機主要特點 10
2.2.2 XGATE協處理器與主處理器的關系 11
2.2.3 XGATE的基本特性 12
2.2.4 典型S12X系列單片機簡介 14
2.3 MC9S12XS128簡介 15
2.3.1 MC9S12XS128性能概述 15
2.3.2 MC9S12XS128內部結構、主要特性及引腳 15
2.3.3 MC9S12XS128引腳功能 24
2.4 CPU12(X)核 27
2.4.1 CPU12(X)核特性 27
2.4.2 編程模型 27
2.5 MC9S12XS128的存儲器映射 30
2.6 MC9S12XS128內部鎖相環模塊PLL 31
2.6.1 CRG時鍾合成寄存器(SYNR) 32
2.6.2 CRG時鍾參考分頻寄存器(REFDV) 32
2.6.3 CRG時鍾後分頻寄存器(POSTDIV) 33
2.6.4 CRG標志寄存器(CRGFLG) 33
2.6.5 CRG時鍾選擇寄存器(CLKSEL) 34
2.6.6 CRG IPLL控制寄存器(PLLCTL) 35
2.6.7 CRG中斷使能寄存器(CRGINT) 36
2.6.8 CRG IPLL模塊應用實例 36
第3章 S12X指令系統 38
3.1 概述 38
3.2 S12X匯編指令的格式和符號說明 38
3.2.1 操作碼和操作數 39
3.2.2 數據類型 39
3.2.3 數據表示方法 39
3.2.4 寄存器和存儲器表示法 40
3.3 定址方式(Addressing Mode) 40
3.3.1 隱含/固有定址(Inherent Addressing,INH) 40
3.3.2 立即定址(Immediate Addressing,IMM) 41
3.3.3 直接定址(Direct Addressing,DIR) 42
3.3.4 擴展定址(Extended Addressing,EXT) 42
3.3.5 相對定址(Relative Addressing,REL ) 43
3.3.6 變址定址(Indexed Addressing,IDX) 44
3.3.7 全局定址(Global Page Index Register) 50
3.4 S12X匯編指令系統 50
3.4.1 數據傳送指令 50
3.4.2 算術運算指令 58
3.4.3 邏輯運算指令 66
3.4.4 高級函數指令 71
3.4.5 程序控制指令 74
3.4.6 S12X控制指令 77
3.5 匯編程序偽指令 79
3.5.1 段定義指令 79
3.5.2 常量賦值指令 81
3.5.3 常量存儲指令 82
3.5.4 分配變數指令 84
3.5.5 匯編控制指令 85
3.5.6 符號鏈接指令 85
第4章 C語言的嵌入式編程 87
4.1 編程語言的選擇 87
4.2 C語言編程元素 88
4.2.1 全局變數和局部變數 88
4.2.2 頭文件 88
4.2.3 編譯預處理 89
4.2.4 數據類型 91
4.2.5 運算符 93
4.2.6 指針 95
4.2.7 條件語句、循環語句及無限循環語句 95
4.2.8 函數 98
4.3 C程序編譯器與交叉編譯器 101
4.4 CodeWarrior軟體簡介 102
4.4.1 CodeWarrior的安裝 102
4.4.2 CodeWarrior使用簡介 104
第5章 MC9S12XS輸入/輸出埠模塊及其應用實例 110
5.1 輸入/輸出埠簡介 110
5.2 輸入/輸出埠寄存器及設置 110
5.2.1 PORTA、PORTB、PORTE和PORTK 112
5.2.2 PORTT、PORTS、PORTM、PORTP、PORTH和PORTJ 114
5.2.3 A/D埠用做數字I/O口 116
5.3 輸入/輸出埠應用實例 118
5.3.1 控制輸出設備LED實例 118
5.3.2 讀取輸入設備撥碼開關狀態實例 120
5.4 輸入/輸出埠在智能車系統中的應用 121
5.4.1 鍵盤介面設計 121
5.4.2 LED顯示介面設計 122
5.4.3 LCD顯示介面設計 124
第6章 MC9S12系列中斷系統 129
6.1 MC9S12系列中斷系統概述 129
6.1.1 復位 130
6.1.2 中斷 131
6.2 MC9S12系列中斷優先順序 132
6.3 MC9S12系列中斷程序應用實例 135
第7章 MC9S12XS系列脈寬調制模塊及其應用實例 139
7.1 PWM模塊概述 139
7.2 PWM模塊結構組成和特點 139
7.3 PWM模塊寄存器及設置 140
7.3.1 PWM使能寄存器(PWME) 141
7.3.2 PWM極性寄存器(PWMPOL) 142
7.3.3 PWM時鍾選擇寄存器(PWMCLK) 143
7.3.4 PWM預分頻時鍾選擇寄存器(PWMPRCLK) 144
7.3.5 PWM居中對齊使能寄存器(PWMCAE) 145
7.3.6 PWM控制寄存器(PWMCTL) 146
7.3.7 PWM比例因子A寄存器(PWMSCLA) 148
7.3.8 PWM比例因子B寄存器(PWMSCLB) 148
7.3.9 PWM通道計數器(PWMCNT) 149
7.3.10 PWM通道周期寄存器(PWMPER) 149
7.3.11 PWM通道占空比寄存器(PWMDTY) 150
7.3.12 PWM關閉寄存器(PWMSDN) 152
7.4 PWM模塊應用實例 153
7.5 PWM模塊在智能車系統中的應用 155
7.5.1 應用PWM模塊控制直流電動機 155
7.5.2 應用PWM模塊控制伺服電動機 157
第8章 MC9S12XS128模/數轉換模塊及其應用實例 159
8.1 ATD模塊概述 159
8.2 ATD模塊結構組成和特點 159
8.3 ATD模塊寄存器及設置 161
8.3.1 ATD控制寄存器0(ATDCTL0) 161
8.3.2 ATD控制寄存器1(ATDCTL1) 162
8.3.3 ATD控制寄存器2(ATDCTL2) 164
8.3.4 ATD控制寄存器3(ATDCTL3) 165
8.3.5 ATD控制寄存器4(ATDCTL4) 167
8.3.6 ATD控制寄存器5(ATDCTL5) 167
8.3.7 ATD狀態寄存器0(ATDSTAT0) 169
8.3.8 ATD比較使能寄存器(ATDCMPE) 170
8.3.9 ATD狀態寄存器2(ATDSTAT2) 170
8.3.10 ATD輸入使能寄存器(ATDDIEN) 171
8.3.11 ATD比較大於寄存器(ATDCMPHT) 171
8.3.12 ATD轉換結果寄存器(ATDDRn) 172
8.4 ATD模塊應用實例 173
8.5 ATD模塊在智能車系統中的應用 174
8.5.1 ATD模塊在基於光電管路徑識別方案中的應用 174
8.5.2 ATD模塊在基於攝像頭路徑識別方案中的應用 176
第9章 MC9S12XS128定時器模塊及其應用實例 180
9.1 TIM模塊概述 181
9.2 TIM模塊結構和工作原理 181
9.2.1 TIM模塊結構 181
9.2.2 TIM模塊工作原理 181
9.2.3 TIM模塊寄存器 184
9.2.4 TIM模塊中斷系統 186
9.3 TIM模塊的自由運行計數器和定時器基本寄存器及設置 187
9.3.1 自由運行主定時器與時鍾頻率設置 187
9.3.2 TIM模塊基本寄存器及設置 188
9.4 TIM模塊的輸入捕捉功能及寄存器設置 191
9.4.1 TIM模塊輸入捕捉功能 192
9.4.2 與輸入捕捉功能相關的寄存器及設置 192
9.5 TIM模塊的輸出比較功能及寄存器設置 195
9.5.1 TIM模塊輸出比較功能 195
9.5.2 與輸出比較功能相關的寄存器及設置 196
9.6 TIM模塊的脈沖累加器功能及寄存器設置 199
9.6.1 TIM模塊脈沖累加器功能 199
9.6.2 與脈沖累加器相關的寄存器及設置 201
9.7 TIM模塊應用實例 203
9.7.1 輸入捕捉功能應用實例 203
9.7.2 輸出比較功能應用實例 205
9.7.3 脈沖累加器功能應用實例 211
9.8 TIM模塊在智能車系統中的應用 215
9.8.1 TIM模塊輸入捕捉功能在智能車系統中的應用 215
9.8.2 TIM模塊脈沖累加器功能在智能車系統中的應用 215
第10章 MC9S12XS128周期性中斷定時器模塊及其應用實例 217
10.1 PIT模塊概述 217
10.2 PIT模塊結構和工作原理 217
10.2.1 PIT模塊結構 217
10.2.2 PIT模塊工作原理 218
10.3 PIT模塊寄存器及設置 220
10.3.1 PIT控制和強制裝載微定時寄存器(PITCFLMT) 221
10.3.2 PIT強制裝載定時寄存器(PITFLT) 221
10.3.3 PIT通道使能寄存器(PITCE) 222
10.3.4 PIT復用寄存器(PITMUX) 222
10.3.5 PIT中斷使能寄存器(PITINTE) 222
10.3.6 PIT超時標志寄存器(PITTF) 223
10.3.7 PIT微定時裝載寄存器0和1(PITMTLD0/1) 223
10.3.8 PIT裝載寄存器0~3(PITLD0~3) 223
10.3.9 PIT計數寄存器0~3(PITCNT0~3) 224
10.4 PIT模塊應用實例 224
10.5 PIT模塊在智能車系統中的應用 226
第11章 MC9S12XS系列串列通信介面模塊及其應用實例 234
11.1 SCI模塊概述 234
11.2 SCI模塊結構組成和特點 234
11.3 SCI模塊寄存器 235
11.3.1 SCI波特率寄存器(SCIBDH,SCIBDL) 236
11.3.2 SCI控制寄存器1(SCICR1) 237
11.3.3 SCI可選狀態寄存器1(SCIASR1) 238
11.3.4 SCI可選控制寄存器1(SCIACR1) 239
11.3.5 SCI可選控制寄存器2(SCIACR2) 240
11.3.6 SCI控制寄存器2(SCICR2) 240
11.3.7 SCI狀態寄存器1(SCISR1) 241
11.3.8 SCI狀態寄存器2(SCISR2) 243
11.3.9 SCI數據寄存器(SCIDRH,SCIDRL) 244
11.4 SCI模塊應用實例 244
11.5 SCI模塊在智能車系統中的應用 248
第12章 MC9S12系列SPI和I2C模塊及其應用實例 251
12.1 SPI模塊 251
12.2 SPI模塊結構組成和特點 252
12.3 SPI模塊寄存器及設置 253
12.3.1 SPI控制寄存器1(SPICR1) 253
12.3.2 SPI控制寄存器2(SPICR2) 255
12.3.3 SPI波特率寄存器(SPIBR) 256
12.3.4 SPI狀態寄存器(SPISR) 258
12.3.5 SPI數據寄存器(SPIDR:SPIDRH,SPIDRL) 260
12.4 SPI模塊應用實例 260
12.5 I2C匯流排介面 262
12.5.1 I2C匯流排概述 262
12.5.2 I2C匯流排工作原理 263
12.6 I2C模塊結構組成和特點 265
12.7 I2C模塊寄存器及設置 266
12.7.1 I2C匯流排地址寄存器(IBAD) 267
12.7.2 I2C匯流排分頻寄存器(IBFD) 267
12.7.3 I2C匯流排控制寄存器(IBCR) 268
12.7.4 I2C匯流排狀態寄存器(IBSR) 269
12.7.5 I2C匯流排數據輸入/輸出寄存器(IBDR) 271
12.8 I2C模塊在智能車系統中的應用 271
第13章 綜合應用實例 275
13.1 概述 275
13.2 綜合應用實例1 275
13.2.1 系統組成 275
13.2.2 A/D輸入介面 276
13.2.3 顯示介面 276
13.2.4 通信介面 277
13.2.5 應用軟體設計 277
13.2.6 軟體流程圖 281
13.3 綜合應用實例2 283
13.3.1 系統組成 283
13.3.2 MircoSD卡介面 283
13.3.3 通信介面 284
13.3.4 SD卡工作電源 284
13.3.5 應用軟體設計 284
13.3.6 MircoSD卡應用軟體設計 286
13.3.7 軟體流程圖 288
13.4 綜合應用實例3 290
13.4.1 系統組成 291
13.4.2 A/D輸入介面 291
13.4.3 顯示介面 291
13.4.4 直流電動機驅動介面 291
13.4.5 測速輸入信號調理電路 293
13.4.6 伺服電動機驅動介面 293
13.4.7 應用軟體設計 293
13.4.8 軟體流程圖 295
13.5 綜合應用實例4 297
13.5.1 系統組成 297
13.5.2 起始線信號檢測方法 297
13.5.3 應用軟體設計 299
13.5.4 軟體流程圖 300
附錄A S12匯編指令系統匯總表 303
附錄B S12匯編指令系統匯總表解釋說明 317
附錄C S12匯編指令機器碼匯總表 322
附錄D S12X匯編指令機器碼匯總表解釋說明 326
附錄E HS12實驗開發平台 327
參考文獻 331

Ⅵ 飛思卡爾 mc9s12xs128 單片機 怎樣才可以 在EPROM 或者在 FASH 中 保存運行的參數

有相關資料可以參考的,你搜一下flash to epprom相關資料:
用Flash模擬EEPROM
本程序利用S08系列單片機的片內Flash模擬EEPROM。解決部分8位機沒有EEPROM導致在運用上的局限。本程序提供一個初始化函數和三個功能函數。用戶必須在調用功能函數前調用調用初始化函數。三個功能函數分別是位元組寫入、位元組讀取、EEPROM全擦除。用戶必須保證調用功能函數前有至少30Bate的棧空間。
本程序參考飛思卡爾公司提供的《在 HCS08 微控制器上使用 FLASH 存儲器模擬 EEPROM》。並在源程序的基礎上精簡了部分功能,減少了RAM使用量。並嘗試使用分頁機制確定EEPROM地址。
介面函數的EEPROM地址定址由頁地址和頁內偏移量組成。即把用戶定義的EEPROM分為若干個大小為256位元組的頁。其地址與FLASH地址的換算關系為:
FLASH真實地址=EEPROM空間起始地址+頁地址×256+頁內偏移地址
用戶在使用EEPROM是只用確定數據保存在EEPROM的相對地址即可。介面函數原型為:
EEPROM_WRITE_DATA(數據,頁地址, 頁內偏移地址);
Char EEPROM_READ_DATA(頁地址, 頁內偏移地址);

1. 程序流程分析與設計。
由於S08系列單片機在Flash寫入時序中不能進行任何的Flash讀操作,Flash寫入指令必須放到RAM中執行並關閉所有可屏蔽中斷。程序流程如圖13-1-?。

位元組寫入/.全擦除程序流程 位元組讀取程序流程
圖13-1-?
2.程序源代碼。此程序在CodeWarrior 6.0繼承編譯環境中編譯通過

/*****************************************************/
//河南工業大學Freescale MCU&DSP聯合實驗室
// 文件名:flash_program.h
// CPU :MC9S08AW60
// 版 本:v1.0
// 日 期:2008年8月12日
// 調試環境:CodeWarrior 6.0
// 作 者:曾 滔
// 描 述: 頭文件,用於保存初始化EEPROM設定、用戶定製參數、編譯器參數等信息。
/*****************************************************/
#include <hidef.h>
#include "derivative.h"
#include <stdio.h>

/*************flash編程指令(請勿改動)*****************/
#define BLACK_CHECK 0x05 //查空指令
#define BITE_PROGRAM 0x20 //位元組編程指令
#define BURST_PROGRAM 0x25 //快速編程指令
#define PAGE_ERASE 0x40 //頁擦除指令(1頁=512位元組)
#define MASS_ERASE 0x41 //全擦除指令

/******用戶定製參數(根據單片機型號和用戶flash使用情況定製)**********/
#define EEPROM_START_ADDRESS 0xE000 //EEPROM區起始地址。512B的倍數
#define EEPROM_PAGE_NUM 8 //EEPROM頁數。1page=256B
#define BUS_FREQUENCY 2000 //匯流排頻率。單位(KHz)

/********************編譯器相關參數**************************/
#define INT8U unsigned char //無符號位元組變數。根據編譯器更改。默認CodeWarrior 6.0
#define INT16U unsigned short int //無符號字變數。根據編譯器更改。默認CodeWarrior 6.0
/***********EEPROM API函數原型***********/
//初始化程序。此函數必須在使用EEPROM前調用。建議用戶在系統初始化是調用。
void INIT_EEPROM(void);
//EEPROM擦除函數。擦除所有EEPROM數據。
void EEPROM_ERASE(void);
//EEPROM位元組寫入函數。寫入一個位元組到EEPROM指定區域。
void EEPROM_WRITE_DATA(INT8U data,INT8U EEPROM_page,INT8U offset_address)
//EEPROM讀出函數。讀出一個指定的區域所保存的位元組的到函數返回值。
char EEPROM_READ_DATA(INT8U EEPROM_page,INT8U offset_address);
/****************************END************************************/

/*****************************************************/
//河南工業大學Freescale MCU&DSP聯合實驗室
// 文件名:flash_program.c
// C P U :MC9S08AW60
// 版 本:v1.0
// 日 期:2008年8月12日
// 調試環境:CodeWarrior 6.0
// 作 者:曾 滔
// 描 述:提供了一個初始化函數和三個功能函數供用戶調用,沒有可更改參數。
/*****************************************************/
#include "flash_program.h"

const INT8U FLASH_CODE[]={ // ; flash操作代碼
0x45, 0x18, 0x26, // LDHX #$1826 ; FCMD地址寫入H:X
0xA6, 0x00, // LDA #$00 ; 0x00為命令佔位符
0xF7, // STA ,X ; 將命令寫入FCMD命令緩存器
0x5A, // DECX ; 指針指向 FSTAT
0xF6, // LDA ,X ;
0xAA, 0x80, // ORA #$80 ;
0xF7, // STA ,X ; 置位FSTAT_FCBEF。啟動flash寫入命令
0xF6, // LDA ,X ; 等待3個時鍾周期(請勿刪除此代碼)
0xF6, // LDA ,X ; 讀取FSTAT
0xA5, 0x30, // BIT #$30
0x26, 0x05, // BNE *+6 ; 錯誤則返回
//LOOP
0xF6, // LDA ,X ; 等待寫操作結束
0xA5, 0x40, // BIT #$40
0x27, 0xFB, // BEQ *-3 ; 跳轉到LOOP
//EXIT:
0X81 //RTS ; 返回
};
/*********************初始化函數**********************************/
#if BUS_FREQUENCY >= 12000
void INIT_EEPROM(void){FCDIV=(((BUS_FREQUENCY/(8*175)))|0x40)-1;}
#endif
#if BUS_FREQUENCY < 12000
void INIT_EEPROM(void){FCDIV=(BUS_FREQUENCY/175)-1;}
#endif

/***********************EEPROM位元組寫入函數****************************/
void EEPROM_WRITE_DATA(INT8U data,INT8U EEPROM_page,INT8U offset_address)
{

INT16U address; //存放寫入地址
INT8U code_space[23]; //初始化代碼空間

if(EEPROM_page>=EEPROM_PAGE_NUM)return; //地址錯誤返回,保護用戶代碼
address=offset_address+EEPROM_page*256+EEPROM_START_ADDRESS; //地址轉化
(void)memcpy(code_space,FLASH_CODE,23); //復制flash操作代碼到RAM

code_space[4] = BITE_PROGRAM; //修改命令佔位符為寫入命令

DisableInterrupts; //關中斷
if (FSTAT&0x10){ //清錯誤標志
FSTAT = FSTAT|0x10;
}
_asm
{ //寫入初始化
LDHX address;
LDA data;
STA ,X; //寫入緩存
TSX;
JSR 2,x; //跳入RAM執行
}
EnableInterrupts; //開中斷
__RESET_WATCHDOG();
}

/********************EEPROM字讀取入函數********************************/
char EEPROM_READ_DATA(INT8U EEPROM_page,INT8U offset_address){

unsigned short int address; //地址變數
char rusult; //數據變數
address=offset_address+EEPROM_page*0x100+EEPROM_START_ADDRESS; //地址轉換
asm{
LDHX address;
LDA ,X; //讀取地址到數據變數
STA rusult;
}
__RESET_WATCHDOG();
return(rusult); //返回
}

/**********************EEPROM擦除函數********************************/
void EEPROM_ERASE(void)
{
INT16U address;
INT8U i; //循環變數
INT8U code_space[23];

for(i=0;i<(EEPROM_PAGE_NUM/2);i++){ //分頁擦除

address=i*0x200+EEPROM_START_ADDRESS;

(void)memcpy(code_space,FLASH_CODE,23); //復制flash操作代碼到RAM

code_space[4] = PAGE_ERASE; //修改命令佔位符為擦除命令

DisableInterrupts; //關中斷

if (FSTAT&0x10){ //清錯誤標志
FSTAT = FSTAT | 0x10;
}
_asm
{
LDHX address; //擦除地址寫入緩存
STA ,X;
TSX;
JSR 3,x; //跳入RAM執行
}
EnableInterrupts; //開中斷
__RESET_WATCHDOG();
}
}
/****************************END************************************/

/*****************************************************/
// 版權所有(c)河南工業大學
// 文件名:mian.c
// C P U :MC9S08AW60
// 版 本:v1.0
// 日 期:2008年8月12日
// 調試環境:CodeWarrior 6.0
// 作 者:曾 滔
// 描 述: 測試Flash模擬EEPROM程序。
/*****************************************************/
#include <hidef.h>
#include "derivative.h"
#include "flash_program.h"

void main(void){
char temp;
PTADD=0XFF;

INIT_EEPROM(); //初始化Flash控制寄存器。
do{
EEPROM_WRITE_DATA(88,0,0); //寫入一個位元組。
temp=EEPROM_READ_DATA(0,0); //讀取一個位元組
}while(temp!=88); //若寫入失敗則再次寫入
PTAD_PTAD0=1;

do{
EEPROM_ERASE();
}while(EEPROM_READ_DATA(0,0)!=0xff); //擦除Flash

PTAD_PTAD1=1;
for(;;)__RESET_WATCHDOG(); //死循環
}

Ⅶ ec9s12xs128是什麼單片機

1、MC9S12XS128是Freescale公司的16位單片機,由16位中央處理單元(CPU12X)、128KB程序Flash(P-lash)、8KB RAM、8KB數據Flash(D-lash)組成片內存儲器
2、Freescale 公司的16位單片機主要分為HC12 、HCS12、HCS12X三個系列。HC12核心是16位高速CPU12核,匯流排速度8MHZ;HCS12系列單片機以速度更快的CPU12內核為核心,簡稱S12系列,典型的S12匯流排速度可以達到25MHZ。HCS12X系列單片機是Freescale 公司於2005年推出的HCS12系列增強型產品,基於S12 CPU內核,可以達到25MHz的HCS12的2-5倍性能。匯流排頻率最高可達40 MHz。S12X系列單片機目前又有幾個子系列:MC9S12XA系列、MC9S12XB系列、MC9S12XD系列、MC9S12XE系列、MC9S12XF系列、MC9S12XH系列和MC9S12XS系列。MC9S12XS128就是S12X系列中的一個成員
3、主要功能模塊包括:
內部存儲器
內部PLL鎖相環模塊
2個非同步串口通訊 SCI
1個串列外設介面 SPI
MSCAN 模塊
1個8通道輸入/輸出比較定時器模塊 TIM
周期中斷定時器模塊 PIT
16通道A/D轉換模塊 ADC
1個8通道脈沖寬度調制模塊
PWM 輸入/輸出數字I/O口
4、詳見參考:http://wenku..com/link?url=KDgQAfL9qbJJXoiyBB-oy4TFd7M-axPBr97ajZCazgiLGURo_

Ⅷ 飛思卡爾MC9S12XS128MAL單片機中斷問題

生產廠商Freescale Semiconctor - NXP
供應商:拍明芯城元器件商城
工廠包裝數量 300
程序存儲器大小 128 kB
輸入/輸出端數量 91 I/O
Number of Timers/Counters 12 Timer
封裝/外殼 LQFP-112
工作電源電壓 2.5 V, 5 V
核心 HCS12X
數據匯流排寬度 16 bit
品牌 NXP / Freescale
程序存儲器類型 Flash
安裝風格 SMD/SMT
最大時鍾頻率 40 MHz
最高工作溫度 + 125 C
Number of ADC Channels 16 Channel
數據RAM大小 8 kB
長度 20 mm
介面類型 CAN, SCI, SPI
RoHS RoHS Compliant
系列 S12XS
ADC解析度 12 bit
身高 1.45 mm
封裝 Tray
最低工作溫度 - 40 C
信息處理器系列 S12XS

Ⅸ mc9s12單片機調試一定要用調試器嗎

是的,否則無法實時訪問和控制指令運行及停止,無法讀取各個寄存器。

Ⅹ mc9s12xs128這個單片機中的IRQ中斷怎麼設置可以進行下降沿計數

手冊上有的,H口,初始化程序那兒,PPSH寄存器選擇觸發方式,1是上升沿,0是下降沿。你要將哪個口邊上升沿觸發,直接PPSH_PPSH*=1;就好了(把*改成你要的位,比如PPSH_PPSH0=1就是把H0口中斷觸發改為上升沿)。

閱讀全文

與mc9s12x單片機相關的資料

熱點內容
dvd光碟存儲漢子演算法 瀏覽:755
蘋果郵件無法連接伺服器地址 瀏覽:960
phpffmpeg轉碼 瀏覽:671
長沙好玩的解壓項目 瀏覽:142
專屬學情分析報告是什麼app 瀏覽:563
php工程部署 瀏覽:831
android全屏透明 瀏覽:732
阿里雲伺服器已開通怎麼辦 瀏覽:802
光遇為什麼登錄時伺服器已滿 瀏覽:301
PDF分析 瀏覽:484
h3c光纖全工半全工設置命令 瀏覽:141
公司法pdf下載 瀏覽:381
linuxmarkdown 瀏覽:350
華為手機怎麼多選文件夾 瀏覽:683
如何取消命令方塊指令 瀏覽:349
風翼app為什麼進不去了 瀏覽:778
im4java壓縮圖片 瀏覽:362
數據查詢網站源碼 瀏覽:150
伊克塞爾文檔怎麼進行加密 瀏覽:890
app轉賬是什麼 瀏覽:163