电子电路综合设计实验报告
题目:基于单片机的红外遥控收发系统的设计实现
班级:
姓名:
学号:
日期:20xx年5月
摘要
本系统包括遥控发射装置和遥控接收装置,采用单片机实现信号的编码、调制、解调和解码,红外发射管实现信号的发射,集成红外接收头实现信号的接收和解调。其中,发射信号是以红外光波的形式进行传播,故称基于单片机的红外遥控。遥控发射装置包括电源模块、输入模块(4×4矩阵键盘)、显示模块(1602LCD)、红外发射模块和单片机最小系统。遥控接收装置包括电源模块、红外接收模块、显示模块(1602LCD)、输出模块(16个LED)和单片机最小系统。
使用者通过按下4×4矩阵键盘中的某个按键输入控制信号,遥控发射装置中的单片机对矩阵键盘进行扫描以获取控制信号并完成信号的编码和调制,然后控制红外发射模块将信号发射出去,并控制LCD显示哪个按键被按下。遥控接收装置中的红外接收模块接收到红外信号后将其解调并以外部中断的形式输入到单片机中,单片机完成信号的解码后控制输出模块中的某个LED导通,并控制LCD显示哪个LED被点亮。
本系统具有经济节约,控制功能强,显示丰富的特点。
设计选题及设计任务要求
设计选题:基于单片机的红外遥控收发系统的设计实现
设计任务要求:
设计一个以单片机为核心控制器件的红外收发系统。
发射载频:38KHz
电源:9V/0.2A 5V/0.1A
工作温度:-40℃--+85℃
接收范围:2m
传输速率:27bit/s
反应时间:2ms
第二部分 系统概述
方案设计与论证
红外遥控收发系统(以下简称红外遥控系统)是指利用红外光波作为信息传输的媒介以实现远距离控制的装置。从完成遥控功能的过程看,遥控系统应包括以下部分:获取控制信号、编码、调制、发射、接收、解调、解码、输出信号。从实际系统的硬件结构看,红外遥控系统包括发射装置和接收装置,其中发射装置包括电源模块、输入模块、显示模块、红外发射模块和单片机最小系统,接收装置包括电源模块、红外接收模块、显示模块、输出模块和单片机最小系统。
本设计选题设计任务要求设计一个以单片机为核心控制器件的红外收发系统。其中,发射载波38KHz,电源9V/0.2A 5V/0.1A,工作温度-40℃--+85℃,接收范围2m,传输速率27bit/s,反应时间2ms。
利用单片机的定时功能或使用载波发生器(用于产生载波的芯片)均可产生38KHz的发射载波。单片机系统可以直接由5V/0.1A的电源供电,也可以通过三端稳压芯片由9V/0.2A电源供电。采用工业级单片机可以工作在-40℃--+85℃。为保证接收范围达到2m,在发射载频恒为38KHz的前提下,应采用电流放大电路使红外发射管发射功率足够大。传输速率和反应时间取决于所使用的编码芯片或程序的执行效率。
通过上述分析可知,为实现设计任务并满足设计指标,应采用工业级单片机,由电流放大电路驱动红外发射管。下面针对设计任务及指标,根据是否采用单片机完成信号的编码、调制、解码,提出三种设计方案:
方案一
采用专用编、解码芯片完成信号的编码和解码。此时,在发射装置中既可以利用单片机的定时功能产生38KHz的载波与编码后的控制信号进行调制,也可以使用载波发生器产生38KHz的载波完成信号调制。
使用者从输入模块输入控制信息,输入模块将控制信号送入单片机和编码芯片,单片机控制显示模块显示控制信息,编码芯片对输入的控制信号进行编码。编码后的信号与载波完成调制,经红外发射模块发射出去。接收装置中的红外接收模块可以一同完成信号的接收和解调,解调后的信号由解码芯片完成解码后送入单片机,单片机据此控制输出模块中的某个设备开始工作并控制显示模块显示正在工作的设备。方案一系统框图如图xxx所示。
方案二
利用单片机完成信号的调制、编码和解码。
使用者通过输入模块输入控制信息并送入单片机,单片机控制显示模块显示输入的控制信息,对信号进行编码并产生38KHz的载波与编码后的信号进行调制,然后由红外发射模块将调制后的信号发射出去。接收装置中的红外接收模块可以一同完成信号的接收和解调,解调后的信号以外部中断的形式送入单片机,单片机对其进行解码,然后控制输出模块中的某个设备开始工作并控制显示模块显示正在工作的设备。方案二系统框图如图xxx所示。
方案三
使用单片机完成信号的调制、编码,专用解码芯片完成信号的解码。
方案三的红外信号发射过程和方案二相同,接收过程和方案一相同(详见参考文献xxx)。方案三系统框图如图xxx所示。
方案比较
采用专用的编、解码芯片进行设计时,单片机的作用主要是控制显示模块和输出模块,程序简单易实现,而且由于采用硬件编码、解码,通过选择高性能的芯片,传输速率可以很快,反应时间可以很短;但系统的硬件电路复杂。利用单片机完成信号的调制、编码或解码时,单片机要处理的事情很多,且为了保证传输速率和反应时间,编程难度大;但系统的硬件电路简单,节约成本。三种的优缺点比较如表yyy所示。
利用单片机完成信号的调制、编码和解码时,虽然编程难度大,但仍然可以实现,出于节约成本的考虑,本系统采用设计方案三。
方案评估
采用4×4矩阵键盘作为输入模块,可以控制多达16个设备;LCD作为显示模块,显示内容丰富;工作点稳定电路作为红外发射模块的电流放大电路,有效保证发射功率;利用单片机定时器方式1,8位自动重装模式,定时时间准确无误差,保证反应时间短。本方案满足设计要求,且具有经济节约,控制功能强,显示丰富的特点。
设计思路及工作原理
使用者通过按下4×4矩阵键盘中的某个按键输入控制信号,遥控发射装置中的单片机对矩阵键盘进行扫描以获取控制信号并完成信号的编码和调制,然后控制红外发射模块将信号发射出去,并控制LCD显示哪个按键被按下。遥控接收装置中的红外接收模块接收到红外信号后将其解调并以外部中断的形式输入到单片机中,单片机完成信号的解码后控制输出模块中的某个LED导通,并控
制LCD显示哪个LED被点亮。
第三部分 单元电路设计与分析
单片机最小系统设计与分析
第二篇:红外收发器设计
2010.7上海师范大学天华学院电子信息工程系ARM课程设计1
.
ARM课程设计
红外收发器设计
系学时完成时间:20xx年07月
2姓名:王懿川红外线收发器设计2010.7
目录
1课题设计背景、目的和要求.....................................................................................1
1.1嵌入式学科背景..............................................................................................1
1.2课程设计的目的..............................................................................................2
1.3课程设计题目及设计要求..............................................................................2
1.3.1题目.......................................................................................................2
1.3.2设计要求...............................................................................................22小组设计.....................................................................................................................3
2.1用到的设备与器材..........................................................................................3
2.1.1器材的具体说明..................................................................................32硬件方案...................................................................................................................10
2.1设计思想........................................................................................................10
2.2原理框图........................................................................................................11
2.3简述工作原理................................................................................................113软件方案...................................................................................................................13
3.1程序原理图....................................................................................................13
3.1.1流程图说明.........................................................................................13
3.2程序清单........................................................................................................144方案论证..................................................................................................................14
5.调试过程..................................................................................................................14
5.1调试运用的方法和软件及其设备...............................................................14
5.2调试中所遇到的问题....................................................................................146课程设计心得体会...................................................................................................15
7.参考文献..................................................................................................................17
2010.7上海师范大学天华学院电子信息工程系ARM课程设计3
1课题设计背景、目的和要求
1.1嵌入式学科背景
嵌入式系统的出现最初是基于单片机的发明和应用。70年代单片机的出现,使得汽车、家电、工业机器、通信装置可以通过内嵌电子装置来获得更佳的使用性能:更容易使用、更快、更便宜。
90年代以后,在分布控制、柔性制造、数字化通信和信息家电等需求的推动下,嵌入式系统得到进一步加速发展。随着对实时性要求的提高,实时多任务操作系统(RTOS),并作为一种软件平台逐步成为目前国际嵌入式系统的主流。
红外线遥控技术是利用红外线进行点对点通信的技术,其相应的软件和硬件技术都已经非常成熟。它是把红外线作为载体的遥控方式。在现代电子工程应用中,红外线常被用作近距离范围内的通信载波,红外线通讯是一种廉价、近距离、无连线、低功耗和保密性较强的通讯方案,在PC机中主要应用在无线数据传输方面,但目前已经逐渐开始在无线网络接入和近距离遥控家电方面得到应用。
1.2课程设计的目的
通过本次课程设计,运用已学的课程知识,根据题目要求进行软硬件系统的设计和调试,
对《嵌入式系统原理与应用》课程中涉及的芯片结构、控制原理、硬件和编程等方面有一定的感性认识和实践操作能力,从而加深对本课程知识点的理解,使学生应用知识能力、设计能力,调试能力以及撰写报告能力等方面有显著的提高
4姓名:王懿川红外线收发器设计2010.7
1.3课程设计题目及设计要求
1.3.1题目
红外收发器设计
1.3.2设计要求
利用系统的资源来设计一个“带LED显示的红外收发器”
控制面板包括:数码显示,十个数字按键键盘、电源按键、电源指示灯、运行键。
工作流程如下:
按下电源键,电源指示灯亮
按下运行键,启动系统运行
通过红外光收发元件实现数据传输,并能在LED上显示收到的数据;运行过程中,若再按下电源键,则系统停止,电源指示灯灭。
2小组设计
2.1用到的设备与器材
1.2262编码器
2.2272解码器
3.LM3S2110
4.LED显示灯
5.矩阵键盘
6.导线
7.独立按键(运行键,电源键)
8.二极管(用作电源灯)ARM开发板
2010.7上海师范大学天华学院电子信息工程系ARM课程设计5
2.1.1器材的具体说明
PT2262/PT2272是台湾普城公司生产的一种CMOS工艺制造的低功耗低价位通用编解码电路,PT2262/PT2272最多可有
12位(A0-A11)三态地址端管脚(悬空,接高电平,接低电平),任意组合可提供531441地址码,PT2262最多
图1
上图为PT2262,PT2272的图片
可有6位(D0-D5)数据端管脚,设定的地址码和数据码从17脚串行输出,可用于无线遥控发射电路。编码芯片PT2262发出的编码信号由:地址码、数据码、同步码组成一个完整的码字,解码芯片PT2272接收到信号后,其地址码经过两次比较核对后,VT脚才输出高电平,与此同时相应的数据脚也输出高电平,如果发送端一直按住按键,编码芯片也会连续发射。当发射机没有按键按下时,PT2262不接通电源,其17脚为低电平,所以315MHz的高频发射电路不工作,当有按键按下时,PT2262得电工作,其第17脚输出经调制的串行数据信号,当17脚为高电平期间315MHz的高频发射电路起振并发射等幅高频信号,当17脚为低平期间315MHz的高频发射电路停止振荡,所以高频发射电路完全收控于PT2262的17脚输出的数字信号,从而对高频电路完成幅度键控(ASK调制)相当于调制度为100%的调幅。
CMOS工艺制造,低功耗
外部元器件少
RC振荡电阻
工作电压范围宽:2.6-15v
数据最多可达6位
6姓名:王懿川红外线收发器设计2010.7
地址码最多可达531441种
PT2262引脚功能图:
PT2262常用震荡电阻(直接接在OSC1-OSC2端):
1.2M1.5M2.2M3.3M4.7M
LM3S2110微控制器
概述
德州仪器(TI)公司Stellaris?所提供一系列的微控制器是首款基于ARM?CortexTM-M3的控制器,它们为对成本尤其敏感的嵌入式微控制器应用方案带来了高性能的32位运算能力。这些具备领先技术的芯片使用户能够以传统的8位和16位器件的价位来享受32位的性能,而且所有型号都是以小占位面积的封装形式提供。
该Stellaris?系列芯片能够提供高效的性能、广泛的集成功能以及按照要求定位的选择,适用于各种关注成本并明确要求具有的过程控制以及连接能力的应用方案。Stellaris?LM3S2000系列是针对CAN应用方案而设计的一组芯片,它在群星系列芯片的基础上扩展了BocshCAN网络技术——短距离工业网络里的黄金标准。Stellaris?LM3S2000系列芯片还标志着先进的Cortex-M3内核和CAN能力的首次结合运用。Stellaris?LM3S6000系列芯片结合了10/100以太网媒体访问控制(MAC)以及物理层(PHY),它不但标志着ARMCortex-M3微控制器已经具备了集成连接能力,还是唯一一系列同时集成了10/100以太网MAC和PHY物理层的ARM架构MCU。
LM3S2110微控制器是针对工业应用方案而设计的,这些应用方案包括远程监控、电子贩售机、测试和测量设备、网络设备和交换机、工厂自动化、HVAC和建筑控制、游戏设备、运动控制、医疗器械、以及火警安防等。
LM3S2110微控制器包含了下列特性:
32位RISC性能
-采用为小封装应用方案而优化的32位ARM?CortexTM-M3
v7M架构
2010.7上海师范大学天华学院电子信息工程系ARM课程设计7
-提供系统时钟、包括一个简单的24位写清零、递减、自装载计
数器,同时具有灵活的控制机制
-仅采用与Thumb?兼容的Thumb-2指令集以获取更高的代码密
度
-工作频率为25-MHz
-硬件除法和单周期乘法
-集成嵌套向量中断控制器(NVIC),使中断的处理更为简捷-26中断具有8个优先等级
-带存储器保护单元(MPU),提供特权模式来保护操作系统的功
能
-非对齐式数据访问,使数据能够更为有效的安置到存储器中
-精确的位操作(bit-banding),不仅最大限度的利用了存储器空
间而且还改良了对外设的控制
内部存储器
-64KB单周期Flash
可由用户管理对flash块的保护,以2KB为单位
可由用户管理对flash的编程
可由用户定义和管理的flash保护块
-16KB单周期访问的SRAM
通用定时器
-3个通用定时器模块(GPTM),每个模块都能提供2个16位
的定时器/计数器。每个通用定时器模块都能够被设置为独立运作的
定时器或事件计数器(总共有8个)可用作单个32位的定时器
(最多4个)或者用作单个32位的实时时钟(RTC)以捕获事件,
或者用作脉宽调制输出(PWM)
-32位定时器模式
可编程单次触发定时器
可编程周期定时器
当接入32.768-KHz外部时钟输入时可作为实时时钟使用
8姓名:王懿川红外线收发器设计2010.7
在调试的时候,当控制器发出CPU暂停标志时,用户可以设定
暂停定时器的周期或单次触发模式
-16位定时器模式
通用定时器功能,并带一个8位的预分频器
可编程单次触发定时器
可编程周期定时器
在调试的时候,当控制器发出CPU暂停标志时,用户可设定暂
停周期或者单次模式下的计数
-16位输入捕获模式
提供输入边沿计数捕获功能
提供输入边沿时间捕获功能
-16位PWM模式
简单的PWM模式,对PWM信号输出的取反可由软件编程决定
兼容ARMFiRM的看门狗定时器
-32位向下计数器,带可编程的装载寄存器
-带使能功能的独立看门狗时钟
-带中断屏蔽功能的可编程中断产生逻辑
-软件跑飞时可锁定寄存器以提供保护
-带使能/禁能的复位产生逻辑
-在调试的时候,当控制器发出CPU暂停标志时,用户可以设定
暂停定时器的周期
CAN
-支持CAN协议版本2.0partA/B
-传输位速率可达1Mb/s
-32个消息对象,每个都带有独立的标识符屏蔽
-可屏蔽的中断
-可禁止TTCAN的自动重发模式
-可编程设定的自循环自检操作
同步串行接口(SSI)
2010.7上海师范大学天华学院电子信息工程系ARM课程设计9
-主机或者从机方式运作
-可编程控制的时钟位速率和预分频
-独立的发送和接收FIFO,8X16位宽的深度
-可编程控制的接口,可与Freescale的SPI接口,MICROWIRE
或者TI器件的同步串行接口相连
-可编程决定数据帧大小,范围为4到16位
-内部循环自检模式可用于诊断/调试
UART
-完全可编程控制的16C550型UART,支持IrDA
-带有独立的16x8发送(TX)以及16x12接收(RX)FIFO,可
减轻CPU中断服务的负担
-可编程的波特率产生器,并带有分频器
-可编程设置FIFO长度,包括1字节深度的操作,以提供传统的
双缓冲接口。
-FIFO触发水平可设为1/8、1/4、1/2、3/4、和7/8
-标准异步通信位:开始位、停止位、奇偶位
-无效起始位检测
-行中止的产生和检测
模拟比较器
-3个独立集成的模拟比较器
-可以把输出配置为:驱动输出管脚或者产生中断
-比较两个外部管脚输入或者将外部管脚输入与内部可编程参考
电压相比较
I2C
-在标准模式下主机和从机接收和发送操作的速度可达100Kbps,
在快速模式下可达400Kbps
-中断的产生
-主机带有仲裁和时钟同步功能、支持多个主机、以及7位寻址模
式
PWM
10姓名:王懿川红外线收发器设计2010.7
-1个PWM信号发生模块,每个模块都带有1个16位的计数器、
2个比较器,1个PWM信号发生器、以及一个死区发生器
-1个16位的计数器
运行在递减或递增/递减模式
输出频率由一个16位的装载值控制
可同步更新装载值
当计数器的值到达零或者装载值的时候生成输出信号
-2个PWM比较器
比较器值的更新可以同步
在匹配的时候产生输出信号
-PWM信号发生器
根据计数器和PWM比较器的输出信号来产生PWM输出信号可产生两个独立的PWM信号
-死区发生器
产生2个带有可编程死区延时的PWM信号,适合驱动半H桥
(half-Hbridge)
可以被旁路,不修改输入PWM信号
-灵活的输出控制模块,每个PWM信号都具有PWM输出使能
每个PWM信号都具有PWM输出使能
每个PWM信号都可以选择将输出反相(极性控制)
每个PWM信号都可以选择进行故障处理
PWM发生器模块的定时器同步
PWM发生器模块的定时器/比较器更新同步
PWM发生器模块中断状态被汇总
GPIO
-高达11-40个GPIO,具体数目取决于配置
-输入/输出可承受5V
-中断产生可编程为边沿触发或电平检测
-在读和写操作中通过地址线进行位屏蔽
2010.7
11上海师范大学天华学院电子信息工程系ARM课程设计-GPIO端口配置的可编程控制
弱上拉或下拉电阻
2mA、4mA和8mA端口驱动
8-mA驱动的斜率控制
开漏使能
数字输入使能
功率
-片内低压差(LDO)稳压器,具有可编程的输出电压,用户可调
节的范围为2.25V到2.75V
-控制器的低功耗模式:睡眠模式和深度睡眠模式
-外设的低功耗模式:软件控制单个外设的关断
-LDO带有检测不可调整电压和自动复位的功能,可由用户控制使
能
-3.3V电源掉电检测,可通过中断或复位来报告
灵活的复位源
-上电复位
-复位管脚有效
-掉电(BOR)检测器向系统发出电源下降的警报
-软件复位
-看门狗定时器复位
-内部低压差(LDO)稳压器输出变为不可调整
其他特性
-6个复位源
-可编程的时钟源控制–可对单个外设的时钟进行选通以节省功
耗
-遵循IEEE1149.1-1990标准的测试访问端口(TAP)控制器-通过JTAG和串行线接口进行调试访问
-完整的JTAG边界扫描
工业范围内遵循RoHS标准的100脚LQFP封装
12姓名:王懿川红外线收发器设计2010.7
2硬件方案
2.1设计思想
利用LM3S2110芯片把接收到的矩阵键盘的信号转换成对应的数码管的信号,然后经过功放,把信号进行放大;通过2262编码器进行放大,再接收端通过2272解码器解码出数码管的信号,放大信号后显示在数码管上。
2.2原理框图
图2原理框图
2.3简述工作原理
LM3S2110利用两个数组把矩阵键盘和LED显示等巧妙的联系到了一起,从而实现了红外收发功能。
2010.7
13上海师范大学天华学院电子信息工程系ARM课程设计
图3
上图为红外收发装置原理电路图
图4
上图为矩阵键盘和LM3S2110连接图
14姓名:王懿川红外线收发器设计2010.7
3软件方案
3.1程序原理图
图5
3.1.1流程图说明
判断是否有键按下,若有键按下则判断是那个键按下(数字键还是开关键),最后通过红外收发模块在LED显示屏上显示按下键的信息。
2010.7
15上海师范大学天华学院电子信息工程系ARM课程设计3.2程序清单
详见附录1(逐键扫描)
4方案论证
当时小组进行讨论的时候我们提出了两种方案
1.把红外收发模块接在发送模块上
2.把红外收发模块装在接收模块上
经过实践,只有接在发送模块上可以完全实现红外收发功能
原因:因为接收模块上的驱动能力不足,无法是LED正常发光,需要用到功放模块提高驱动能力。(跳线不够长所以没用)
5.调试过程
5.1调试运用的方法和软件及其设备
我们小组决定用断点法来调试程序。利用IAR软件调试,用到了红外收发模块,LED显示模块,矩阵键盘模块LM3S2110芯片,跳线,PC机等设备。
5.2调试中所遇到的问题
问题1
刚开始调试的时候LED不显示信息?
16姓名:王懿川红外线收发器设计2010.7解决方案
电源是否接触不好
跳线是否接错
程序中是否使能端口,设置端口为输出状态
后来我们先接一根跳线,看看是不是有反映,后来发现是芯片和试验箱没有共地。
问题2
按矩阵键盘的时候,数码管会跳动?
分析:1有可能是跳线接触不好(后来被排除了)
2程序不是很稳定(通过添加了延时程序让系统稳定下来)
问题3
在调试中,确定程序没错的情况下,发现只有第一排矩阵键盘可以正常工作?
分析:1.根据分析老师下发的电路图,我们发现在J2,J3处有2个跳线帽,导致第一排永远接地,从而解决了这个问题
问题4
在实验中,用了红外收发,发现很不稳定?
经过老师的指导和建议:让我们用无线收发模块来代替红外收发模块。
6课程设计心得体会
这次课程设计是对我们学习arm课程的一次检验。通过这次课程设计提高了我们综合运用所学的理论知识和技能去分析解决实际应用问题的能力。使我们加深了对理论知识的理解,培养了我们的实践能力和创新能力。
通过设计,掌握了单片机/嵌入式实验平台、红外接收模块、红外发送模块、
2010.7
17上海师范大学天华学院电子信息工程系ARM课程设计LED显示模块、矩阵键盘模块、可编程并行接口芯片LM3S2110的使用。同时掌握了常用工具软件的使用方法。学会了使用c语言管理控制硬件设备。
程序的编写过程也给了我们很大的收获。在编写程序以前,我们查阅了大量的相关技术资料,在明确了整体的设计思想后,我们从程序流程图着手,将程序分成若干块,分开编写,边发现问题边解决问题,并在实验板上测试程序,根据现象不断修改。在编程过程中我们体会到了编程的技巧,设置子程序的合理性,对红外收发器的设计有了整体的理解和比较深刻的体会。锻炼了我们的思维能力和解决问题的能力。
在此次的课程设计中,我们真正体会到了团队协作精神,认识到今后我们从事的设计工作离不开团队的合作。此次我们在红外收发器的设计工作中,充分发挥团队协作、齐心协力。从一开始我们就通过集体商量确定各个成员的分工,比如在图书馆找资料时每人负责不同的方面,最后进行汇总讨论删选。分配各组员工作时,各尽其能,发挥各自的长处,同时又相互交流,取长补短,共同进步。
最后,我们学会了一种做科研、做课题的方法,应用网络寻找相关资料,思考并研究这些别人的产品,了解相关知识,在运用在自己的课程上,在整个课程的学习过程中,突破了传统学习模式,把被动接受转变为主动学习。不再是用学到的知识解题,而是在实际运用时遇到什么学什么,重在把知识应用于实际。
总之,这学期的ARM嵌入式课程设计,让我们学到了很多,受益匪浅。其中有欢乐也有痛苦,当调试一次次的失败时,那种挫败感记忆犹新,可一旦成功内心充满了喜悦,这种欢乐也许就是成功的滋味,之前的所有挫败,以及放弃的念头都会随之烟消云散,我们学会了经受挫败不气馁,坚持不懈、坚定信念运用所学知识去解决实验中遇到的问题。学会了团队协作,共同面对困难和挑战,最后去迎接成功的来临。
18姓名:王懿川红外线收发器设计2010.7
参考文献
【1】作者:微嵌北京电子文献题名:嵌入式系统
地址:/view/6115.htm
【2】电子文献名:LM3S2110技术手册
地来源:全国电子设计与技能大赛址:/a/zhiyepingce/saiqianxunlian/qianrushishejiyukaifa/2010/0402/113.html
【3】作者:百度百科电子文献题名:PT2262/PT2272编码解码芯片中文资料地址:/down/1764.pdf
附录
附录1--程序清单
#include"systemInit.h"
#defineucharunsignedchar
#defineuintunsignedint
#define
#define
#define
#define
#defineKEYSYSCTL_PERIPH_GPIOBGPIO_PORTB_BASEKEY_PORTPB0PB1PB2GPIO_PIN_0GPIO_PIN_1GPIO_PIN_2
2010.7
19上海师范大学天华学院电子信息工程系ARM课程设计#define
#define
#define
#definePB3PB4PB5PB6GPIO_PIN_3GPIO_PIN_4GPIO_PIN_5GPIO_PIN_6
#defineLEDSYSCTL_PERIPH_GPIOD
#defineLED_PORTGPIO_PORTD_BASE
#definePD0GPIO_PIN_0
#definePD1GPIO_PIN_1
#definePD2GPIO_PIN_2
#definePD3GPIO_PIN_3
#definePD4GPIO_PIN_4
#definePD5GPIO_PIN_5
#definePD6GPIO_PIN_6
#definePD7GPIO_PIN_7
voidguan(void)
{
GPIOPinWrite(KEY_PORT,PB0|PB1|PB2|PB3|PB4|PB5|PB6,0xff);GPIOPinWrite(GPIO_PORTC_BASE,GPIO_PIN_5,0xff);
}
intmain(void)
{
//jtagWait();
要!
clockInit();//时钟初始化:晶振,6MHz//防止JTAG失效,重
20姓名:王懿川红外线收发器设计2010.7
SysCtlPeriEnable(KEY);
SysCtlPeriEnable(LED);
SysCtlPeriEnable(SYSCTL_PERIPH_GPIOC);
GPIOPinTypeIn(KEY_PORT,PB0|PB1|PB2|PB3|PB4|PB5|PB6);GPIOPinTypeIn(GPIO_PORTC_BASE,GPIO_PIN_5);
GPIOPinTypeOut(LED_PORT,PD0|PD1|PD2|PD3|PD4|PD5|PD6|PD7);GPIOPinWrite(LED_PORT,
0X00);
guan();
for(;;)
{
//111111
GPIOPinTypeOut(KEY_PORT,PB4);
GPIOPinTypeIn(KEY_PORT,PB5|PB6);
GPIOPinWrite(KEY_PORT,PB4,0x00);
if(GPIOPinRead(KEY_PORT,PB0)==0)
{
GPIOPinWrite(LED_PORT,
0xc0);
SysCtlDelay(5*(TheSysClock/3000));
}
if(GPIOPinRead(KEY_PORT,PB1)==0)
{
GPIOPinWrite(LED_PORT,
0xf9);PD0|PD1|PD2|PD3|PD4|PD5|PD6|PD7,//显示数字1PD0|PD1|PD2|PD3|PD4|PD5|PD6|PD7,//显示数字0PD0|PD1|PD2|PD3|PD4|PD5|PD6|PD7,
2010.7
21上海师范大学天华学院电子信息工程系ARM课程设计SysCtlDelay(5*(TheSysClock/3000));}
if(GPIOPinRead(KEY_PORT,PB2)==0){
GPIOPinWrite(LED_PORT,
0xa4);
SysCtlDelay(5*(TheSysClock/3000));}
if(GPIOPinRead(KEY_PORT,PB3)==0){
GPIOPinWrite(LED_PORT,
0xb0);
SysCtlDelay(5*(TheSysClock/3000));}
//22222222
GPIOPinTypeOut(KEY_PORT,PB5);
GPIOPinTypeIn(KEY_PORT,PB4|PB6);GPIOPinWrite(KEY_PORT,PB5,0);
if(GPIOPinRead(KEY_PORT,PB0)==0){//显示数字4PD0|PD1|PD2|PD3|PD4|PD5|PD6|PD7,//显示数字3PD0|PD1|PD2|PD3|PD4|PD5|PD6|PD7,//显示数字2
GPIOPinWrite(LED_PORT,
0x99);PD0|PD1|PD2|PD3|PD4|PD5|PD6|PD7,
SysCtlDelay(5*(TheSysClock/3000));
}
if(GPIOPinRead(KEY_PORT,PB1)==0){
GPIOPinWrite(LED_PORT,
0x92);PD0|PD1|PD2|PD3|PD4|PD5|PD6|PD7,//显示数字5
22姓名:王懿川红外线收发器设计2010.7
SysCtlDelay(5*(TheSysClock/3000));
}
if(GPIOPinRead(KEY_PORT,PB2)==0)
{
GPIOPinWrite(LED_PORT,
0x82);
SysCtlDelay(5*(TheSysClock/3000));
}
if(GPIOPinRead(KEY_PORT,PB3)==0)
{
GPIOPinWrite(LED_PORT,
0xf8);
SysCtlDelay(5*(TheSysClock/3000));
}
//33333
GPIOPinTypeOut(KEY_PORT,PB6);
GPIOPinTypeIn(KEY_PORT,PB4|PB5);
GPIOPinWrite(KEY_PORT,PB6,0);
if(GPIOPinRead(KEY_PORT,PB0)==0)
{
GPIOPinWrite(LED_PORT,
0x80);
SysCtlDelay(5*(TheSysClock/3000));
}
if(GPIOPinRead(KEY_PORT,PB1)==0)
{
GPIOPinWrite(LED_PORT,
0x90);
SysCtlDelay(5*(TheSysClock/3000));PD0|PD1|PD2|PD3|PD4|PD5|PD6|PD7,//显示数字9PD0|PD1|PD2|PD3|PD4|PD5|PD6|PD7,//显示数字8PD0|PD1|PD2|PD3|PD4|PD5|PD6|PD7,//显示数字7PD0|PD1|PD2|PD3|PD4|PD5|PD6|PD7,//显示数字6
2010.7
23上海师范大学天华学院电子信息工程系ARM课程设计}
if(GPIOPinRead(KEY_PORT,PB2)==0
{
GPIOPinWrite(LED_PORT,
0x88);
SysCtlDelay(5*(TheSysClock/3000));}
if(GPIOPinRead(KEY_PORT,PB3)==0)
{
GPIOPinWrite(LED_PORT,
0x83);
SysCtlDelay(5*(TheSysClock/3000));}
//44444444
GPIOPinTypeOut(GPIO_PORTC_BASE,GPIO_PIN_5);GPIOPinTypeIn(KEY_PORT,PB4|PB5|PB6);
GPIOPinWrite(GPIO_PORTC_BASE,GPIO_PIN_5,0);if(GPIOPinRead(KEY_PORT,PB0)==0)
{
guan();
GPIOPinWrite(LED_PORT,
0xc6);
SysCtlDelay(5*(TheSysClock/3000));}
if(GPIOPinRead(KEY_PORT,PB1)==0)
{
guan();
GPIOPinWrite(LED_PORT,
0xa1);PD0|PD1|PD2|PD3|PD4|PD5|PD6|PD7,//显示数字DPD0|PD1|PD2|PD3|PD4|PD5|PD6|PD7,//显示数字CPD0|PD1|PD2|PD3|PD4|PD5|PD6|PD7,//显示数字BPD0|PD1|PD2|PD3|PD4|PD5|PD6|PD7,)//显示数字A
24姓名:王懿川红外线收发器设计2010.7
SysCtlDelay(5*(TheSysClock/3000));
}
if(GPIOPinRead(KEY_PORT,PB2)==0)
{
guan();
GPIOPinWrite(LED_PORT,PD0|PD1|PD2|PD3|PD4|PD5|PD6|PD7,//显示数字E0x86);
SysCtlDelay(5*(TheSysClock/3000));
}
if(GPIOPinRead(KEY_PORT,PB3)==0)//显示数字D
{
guan();
GPIOPinWrite(LED_PORT,PD0|PD1|PD2|PD3|PD4|PD5|PD6|PD7,SysCtlDelay(5*(TheSysClock/3000));
}
}
}0x8e);