版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 .PAGE32 / NUMPAGES36 .摘 要现代汽车中,中控门锁越来越普与,给驾驶员带来很大的方便。所谓中控锁全称是“中央控制车门锁”,其作用是驾驶员控制驾驶侧车门锁开关的同时,全车的车门锁受中控锁控制,与驾驶侧车门锁同时开启和上锁。仅驾驶座一侧的门锁开关有中控锁的功能,其它的门锁在开启和锁上的时候,不会影响的别的车门锁。ARM处理器体积小,低功耗,成本低,性能高,能很好兼容8位,16位器件。大量使用寄存器,指令执行速度更快,大多数数据操作都在寄存器中完成。寻址方式灵活简单,执行效率高并且指令长度固定。是今后主流的处理器。本设计是利用ARM架构的LPC2103作为主控芯片以与数码管来模
2、拟汽车中控门直流电机控制系统关键词:中控锁 直流电机 ARM处理器 数码管 uC/OS II操作系统目录TOC o 1-3 h u HYPERLINK l _Toc3009 1.绪论 PAGEREF _Toc3009 1 HYPERLINK l _Toc9048 1.1课题名称 PAGEREF _Toc9048 1 HYPERLINK l _Toc24014 1.2课题研究意义 PAGEREF _Toc24014 1 HYPERLINK l _Toc8814 1.3uC/OS II操作系统简介 PAGEREF _Toc8814 1 HYPERLINK l _Toc20857 2 .中控门锁的工
3、作原理 PAGEREF _Toc20857 2 HYPERLINK l _Toc710 3 .ARM与主控芯片LPC2103的简介 PAGEREF _Toc710 3 HYPERLINK l _Toc21510 3.1 LPC2103特性 PAGEREF _Toc21510 3 HYPERLINK l _Toc3967 3.2 ARM管脚信息 PAGEREF _Toc3967 4 HYPERLINK l _Toc29530 3.3定时器1 PAGEREF _Toc29530 5 HYPERLINK l _Toc22819 3.3.1匹配输出 PAGEREF _Toc22819 5 HYPERL
4、INK l _Toc14121 3.3.2PWM输出 PAGEREF _Toc14121 7 HYPERLINK l _Toc25762 4.系统的硬件与软件设技 PAGEREF _Toc25762 9 HYPERLINK l _Toc25735 4.1.器件表的生成 PAGEREF _Toc25735 9 HYPERLINK l _Toc28444 4.2按键电路设计 PAGEREF _Toc28444 9 HYPERLINK l _Toc1796 4.3指示LED电路的设计 PAGEREF _Toc1796 9 HYPERLINK l _Toc21765 4.4数码管电路的设计 PAGER
5、EF _Toc21765 10 HYPERLINK l _Toc13253 4.5软件的概述 PAGEREF _Toc13253 10 HYPERLINK l _Toc24428 4.6电机数码管与LED模块 PAGEREF _Toc24428 11 HYPERLINK l _Toc24113 4.7按键输入模块 PAGEREF _Toc24113 11 HYPERLINK l _Toc4200 4.8控制模块 PAGEREF _Toc4200 11 HYPERLINK l _Toc4901 4.9显示模块 PAGEREF _Toc4901 12 HYPERLINK l _Toc4085 4.
6、10定时模块 PAGEREF _Toc4085 12 HYPERLINK l _Toc22237 4.11主函数 PAGEREF _Toc22237 12 HYPERLINK l _Toc9424 5.硬件电路的焊接与调试 PAGEREF _Toc9424 13 HYPERLINK l _Toc740 5.1软件的焊接 PAGEREF _Toc740 13 HYPERLINK l _Toc16655 5.2软件的调试 PAGEREF _Toc16655 14 HYPERLINK l _Toc11469 6.未来拓展 PAGEREF _Toc11469 16 HYPERLINK l _Toc10
7、368 6.1利用电机正反转控制电路 PAGEREF _Toc10368 16 HYPERLINK l _Toc10016 总结 PAGEREF _Toc10016 17 HYPERLINK l _Toc16547 致 PAGEREF _Toc16547 18 HYPERLINK l _Toc16421 参考文献 PAGEREF _Toc16421 19 HYPERLINK l _Toc29546 附录 PAGEREF _Toc29546 201.绪论1.1课题名称带操作系统的汽车中控门直流电机控制设计在这个项目中,我的主要任务是完成直流电机对中控锁的控制设计,设计一个模拟汽车中控门直流电机控
8、制系统设计的电路图和使用器件表,包括1个汽车中控门直流电机1个数码管,完成模拟汽车中控门直流电机控制设计。1.2课题研究意义中控门锁控制装置,早在上世纪70年代已经装配在轿车上,经过二十余年时间,已经应用得比较普遍了,且功能也越来越强大。但是“中控门锁”控制装置在国商用车上的应用却发展较慢,直到上世纪90年代末才有少量几款商用车开始装配中控门锁系统。随着国汽车行业的飞速发展,如今中控门锁系统也在商用车上得到了广泛的应用和发展。现代汽车多数都选择安装了中控门锁,他可以使驾驶员更加方便,安全的使用汽车。1.3uC/OS II操作系统简介uC/OS II(Micro Control Operatio
9、n System Two)是一个可以基于ROM运行的、可裁减的、抢占式、实时多任务核,具有高度可移植性,特别适合于微处理器和控制器,适合很多商业操作系统性能相当的实时操作系统(RTOS)。为了提供最好的移植性能,uC/OS II最大程度上使用ANSI C语言进行开发,并且已经移植到近40多种处理器体系上,涵盖了从8位到64位各种CPU(包括DSP)。 uC/OSII可以简单的视为一个多任务调度器,在这个任务调度器之上完善并添加了和多任务操作系统相关的系统服务,如信号量、等。其主要特点有公开源代码,代码结构清晰、明了,注释详尽,组织有条理,可移植性好,可裁剪,可固化。核属于抢占式,最多可以管理6
10、0个任务。从1992年开始,由于高度可靠性、移植性和安全性,uC/OS II已经广泛使用在从照相机到航空电子产品的各种应用中。2 .中控门锁的工作原理(1)当数码管显示数字1是直流电机电机开始反转,意味着门锁自动打开。(2)当数码管显示数字6时电机直流电机停止转动,意味着门锁自动落锁。2-1接线原理图3 .ARM与主控芯片LPC2103的简介ARM公司自1990年正式成立以来, 在32位RISC (Reduced Instruction Set Computer CPU)开发领域不断取得突破,其结构已经从V3发展到V7。由于ARM公司自成立以来,一直以IP(Intelligence Prope
11、rty)提供者的身份向各大半导体制造商出售知识产权,而自己从不介入芯片的生产销售,加上其设计的芯核具有功耗低、成本低等显著优点,因此获得众多的半导体厂家和整机厂商的大力支持,在32位嵌入式应用领域获得了巨大的成功,已经占有75%以上的32位RISC嵌入式产品市场。在低功耗、低成本的嵌入式应用领域确立了市场领导地位。设计、生产ARM芯片的国际大公司已经超过50多家,国中兴通讯和华为通讯等公司也已经购买ARM公司的芯核用于通讯专用芯片的设计。LPC2103是一个基于支持实时仿真的16/32位ARM7 TDMI-S CPU的微控制器,并带有32kB的嵌入高速Flash存储器,128位宽度的存储器接口
12、和独特的加速结构使32位代码能够在最大时钟速率下运行。 较小的封装和极低的功耗使LPC2103适用于访问控制器和POS机等小型应用系统中;由于置了宽围的串行通信接口(2个UART、SPI、SSP和2个I2C)和8KB的片SRAM,LPC2103也适合用在通信网关和协议转换器中。32/16位定时器、增强型10位ADC、定时器输出匹配PWM特性、多达13个边沿、电平触发的外部中断、32条高速GPIO,使得LPC2103微控制器特别适用于工业控制和医疗系统中。 3.1 LPC2103特性(1)16/32位ARM7 TDMI-S微控制器,超小LQFP48封装; (2)8KB的片静态RAM和32KB的片
13、Flash程序存储器。128位宽度接口/加速器可实现高达70 MHz工作频率; (3)通过片boot装载程序实现在系统/在应用编程(ISP/IAP)。单个Flash扇区或整片擦除时间为100ms,256字节编程时间为1ms; (4)嵌入式ICE RT通过片RealMonitor软件提供实时调试; (5)10位A/D转换器提供8路模拟输入(每个通道的转换时间低至2.44us),以与特定的结果寄存器来最大限度地减少中断开销; (6)2个32位定时器/外部事件计数器(带7路捕获和7路比较通道); (7)2个16位定时器/外部事件计数器(带3路捕获和7路比较通道); (8)低功耗实时时钟(RTC)具有
14、独立的电源和特定的32KHz时钟输入; (9)多个串行接口,包括2个UART(16C550协议标准)、2个高速I2C总线(400 Kbit/s)、SPI和具有缓冲作用和数据长度可变功能的SSP; (10)向量中断控制器(VIC),可配置优先级和向量地址; (11)多达32个通用I/O口(可承受5V电压); (12)多达13个边沿、电平触发的外部中断管脚; 3.2 ARM管脚信息图3-1 ARM管脚图3.3定时器13.3.1匹配输出定时器1匹配输出方波示例应用如下所示,定时时间为0.2秒。用户需要短接JP4的P0.19端口,控制LED闪烁。 #include config.h #define L
15、ED (1 19) /* * 函数名称:Timer1Init * 函数功能:定时器1初始化 * 输入参数:无 * 输出参数:无 */ void Timer1Init(void) T1TCR = 0 x02; /* 定时器1复位 */ T1PR = 0; /* 不设时钟分频 */ T1MCR = 0 x02; /* 设置T1MR1匹配后复位T1TC */ T1EMR = 0 x03 8; /* 匹配翻转 */ T1MR0 = Fpclk / 5; /* 设置0.2秒匹配值 */ T1IR = 0 x01; /* 清除中断标志 */ T1TCR = 0 x01; /* 启动定时器1 */ /* *
16、 函数名称:main * 函数功能:定时器1匹配输出翻转主程序 * 输入参数:无 * 输出参数:无 */ int main (void) PINSEL1 = PINSEL1 & (0 x03 6) ; /* 选择MAT1.2输出 */ PINSEL1 = PINSEL1 | (0 x02 6); /* 选择MAT1.2输出 */ Timer1Init(); /* 定时器1初始化 */ IRQEnable(); /* IRQ中断使能 */ while(1); return 0; 图3-2 匹配输出波形3.3.2PWM输出定时器0、1可匹配输出PWM波形,波形的占空比自行设定。在本应用示例中,P0
17、.19输出的波形占空比为50,P0.20输出的占空比为25。 定时器PWM输出应用,示例如程序清单2所示。产生波形如图4.30所示。#include config.h /* * 函数名称:Timer1Init * 函数功能:定时器1初始化 * 输入参数:无 * 输出参数:无 */ void Timer1Init(void) T1TCR = 0 x02; /* 定时器0复位 */ T1PR = 0; /* 不设时钟分频 */ PWM1CON= 0 x0C; /* 使能PWM输出 */ T1MCR = 0 x02; /* 设置T0MR0匹配后复位T0TC */ T1MR0 = Fpclk / 20
18、00; /* 设置PWM输出的周期 */ T1MR2 = (Fpclk / 2000) / 2; /* 设置PWM1.2输出占空比为50 */ T1MR3 = (Fpclk / 2000) / 4) * 3; /* 设置PWM1.3输出占空比为25 */ T1TCR = 0 x01; /* 启动定时器0 */ /* * 函数名称:main * 函数功能:定时器1PWM输出 * 输入参数:无 * 输出参数:无 */ int main (void) PINSEL1 = (PINSEL1 & (0 x03 6) | (0 x02 6); /* 选择MAT1.2输出 */ PINSEL1 = (PIN
19、SEL1 & (0 x03 8) | (0 x02 8); /* 选择MAT1.3输出 */ Timer1Init(); /* 定时器1初始化 */ while(1); return 0; 图3-3 匹配输出波形4.系统的硬件与软件设技4.1.器件表的生成本设计要模拟汽车中控锁,首先需要用到1个直流电机,用这个电机代表司机旁边的中控锁。同时门边用两个LED,一个红色,一个绿色,分别代表车门锁的开关以与电机的状态。门旁还有一个按键作为门锁的开关,司机还有一个打开所有门的按键。为了指示电机动作完成,我们通过数码管显示的数字可以直观的看到显示结果。据此,生成了一下器件表:表4-1 器件表器件数量器件
20、数量 LPC2013芯片1直流电机1红色LED1数码管1绿色LED1按钮3焊接板1烧写器14.2按键电路设计为了控制系统,设计了几个按键,这里直接把按键的一个引脚接在单片机的IO口上,另一个引脚接在地上。IO口设置为上拉输入,在按键按下后,IO口电平就会被拉低,通过程序中检测IO口电平状态就能知到按键是否被按下4.3指示LED电路的设计由于使用的LED功率小,电流低,可以直接用IO口的电流来驱动,这里我直接把每个LED的正极接在一个IO口,负极接在地,配置IO口输出,当IO口输出高时,就能点亮LED。4.4数码管电路的设计要显示电机是在什么时间开始转动以与什么时间停止,需要用到数码管,课题中我
21、需要用到一个直流电机,所以使用了一位数码管,用来显示电机动作是的时间,为了节约IO,这里采用动态扫描的方式,把位选接IO,所有用到的段选相应的接在一起,再接在不同的IO口上。显示原理是这样的 数码管首先从上到右,到下到左,到中间,最后到小数点分别标记为a b c d e f g dp八段其中小数点位DP为最高位,a段为最低位,要想显示什么字符只需要使对应的段发光即可,一般的习惯是单片机的端口的最低位接a段,次低位接b段,.最高位(如p0.7)接dp,显示码从高往低表示为为 dp g f e d c b a如要显示“1”,只需要将b、c段点亮即可,若是共阴极,片选是低电平选中,某一段输出高电平点
22、亮,即显示码为00000110 即0 x06,其他的依照该方法类推图4-2 数码管脚图4.5软件的概述由于LPC2103的寄存器较多,编程起来比较复杂。官方写了一套库函数,我就直接在官方的库函数上进行开发。整个系统用到了单片机的GPIO模块来控制按键,电机和LED。为了控制电机运行的时间和数码管显示的时间,用到了定时中断Tim模块,首先把每个初始化模块放在一起,在主函数最初调用。把控制模块和显示模块分别写成两个函数,在主函数里的大循环里调用。为了使整体程序结构合理,代码风格好,稳定性高,便于调试,我把这几个模块分成几个文件来写,每一个模块写一个C文件和一个H文件,只需要被调用的函数放入H文件中
23、,同时还要保证每个函数的高聚,低耦合的特性。4.6电机数码管与LED模块本设计里所用到的电机和LED都是利用IO口的输出来实现,所以我把他们放在一起。首先打开这些模块的系统时钟,然后用结构体GPIO_InitTypeDef来初始化这些IO口为推挽输出,输出速度为50MHZ,然后按照结构体初始化IO口。对于控制LED的IO口,为了使用方便,直接用一个宏定义来控制。对于控制电机的部分,把他们封装成电机正转,电机反转和电机停止的函数,程序里用一个标志位来表示当前锁的状态。数码管部分作出显示每个数字所对应的IO口状态,然后据此编写显示一位的函数,传入参数为位数和数字。4.7按键输入模块本设计里用到的按
24、键和拨动开关都是直接连接IO口和地的,在软件里,首先要初始化这些IO口,为了防干扰,这里初始化为上拉输入。首先打开相应口的时钟,然后利用结构体GPIO_InitTypeDef初始化这些IO口为上拉输入。对于模拟车速的拨动开关,直接在控制函数里最初进行检测。4.8控制模块整个系统的逻辑都在这个控制模块里,我用一个全局变量来指示几个个门锁的开与锁,首先检测速度拨动开关是否达到高速,如果为真,再检测指示状态的变量,看是否全部关闭,如果没有全部关闭,就调用每个关闭函数,把没有关闭的门锁关闭,电机转动一段时间,然后通过数码管显示的时间进行提示。然后函数返回,这样就禁用了按键。拨动开关没有达到高速的时候,
25、才能用按键进行控制,检测到司机的门为开,并且按下按键时,所有门锁全部锁上。有锁住的门锁,再检测到全部打开的按键按下后,就打开所有的门锁。其余的情况,检测到按键按下后,就改变门锁的状态,更新标志位。4.9显示模块为了指示当前门锁的状态,所有门锁用了一个绿色LED来指示是否锁住。当锁住时,绿色LED不亮,当没有锁住时,绿色LED点亮。所以在这里,只需要读取每个变量的值,然后进行逻辑判断,在根据结果点亮或熄灭相应的LED就行了。为了指示当前电机工作运行的时间,用到了一位数码管,传入时间和电机信号,就能在相应的数码管上显示相应的数字。当某一数值显示的时候电机就会转动,同理,另一数字显示的时候电机会停止
26、。4.10定时模块为了精确控制电机的运行时间,这里用到了单片机的定时器1,首先初始化一组定时器,设定定时中断,并设置相应的参数,封装成函数,并在主函数里调用,同时还要编写定时中断函数,在中断里对一些标志变量和一些时间变量进行控制。4.11主函数由于其他模块都已经封装好,所以主函数里就直接调用那些函数就行,这样显得简单,整齐。首先,先把三个标志位清0,然后调用IO初始化,然后初始化数码管不显示数字,再初始化按键。这样就初始化了所有配置,然后来一个大循环,循环体放控制函数和显示函数。这样就能不断检测按键,进行控制和刷新显示。5.硬件电路的焊接与调试5.1软件的焊接5-1 硬件结果显示图5-2硬件显
27、示图5.2软件的调试要完成整个设计,硬件的调试必不可少,非常的重要,首先我要通过CodeWorrior for ARM Developer Suite检测程序并烧写到LPC2103芯片当中图5-3 程序检测图5-4 添加J-LINK5-5 配置J-LINK6.未来拓展6.1利用电机正反转控制电路 五线马达是主锁,除了有马达以外还多了一个三线的状态开关,并且是和锁马达联动的,其中一根开锁的时候和第二根导通,闭锁的时候和第三根导通,门锁控制器就从它的状态得知门锁是开还是关,保证四个门同步开闭。图6-1 直流电机接线原理图总结本设计设利用ARM芯片模拟汽车中控门直流电机,通过GPIO的输出控制指示L
28、ED。通过GPIO的上拉输入来检测按键和拨动开关。通过定时器TIM模块定时中断来确定时间。软硬件的有机结合,使得整个系统能够正常工作。设计时,首先选择元器件,然后看元器件的数据手册,设计硬件电路,用C语言编写程序,调试程序直到成功实现功能。采用C语言的编程方式,C语言是一种结构化的高级语言,可读性好,移植容易,更容易模块化,并且有严格的句法检查,出错少,便于调试。而且即使在该设计完成投入使用后,需要升级增加功能,也只需要重新烧写程序就能够完成,极大的方便了用户和设计者。通过这次的努力,终于彻底做完了毕业设计当中老师分配给我的各项任务。在老师的指导下,我能够运用已经学过的知识解决所需要的问题,最
29、终完成本课题的需求,实现控制如下:当数码管显示1到5时,电机反转,当数码管显示6到0时,电机停止转动。在这次设计中,我查阅了很多资料,也掌握了一些查阅资料的方法,同时还丰富了我的知识储备,提高了我的专业涵养,使我整个能力得到不少的提高。这次的设计的硬件焊接以与软件调试都使我受益匪浅。在硬件设计时,要考虑很多东西,需要用到哪些原件,以与整个布局都要提前想好。在设计中,我还发现,以前在书本上学到的东西还是和实际有一点出入的,对待问题要更深入的研究,就会收获更多知识,对问题的认识程度也会更上一层楼。总体来说,硬件设计还是相对简单的,最重要的是软件的设计。做软件时,一定要先有一个整体的架构,要了解我的
30、整个设计总体都需要哪些模块,整个程序的架构要提前想好,然后还要有良好的代码风格,这样不仅写起来有条理逻辑不会乱,而且对于后期的维护以与让他人阅读都有很大的帮助。对于这次的设计,由于本人的经历和时间有限,考虑问题也不够全面,所掌握的知识也不是很多,或多或少会存在着一些缺点,设计难免存在一些不足之处。我的这些不足,在今后学习和工作中会不断改善。最重要的是,这次的设计使我懂得了学习的重要性,在今后,我会一直学习下去,我会一直坚持和努力。致经过了小半年的时间,终于完成了我的毕业设计,心里还是有点小激动的,十分的渴望能在大学的最后交出一份满意的答卷,希望这份答卷获得一个正面的评价,能为我的大学画上一个完
31、美的句号。在不知不觉学四年就过去了,这四年我成长了,都说大学是通往社会的一个门槛,我真的学习到了许多,还记得大一刚刚入学时的懵懵懂懂,还记得大学的每一个清晨,终于在大学的最后交出了一份满意的答卷。首先还是应该感我的导师老师,老师给我了很多的帮助,没有老师的帮助,这个毕设题目也没办法完成的这么顺利,这么快。没有老师的细心教导,我也不可能在学到这么多,这么全的专业课程知识。同时我也需要也需要感一起做毕业设计的所有同学,感陪伴我走过了大学的最后六个月的时光,同学间的友情十分珍贵。希望这份友情能够天长地久,永远长存。我还需要感觉和我朝夕相伴四年的室友们,四年的情谊,四年的照顾弥足珍贵。愿同学们友谊长存
32、。在未来的道路上,我还会继续努力,在科研的道路上获得新的成就。参考文献1 大钦.电子技术基础实验(第二版):机械工业。2 胡学海.单片机原理与应用系统设计:京电子工业。3 广弟.单片机基础:北航。4 周立功.单片机基础实验指导书:周立功单片机发展。5 吴黎明.单片机原理与应用技术:科学。6 光东.单片微型计算机原理与其C语言程序设计:华中理工大学。7 袁志勇 嵌入式系统原理与应用 航天航空大学。8 彦文 嵌入式系统原理与接口技术 清华大学。9 宥谋 嵌入式系统开发 清华大学。10 周立功公司 嵌入式系统原理教程。11 波文 嵌入式实时操作系统uC/OS-II经典实例 航天航空大学。12 肖广兵
33、 ARM嵌入式开发实例基于stm32的系统设计 电子工业 。13 敦放 使用ARM定时器对十字路口交通灯控制的探讨 科技学院学报。附录/*Copyright (c)* * * *File Info* File name:main.c* Last modified Date: 2013-10-31* Last Version:1.0* Descriptions:The main() function example template* Created by:Chenmingji* Created date:2004-09-16* Version:1.0* Descriptions:The ori
34、ginal version* Modified by:* Modified date:* Version:* Descriptions:*/#include main.h#include config.h#define LED1 (1 0)#define LED2 (1 1)#define LED3 (1 2)#define LED4 (1 3)#define LED5 (1 4)#define LED6 (1 5)#define LED7 (1 6)#define LED8 (1 7)#define LED9 (1 8)#define LED10 (1 0; uiDly-)for(i = 0
35、; i 50000; i+);void Timer1Init(void)T1TCR = 0 x02; /* 定时器0复位 */T1PR = 0; /* 不设时钟分频 */PWM1CON= 0 x0C; /* 使能PWM输出 */T1MCR = 0 x02; /* 设置T0MR0匹配后复位T0TC */T1MR0 = Fpclk / 2000; /* 设置PWM输出的周期 */T1MR2 = (Fpclk / 2000) / 2; /* 设置PWM1.2输出占空比为50 */T1MR3 = (Fpclk / 2000) / 4) * 3; /* 设置PWM1.3输出占空比为25 */T1TCR
36、= 0 x01; /* 启动定时器0 */int main (void)/PINSEL0 = PINSEL0 & (0 x03f 0); /* 将P0.0-2设置为GPIO */PINSEL1 = (PINSEL1 & (0 x03 8) | (0 x02 8); /* 选择MAT1.3输出 */PINSEL0 = PINSEL0 & 0 xFFF00000; /* 选择P0.0-9为的GPIO功能 */ IO0DIR = LED1|LED2|LED3|LED4|LED5|LED6|LED7|LED8|LED9|LED10; /* 设置输出高电平 */ IO0SET = LED1|LED2|L
37、ED3|LED4|LED5|LED6|LED7|LED8|LED9|LED10; /* 设置输出高电平 */ /Timer1Init(); /* 定时器1初始化 */IRQEnable(); /* IRQ中断使能 */ OSInit(); OSTaskCreateExt(TASK0, (void *)0, &TASK0_STACKTASK0_STACK_SIZE-1, TASK0_PRIO, TASK0_ID, &TASK0_STACK0, TASK0_STACK_SIZE, (void *)0, OS_TASK_OPT_STK_CHK | OS_TASK_OPT_STK_CLR); OSSt
38、art(); return 0; /* Function name: TASK0* Descriptions: None* input parameters: None* output parameters: None*/void TASK0 (void *pdata) TargetInit(); BUZZER_Set(); OSTimeDly(OS_TICKS_PER_SEC / 10); BUZZER_Clr(); OSTimeDly(OS_TICKS_PER_SEC / 10); BUZZER_Set(); OSTimeDly(OS_TICKS_PER_SEC / 10); BUZZER
39、_Clr(); OSTimeDly(OS_TICKS_PER_SEC / 10); / Timer1Init(); /* 定时器1初始化 */IRQEnable(); /* IRQ中断使能 */pdata = pdata; OSTaskCreateExt(TASK1, (void *)0, &TASK1_STACKTASK1_STACK_SIZE-1, TASK1_PRIO, TASK1_ID, &TASK1_STACK0, TASK1_STACK_SIZE, (void *)0, OS_TASK_OPT_STK_CHK | OS_TASK_OPT_STK_CLR); OSTaskCreate
40、Ext(TASK2, (void *)0, &TASK2_STACKTASK2_STACK_SIZE-1, TASK2_PRIO, TASK2_ID, &TASK2_STACK0, TASK2_STACK_SIZE, (void *)0, OS_TASK_OPT_STK_CHK | OS_TASK_OPT_STK_CLR); OSTaskCreateExt(TASK3, (void *)0, &TASK3_STACKTASK3_STACK_SIZE-1, TASK3_PRIO, TASK3_ID, &TASK3_STACK0, TASK3_STACK_SIZE, (void *)0, OS_T
41、ASK_OPT_STK_CHK | OS_TASK_OPT_STK_CLR); while(1) OSTimeDly(OS_TICKS_PER_SEC); count+; if (count%8) = 1) IO0SET = LED1|LED2|LED3|LED4|LED5|LED6|LED7; IO0CLR = LED2|LED3; DelayNS(100); /* 点亮发光二极管 */ if (count%8) = 2) IO0SET = LED1|LED2|LED3|LED4|LED5|LED6|LED7; IO0CLR = LED1|LED2|LED4|LED5|LED7; Delay
42、NS(150); if (count%8) = 3) IO0SET = LED1|LED2|LED3|LED4|LED5|LED6|LED7; IO0CLR = LED1|LED2|LED3|LED4|LED7; if (count%8) = 4) IO0SET = LED1|LED2|LED3|LED4|LED5|LED6|LED7; IO0CLR = LED2|LED3|LED6|LED7; if (count%8) = 5) IO0SET = LED1|LED2|LED3|LED4|LED5|LED6|LED7; IO0CLR = LED1|LED3|LED4|LED6|LED7; /* 点亮发光二极管 */ if (count%8) = 6) IO0SET = LED1|LED2|LED3|LED4|LED5|LED6|LED7; IO0C
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 环评应急预案说明(3篇)
- 电石冷却厂房应急预案(3篇)
- 示范互动展馆施工方案(3篇)
- 箱式砌块挡墙施工方案(3篇)
- 美发情绪营销方案(3篇)
- 花都厨房防水施工方案(3篇)
- 街道环境保结应急预案(3篇)
- 车库划线系统施工方案(3篇)
- 邻家小院营销方案(3篇)
- 钢架厂房封顶施工方案(3篇)
- 2026四川宜宾高新区招聘城市综合管理辅助人员15名笔试备考试题及答案解析
- 古建筑地面基础施工方案
- 建筑施工设备检测与维护操作规程
- DB11-T 696-2023 预拌砂浆应用技术规程
- 采血室感控知识培训计划课件
- 硬膜外穿刺术课件
- (正式版)DB65∕T 4069-2020 《建筑消防设施维护及保养技术规范》
- 浙江省心理b证笔试试题(含答案)
- 物流专业毕业论文
- 永登县石灰沟防洪治理工程报告表
- GB 28375-2025混凝土结构防火涂料
评论
0/150
提交评论