本次设计在上一篇(《基于ARM的流水灯仿真示例》)的基础上,加了晶振电路,并且改变和与LED灯相连的电阻的接法。在原来的设计中,所有的LED灯都和一个电阻相连,虽然仿真没有出现问题,但在现实电路中这样的接法很可能导致该电阻烧坏,所以本设计分别给每个LED灯接了一个电阻。整体电路的连接如下图所示。
经过修改之后的电路图
修改之前的电路图
程序部分并没有做出任何修改,程序代码如下:
1 #include "config.h"
2
3 int DelayTime=60; //延时参数
4 int ModeSel=0; //流水灯控制
5
6 //延时函数原型声明
7 void delay(int dly);
8
9 //中断服务程序原型声明
10 void __irq IRQ_Eint0(void);
11 void __irq IRQ_Eint1(void);
12 void __irq IRQ_Eint2(void);
13 void __irq IRQ_Eint3(void);
14
15 //流水灯工作模式定义
16 int LED_Mode[2][8]=
17 {
18 {0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f},
19 {0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe}
20 };
21
22 int ModeIndex; //工作模式索引
23
24 //*****************************************************************************************************
25
26 ***
27 //主函数
28 int main (void)
29 {
30 //配置引脚功能
31 PINSEL0=0x000cc0cc;
32 PINSEL1=0x00000000;
33
34 IO1DIR=0xff<<16; //设P1.16-P1.23为输出
35
36 EXTMODE=0x00; //设置外部中断为电平触发
37
38 IRQEnable(); //使能IRQ中断
39
40 VICIntSelect=0x00000000; //设置所有分配为IRQ中断
41
42 VICVectCntl0=0x20|0x0e; //分配外部中断0到向量中断0
43 VICVectCntl1=0x20|0x0f; //分配外部中断1到向量中断0
44 VICVectCntl2=0x20|0x10; //分配外部中断2到向量中断0
45 VICVectCntl3=0x20|0x11; //分配外部中断3到向量中断0
46
47
48 //设置中断服务程序地址
49 VICVectAddr0=(uint32)IRQ_Eint0;
50 VICVectAddr1=(uint32)IRQ_Eint1;
51 VICVectAddr2=(uint32)IRQ_Eint2;
52 VICVectAddr3=(uint32)IRQ_Eint3;
53
54 EXTINT=0x0f; //清除所有外部中断标志
55
56 VICIntEnable=(1<<0x0e)|(1<<0x0f)|(1<<0x10)|(1<<0x11); //使能外部中断
57
58 while(1)
59 {
60 for(ModeIndex=0; ModeIndex<8; ModeIndex++)
61 {
62 IO1SET=LED_Mode[ModeSel][ModeIndex]<<16; //点亮LED灯
63 delay(DelayTime); //延时
64 IO1CLR=LED_Mode[ModeSel][ModeIndex]<<16; //熄灭LED灯
65 }
66 }
67 return 0;
68 }
69
70 //*****************************************************************************************************
71
72 ***
73 //延时函数
74 void delay(int dly)
75 {
76 int i,j;
77 for(i=0; i 79 80 } 81 82 //***************************************************************************************************** 83 84 *** 85 //外部中断0服务程序 86 void __irq IRQ_Eint0(void) 87 { 88 ModeSel=0; //设置LED工作模式 89 while((EXTINT&0x01)!=0) 90 { 91 EXTINT=0x01; //清除中断标志 92 } 93 VICVectAddr=0; 94 } 95 96 //***************************************************************************************************** 97 98 *** 99 //外部中断1服务程序 100 void __irq IRQ_Eint1(void) 101 { 102 ModeSel=1; //设置LED工作模式 103 while((EXTINT&0x02)!=0) 104 { 105 EXTINT=0x02; //清除中断标志 106 } 107 VICVectAddr=0; 108 } 109 110 //***************************************************************************************************** 111 112 *** 113 //外部中断2服务程序 114 void __irq IRQ_Eint2(void) 115 { 116 if(DelayTime>20) 117 DelayTime=DelayTime-20; //减少延时 118 119 while((EXTINT&0x04)!=0) 120 { 121 EXTINT=0x04; //清除中断标志 122 } 123 VICVectAddr=0; 124 } 125 126 //***************************************************************************************************** 127 128 *** 129 //外部中断3服务程序 130 void __irq IRQ_Eint3(void) 131 { 132 if(DelayTime<100) 133 DelayTime=DelayTime+20; //增加延时 134 135 while((EXTINT&0x08)!=0) 136 { 137 EXTINT=0x08; //清除中断标志 138 } 139 VICVectAddr=0; 140 } 141 142 /****************************************************************************************************** 143 144 *** 145 ** End Of File 146 ******************************************************************************************************* 147 148 */
上一篇:ADS分散加载文件使用总结(lpc23xx)
下一篇:基于ARM的流水灯仿真示例
推荐阅读最新更新时间:2024-10-24 12:30
设计资源 培训 开发板 精华推荐
- DC1131A,使用 LT5557EUF、400MHz 至 3.8GHz、3.3V 下混频器、1.95GHz、240MHz 巴伦 IF 输出的演示板
- AD8362-EVAL,基于 AD8362 的评估板,50 Hz 至 3.8 GHz TruPwr 检测器
- CH455H_数码管显示模块
- 【ART-Pi】智能热水器
- 使用 ROHM Semiconductor 的 BD46235 的参考设计
- CN0269
- 语音播放模块
- LT1121CN8 5V 低压差稳压器的典型应用电路,用于具有关断的电池供电电源
- LTC3839 的典型应用 - 具有差分输出检测功能的快速、准确、两相、单输出降压型 DC/DC 控制器
- LT3663EMS8E-5、具有隔离式 3.3V 输出的 5V 降压型稳压器的典型应用
- 李小龙:华为 Mate 40/Pro要 慎用金属保护壳
- iPhone 12 Pro DXOMARK相机评分公布:128分进前五
- 小米MiCare手机保障服务上线 全方位保障高端手机
- OWC宣布Thunderbolt扩展将和苹果M1 Mac兼容
- iPhone 12 mini/12 Pro Max影像系统怎么样?
- 研发投入行业第一!从芯片到自动驾驶,吉利亮出最强“武器箱”
- 长城汽车官宣:大禹电池永不起火 永不爆炸!
- 傲酷利用Ansys解决方案提升汽车雷达系统性能
- Vishay推出的新型FRED Pt® 第五代600 V Hyperfast和Ultrafast整流器
- 2022年中国智能传感器行业市场现状及发展前景分析