文档详情

arm嵌入式系统——基于ads1.2及proteus仿真教学课件作者邓力讲义gpio程序实验.doc

发布:2019-10-09约3.8千字共13页下载文档
文本预览下载声明
课时授课计划 课 题 (章节名称) GPIO程序设计与电路仿真实验 时间 2012年3月21日 教学目的与要求 掌握LPC2100中GPIO寄存器的使用 教学重点 IO口高低电平的设置 教学难点 IOSET、IOCLR的使用 教学方法 讲授法 教学时数 2 课外作业 主要内容 时间分配 一、完成LPC2106ADS工程项目的建立。 二、编写单个LED灯闪烁控制的主程序 三、完成单个LED闪烁控制程序和电路仿真 四.一位数码管静态显示程序和电路设计实验 15 15 25 35 课后小结 一、完成LPC2106ADS工程项目的建立。 二、编写单个LED灯闪烁控制的主程序 使用P0.9的输出功能来控制一个LED闪烁。采用灌电流的方式驱动LED,即输出低电平时LED点亮。首先进行引脚功能选择寄存器(PINSEL0和PINSEL1)配置,然后进行IODIR寄存器设置,设置P0.9为输出模式,通过对IOSET和IOCLR寄存器进行置1或置0控制LED闪烁。 其主程序如下: /****************************************************************************** *File:Main.c *功能:LED闪烁控制。对发光二极管进行控制,采用软件延时方法 * 使用I/O口直接控制LED,采用灌电流方式 ******************************************************************************/ #include config.h #define LEDCON 0 /*P0.9引脚控制LED,低电平点亮*/ /***************************************************************************** *名称:DelayNS() *功能:长软件延时 ******************************************************************************/ void DelayNS(uint32 dly) { uint32 i; for(;dly0;dly--) for(i=0;i50000;i++); } /****************************************************************************** *名称:main() *功能:控制LED闪烁 ******************************************************************************/ int main(void) { PINSEL0=0 //设置所有引脚连接GPIO PINSEL1=0 IODIR=LEDCON; //设置P0.9连接的LED控制为输出 while(1) { IOSET=LEDCON; DelayNS(30); IOCLR=LEDCON; DelayNS(30); } //return(0); } 三、使用Proteus完成电路的仿真 仿真电路图如图所示: 启动仿真,D1不断闪烁。 四.一位数码管静态显示程序和电路设计 74HC595是一个8位串入并出的移位寄存器,本程序通过3个GPIO口模拟SPI对74HC595进行控制,驱动数码管显示0~F字符。 主程序流程图如下: 发送数据字程序流程图: 程序如下: /******************************************************************************* *File: Main.c *功能: LED数码管显示 * 通过I/O模拟同步串口与74HC595进行连接,控制74HC595驱动LED数码管显示 *******************************************************************************/ #include config.h #define SPI_CS 0 /*P0.8*/ #define SPI_DATA 0 /*P0.6*/ #define SPI_CLK 0 /*P0.4*/ #define SPI_I
显示全部
相似文档