全文预览

基于ARM嵌入式系统的交通灯设计

上传者:塑料瓶子 |  格式:doc  |  页数:19 |  大小:525KB

文档介绍
4个匹配寄存器的设定可设置为匹配(即达到匹配寄存器指定的定时值)时产生中断或执行其他操作。ARMLPC2138有两个32位定时器,定时器0和定时器1,本次设计仅适用定时器0,选定定时器0中断为向量IRQ。设置P0、P1口为GPIO输出状态,初始化定时器,选定定时器0中断为向量IRQ,对VICIntEnable、VICIntSelect、tl进行设置,初始化SPI接口,根据设计要求编写软件程序。根据事先画好的程序流程图,用C语言编写程序,在主程序中对需要用到的I/O口进行定义,并设置相应的I/O口,比如要求P1.18~P1.25引脚为GPIO功能,则通过对引脚功能选择寄存器PINSEL1将对应的引脚设置为GPIO方式并设置GPIO方向,在GPIO方向寄存器IO1DIR里设置,之后对定时器0进行初始化,并开相应的中断。然后进入大循环进行倒计时显示、控制蜂鸣器的蜂鸣与否并判断flag是否加到设定值,对flag加到设定值后进行清零,让flag重新计数。中断服务程序的设计,每隔一秒钟定时器中断一次,每中断一次flag加1根据LED点亮的先后顺序以及点亮的时间,分别编写相应的程序。6程序运行测试结果程序:#include"config.h"#defineLED11<<18 //P1.18南北红灯#defineLED21<<19 //P1.19南北绿灯#defineLED31<<20 //P1.20南北黄灯#defineLED41<<21 //P1.21南北红灯#defineLED51<<22 //P1.22南北绿灯#defineLED61<<23 //P1.23南北黄灯#defineLED71<<24 //P1.24马路红灯#defineLED81<<25 //P1.25马路绿灯#defineY0x00900000#defineR0x00240000#defineG0x00480000

收藏

分享

举报
下载此文档