Freescale单片机实验指导书2.doc
文本预览下载声明
一般性实验
实验一 普通I/O口操作实验
实验目的:
1、熟悉SDIDE开发环境,熟悉GP32基本程序结构
2、理解Freescale MCU的编程框架
3、熟悉编程调试环境,编译、调试、下载运行第一个程序
4、掌握I/O的基本编程方法
范例程序:
① A01_简单IO及程序框架\ FrmMain.ASM
② C01_简单IO及程序框架\纯C\prgframe.prj
③ C01_简单IO及程序框架\CASM混编\prgframe.prj
实验要求:
1、参看教材6.4节,熟悉实验板结构
2、理解并运行下列关于I/O口操作的LED灯控制程序
/*-----------------------------------------------------*
*工 程 名:Prgframe.prj *
*硬件连接:PTA.1接指示灯 *
*程序描述:指示灯PTA.1闪烁 *
*目 的:第一个freescale(Motorola) HC08系列MCU程序框架*
*说 明:提供Motorola MCU的编程框架,供教学入门使用 *
*注 意:如果延时不够长的话,会发觉灯不会闪烁,而是一 *
* 直亮,这是由于人的视觉的引起的。 *
*--------《嵌入式应用技术基础教程》教学实例-----------*/
/*[头文件]*/
#include GP32C.h //映像寄存器地址头文件
/*[指示灯所接引脚定义]*/
#define Light_P PTA //灯(Light)接在PTA口
#define Light_D DDRA //相应的方向寄存器
#define Light_Pin 1 //灯所在的引脚
/*[全局变量声明]*/
unsigned char I1;
/*[延时子函数声明]*/
void Delay1000(void);
/*[主函数]*/
void main()
{
//[I/O初始化]
Light_D|=1Light_Pin; //令指示灯引脚为输出
Light_P|=1Light_Pin; //初始时,指示灯暗
//[程序总循环入口]
while(1)
{
//指示灯(Light)“亮”
Light_P=~(1Light_Pin);
//延时
for(I1=0;I1=250;I1++)
Delay1000();
//指示灯(Light)暗”
Light_P|=1Light_Pin;
//延时
for(I1=0;I1=250;I1++)
Delay1000();
}
}
/*[内部子程序存放处]
/*Delay1000:延时1000个时钟周期-------------------------*
*功 能:延时函数(约1000个时钟周期) *
*参 数:无 *
*返 回:无 *
*-----------------------------------------------------*/
void Delay1000(void)
{ unsigned char u;
for(u=0;u=110;u++);
}
3、在理解上述程序的基础上,按下列要求新建一程序:根据PC口低2位(PTC1和PTC0)的状态输出四种不同的LED显示效果,要求用最简洁的语句实现以下各效果。
(1)PTC1=0,PTC0=0时,效果为:8个LED中只有一个灯亮,亮灯顺序是从左到右,再从右到左,一个周期时间长度约4秒。(效果1)
(2)PTC1=0,PTC0=1时,效果为:8个LED中只有两个连在一起的灯亮,亮灯顺序是从左到右,再从右到左,一个周期时间长
显示全部