嵌入式系统课程实验报告

嵌入式课程
设计实习报告
设计任务 十字路口交通灯控制
一、设计目的:
1.了解基于ARM7核的LPC2106的管脚功能和特点,掌握I/O控制寄存器的设置方法;
2.掌握ARM7应用系统编程开发方法,能用C语言编写应用程序;
3.熟练掌握ADS1.2软件的使用以及PROTEUS仿真调试的方法;
二、具体任务:
1.采用PROTEUS完成十字路口交通灯控制的硬件电路设计,要求单片机选型为飞利浦公司的LPC2106,东西南北方向分别设置红黄绿3个指示灯,东西方向和南北方向各用1个数码管显示通行时间;
2.用ADS1.2编写C语言应用程序,完成十字路口交通灯控制;
3.采用PROTEUS将应用程序装载在LPC2106中,进行仿真验证。要求东西方向和南北方向的数码管显示通行时间并倒计时,可以设置成一样,例如都是9秒倒计时;每当倒计时时间到,完成红黄绿指示灯的状态切换,模拟实现十字路口的交通灯管理控制。
三、硬件电路设计
我选择了以下器件来进行此实验的硬件设计:
7SEG-COM-ANODE                          7SEG-COM-CATHODE                                    7SEG-MPX2-CA                                        LPC2106
10WATT0R1                                        AUDI01U
LED-GREEN                                        LED-RED
LED-YELLOW                                      PCELECT47U25V
附图:
四、源程序。
耳塞棉源程序:
#include "config.h"
#include "LPC2106.h"
uint32 shuzu[9]={0x0000c00c,0x0000f90c,0x0000a40c,0x0000b00c,0x0000990c,0x0000920c,0x0000820c,0x0000f80c,0x0000800c};
uint32 shuzu1[4]={0x0000c012,0x0000f912,0x0000a412,0x0000b012};
uint32 shuzu2[9]={0x0000c021,0x0000f921,0x0000a421,0x0000b021,0x00009921,0x00009221,0x00008221,0x0000f821,0x00008021};
/**********延迟数字显示时间**********/
void delay(uint32 q)
{
    uint32 q;
    for(;q>0;q--);
}
int main()
{
    int n,m;
    /*****设置端口为第一功能*********/
    PINSEL0=0x00000000;
    PINSEL1=0x00000000;
    /********设置端口为输出**********/
    IODIR=0xffffffff;
    while(1)
        {
                for(n=8;n>=0;n--)
                {
                    IOSET=shuzu[n];//输出所要显示的数据
                    delay(900000);
                    IOCLR=0xffffffff;
                }
             
              for(m=3;m>=0;m--)
              {    pe打包带
                      IOSET=shuzu1[m];//输出置1
                    delay(900000);
                    IOCLR=0xffffffff;//输出清零
                }
                for(n=8;n>=0;n--)
                {
                    IOSET=shuzu2[n];//输出所要显示的数据
                    delay(900000);
                    IOCLR=0xffffffff;
                }
              for(m=3;m>=0;m--)
              {   
                      IOSET=shuzu1[m];//输出置1
                    delay(900000);
                    IOCLR=0xffffffff;//输出清零
                }
        }   
}
五、仿真效果
设计任务二 uC/OS-的移植与应用
一、设计目的:
1.了解嵌入式实时操作系统μC/OS-II可移植、可裁剪等性能特点,正确理解实时操作系统中任务、信号、消息、中断等基本概念以及μC/OS-II多任务管理的调度算法
2.掌握μC/OS-II苯胺类化合物在真空吸笔ARM7上移植的方法
3.能将μC/OS-II移植在LPC2106中,并根据具体要求创建用户任务,解决实际问题;
二、具体任务:
1.μC/OS-II移植在LPC2106中。
2.编写用户任务程序,完成实时温度的采集控制。硬件电路见参考硬件电路图,图中用滑动变阻器代替温度传感器转换后的电压,用ADC0809完成A/D转换,并用数码管显示出来。
三、硬件电路设计。
我选择了以下器件来进行此实验的硬件设计:
7SEG-MPX4-CC                            24C02C
74HC373                                  7404
pvc瑜伽垫
ADC0808                                  BUTTON
CAP-ELEC                                LPC2106
LED-BLUE                                LED-GREEN
NOT                                      POT-LOG 
RES                                        SW-DPST
附图:
四、源程序。
源程序:
#include "config.h"
#define  TASK_STK_SIZE        64
#define  key      0x00001000
#define  adstart        0x00002000
#define  adend        0x00004000
uint32 bai[10]={0x0000013f,0x00000106,0x0000015b,0x0000014f,0x00000166,0x0000016d,0x0000017d,0x00000107,0x0000017f,0x0000016f};
uint32 shi[10]={0x0000023f,0x00000206,0x0000025b,0x0000024f,0x00000266,0x0000026d,0x0000027d,0x00000207,0x0000027f,0x0000026f};
uint32 ge[10]={0x0000043f,0x00000406,0x0000045b,0x0000044f,0x00000466,0x0000046d,0x0000047d,0x00000407,0x0000047f,0x0000046f};
 
OS_STK    Task0Stk[TASK_STK_SIZE];
OS_STK      Task1Stk[TASK_STK_SIZE];
OS_STK      Task2Stk[TASK_STK_SIZE];
螺纹套套INT32U i;
 
void  Task0(void *data);
void  Task1(void *data);
void  Task2(void *data);
/*********************************************************************************************************
** 函数名称: main
** 功能描述: c语言的主函数,由它启动多任务环境

本文发布于:2024-09-23 09:33:56,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/3/154940.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:硬件   完成   显示   任务
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议