重庆大学单片机(S12X)课程实验内容与指导-2013版
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
单片机(S12X)课程实验内容与指导
实验参考:1、教材第4章“仿真、调试与C语言编程”,以及相关章节。
2、教材第14章“S12XS128开发平台的DIY设计与使用”。
3、文档附件:CQU-S12X核心板/扩展板简要说明、完全原理图PDF。
4、资源下载:/
注意事项:1、教学实验核心开发板上MCU型号为MC9S12XS128MAL,16Mhz 外部晶振。
2、在做硬件下载调试实验时,需要连接仿真器TBDML,此时仿真
器兼做电路板供电,应将仿真器的USB接口端连接在电脑背后以防
供电电流不足。
3、硬件实验时要确保开发板上的外设部件已通过跳线帽跳接到MCU
相关引脚,并且没有与其它外设部件冲突。
4、*号题为选做、提高内容。
实验一编程入门、仿真调试
实验目的:熟悉飞思卡尔MCU仿真与调试环境的使用方法,掌握汇编语言程序的编辑书写规范,学习单片机汇编语言程序调试手段,进一步编制
应用程序,体会MCU应用程序特点。
实验环境:CodeWarrior IDE仿真调试软件;
编程语言选择:单选汇编语言(Relocatable Assembly);
调试连接选择:全软件仿真(Full Chip Simulation);
实验内容:1、编辑、编译简单样本程序:两个4字节无符号数相加。
熟悉CodeWarrior IDE 的工程建立、菜单、工具、窗口、状态等。
a. 已知:($2000)=被加数开始,($2004)=加数开始;具体值在单步运行
开始前预先在Debug窗口的Memory区通过手工设定。
b. 仿真调试:分别利用单步、全速、停止、断点、复位等运行调试
手段,观察寄存器A、B、X、Y、PC、CCR等的状态与变化,以及
观察FALSH中指令地址和RAM中数据变化情况,验证运行结果。
(该仿真调试方法将运用于以后的各次实验中)
样本程序代码参考如下:重点编辑Entry后面的代码,其它已在工程建立时自动完成,保留前面的宏定义代码,与自己任务无关的其它代码可以删除。
2、使用查表法将累加器A中的某2位BCD码(如58)转换为ASCII
码,存入RAM$2080、$2081中。
工程编译、连接完成后,进入仿真调试窗口,且在运行程序前手工预设Register区的A值。
仿真调试:分别利用单步、全速、停止、断点、复位等运行调试手段,观察寄存器A、B、X、Y、PC、CCR等的状态与变化,以及观
察FALSH中指令地址和RAM中数据变化情况,验证运行结果。
(该
仿真调试方法将运用于以后的各次实验中)
3、数据搬移:源代码中使用FCB伪指令任意设定10个无符号数,将
其读入到内存RAM$2040~$2049单元中。
Debug窗口Memory区右键
→Address,输入2040处看结果.
*4、冒泡法数字排序:在上一个程序基础上,将内存RAM$2040~$2049
单元中的10个数按由小到大重新排放(X、Y指针,双重循环)。
实验二编程提高、并行I/O接口、中断
实验目的:熟悉飞思卡尔MCU指令及其应用规则,巩固汇编语言程序编程方法,熟悉数据传输、算术逻辑处理、分支、循环、软件延时、并行
I/O等应用程序编制技巧,初步熟悉硬件连接调试方法。
实验环境:CodeWarrior IDE仿真调试软件+CQUS12X开发板套件;
编程语言选择:单选汇编语言(Relocatable Assembly);
调试连接选择:硬件连接调试(TBDML);
仿真调试器一端连接电脑背后USB接口,另一端插
接核心板的BDM接口。
实验内容:1、LED跑马灯。
依次点亮核心板上的8个LED灯,LED已接B口8位,B口位输出低电平时点亮。
亮出时间控制调用软件延时100ms。
2、检测核心板上的2个按键(SW1、SW2)控制LED灯的亮或灭。
按键已接J口低2位(须设置J口位为输入、启用内部上拉电阻),
LED已接B口8位,B口位输出低电平时点亮。
3、外部中断IRQ触发的LED跑马灯。
核心板上8个LED已接B口
8位,B口位输出低电平时点亮,IRQ引脚(已接至扩展板按键SW1)
下降沿引发中断。
按动SW1即能给IRQ引脚施加带有下降沿的低电
平。
调试时,可在中断服务程序中设置断点,以方便观察是否进入中断。
在此程序正常运行的基础上再加入对核心板按键SW1(J口最低位,按下时接地,须设置上拉电阻)的检测,当其按下时取消跑马灯
显示,IRQ再次按下时继续显示跑马灯。
*4、4x4行列式键盘(扩展板右下侧)检测,行线、列线已分别跳接在
PH0~4和PH4~7检测到的按键号送交B口的8位LED灯进行二进制
表达。
(扩展板上的行列线排布已通过排线扭转调整为常规线序)
实验三GPIO、中断、定时器
实验目的:掌握C语言综合编程方法,掌握并行I/O口、定时器、中断等功能部件的使用规则和应用方法,熟悉中断处理程序的安排。
实验环境:CodeWarrior IDE仿真调试软件+CQUS12X开发板套件;
编程语言选择:单选汇编语言(Relocatable Assembly)或单选C语言;
调试连接选择:硬件连接调试(TBDML);
仿真调试器一端连接电脑背后USB接口,另一端插
接核心板的BDM接口。
实验内容:1、软件译码、动态扫描的4位连排共阴级数码管显示任意数字。
数码管段选线直接连至PB0~PB7;位选线(COM端)通过三极管驱动
电路接在PK0~PK3,则PK0~PK3输出高电平时即为选通对应位的
数码管。
2、利用MCU的TIM定时器、中断功能部件,实现1s精确定时(MCU
为8MHz总线频率),每定时时间到,使核心板上接B口8位的最
高位的LED亮灭一下,观察是否进入中断。
调试时,可在中断服务
程序中设置断点,以方便观察是否进入中断。
3、利用MCU的PIT定时器、中断功能部件,实现1s精确定时(MCU
为8MHz总线频率),每定时时间到,使核心板上接B口8位的最
高位的LED亮灭一下,观察是否进入中断。
调试时,可在中断服务
程序中设置断点,以方便观察是否进入中断。
C语言编程。
*4、统计每3s时间内脉冲事件次数,结果送B口LED灯(核心板上)
进行二进制表达。
TIM通道0输出比较以定时1s,时间到时IOC0
引脚电平自动翻转(将驱动扩展板上LED4);TIM通道7输入捕捉
以检测脉冲,扩展板上按键SW2每按动一次形成一个下降沿脉冲,
由IOC7响应。
通道0每3个中断后(即成3s定时)送结果,通道
7每1个中断中计数值递增。
结果是每1s时间到LED4亮出/熄灭,每3s时间到显示统计到的按
键次数。
C语言编程。
实验四A/D转换、SCI/SPI串行通信、PWM控制
实验目的:掌握C语言综合编程方法,掌握A/D转换、SCI串行通信、中断等功能部件的使用规则和应用方法,熟悉综合程序设计方法和PC软件
工具。
实验环境:CodeWarrior IDE仿真调试软件+CQUS12X开发板套件;
编程语言选择:单选C语言;
调试连接选择:硬件连接调试(TBDML);
仿真调试器一端连接电脑背后USB接口,另一端插
接核心板的BDM接口。
实验内容:1、A/D转换,8位精度,转换结果右对齐,将转换结果通过B口LED 灯(核心板)表达。
检测对象为扩展板上圆盘电位器RV1分压得到
的模拟量。
MCU的PAD00/AN00已默认跳接至该模拟电平输入,其
电压范围0~5V(逆时针旋转电压变大);通过旋转电位器RV1进行
分压调节以观察程序运行效果,此时B口LED灯的状态应是A/D转
换的二进制表示。
另:在上述实验成功的基础上,检测对象改为为扩展板上光敏器件RZ1经过放大得到的模拟量,MCU的PAD01/AN01已默认跳接至该模拟电平输入,其电压范围0~5V。
改变光敏器件RZ1的光照,以观察程序运行情况。
2、SCI串行通信,PC机连接。
SCI0双向,8位,9600bps,无校验位;MCU平时处于查询等待状态,MCU的SCI0串行通信TTL电平收发线已通过核心板上的PL2303芯片转换成PC机的USB接口线。
PC机上直接使用”串口调试”工具软件进行发送数据或接收数据显示。
当MCU接收到PC主机发来的Hex数据$88命令后,就将
A/D转换的结果上传给PC主机”串口调试”工具软件Hex显示,当接收到$a5时停止传送。
预备软件:PC机端串口调试助手;USB转TTL串口驱动(PL2303)。
硬件连接:将USB电缆一端接核心板Mini串行插口,另一端接PC 机USB接口。
*3、PWM脉宽调制。
PWM1输出波形模拟用作D/A,控制扩展板LED3灯的亮度。
*4、SPI串行通信。
SPI0单向,主入从出,扩展板上8位拨位开关状态将通过74LS165并入串出芯片的输出Q输入到MCU的MISO,将接收的结果送至B口8位LED显示。
改变8位拨位开关状态,以观察程序运行情况。
提示:对照电路原理图自行查找硬件连接关系;完成一次SPI读开关状态的步骤:先输出一个下降沿给74LS165的片选端PL(与MCU 的PE2引脚相通),再SPI0发送一个字节以驱动数据移位,然后才SPI0读一个字节。