文档详情

Freescale单片机实验指导书2.doc

发布:2017-08-20约字共18页下载文档
文本预览下载声明
一般性实验 实验一 普通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中只有两个连在一起的灯亮,亮灯顺序是从左到右,再从右到左,一个周期时间长
显示全部
相似文档