欢迎来到天天文库
浏览记录
ID:57067071
大小:22.50 KB
页数:4页
时间:2020-07-31
《基于凌阳单片机交通灯的设计.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、基于凌阳单片机交通灯的设计一、实验设备:凌阳开发板一块,unSPIDE3.0.4编译软件二、实验目的:红灯显示时间50s,黄灯显示时间5s,绿灯显示时间50s三、实验程序的编写1、首先打开unSPIDE3.0.4编译软件,建一个名字为miaobiao的工程2、新建一个c文件命名main,输入相应的代码并保持(代码见附件)3、添加头文件#include"SPCE061V004.h",方法是在软件的安装目录下找到SPCE061V004.h文件,并复制到miaobiao工程文件夹下,然后把SPCE061V004.h文件添加到工程中(不填加该文件进
2、工程会报错)。上面两段代码在unSPIDE3.0.4上编译通过,在低版本软件上编译可能会出现错误四、硬件的连接1、共阴的二位数码管1个,排针若干,导线若干,LED灯6个(灯的个数可以自己定,现在暂时定为6个)2、单片机上的IOA0~IOA7引脚分别接数码管a~dp,用于控制断选IOB0~IOB2分别接数码管位选脚,用于控制位选IOB3接焊好LED六个灯的公共端电路图:一、实验代码:#include"SPCE061V004.h"#defineP_WatchDog_Clear(volatileunsignedint*)0x7012statici
3、ntb[10]={0x003f,0x0006,0x005b,0x004f,0x0066,0x006d,0x007d,0x0007,0x007f,0x006f};//共阴inttemp,shi,ge,LED;voiddelay(intz);main(){inti=0;*P_IOA_Attrib=0x00ff;//设置A口低8位为同向低输出,高8位为同向上拉输入*P_IOA_Dir=0x00ff;*P_IOA_Data=0xff00;//*P_IOB_Attrib=0x00ff;//初始化IB0~IB1,控制数码管的位选*P_IOB_Dir=0
4、x00ff;*P_IOB_Data=0x0000;*P_TimerA_Ctrl=C_SourceA_8192Hz+C_SourceB_1;//设置定时器TimerA:8192Hz*P_TimerA_Data=0xe000;//计数初值,定时时间为1s,X=65536-1*8192=e000h*P_INT_Ctrl=C_IRQ1_TMA;temp=50;LED=0x0003;//红灯亮__asm("INTIRQ");//安装定时,开放IRQ的总中断允许位,但FIQ中断仍禁止while(1){if(temp==00&&i==0){temp=5;
5、i=1;LED=0x000c;//黄灯亮}elseif(temp==00&&i==1){temp=50;LED=0x0030;//绿灯亮i=2;}elseif(temp==00&&i==2){temp=5;LED=0x000c;//黄灯亮i=3;}elseif(temp==00&&i==3){temp=50;LED=0x0003;//红灯亮i=0;}shi=temp/10;ge=temp%10;*P_IOA_Data=b[shi];*P_IOB_Data=0xfffe;//IOB0选中delay(5);*P_IOA_Data=b[ge];*
6、P_IOB_Data=0xfffd;//IOB1选中delay(5);*P_IOA_Data=LED;*P_IOB_Data=0xfffb;//IOB2选中delay(5);*P_WatchDog_Clear=C_WDTCLR;}}voiddelay(z)//延时函数{intx,y;for(x=z;x>0;x--)for(y=10;y>0;y--);}#include"SPCE061V004.h"voidIRQ1(void)__attribute__((ISR));//中断函数voidIRQ1(void){temp--;*P_INT_Cle
7、ar=C_IRQ1_TMA;//清除中断标志控制单元}
此文档下载收益归作者所有