搜档网
当前位置:搜档网 › MC9S12XS128单片机简介

MC9S12XS128单片机简介

MC9S12XS128单片机简介
MC9S12XS128单片机简介

MC9S12XS128 单片机简介

1、HCS12X 系列单片机简介

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 系列中的一个成员。

2、MC9S12XS128 性能概述

MC9S12XS128 是16 位单片机,由16 位中央处理单元(CPU12X)、128KB 程序

Flash(P-lash)、8KB RAM、8KB 数据Flash(D-lash)组成片内存储器。主要功能模块包

括:

内部存储器

内部PLL 锁相环模块

2 个异步串口通讯SCI

1 个串行外设接口SPI

MSCAN 模块

1 个8 通道输入/输出比较定时器模块TIM

周期中断定时器模块PIT

16 通道A/D 转换模块ADC

1 个8 通道脉冲宽度调制模块PWM

输入/输出数字I/O 口

3、输入/输出数字I/O 口

MC9S12XS128 有3 种封装,分别为64 引脚、80 引脚、112 引脚封装。其全名分别为MC9S12XS128MAE、MC9S12XS128MAA、MC9S12XS128MAL。MC9S12XS 系列具有丰富的输入/输出端口资源,同时集成了多种功能模块,端口包括PORTA、PORTB、PORTE、PORTK、PORTT、PORTS、PORTM、PORTP、PORTH、PORTJ 和PORTAD 共11 个端口。端口引脚大多为复用口,往往具有多重功能,所有端口都具有通用I/O 口功能。

PORTA、PORTB、PORTK 为通用I/O 口

PORTE 中的IRO 和XIRQ 引脚可作为外部中断输入

PORTT 集成了TIM 模块功能

PORTS 集成了SCI 和SPI 模块功能

PORTM 集成了CAN 总线模块

PORTP 集成了PWM 模块功能

PORTH、PORTJ 可作为外部中断输入口

PORTAD 集成了ATD 模块功能

在MC9S12XS128 单片机中有些特殊功能可定义为多个引脚,如PWM、SCI1 模块。对于这些具有相同功能的引脚定义,由端口T 路径寄存器PTTRR 和模块路径寄存器MODRR 确定。MC9S12XS128 的 3 种封装的引脚数目不一样,所具有的通用端口的引脚和功能有

一定差异,下表列出 3 种封装对应的引脚和引脚数目。

4、输入输出端口功能和配置

通用I/O 通过配置相应寄存器位,可以设置为输入/输出端口、驱动能力、内置上拉/下拉电阻使用、中断输入方式等多种功能。下面我们以80 引脚的MC9S12XS128 单片机讨论其各个I/O 的配置和功能:

1. PORTA:PORTA 为通用I/O 口, 共8 个,作为通用数字I/O 口使用,未集成特殊功能.主要配置寄存器有:数据寄存器PORTA、数据方向寄存DDRA、上拉电阻控制寄存器PUCR 和驱动控制寄存器RDR。

a.数据寄存器PORTA

通过写1/0 使单片机对应引脚输出高低电平,或通过读取数据寄存器获得对应引脚的高低电平值。例:PORTA_PB0=1

b.数据方向寄存器DDRA

DDRA 寄存器配置引脚为输出口还是输入口,“0”,输入口;“1”,输出口。MCU 复位后,DDRA 值为0x00, 引脚默认为输入口。例:DDRA=0xFF //配置PORTA 口为输出

c.上拉电阻控制寄存器PUCR

PORTA 、PORTB、PORTE、PORTK 端口都有内置上拉电阻,它们共用上拉电阻控制寄存器PUCR 。PUCR 的7、4、1、0 位分别设置这4 个端口。“1”对应端口上拉电阻使能;“0”上拉电阻禁止。PUCR 第 6 位设置BKGD 引脚上拉电阻, 复位为1,默认使用上拉。

例:PUCR_PUPAE=1 //使能PORTA 上拉电阻

d.驱动控制寄存器RDR

当PORTA 、PORTB、PORTE、PORTK 端口设置为输出口时,驱动控制寄存器RDR 的7、4、1、0 位分别设置这4 个端口的输出驱动能力。“1”输出驱动能力降低;“0”正常输出驱动方式。

2. PORTB:PORTB 为通用数字I/O 口, 共8 个。其使用与PORTA 基本一样。主要配置寄存器有:数据寄存器PORTB、数据方向寄存DDRB。上拉电阻控制寄存器PUCR 和驱动控制寄存器RDR 与PORTA 、PORTB、PORTE、PORTK 共用。

a.数据寄存器PORTB

b.数据方向寄存器DDRB

3. PORTE:PORTE 可作为通用数字I/O 口使用, 80 封装也有共8 个引脚。其使用与PORTA 基本一样。但是PORTE 中集成了外部中断输入功能,其PE0/XIRQ 和PE1/IRO 引脚可作为外部中断输入。并且这两位只能作为输入口使用。主要配置寄存器有:数据寄存器PORTE、数据方向寄存DDRE。

a.数据寄存器PORTE

b.数据方向寄存器DDRE

4. PORTK:PORTK 为通用数字I/O 口。但从前表可以看出112 封装单片机PORTK 口有7 个,80 封装和64 封装没有PORTK 口。其使用与PORTA 基本一样。主要配置寄存器有:数据寄存器PORTK、数据方向寄存DDRK。

5. PORTH:PORTH 可作为通用数字I/O 口使用, 也集成了外部中断输入功能。但80封装没有PORTH 口,在此不作详细描述。

6. PORTT 、PORTS 、PORTM 、PORTP 、PORTH 、PORTJ:此6 个端口的寄存器名称和功能基本上是一样的。主要配置寄存器有:数据寄存器PTx、输入寄存器PTIx、数据方向寄存DDRx、驱动控制寄存器RDRx、上拉/下拉使能寄存器PERx 和上拉/下拉选择寄存器PPSx 共 6 个寄存器。因PORTP 、PORTH 、PORTJ 三个端口具有外部中断功能,增加了中断使能寄存器PIEx 和中断标志寄存器PIFx 两个寄存器。

a.数据寄存器PTx: 与通用通用I/O 口的数据寄存器操作和功能基本一样。只是PORTJ

只能对最低两位和最高两位进行有效操作。

b.输入寄存器PTIx

输入寄存器是只读寄存器,对应引脚为输入时,读取PTIx 返回引脚电平值。

c.数据方向寄存DDRx:与通用I/O 口的数据方向寄存器操作和功能基本一样。

d.驱动控制寄存器RDRx

与通用I/O 口的驱动控制寄存器RDR 操作和功能基本一样。“1”输出驱动能力为正常时的1/5;“0”正常输出驱动方式。

e.上拉/下拉使能寄存器PERx

“1”选择使用内部上拉/下拉电阻,“0”禁用,复位值为0。

f.上拉/下拉选择寄存器PPSx

“1”选择使用内部下拉电阻,“0”选择使用内部上拉电阻,复位值为0。

PORTP 、PORTH 、PORTJ 具有外部中断功能,当对应引脚使能中断时,则PPSx 对应位为“1”时,中断为下降沿出发,“0”中断为上升沿出发。

G.中断使能寄存器PIEx

PORTP、PORTH 、PORTJ 中断使能位,“1”允许中断,“0”禁止中断,复位为0。

H.中断标志寄存器PIFx

使用中断时,对应引脚的中断标志位。向对应位写“1”清除中断标志位。

5、电源相关引脚

引脚名称(17)额定电压/V描述

VDDR 5.0外部电源,为内部电压调节器

供电

VSSR0

VDDX2、VDDX1 5.0外部电源和地,为I/O 口供电

VSSX2、VSSX10/

6、其他引脚

1.XTAL 和EXTAL(35、34)振荡器引脚

2.RESET (30)外部复位引脚

3.BKGD/MODC(15)背景调试和模式引脚

4.TEST(67)工厂内部用,需接地

7、MC9S12XS128 的存储器映射

MC9S12XS128 内置128KB 程序Flash(P-lash)、8 KB RAM 和8 KB 数据Flash(D-lash)。下图列出单片机本地存储器映射和全局存储器地址映射。

2 KB 寄存器地址:从0x0000-0x07FF 是2 KB 寄存器地址空间

8 KB 数据Flash(D-lash):0x0800-0x0bff 1 KB 是数据Flash(D-lash)页面空间,可通过EPAGE 寄存器将这1 KB 的页面区映射到数据Flash 页面中。8 KB D-lash 分为8

页,每页为1 KB,每256B 为 1 扇区,共32 个扇区。8 KB 数据Flash 其全局地址空间为0x10_0000-0x10_1FFF。本地地址映射分别为:

EEPROM_00 0x000800 TO 0x000BFF

EEPROM_01 0x010800 TO 0x010BFF

EEPROM_02 0x020800 TO 0x020BFF

EEPROM_03 0x030800 TO 0x030BFF

EEPROM_04 0x040800 TO 0x040BFF

EEPROM_05 0x050800 TO 0x050BFF

EEPROM_06 0x060800 TO 0x060BFF

EEPROM_07 0x070800 TO 0x070BFF

8 KB RAM:从0x2000-0x3FFF 是8 KB 固定RAM 地址空间

RAM 0x2000 TO 0x3FFF

128 KB 程序Flash(P-lash) :从本地地址0x4000-0xFFFF 共48 KB 是程序

Flash(P-lash)存储空间,共分为3 个16 KB 空间。第一16 KB 空间0x4000-0x7FFF 和最后一个16 KB 空间0xC000-0xFFFF 是固定程序空间,中间16 KB 空间0x8000-0xBFFF

是程序Flash 分页映射窗口。可通过PPAGE 寄存器将这16 KB 的页面区映射到程序Flash 页面中。128 KB P -lash 分为8 页,两个固定页和 6 个映射页面空间,每页为16 KB,每 1 KB 为1 扇区,共128 个扇区。128 KB 程序Flash 其全局地址空间为0x7E_0000-0x7F_FFFF。本地地址映射分别为:

PAGE_F8 0xF88000 TO 0xF8BFFF

PAGE_F9 0xF98000 TO 0xF9BFFF

PAGE_FA 0xFA8000 TO 0xFABFFF

PAGE_FB 0xFB8000 TO 0xFBBFFF

PAGE_FC 0xFC8000 TO 0xFCBFFF

PAGE_FE 0xFE8000 TO 0xFEBFFF

MC9S12XS128

【用途】

16位单片机

【性能参数】

MC9S12XS128是一款针对汽车电子市场的高性能16位单片机,具有速度快、功能强、成本低、功耗低等特点。

特性:

1)总线速度高达40 MHz;

2)128 KB程序Flash和8 KB DataFlash,用于实现程序和数据存储,均带有错误校正码(ECC);

3)可配置8位、10位或12位ADC,3μs的转换时间;

4)内嵌MSCAN模块用于CAN节点应用,内嵌支持LIN协议的增强型SCI模块及SPI模块;

5)4通道16位计数器;

6)出色的低功耗特性,带有中断唤醒功能的10,实现唤醒休眠系统的功能;

7)8通道PWM,易于实现电机控制。

MC9S12XS128 AD转换详解

A/D转换模块详解 1、A/D转换原理 A/D转换的过程是模拟信号依次通过取样、保持和量化、编码几个过程后转换为数字格式。 a)取样与保持 一般取样与保持过程是同时完成的,取样-保持电路的原理图如图16所示,由输 入放大器A 1、输出放大器A 2 、保持电容C H 和电子开关S组成,要求 A V1 * A V2 = 1。原 理是:当开关S闭合时,电路处于取样阶段,电容器充电,由于 A V1 * A V2 = 1,所以 输出等于输入;当开关S断开时,由于A 2输入阻抗较大而且开关理想,可认为C H 没有 放电回路,输出电压保持不变。 图16 取样-保持电路 取样-保持以均匀间隔对模拟信号进行抽样,并且在每个抽样运算后在足够的时间内保持抽样值恒定,以保证输出值可以被A/D 转换器精确转换。 b)量化与编码 量化的方法,一般有舍尾取整法和四舍五入法,过程是先取顶量化单位Δ,量化单位取值越小,量化误差的绝对值就越小,具体过程在这里就不做介绍了。将量化后的结果用二进制码表示叫做编码。 2、A/D转换器的技术指标 a)分辨率 分辨率说明A/D转换器对输入信号的分辨能力,理论上,n位A/D转换器能区分的输入电压的最小值为满量程的1/2n 。也就是说,在参考电压一定时,输出位数越多,量化单位就越小,分辨率就越高。S12的ATD模块中,若输出设置为8位的话,那么转换器能区分的输入信号最小电压为19.53mV。 b)转换时间

A/D转换器按其工作原理可以分为并联比较型(转换速度快ns级)、逐次逼近型(转换速度适中us级)、双积分型(速度慢抗干扰能力强)。 不同类型的转化的A/D转换器转换时间不尽相同,S12的ATD模块中,8位数字 量转换时间仅有6us,10位数字量转换时间仅有7us。 S12内置了2组10位/8位的A/D模块:ATD0和ATD1,共有16个模拟量输入通道,属于逐次逼近型A/D转换器(这个转换过程与用天平称物的原理相似)。 1、功能结构图 图17 A/D 模块功能结构图 图17所示的是A/D 模块的功能结构,这个功能模块被虚线划分成为图示所示的虚线所隔离的三个部分:IP总线接口、转换模式控制/寄存器列表,自定义模拟量。 IP 总线接口负责该模块与总线的连接,实现A/D 模块和通用I/O 的目的,还起 到分频的作用; 转换模式控制寄存器列表中有控制该模块的所有的寄存器,执行左右对齐运行和连 续扫描。 自定义模拟量负责实现模拟量到数字量的转换。包括了执行一次简单转换所需的模 拟量和数字量。 2、HCS12中A/D转化模块特点 8/10 位精度;7 us, 10-位单次转换时间.;采样缓冲放大器;可编程采样时间;左/ 右对齐, 有符号/无符号结果数据;外部触发控制;转换完成中断;模拟输入8 通道复用;模拟/数字输入引脚复用;1到8转换序列长度;连续转换模式;多通道扫描方式。 ATD 模块有模拟量前端、模拟量转换、控制部分及结果存储等四部分组成。其中模拟前端包括多路转换开关、采样缓冲器、放大器等,结果存储部分主要有8个16 位的存储器和反映工作状态的若干标志位。 A/D转换应用实例 要让ATD 开始转换工作,必须经过以下三个步骤: 1.将ADPU 置1,使ATD 启动;

51单片机实例(含详细代码说明)

1.闪烁灯 1.实验任务 如图4.1.1所示:在P1.0端口上接一个发光二极管L1,使L1在不停地一亮一灭,一亮一灭的时间间隔为0.2秒。 2.电路原理图 图4.1.1 3.系统板上硬件连线 把“单片机系统”区域中的P1.0端口用导线连接到“八路发光二极管指示模块”区域中的L1端口上。 4.程序设计内容 (1).延时程序的设计方法 作为单片机的指令的执行的时间是很短,数量大微秒级,因此,我们要 求的闪烁时间间隔为0.2秒,相对于微秒来说,相差太大,所以我们在 执行某一指令时,插入延时程序,来达到我们的要求,但这样的延时程 序是如何设计呢?下面具体介绍其原理:

如图4.1.1所示的石英晶体为12MHz,因此,1个机器周期为1微秒机器周期微秒 MOV R6,#20 2个 2 D1: MOV R7,#248 2个 2 2+2×248=498 20× DJNZ R7,$ 2个2×248 (498 DJNZ R6,D1 2个2×20=40 10002 因此,上面的延时程序时间为10.002ms。 由以上可知,当R6=10、R7=248时,延时5ms,R6=20、R7=248时, 延时10ms,以此为基本的计时单位。如本实验要求0.2秒=200ms, 10ms×R5=200ms,则R5=20,延时子程序如下: DELAY: MOV R5,#20 D1: MOV R6,#20 D2: MOV R7,#248 DJNZ R7,$ DJNZ R6,D2 DJNZ R5,D1 RET (2).输出控制 如图1所示,当P1.0端口输出高电平,即P1.0=1时,根据发光二极管 的单向导电性可知,这时发光二极管L1熄灭;当P1.0端口输出低电平, 即P1.0=0时,发光二极管L1亮;我们可以使用SETB P1.0指令使P1.0 端口输出高电平,使用CLR P1.0指令使P1.0端口输出低电平。 5.程序框图 如图4.1.2所示

飞思卡尔MC9S12XS128技术手册翻译AD

飞思卡尔MC9S12XS128技术手册(AD转换部分) 英文资料:飞思卡尔MC9S12XS256RMV1官方技术手册 1.1 XS12系列单片机的特点 XS12系列单片机特点如下: ·16位S12CPU —向上支持S12模糊指令集并去除了其中的MEM, WAV, WAVR, REV, REVW 五条指令; —模块映射地址机制(MMC); —背景调试模块(BDM); ·CRG时钟和复位发生器 —COP看门狗; —实时中断; ·标准定时器模块 —8个16位输入捕捉或输出比较通道;; —16位计数器,8位精密与分频功能; —1个16位脉冲累加器; ·周期中断定时器PIT —4具有独立溢出定时的定时器; —溢出定时可选范围在1到2^24总线时钟; —溢出中断和外部触发器; ·多达8个的8位或4个16位PWM通道 —每个通道的周期和占空比有程序决定; —输出方式可以选择左对齐或中心对其; —可编程时钟选择逻辑,且可选频率范围很宽; ·SPI通信模块 —可选择8位或16位数据宽度;

—全双工或半双工通信方式; —收发双向缓冲; —主机或从机模式; —可选择最高有效为先输出或者最低有效位先输出; ·两个SCI串行通信接口 —全双工或半双工模式 ·输入输出端口 —多达91个通用I/O引脚,根据封装方式,有些引脚未被引出; —两个单输入引脚; ·封装形式 —112引脚薄型四边引线扁平封装(LQFP); —80引脚扁平封装(QFP); —64引脚LQFP封装; ·工作条件 —全功率模式下单电源供电范围3.15V到5V; —CPU总线频率最大为40MHz —工作温度范围–40 C到125 C 第十章模拟—数字转换 10.1 介绍 ADC12B16C是一个16通道,12位,复用方式输入逐次逼近模拟—数字转换器。 ATD的精度由电器规格决定。 10.1.1 特点 ·可设置8位、10位、12位精度 ·在停止模式下,ATD转换使用内部时钟 ·转换序列结束后自动进入低耗电模式 ·可编程采样时间 ·转化结果可选择左对齐或右对齐

c51单片机实例下载大全

单片机资料教程下载,省去找资料的麻烦,只供学习参考用,下载24内删掉,祝大家学习进步 单片机点阵学习资料 https://www.sodocs.net/doc/442971949.html,/thread-1703-1-1.html 手把手教你学单片机--教程视频 https://www.sodocs.net/doc/442971949.html,/thread-1688-1-1.html 力天把手教你学单片机视频教程 https://www.sodocs.net/doc/442971949.html,/thread-1689-1-1.html 谱中单片机开发板例程 https://www.sodocs.net/doc/442971949.html,/thread-1683-1-2.html 初学单片机的30,硬件简单对初学者有帮助 https://www.sodocs.net/doc/442971949.html,/thread-1962-1-1.html 用单片机制作的MP3 https://www.sodocs.net/doc/442971949.html,/thread-1701-1-2.html 51单片机应用开发大全所含100个范例代码及电路图 https://www.sodocs.net/doc/442971949.html,/thread-1820-1-1.html 【含28个单片机实例流程图】 https://www.sodocs.net/doc/442971949.html,/thread-1959-1-2.html 谱中单片机程序烧录工具STC https://www.sodocs.net/doc/442971949.html,/thread-1682-1-2.html 《单片机技术》32讲

https://www.sodocs.net/doc/442971949.html,/thread-1693-1-1.html 51单片机c语言100例教程 https://www.sodocs.net/doc/442971949.html,/thread-1700-1-1.html 单片机超级精华包 https://www.sodocs.net/doc/442971949.html,/thread-1687-1-1.html 新手学的多功能电子钟 https://www.sodocs.net/doc/442971949.html,/thread-1679-1-1.html 十天学会单片机和c语言视频教程 https://www.sodocs.net/doc/442971949.html,/thread-1692-1-1.html C语言函数库速查手册 https://www.sodocs.net/doc/442971949.html,/thread-1696-1-1.html 历史上最全的KEIL中文学习资料 https://www.sodocs.net/doc/442971949.html,/thread-1729-1-2.html 单片机c语言程序设计实训100例--基于AVR+PROTUES https://www.sodocs.net/doc/442971949.html,/thread-1695-1-2.html (有电路图和程序) https://www.sodocs.net/doc/442971949.html,/thread-1965-1-1.html 关于单片机抗干扰的资料 https://www.sodocs.net/doc/442971949.html,/thread-1961-1-1.html 单片机矩阵扫描键盘程序 https://www.sodocs.net/doc/442971949.html,/thread-1723-1-1.html 共享通过串口在线调试51单片机的专业版培训资料

MC9S12XS128终极例程

SCI程序 串行通信时MCU与外部设备之间进行通信的一种简单而有效的硬件方法。 无论用查询方式还是中断方式进行串行通信编程,在程序初始化时均必须对SCI进行初始化。初始化主要包括波特率设置、通信格式的设置、发送接收数据方式的设置等。 对SCI进行初始化,需要设置如下几部分: (1)定义波特率 一般选内部总线时钟为串行通信的时钟源。通过设置SCI波特率寄存器SCI0BD的波特率选择位SBR[12:0],来选择合适的分频系数。 (2)写控制字到SCI控制寄存器1(SCI0CR1) 设置是否允许SCI、数据长度、输出格式、选择唤醒方法、是否校验等。 (3)写控制字到SCI控制寄存器2(SCI0CR2) 设置是否允许发送与接收、是中断接收还是查询接收等。 串行通信程序如下: /** write in “Init.h” **/ #include /* common defines and macros */ #include "derivative.h" /* derivative-specific definitions */ //void InitBusClk(void); //可以不使用锁相环 void InitSci(void); /** write in “Init.c” **/ //初始化程序 #include "Init.h" /* //------------初始化Bus Clock------------// void InitBusClk(void) { DisableInterrupts; CLKSEL=0X00; //PLLSEL 1 : Bus Clock=PLLCLK/2 // 0 : Bus Clock=OSCCLK/2 PLLCTL_PLLON=1; //开启PLL SYNR=0; //OSCCLK=16MHz REFDV=0X0F; //PLLCLK=2*OSCCLK*[(1+SYNR)/(1+REFDV]=32/16=2MHz while(!(CRGFLG_LOCK==1)); //直到LOCK=1,when PLL is ready,退出循环 CLKSEL_PLLSEL=1; //PLLSEL 1 : Bus Clock=PLLCLK/2=2MHz/2=1MHz // 0 : Bus Clock=OSCCLK/2=16M/2=8MHz } */

单片机原理与C51语言程序设计与基础教程 课后习题答案

单片机原理与C51语言程序设计与基础教 程课后习题答案 习题 填空题 1.一般而言,微型计算机包括、、、四个基本组成部分。 2.单片机是一块芯片上的微型计算机。以为核心的硬件电路称为单片机系统,它属于地应用范畴。 3.Atmel 公司生产的CMOS型51系列单片机,具有内核,用 代替ROM作为程序存储器, 4.单片机根据工作温度可分为、和三种。民用级的温度范围是0℃一70℃,工业级是-40℃~85℃,军用级是-55℃-125℃(不同厂家的划分标推可能不同。 5.在单片机领域内,ICE的含义是。 选择题 1.单片机的工作电压一般为V? A 5V B 3V C 1V D 4V 2.单片机作为微机的一种,它具有如下特点: A 具有优异的性能价格比 B 集成度高、体积小、可靠性高 C 控制功能强,开发应用方便 D 低电压、低功耗。 3.民用级单片机的温度范围是: A -40℃~85℃ B 0℃一70℃ C -55℃-125℃ D 0℃一50℃ 4.MCS-51系列单片机最多有个中端源。 A 3 B 4 C 5 D 6 5.下列简写名称中不是单片机或单片机系统的是 A MCU B SCM C ICE D CPU 问答题 1.单片机常用的应用领域有哪些? 2.我们如何学习单片机这么技术? 3.单片机从用途上可分成哪几类?分别由什么用处? 答案

填空题 1.运算器、控制器、存储器、输入输出接口 2.单片机嵌入式系统 3.MCS-51 Flash ROM 4.民用级(商业级) 工业级军用级 5.在线仿真器 选择题 1.A 2.ABCD 3.B 4.C 5.D 问答题 1.单片机广泛应用于仪器仪表、家用电器、医用设备、航空航天、专用设备的智能化管理及过程控制等领域,大致可分如下几个范畴: (1)在智能仪器仪表上的应用 单片机具有体积小、功耗低、控制功能强、扩展灵活、微型化和使用方便等优点,广泛应用于仪器仪表中,结合不同类型的传感器,可实现诸如电压、功率、频率、湿度、温度、流量、速度、厚度、角度、长度、硬度、元素、压力等物理量的测量。采用单片机控制使得仪器仪表数字化、智能化、微型化,且功能比起采用电子或数字电路更加强大。例如精密的测量设备(功率计,示波器,各种分析仪)。 (2)在工业控制中的应用 用单片机可以构成形式多样的控制系统、数据采集系统。例如工厂流水线的智能化管理,电梯智能化控制、各种报警系统,与计算机联网构成二级控制系统等。 (3)在家用电器中的应用 可以这样说,现在的家用电器基本上都采用了单片机控制,从电饭褒、洗衣机、电冰箱、空调机、彩电、其他音响视频器材、再到电子秤量设备,五花八门,无所不在。 (4)在计算机网络和通信领域中的应用 现代的单片机普遍具备通信接口,可以很方便地与计算机进行数据通信,为在计算机网络和通信设备间的应用提供了极好的物质条件,现在的通信设备基本上都实现了单片机智能控制,从手机,电话机、小型程控交换机、楼宇自动通信呼叫系统、列车无线通信、再到日常工作中随处可见的移动电话,集群移动通信,无线电对讲机等。 (5)单片机在医用设备领域中的应用 单片机在医用设备中的用途亦相当广泛,例如医用呼吸机,各种分析仪,监护仪,超声诊断设备及病床呼叫系统等等。 此外,单片机在工商,金融,科研、教育,国防航空航天等领域都有着十分广泛的用途。 2.首先,大概了解单片机的机构,例如本书的第2章则是主要讲了单片机的内部结构以及资源。对单片机的内部结构有了初步了解之后,读者就可以进行简单的实例练习,从而加深对单片机的认识。 其次,要有大量的实例练习。其实,对于单片机,主要是软件设计,也就是编程。目前最流行的用于51系列单片机地编程软件是Keil。Keil提供了包括C编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境(uVision)将这些部份组合在一起。掌握这一软件的使用对于使用51系列单片机的爱好

MC9S12XS128单片机简介

MC9S12XS128 单片机简介 1、HCS12X 系列单片机简介 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 系列中的一个成员。 2、MC9S12XS128 性能概述 MC9S12XS128 是16 位单片机,由16 位中央处理单元(CPU12X)、128KB 程序 Flash(P-lash)、8KB RAM、8KB 数据Flash(D-lash)组成片内存储器。主要功能模块包 括: 内部存储器 内部PLL 锁相环模块 2 个异步串口通讯SCI 1 个串行外设接口SPI MSCAN 模块 1 个8 通道输入/输出比较定时器模块TIM 周期中断定时器模块PIT 16 通道A/D 转换模块ADC 1 个8 通道脉冲宽度调制模块PWM 输入/输出数字I/O 口 3、输入/输出数字I/O 口 MC9S12XS128 有3 种封装,分别为64 引脚、80 引脚、112 引脚封装。其全名分别为MC9S12XS128MAE、MC9S12XS128MAA、MC9S12XS128MAL。MC9S12XS 系列具有丰富的输入/输出端口资源,同时集成了多种功能模块,端口包括PORTA、PORTB、PORTE、PORTK、PORTT、PORTS、PORTM、PORTP、PORTH、PORTJ 和PORTAD 共11 个端口。端口引脚大多为复用口,往往具有多重功能,所有端口都具有通用I/O 口功能。 PORTA、PORTB、PORTK 为通用I/O 口 PORTE 中的IRO 和XIRQ 引脚可作为外部中断输入 PORTT 集成了TIM 模块功能 PORTS 集成了SCI 和SPI 模块功能 PORTM 集成了CAN 总线模块 PORTP 集成了PWM 模块功能 PORTH、PORTJ 可作为外部中断输入口 PORTAD 集成了ATD 模块功能 在MC9S12XS128 单片机中有些特殊功能可定义为多个引脚,如PWM、SCI1 模块。对于这些具有相同功能的引脚定义,由端口T 路径寄存器PTTRR 和模块路径寄存器MODRR 确定。MC9S12XS128 的 3 种封装的引脚数目不一样,所具有的通用端口的引脚和功能有

MC9S12XS128 串口操作例程

MC9S12XS128 串口操作例程 Code Warrior 4.7 Target : MC9S12XS128 Crystal: 16.000Mhz busclock: 8.000MHz pllclock:16.000MHz 本程序主要包括以下功能: 1.设置锁相环和总线频率; 2.IO口使用; 3.共四路ATD使用及显示方法。 LED计数,根据灯亮可以读取系统循环了多少次 ************************************************************** ***************************/ #include /* common defines and macros */ #include /* derivative information */ #include #include #include #pragma LINK_INFO DERIVATIVE "mc9s12xs128" #pragma CODE_SEG DEFAULT #define CR_as_CRLF TRUE // if true , you can use "\n" to act as CR/LF, // if false, you have to use "\n\r",but can get a higher speed static int do_padding; static int left_flag; static int len; static int num1; static int num2; static char pad_character; unsigned char uart_getkey(void) { while(!(SCI0SR1&0x80)) ; //keep waiting when not empty return SCI0DRL; } /* void uart_init(void) { SCI0CR2=0x0c;

MC9S12XS128学习中文精华终极版版

IO口模块程序示例 Void PORTB_Init(void){ DDRB=0xff; //PB口作输出使用,1为输出,0为输入 PORTB=0x00; //PB口数据寄存器值 } 注意:IO口要注意以下几点:(1)每个IO口的数据寄存器名可能不同(2)AN口只能作输入用(3)PH,PJ(高两位,低两位),PP可用输入中断功能使用(4)IO口作输入与输出时有不同的寄存器对应(5)IO口作复用时不能作IO 口用,相反也不行 IO口可用作:调试接口(接数码管、液晶、拨码开关等等)所以必须掌握 使用拨码开关要注意这样用; DDRB=0XFF; //输出 P ORTB=0XFF; DDRB=0X00; //输入 AD模块程序示例 Void ATD_Init(void){

ATD0CTL1 = 0x00; //8位精度,不放电 ATD0CTL2 = 0x42; //快速清除标志位,禁止外部触发,使能中断 ATD0CTL3=0x8a;//右对齐,每序列4次转换,不用FIFO,进入FreezeMode完成当前转换 ATD0CTL4 = 0x03; //采样用4个ATD周期,F(ATD)=1MHz[bus clock为8MHz] ATD0CTL5 = 0x29; //SCAN模式,单通道,通道9 ATD0DIEN = 0x00; //禁止数据输入 } Void main(void){ ATD_Init(); ……………………………………… } #pragma CODE_SEG NON_BANKED

void interrupt 22 Int_AD0(void) { DisableInterrupts; AD_wData = ATD0DR0L; //读ATD转换的寄存器值(低八位) ATD0STAT0_SCF=0; //(当AFFC为1时,写0清零;为1 时写1清零) EnableInterrupts; } 注意:ATD模块要着重注意:(1)标志位清零(比较复杂)(2)多通道转换后的储存顺序(3)精度的选择和转换速度(4) 单个通道与多通道转换的区别 定时器模块程序示例 Void Timer_Init(void){ TSCR1=0X90; //使能定时器并设置为自动清除标志TFLG1 TSCR2=0X03; //设置分频系数为8,及23

蓝宙MC9S12XS128-80最小系统板 使用说明书

Freescale系列单片机MC9S12XS128-80最小系统板 产品使用说明书 版本:Version 1.0 所有者:蓝宙电子研发部 日期:2011.07.10

目录 最小系统板简介---------------------------------------- 最小系统板特性---------------------------------------- 最小系统板结构说明------------------------------------ 安装CodeWorror调试文件-------------------------------- 安装HC(S)12(X)内核CodeWorror调试文件----------------- 使用CodeWorror IDE烧写和调试程序的方法----------------

简介: 本店MC9S12XS128最小系统板是由多年专业项目开发经验的工程师根据当前实际单片机应用产品情况以及学生学习的角度定制,经过历多版和反复测试验证。全部采用原装芯片和元器件,经典蓝板设计,PCB布局走线规范,采用高品质材料,稳定可靠,并采用回流焊工艺焊接,焊接质量高,系统板质量可靠。这里描述的9S12XS128单片机基本系统模块是针对全国大学生飞思卡尔杯智能车模竞赛设计的,采用大赛组委会推荐的80引脚器件。本开发板适用于嵌入式工程师与学生对M9S12系列单片机开发、学习,带CAN总线开发的工程项目。 MC9S12XS128微控制器产品满足了用户对设计灵活性和平台兼容性的需求,并在一系列汽车电子平台上实了可升级性、硬件和软件可重用性、以及兼容性。S12XS 系列可以经济而又兼容地扩展至带 XGate 协处理器的S12XE 系列单片机,从为用户削减了成本,并缩小了封装尺寸。S12XS系列帮助设计者迅速抓住市场机遇,同还能降低移植成本。

51单片机模块化编程设计与实例要点分析

模块化编程设计题 一、简述模块化编程的必要性(模块化的优点) 参考答案: 大多数的编程学习者一开始接触和学习到的程序很小,代码量很少,甚至只有几十行。对于这样短小的程序进行模块化设计不是完全必要的。很多情况下程序模块化设计需要“浪费”很多时间,例如增加了代码的数量,增加了构思的时间。把所有的程序代码都写在一个main()函数中程序完全可以运行。 但是随着学习的深入,代码量的增加,将所有的代码都放在同一个.C文件中的做法越发使得程序结构混乱,虽然可以运行,但是可读性、可移植性变差。即使是自己写的程序,时间长以后对程序的阅读和修改也要花一些时间。模块化编程使得程序的组织结构更加富有层次感,立体感和降低程序的耦合度。 在大规模程序开发中,一个程序由很多个模块组成,很可能,这些模块的编写任务被分配到不同的人。几乎所有商用程序都必须使用模块化程序设计理念。在程序的设计过程中各个开发者分工合作,分别完成某一模块特定的功能,减少开发时间等。 二、模块化编程设计步骤 (1)、创建头文件 在模块化编程中,往往会有多个C文件,而且每个C文件的作用不尽相同。在我们的C 文件中,由于需要对外提供接口,因此还必须有一些函数或者是变量提供给外部其它文件进行调用。对于每一个模块都有相应的.c文件和.h文件,为了阅读调试方便,原则上.c文件和.h文件同名,如和。 (2)防重复包含 例如文件 #ifndef__DELAY_H__ #define__DELAY_H__ void delay(uint t); #endif 假如有两个不同源文件需要调用delay(uint t)这个函数,他们分别都通过#include “”把这个头文件包含了进去。在第一个源文件进行编译时候,由于没有定义过因此#ifndef__DELAY_H__条件成立,于是定义_DELAY_H_ 并将下面的声明包含进去。在第二个文件编译时候,由于第一个文件包含时候,已经将_DELAY_H_定义过了。因此#ifndef__DELAY_H__不成立,整个头文件内容就没有被包含。假设没有这样的条件编译语句,那么两个文件都包含了delay(uint t);就会引起重复包含的错误。所以在.h文件中,为了防止出现错误都进行防重复包含。 (3)代码封装 将需要模块化的进行代码封装 头文件的作用可以称其为一份接口描述文件。其文件内部不应该包含任何实质性的函数代码。我们可以把这个头文件理解成为一份说明书,说明的内容就是我们的模块对外提供的接口函数或者是接口变量。同时该文件也包含了一些很重要的宏定义以及一些结构体的信息,离开了这些信息,很可能就无法正常使用接口函数或者是接口变量。但是总的原则是:不该让外界知道的信息就不应该出现在头文件里(不需要外部调用的函数不在头文件中申明),而外界调用模块内接口函数或者是接口变量所必须的信息就一定要出现在头文件里(需要被外部调用的函数一定要在头文件中申明),否则,外界就无法正确的调用我们提供的接口功能。

飞思卡尔MC9S12XS128(定时器)ECT寄存器详解

1、定时器IC/OC功能选择寄存器TIOS IOS[7..0]IC/OC功能选择通道 0 相应通道选择为输入捕捉(IC) 1 相应通道选择为输出比较(OC) 2、定时器比较强制寄存器 CFORC FOC[7..0]设置该寄存器某个FOCn位为1将导致在相应通道上立即产生一个输出比较动作,在初始化输出通道时候非常有用。 【说明】这个状态和正常状态下输出比较发生后,标志位未被置位后的情况相同。 3、输出比较7屏蔽寄存器 OC7M OC7M[7..0]OC7(即通道7的输出比较)具有特殊地位,它匹配时可以直接改变PT7个输出引脚的状态,并覆盖各个引脚原来的匹配动作结果,寄存器OC7M决定哪些通道将处于 OC7的管理之下。OC7M中的各位与PORTT口寄存器的各位一一对应。当通过 TIOS将某个通道设定为输出比较时,将OC7M中的相应位置1,对应的引脚就是输 出状态,与DDR中的对应位的状态无关,但OC7Mn并不改变DDR相应位的状 态。 【说明】OC7M具有更高的优先级,它优于通过TCTL1和TCTL2寄存器中的OMn和OLn 设定的引脚动作,若OC7M中某个位置1,就会阻止相应引脚上由OM和OL设定的动作。

4、输出比较7数据寄存器 OC7D OC7D[7..0]OC7M对于其他OC输出引脚的管理限于将某个二进制值送到对应引脚,这个值保存在寄存器OC7D中的对应位中。当OC7匹配成功后,若某个OC7Mn=1,则内部逻辑将OC7Dn送到对应引脚。OC7D中的各位与PORTT口寄存器的各位一一对 应。当通道7比较成功时,如果OC7M中的某个位为1,OC7D中的对应位将被输 出到PORTT的对应引脚。 【总结】通道7的输出比较(OC7)具有特殊的位置,在OC7Mn和OC7Dn两个寄存器设置以后,OC7成功输出后将会引起一系列的动作。比如:OC7M0=1,则通道0处在OC7的管理 下,在OC7成功后,系统会将OC7D0的逻辑数据(仅限0或者1)反应在PT0端口上。另 外,在OC7Mn置位后,相应的引脚就被设置为输出引脚,与DDRTn无关了,OC7Mn 并不改变DDR相应位的状态。 5、定时器核心计数寄存器 TCNT TCNT[15..0]XS128 Timer模块的核心是一个16位自由运行计数器(TCNT),所有输入捕捉和输出比较功能的计时信息都来源于TCNT,当定时器系统启用时,通过设置TSCR1的 TEN位,计数器从$0000开始,每经过一个模块时钟加1,直到加到$FFFF,然后自动 溢出为$0000并继续计数.16位自由记数器的当前值保存在两个8位寄存器中,高 的存在TCNTH,低的存在TCNTL中.综合这两个寄存器就形成TCNT.定义TCNT的 话,要定义为word型。 【说明】这里的模块时钟指的是,经过分频后的ECT模块所用的时钟,分频系数在TSCR2的低三位。TCNT是一个递增的计数器,有很多人一直把它当做是递减的计数器。总之,TCNT就是对ECT时钟进行计数的。

基于C51单片机电子琴的设计与实现

基于C51单单片机电子琴的设计与实现 组员:周静 马帅 陈梦艳 班级:通信2班 1.设计任务与要求 (2) 2.方案论证 (3) 2.1单片机 (3) 2.2发声器 (4) 3.理论分析与计算: (4) 4.硬件电路与程序设计 (6) 4.1电路图: (6) 4.2程序框图 (6) 5.软件程序 (7) 6.总结与展望 (13) 附录1: (14) 附录2: (14)

摘要:打造一个多功能电子琴,核心是一块单片机。单片机读取键值,为内置定时器赋初值,定时器每溢出一次,驱动蜂鸣器的引脚电平就取反一次,产生相应频率的方波,即音调;设好键值与数码管段码表的对应关系,键按下时,数码管显示对应音调。 一首音乐储存在一个表中,表中的数据是音调与节拍,单片机读取音符的音调与节拍,根据音调赋予定时器初值,根据节拍决定定时器工作的时间,也就是蜂鸣器响的时间,一个接一个地读取音符,即可播放一首歌曲。 关键字:单片机电子琴蜂鸣器 1.设计任务与要求 电子琴设有8个按键,其中7个作为音符输入,另外1个作为模式转换按键,实现用户作曲。7个按键分别代表7个音符,包括中音段的全部音符。通过软硬件设计,模式转换按键触发外部中断,中断使程序跳转,实现模式转换,启动电子琴。然后通过查询电子琴所按下的按键,读取电子琴输入状态,跳转到对应的程序人口,实现自编歌曲。当需要取消电子琴编曲功能时,再次按下模式转换按键引起外部中断.即可退出电子琴功能而返回到原来音乐播放处。

2.方案论证 2.1单片机 方案一:AT89C51是美国ATMEL公司生产的低电压,高性能CMOS8位单片机,片内含4k bytes的可反复擦写的只读程序存储器(PEROM)和128 bytes的随机存取数据存储器(RAM),器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,片内置通用8位中央处理器(CPU)和Flash存储单元,功能强大AT89C51单片机可为您提供许多高性价比的应用场合,可灵活应用于各种控制领域。 方案二:采用凌阳公司的SPCE061A 单片机作为控制器的方案。该单片机I/O资源丰富,并集成了语音功能。它整合了多个常用的功能模块,让我们在进行系统开发的时候不用外加过多的硬件就可方便的完成一个系统的设计,这就是人们常说的 SoC(System on chip)技术。耗电少,可以满足很多手提设备、掌上设备低能耗的需求,低能耗也是电子技术一直在追求的一个目标。但其价格较高。 方案三:TI公司的MSP430系列是一个特别强调超低功耗的单片机品种很适合应用于采用电池供电的长时间工作场合在这个系列中有很多个型号它们是由一些基本功能模块按不同的应用目标组合而成MSP430系列的CPU采用16位精简指令系统,集成有16位寄存器和常数发生器发挥了最高的代码效率它采用数字控制振荡器DCO使得从低功耗模式到唤醒模式的转换时间小于 6 μs. 其中

C51单片机实战100例

目录 目录 1 函数的使用和熟悉 6 实例3:用单片机控制第一个灯亮7 实例4:用单片机控制一个灯闪烁:认识单片机的工作频率7 实例5:将P1口状态分别送入P0、P2、P3口:认识I/O口的引脚功能8

实例6:使用P3口流水点亮8位LED 9 实例7:通过对P3口地址的操作流水点亮8位LED 11 实例8:用不同数据类型控制灯闪烁时间13 实例9:用P0口、P1 口分别显示加法和减法运算结果15 实例10:用P0、P1口显示乘法运算结果15 实例11:用P1、P0口显示除法运算结果16 实例12:用自增运算控制P0口8位LED流水花样17 实例13:用P0口显示逻辑"与"运算结果18 实例14:用P0口显示条件运算结果18 实例15:用P0口显示按位"异或"运算结果 19 实例16:用P0显示左移运算结果19 实例17:"万能逻辑电路"实验20 实例18:用右移运算流水点亮P1口8位LED 20 实例19:用if语句控制P0口8位LED的流水方向 22 实例20:用swtich语句的控制P0口8位LED的点亮状态23 实例21:用for语句控制蜂鸣器鸣笛次数25 实例22:用while语句控制LED 27 实例23:用do-while语句控制P0口8位LED流水点亮29 实例24:用字符型数组控制P0口8位LED流水点亮30 实例25:用P0口显示字符串常量 32 实例26:用P0 口显示指针运算结果33 实例27:用指针数组控制P0口8位LED流水点亮34

实例28:用数组的指针控制P0 口8 位LED流水点亮35 实例29:用P0 、P1口显示整型函数返回值37 实例30:用有参函数控制P0口8位LED流水速度38 实例31:用数组作函数参数控制流水花样40 实例32:用指针作函数参数控制P0口8位LED流水点亮41 实例33:用函数型指针控制P1口灯花样44 实例34:用指针数组作为函数的参数显示多个字符串45 实例35:字符函数ctype.h应用举例48 实例36:内部函数intrins.h应用举例48 实例37:标准函数stdlib.h应用举例49 实例38:字符串函数string.h应用举例 51 实例39:宏定义应用举例2 52 实例40:宏定义应用举例2 52 实例41:宏定义应用举例3 53 中断、定时器54 实例42:用定时器T0查询方式P2口8位控制LED闪烁54 实例43:用定时器T1查询方式控制单片机发出1KHz音频55 实例44:将计数器T0计数的结果送P1口8位LED显示56 实例45:用定时器T0的中断控制1位LED闪烁57 实例46:用定时器T0的中断实现长时间定时59 实例47:用定时器T1中断控制两个LED以不同周期闪烁60 实例48:用计数器T1的中断控制蜂鸣器发出1KHz音频62

MC9S12XS128单片机简介

MC9S12XS128单片机简介 1、HCS12X系列单片机简介 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系列中的一个成员。2、MC9S12XS128性能概述 MC9S12XS128是16位单片机,由16位中央处理单元(CPU12X)、128KB程序Flash(P-lash)、8KB RAM、8KB数据Flash(D-lash)组成片内存储器。主要功能模块包括: 内部存储器 内部PLL锁相环模块 2个异步串口通讯 SCI 1个串行外设接口 SPI MSCAN 模块 1个8通道输入/输出比较定时器模块 TIM 周期中断定时器模块 PIT 16通道A/D转换模块 ADC 1个8通道脉冲宽度调制模块 PWM 输入/输出数字I/O口 3、输入/输出数字I/O口 MC9S12XS128 有3种封装,分别为64引脚、80引脚、112引脚封装。其全名分别为MC9S12XS128MAE、MC9S12XS128MAA、MC9S12XS128MAL。MC9S12XS系列具有丰富的输入/输出端口资源,同时集成了多种功能模块,端口包括PORTA、PORTB、PORTE、PORTK、PORTT、PORTS、PORTM、PORTP、PORTH、PORTJ和PORTAD共11个端口。端口引脚大多为复用口,往往具有多重功能,所有端口都具有通用I/O口功能。

51单片机仿真100实例

《单片机C语言程序设计实训100例—基于8051+Proteus仿真》案例 第01 篇基础程序设计 01 闪烁的LED /* 名称:闪烁的LED 说明:LED按设定的时间间隔闪烁 */ #include #define uchar unsigned char #define uint unsigned int sbit LED=P1^0; //延时 void DelayMS(uint x) { uchar i; while(x--) { for(i=0;i<120;i++); } } //主程序 void main() { while(1) { LED=~LED; DelayMS(150); } } 02 从左到右的流水灯 /* 名称:从左到右的流水灯 说明:接在P0口的8个LED 从左到右循环依次点亮,产生走 马灯效果 */ #include #include #define uchar unsigned char #define uint unsigned int

//延时 void DelayMS(uint x) { uchar i; while(x--) { for(i=0;i<120;i++); } } //主程序 void main() { P0=0xfe; while(1) { P0=_crol_(P0,1); //P0的值向左循环移动 DelayMS(150); } } 03 8只LED左右来回点亮 /* 名称:8只LED左右来回点亮 说明:程序利用循环移位函数_crol_和_cror_形成来回滚动的效果*/ #include #include #define uchar unsigned char #define uint unsigned int //延时 void DelayMS(uint x) { uchar i; while(x--) { for(i=0;i<120;i++); } } //主程序 void main() { uchar i; P2=0x01; while(1) {

MC9S12XS128 ADC操作例程

MC9S12XS128 ADC操作例程 Code Warrior 4.7 Target : MC9S12XS128 Crystal: 16.000Mhz busclock:16.000MHz pllclock:32.000MHz 本程序主要包括以下功能: 1.设置锁相环和总线频率; 2.IO口使用; 3.共四路ATD使用及显示方法。 LED计数,根据灯亮可以读取系统循环了多少次 ************************************************************** ***************************/ #include /* common defines and macros */ #include /* derivative information */ #include "LQprintp.h" #pragma LINK_INFO DERIVATIVE "mc9s12xs128" #pragma CODE_SEG __NEAR_SEG NON_BANKED void interrupt 20 SCI0_ISR(void) { SCI0CR2_RIE=0; //此处为串口中断需要处理的事情 uart_putchar(uart_getkey()); PORTA_PA0=~PORTA_PA0; SCI0CR2_RIE = 1; } #pragma CODE_SEG DEFAULT //----------------------------------------------------- void setbusclock(void) { CLKSEL=0X00; //disengage PLL to system PLLCTL_PLLON=1; //turn on PLL SYNR=1; REFDV=1; //pllclock=2*osc*(1+SYNR)/(1+REFDV)=32MHz; _asm(nop); //BUS CLOCK=16M _asm(nop); while(!(CRGFLG_LOCK==1)); //when pll is steady ,then use it;

相关主题