当前位置:文档之家› 基于ARM的图像采集处理系统设计

基于ARM的图像采集处理系统设计

基于ARM的图像采集处理系统设计
基于ARM的图像采集处理系统设计

基于ARM的图像采集处理系统设计

摘要

随着现代制造工业中微细加工技术的不断发展,对微细零件表面形貌测量的要求越来越高,具有较高横向及纵向分辨率的激光并行共焦显微系统可以突破光学衍射的极限要求,对物体表面进行无损检测及三维形貌重构。为了进一步实现光学系统的便携化、智能化需求,具有体积小、成本低、专用性强等一系列独特优点的嵌入式系统,无疑有着极好的应用前景。

本文主要研制了一种基于ARM的便携式图像采集处理系统。论文主要以硬件设计和软件设计两大部分完成对系统的论述:硬件设计中,通过分析实际图像采集需求后总结设计的主要性能指标,确定了采集系统的主要控制平台和图像传感芯片,给出了总体的硬件设计方案,并在此基础上完成了SCCB控制模块、图像数据捕获模块、串口调试模块等硬件接口模块的设计;软件设计中,完成了CMOS 的驱动程序、图像数据采集的驱动程序、Bayer图像数据转换算法等软件设计工作,最后论述了静态图像采集系统相关调试、实验工作,结果表明此嵌入式图像采集系统基本达到预期目标,证明了设计的合理性和正确性。

本系统一定程度上提高了低功耗微控制器图像采集的效率,将图像采集系统对硬件的依赖转化为设计人员的软件设计工作,相对于传统PC机+CCD的方案,不仅在体积、成本上具有明显优势,更体现出良好的柔性,便于今后的维护、优化。

关键词:ARM,LPC2478,图像采集,便携式

第一章绪论

1.1 嵌入式系统概述

1.1.1 嵌入式系统

嵌入式系统被IEEE(国际电气和电子工程师协会)定义为“是一种用来控制、监视或者辅助仪器、机械操作的装置”。无论嵌入式计算机技术如何发展,都改变不了其“内含计算机”、“嵌入到对象体系中”、“满足对象智能化控制要求”的技术本质,因此可以将嵌入式系统定义为:“嵌入到对象体系中的专用计算机应用系统”。

嵌入式系统具有3个基本特点,即“计算机性”、“嵌入性”及“专用性”:

●“计算机性”是目标系统智能化、自动化控制的根本保证,内含

微处理器的现代电子系统,方才能实现目标系统的计算机智能化

控制能力;

●“嵌入性”则是专指起源于微型机、嵌入到目标对象系统进而实

现对象体系智能控制的特性;

●“专用性”是指为了贴合对象控制需求或特定环境要求下的软硬

件的裁剪性。

嵌入式系统在很多产业中都得到了广泛的应用,包括消费电子、国防军事、工业控制等领域应用的越来越广泛,从军用的导弹系统到民用的消费电子、智能家电、汽车,嵌入式系统无处不在。

1.1.2 嵌入式处理器

通用计算机处理器的系统拥有大量的应用编程资源、外设接口总线及先进的高速缓存逻辑,但也具有能源消耗大、产生热量高、成本尺寸大等不可回避的问题,因此诞生了为各种专用应用而设计的特殊目的处理器——嵌入式处理器,主要分为以下四类:

●嵌入式微处理器:在应用中将微处理器装配在专门设计的电路板

上,只保留和嵌入式应用有关的母板功能而换来系统体积和功耗

的大幅减小,在功能上保留和标准微处理器一致的同时更在工作

温度、抗电磁干扰、可靠性等方面得到增强。

●嵌入式微控制器:即单片机,就是将整个计算机系统集成到一块

芯片中,一般以某一微处理器内核为核心,芯片内部集成ROM、

RAM、总线等必要功能和外设,是目前嵌入式系统工业的主流。

●嵌入式DSP处理器:对系统结构和指令进行了特殊设计,使其适

合于执行DSP算法,编译效率较高,指令执行速度快,在数字滤

波、FFT、谱分析等方面DSP算法大量进入嵌入式领域。

●嵌入式片上系统:将通用处理器内核作为SOC设计公司的标准

库,用标准的VHDL等语言描述存储在器件库中,在定义出其整

个应用系统并仿真通过后即可制作样品,大大优化了系统电路板

体积、功耗和可靠性。

1.2 图像采集技术的研究现状

1.2.1 图像采集系统简介

图像采集是将图像信息光电转化成便于计算机传输、存储的数字信号的过程。图像采集术在现今应用最广泛的方向是视频应用,早在上世纪无声电影的出现便开启了视频应用的时代,近年来随着计算机技术、网络技术及图像处理、视频压缩等技术的不断发展很大程度上扩展了图像采集术在各种产业领域使用,并且面对多样化的应用方面出现了基于多种处理平台的图像采集系统。

总的来说图像采集系统由光电转换和信号处理两大模块组成:

●光电转换模块:用来完成对成像光信号到电信号的转换,其中的

主要转换器件从最早的光电二极管到现在的CCD、CMOS传感器

的时代;

CCD(电荷耦合器件)图像传感器,具有较高的信噪比和敏感度,功耗相对CMOS较大(3个以上电源电压),主要应用于

消费级数码产品;

CMOS(互补金属氧化物半导体)图像传感器,原本是计算机系统内一种重要芯片,用来保存系统引导最基本的资料,后

来被人们应用于影像传感器领域。前期无论在信噪比、动态

范围等方面均不如CCD,主要应用于消费电子产业及高端图

像传感领域。

●信号处理模块:根据系统应用级别、领域的不同而呈现多样化的

趋势,如在工业检测方面多用AVR单片机,在民用级生产生活中

多用图像采集卡和PC机,介于近年来嵌入式技术的快速发展,

在工业领域、民生生活方面都有了广泛应用:

DSP:高工作频率(500Mhz以上)、内含乘法器、在系统结构及指令进行特殊设计的DSP处理器在视频系统的应用尤其

深入,不足之处则是相对较高的成本投入及较少的外设接

口;

FPGA:在ASIC(特定用途集成电路)领域现今发展最为充分

的平台,用标准VHDL硬件设计语言便可实现对任何芯片的

仿真制造,特别善于对数字信号的逻辑处理;

ARM:近年来随着工作频率和功能模块嵌入种类的不断提升,及特有的小体积、低功耗、接口丰富的特点在图像采集

乃至视频监控领域崭露头角。

1.2.2 嵌入式图像采集系统

CMOS图像传感器内部集成了A/D,且随着近几年的不断发展,分辨率也不断提高,集成化程度高、功耗低、体积小的特点更使得CMOS模块在消费电子产业中的手机、数码相机等大放异彩。结合了图像采集系统及嵌入式系统的利弊特点,人们逐渐将嵌入式技术应用于图像采集领域,充分将嵌入式技术的专用性、便携性等特征在图像采集方面得到体现,也带来了图像采集技术在工业计量、生物医学、多媒体等多领域上的飞速发展。

现今较为常用的嵌入式图像采集方案主要有以下3种:

1、图像传感器+ FPGA + SRAM

2、图像传感器+ DSP + SRAM

3、图像传感器+ ARM + SRAM

方案1利用FPGA(现场可编程门阵列)可以较为方便的实现图像采集中多种同步信号的逻辑处理;方案2中的DSP(数字信号微处理器)所具有的高运行速度、强大数据处理能力使之在图像采集领域最先得到发展;而相对于前面两个方案,ARM开始在图像采集领域并未得到很好的运用,但近几年尤其在工业检测、便携图像采集等方向越来越得到人们的重视,随着嵌入式制造工艺的飞速发展,ARM的工作频率、数据处理能力也得到大幅提高,加上其含有丰富的接口模块,非常适合用于在工业监控、检测方面。

第二章 系统硬件电路设计

2.1 图像采集系统硬件总体架构

图2- 1 系统工作流程图

图2-1为本图像采集系统的工作流程图。

并行共焦光学系统为系统光学成像源,图像捕获模块选用CMOS 图像传感器OV7620,控制、处理显示模块选用ARM7开发板SMART2400,软件开发、实验调试平台用PC 机完成。

由图可以初步了解嵌入式图像采集处理系统的整个流程:当光学系统成像完成,用CMOS 图像传感器完成对图样的获取,图像数据经过缓冲后进入ARM 开发板进行差值处理,进而直接在内部存储、显示。期间可通过串口连接到PC 机进行调试、处理。系统总体结构框图如图2-2。

图2- 2 系统总体结构框图

2.2 系统核心器件概述

2.2.1 LPC2400结构特性

1. LPC2400系列ARM 概述

LPC2400系列ARM 为多种类型的通信应用提供了一个理想的解决方案。它包括1个10/100以太网媒体访问控制器(MAC )、1个带4KB 终端RAM 的USB 全速设备/主机/OTG 控制器、4个UART 、2路CAN 通道、1个SPI 接口、2个同步串行端口(SSP )、3个IIC 接口和1个IIS 接口。同时还带有1个4MHz 的片内振荡器、98KB RAM (包括64KB 局部SRAM

光学系统

CMOS ARM 开发板

16KB以太网SRAM、16KB GPDMA SRAM和2KB电池供电SRAM)以及1个外部存储器控制器(EMC)来支持上述的各种串行通信接口。这些特性使得本设备非常适用于通信网关和协议转换器。除此以外,还有许多串行通信控制器、多用途的时钟功能和存储器特性,包括有不同的32位定时器、增强型告诉GPIO。LPC2400系列ARM链接64个GPIO管脚到基于硬件的向量中断控制器(VIC),这表示了这些外部输入可产生边沿触发终端。所有的这些特性使LPC2400系列ARM特别适用于工业控制和医疗系统。

LPC2400系列的主要特性有:

●ARM7TDMI-S处理器,运行频率高达72MHZ。

●512KB片上Flash程序存储器,具有在系统编程(ISP)和在应用

编程(IAP)功能。Flash程序存储器位于ARM局部总线,可用于

高性能的CPU访问。

●有双AHB总线系统(Dual AHB System)。这使得某一外设资源的

存取操作、程序执行操作可以和另一外设资源的存取操作和程序

执行操作并行不悖,从而使得各高频外设能同时运转而不引起总

线堵塞。

●EMC支持诸如RAM、ROM和Flash的异步静态存储器设备以及

动态存储器设备(例如SDRAM)。

●先进的向量中断控制器(VIC),支持多达32个向量中断。

●仅LPC2470/78:LCD控制器,支持STN和TFT显示屏的显示

有专用的DMA控制器

可选择显示分辨率(最高可达1024×768像素)。

支持高达24位的真彩色模式

●串行接口:

Ethernet MAC带有MII/RMII接口和相关的DMA控制器,这些功能位于独立的AHB总线上

USB2.0全速双端口设备/主机/OTG控制器,带有片内PHY 和相关的DMA控制器

4个带小数波特率发生功能的UART。其中1个带有Modem 控制I/O,还有一个带有IrDA。除此之外,全部UART都带

有FIFO

3个I2C总线接口(1个开漏管脚,另外2个为标准输出管脚)

CAN控制器,带有两个通道

●其他外设,包括10位AD、2个PWM模块、RTC等。

2.LPC2400系列ARM体系架构

LPC2400系列ARM是由支持仿真的ARM7TDMI-S CPU、用于紧密耦合并高速访问片内主要存储器的ARM7局部总线、连接到高速片内外设和外部存储器的AMBA(Advanced Microcontroller Bus Architecture) AHB[4]以及连接到其他片内外设功能的AMBA APB[5]构成的.LPC2400系列ARM始终按照小端字节顺序进行配置。

LPC2400系列ARM具有两个AHB总线,这使得以太网模块的操作不受其它系统操作的干涉:

图2- 3 LPC2400开发板功能模块图

●第一个AHB成为AHB1,包含VIC(中断向量控制器)、GPDMA

控制器和EMC;

●第二个AHB成为AHB2,它只包含以太网模块和一个相关的16KB

SRAM。另外,该处理器还提供一个总线桥接器,允许第二个AHB

作为AHB1的总线主机,还允许把以太网缓冲区的扩展空间延伸

到片外存储器、或者是AHB1所在的未使用存储空间。

LPC2400系列ARM的结构框图见图2-3,由于开发板所含模块较多,只列出与本系统相关的模块。

2.2.2 OV7620图像传感器

OV7620是一款具有较高分辨率(640*480)、逐行/隔行扫描模式可选的CMOS彩色/黑白数字图像传感芯片。数字输出端口支持RGB RAW/YUV 的8/16bpp数字格式输出。其中的SCCB编程模式可以实现对摄像头功能寄存器的控制。

1. OV7620内部结构

OV7620内部集成一个664*492分辨率的图像阵列,一个模拟信号处理器(mux),双10bit的A/D转换器,模拟视频多路复用器(analog processing),数字格式器(digital data formatter)及视频端口,SCCB接口及其寄存器。其中数字控制包括时序模块、曝光模块和白平衡。图像传感芯片OV7620的内部功能模块图如图2-6。

图2- 4 OV7620内部原理框图

OV7620正常工作时,图像的光电转化在1/3英寸的感光元件上完成,同时在图2-6左下方的视频时序发生模块包含的各种同步信号(如VSYNC、HREF、PCLK)控制模拟信号处理器,定时的对感光阵列下方的感应电路行列像素点进行捕获,与此同时框图右下方的受SCCB接口编程

控制的寄存器模块对模拟信号处理器的数据格式控制,可选进入不同数据输出格式的多路复用器(mx),进而通过数字端口(Y/UV通道)或模拟测试端口(VTO)输出。

2. OV7620图像采集方法

CMOS图像阵列的设计是建立在逐行传送的扫描场读出系统和带同步像素读出电路的电子快门之上[6]。电子曝光控制算法规范则是建立在目标图像亮度基础上,即当背景光线在图像传感器正常范围内时,一般结果会比较理想;而当景象光线接近极限值甚至超出,则应该通过AEC自动曝光控制器的黑白比调节并使之满足应用要求。

OV7620与输出图像数据相关的有4路同步信号:垂直同步信号VSYNC、水平参考同步信号HREF、像素时钟信号PCLK、奇偶场同步信号FODD。其中FODD一般用于隔行扫描中,二分频即为VSYNC,在本设计中不予考虑。

各同步信号时序如图2-7。一般的图像采集方法是依靠VSYNC、HREF和PCLK3个同步信号来提示MCU捕获有效的图像数据,大致的流程为:VSYNC用来判断一帧图像数据的开始,其上升沿表示为一帧图像的到来,之后的下降沿则提示外部电路一帧有效图像数据开始;HREF是判断一行有效像素数据的依据,高电平时Y和UV通道才输出有效数据,通过示波器观察,HREF与HSYNC(水平同步信号)频率及波形几近相同,选用HREF而非HSYNC来判断一行有效数据,是考虑到对OV7620修改HREF,还可更改OV7620输出图像的开窗大小,使采集系统具有更大的灵活性和适用性;PCLK则是判断一个像素数据有效的信号,其每个负跳沿驱动图像传感器更新图像数据并在正跳沿时稳定。

图2- 5 OV7620同步信号时序图

2.3 图像采集系统硬件模块设计

系统硬件设计分为以下模块进行:

SCCB控制模块

●图像数据采集模块

数据缓冲

同步信号捕获

●存储显示模块

FLASH和SDRAM的存储接口

LCD显示

●上位机串口调试模块

以下便分别对各个硬件模块进行论述。

2.3.1 SCCB控制模块

图2- 8 SCCB总线接口电路图

LPC2478开发板内部有IIC模块及高速GPIO引脚模块,完成对OV7620的控制有两种方式:一是直接用IIC模块接口来实现控制;二是将两个GPIO引脚连接SCCB总线,用软件模拟总线协议的方式完成对图像传感器的寄存器配置。由于SCCB与IIC的微细区别,即在读数据时SCCB多了一个总线停止的条件,直接用IIC模块读数据会出现谬误,所以选用第二中方法,即用GPIO软件模拟控制SCCB。

设计虽然摒弃了LPC2478的IIC模块控制的方法,但可以利用其中的IIC0接口(P0.27、P0.28引脚),因为LPC2478的GPIO只有这两个端口是开漏输出,符合整个IIC规范及SCCB协议。值得注意的是驱动SCCB 的SCL、SDA应上拉2K~5KΩ的电阻,SCCB总线接口电路如图2-8。

2.3.2 图像数据采集模块

当ARM完成了对CMOS的寄存器配置后,正常上电的情况下,OV7620的同步信号端口VSYNC、HREF、PCLK及数据通道Y、UV便会连续不断的输出各种同步信号和图像数据,如果直接用ARM的GPIO口对Y、UV通道采集数据效率会非常低,采集一个像素点数据(8/16bit)会让ARM

浪费许多等待时间,因此还需要缓冲器件的帮助。

由于一般的MCU工作频率不会高于图像传感器太多,取得一个像素点数据这一线程算上中断响应、中断延时、程序执行的时间很难在兼顾采集时间的同时采满一帧图像,所以通常会采取一定的方法使CMOS与MCU 相互匹配起来,达到最好的采集效率。根据系统设计目的,权衡采集速率及图像清晰度(与有效像素点个数成正比关系),本设计中选用专门用于图像数据缓冲的FIFO芯片AL422作为图像数据的缓冲,配合适当配置图像传感器的时钟控制模块,结合起来使图像像素点个数与采集时间达到最好的平衡。

1.缓冲电路设计

图像数据缓冲部分的核心芯片AL422缓冲芯片是一款缓存容量大小为393,216字*8 bit的FIFO,内部集成的3M-bit的DRAM附带相应的控制器,使之具有友好的硬件接口。

器件特点:

●384K(393,216)*8 bits FIFO结构

●支持VGA,CCIR,NTSC,PAL和HDTV图像分辨率缓冲

●独立的读/写操作(高速I/O数据传输速率)

●高速一部串行通道

●读/写周期:20ns

●数据存取时间:15ns

●输出使能控制

●自刷新

●5V或3.3V电源供电

图2- 6 缓冲电路原理图

缓冲电路原理图如图2-9所示,AL422缓冲器件接受和释放数据靠WCK、/WE、/WRST、RCK、/RE、/RRST引脚的相互配合完成。考虑图像采集系统可以对静态黑白、彩色图像均可进行采集,用两片AL422搭建成缓冲模块。其中WCK写周期引脚与OV7620的PCLK相连(此做法可以规避用效率不高的中断嵌套方式捕获高频PCLK而采集图像的方法,直接用PCLK触发FIFO锁存数据的方式很快采集到一个像素数据),TST测试引脚外接下拉电阻下拉,DEC脚接104pF的退耦电容。

2.同步信号捕获电路设计

由上文可知对一帧有效图像的获取质量好坏直接与MCU捕获三个同步信号VSYNC、HREF和PCLK的效率,在硬件本身的限制范围内尽可能用合适的软硬件设计方法来完成。

VSYNC垂直同步信号为表征一帧图像数据的到来,且低电平有效,可以直接与ARM的一个外部中断引脚相接(LPC2400的向量中断控制器VIC有32个中断源,其中外部中断EINT0~T3占据14~17通道),此处选择与EINT0的p2.10连接;HREF水平参考同步信号用来表征一行有效图像数据的到来。

图2- 10 同步信号捕获原理图

为了避免使用采集效率较低的中断嵌套的方法,在充分了解同步信号捕获关系及缓冲芯片AL422读写触发时序端口的基础上,直接将HREF同步引脚取反输出给缓冲FIFO的/WE写使能脚(为了方面软件控制,设计将LPC2478一个GPIO P3.25和HREF相与后取反接FIFO),如此既使得ARM可以软件编程控制FIFO的写入数据使能端口,又可以在极短的时间(50ns内)内完成对HREF的触发响应;同样的,将PCLK像素时钟同步引脚与FIFO的WCK写使能端口,当PCLK高电平时则拉高WCK将有效图像数据写入FIFO。

值得注意的是,OV7620为5V/3.3V可选电源系统,为了与LPC2400的 3.3V接口电压匹配应把DOVDD跳线跳在 3.3V且在外部供给DOVDD3.3V电压。同步信号接口电路如图2-10。

2.3.3 存储、显示模块

1.存储模块

程序在嵌入式设备中一般有两种加载(load)模式:一种是在配套软件开发平台的程序直接下载目标板的ROM或FLASH存储器中进行;另一种则是加载到目标板外接的SDRAM中运行。在本文的软件开发平台ADS (Arm Development Suit)中均是可选的,一般来说都是加载到LPC2478内部的Flash中。

Flash主要分为NOR Flash和NAND Flash两个类别。

●从擦写速度上来看,NAND Flash的读写编程操作是以“页”为单

位进行,擦出操作以“块”为单位,且擦除的单元面积小、擦除

电路少,因此拥有较快的编程、擦出能力;

●从执行代码效率来看,NOR芯片内部执行应用程序可以直接在闪

存中进行而不必将代码读入系统RAM中,且传输效率高,在

1~4MB应用很高的成本效益;

●从容量和成本的角度来看,NAND Flash的单元尺寸将近是NOR

的一半,生产过程的简化更使其具有更高的性价比;

图2-11为SST39VF1601和HY57V561620CLT-HI与LPC2478的接口硬件图。

图2- 11 NOR Flash、NANDFlash与LPC2478接口

将LPC2478的EMC(片外存储器控制器)A[12:0]与SDRAM地址线

A0~A12相连,A[14:13]与SDRAM的Bank选择信号BA0、BA1连接用以对SDRAM的4个存储阵列进行选择,16位半字数据线与输出数据线DQ0~DQ15相连,片选位LnSDCS0、行列选通位LnSDRAS、CAS分别与SDRAM的nSCS、nSRAS、nSCAS连接,剩下的时钟信号位CLKOUT等也分别连好,如此便完成了ARM与SDRAM的硬件连接,可将SDRAM 当做ARM的一个SRAM来适用,值得注意的是LPC2478的只有最多256MB的片外存储空间,不可超出。

2.显示模块

设计选用了与LPC2478的LCD控制器适配的320*240 LCD屏,屏内集成了TFT液晶显示控制芯片SSD1289的。SSD1289是一款包含电源管理、液晶驱动、显示缓冲区等诸多功能于一身的单芯片液晶控制器,内部显示缓冲区拥有高速读写能力。

图2- 12 LCD模块与LPC2478接口电路图

图2-12接口电路采用的是RGB色彩空间5:6:5的接法。LPC2478的P1.26~P1.29、P2.13接SSD1289的数据线D11~D15,作为B(蓝)分量数据通道;P1.20~P1.25接D5~D10作为G(绿)分量数据通道;P2.6~P2.9、P4.29接D0~D4作为R(红)分量通道;剩下的控制信号LCDPWR、LCDM 及同步信号LCDFP、LCDLE、LCDFP对应的与SSD1289相连。

2.3.4 UART串口通讯模块

为了实现图像采集系统与ARM及上位机的数据通讯,需要一种通用的总线接口实现,设计了UART串行通讯模块模块。针对PC机典型的9针RS-232C电平串行接口,模块选用了MAX232CWE芯片进行电平转换。

MAX232CWE芯片是美信公司专门为电脑的RS-232标准串口设计的单电源电平转换芯片,使用+3.3V单电源供电,芯片分为三个部分: 第一部分是电荷泵电路,由1、3、4、5脚及电容C12、C13构成,功能是产生正负12V两个电源提供给RS-232电平需要;

●第二部分是两组数据转换通道用以串口总线数据的输入输出,

7~10脚为第一组数据转换通道,11~14为第二组通道,此处只用

第二组。

●第三部分是供电部分。

图2- 13 串行接口硬件电路图

RS-232C串口的接线方式有全串口连接(带Modem接口)和3线连接等方式,此调试通讯模块只需完成对所采集的图像帧数据传输到PC机上,只需采用较简洁的3线连接方式,硬件电路图如图2-13。

第三章系统软件程序设计

3.1 系统总体软件设计

嵌入式图像采集处理系统是一个集合软硬件的嵌入式便携系统,对静态图像信息进行相对快速的捕获、存储和显示以及利用PC对数字图像进行分析处理是我们的目标。前一章节主要论述了系统的硬件芯片选择及外围接口电路设计,本章将对驱动这些硬件设施的软件设计做详细阐述。

为了方便系统的调试与维护,对应于硬件的模块设计,系统软件的设计按照模块化进行,总体的软件框图如图3-1:

图3- 1 系统总体软件功能框图

由图可以看出系统软件设计分为以下模块进行:

●初始化模块

嵌入式ARM驱动bootloader的设计

CMOS驱动程序设计

●图像采集模块

CMOS与ARM工作匹配

同步信号捕获的软件设计

●处理显示模块

片外存储SDRAM驱动设计

Bayer图像数据的差值算法

数字图像的LCD显示

●上位机调试模块

以下各小节将分别对上述模块的软件设计工作进行论述。

3.2 系统初始化模块的软件设计

图像采集系统的核心器件是控制芯片LPC2478及CMOS图像传感器OV7620,其中以FIFO缓冲芯片AL422及串口通信UART辅助图像的采集及调试。由于LPC2478开发板和OV7620本身具有极高的集成度,各自都可以视为一个小型系统,因此想让它们互相匹配工作的前提便是让其自身先“做好准备”,即初始化。

3.2.1 LPC2400的bootloader软件设计

人们在使用PC机时,开机后的一系列画面比如处理器、各种外围硬件设备的初始化操作由BIOS(Basic Input/Output System)来完成,同样的对于嵌入式系统,需要相似的软件驱动来在开始任务前对所配备的硬件设施进行准备,但考虑成本、MCU性能等方面因素不能直接用像BIOS那种固件程序,而是用一种简化的代码来实现相似功能操作,成为Bootloader,即系统的引导加载程序。

Bootloader的作用主要包括以下7条:

●分配中断向量表

●初始化存储器系统

●初始化堆栈

●初始化有特殊要求的硬件模块

●初始化用户程序执行环境

●切换处理器工作模式

●调用主应用程序

3.2.2 CMOS驱动程序设计

考虑到图像采集现场光线明暗变化、后续处理平台的可移植性等现实因素,需要对OV7620的内部寄存器参数进行修改,因此必须通过SCCB 总线对其进行寄存器初始化。

1.SCCB总线的数据传输

SCCB总线上传输一个数据位需要遵循以下规范:

●数据的有效性:SIO_D线上的数据必须在SIO_C高电平器件保持

稳定

●起始和停止信号:在SCCB协议中,唯一违反上述数据有效规范

的是起始、停止信号

起始:SIO_C高电平时,SIO_D从高电平变为低电平

停止:SIO_C高电平时,SIO_D从低电平变为高电平

应答:发送到SIO_D 线上的每个字节必须是八位,每个字节后必须跟一个应答位。应答的时间脉冲器件,发送器释放SIO_D (高),之后接收器必须将SIO_D 拉低。

SCCB 总线上每传输一个位数据必须产生一个时钟脉冲。主机产生起始信号后,发送的第一个字节为寻址字节,从最高位(MSB )到最低位开始传输,且寻址字节的最低位(LSB )为报文方向位,“0”表示主机写从机,“1”表示读,如图3-2所示:

图3- 2 首字节的位数据格式 SCCB 总线中一个基本的数据传输单元称为“相”(phaes )。下面列出数据读写时的三种基本单元:

● 三相写周期

● 两相写周期

● 两相读周期

这三种基本读写单元其实很相像,两相写为三相写周期的子集,两相读则一般跟在写周期后紧接着进行,图3-3给出三相写周期的示意图。

图3- 3 三相写周期数位图

不难看出,首字节的1~7位为从机ID 号,具体不同器件可在OV 公司官网上查看得知(OV7620的ID 号“写”为0x42,“读”为0x43),0位为读写控制位,此时为0(写);第二字节是子地址,即目标寄存器地址;第三字节为修改目标的8位寄存器的值。如此便可以对的在SCCB 总线上找到目标从机中目标寄存器的值进行配置。值得注意的是:

● 两相读之前一定要进行一次三相或两相写的操作,否则读操作找

寻不到目标寄存器

● 每位字节后都有一个数据应答位NA ,NA 是此次传输数据的接收

机给予发送机的应答,一般为发送机将SIO_D 线闲置(拉高),在应答的时间脉冲里,总线会判断接收机是否拉低SIO_D

线,是则

为应答成功继续传输,否则总线停止。

SCCB 没有重复起始概念,一次操作(写或读)后一定要加总线停

止指令。

图3-4、3-5分别是对从机ID 号为X 、目标寄存器号为Y 分别进行读写操作的软件流程图。

图3- 4 SCCB 读写数据软件流程图

2. OV7620的SCCB 初始化

SCCB 总线中的SIO_D 的预充电(pre-charge )时间为15ns ,充电保持时间为15us ,所以延时程序不易设置过长,此处设置7us 。在充分遵守SCCB 协议的基础上编写配置OV7620目标寄存器的软件代码,图3-5、3-6是写入和读出寄存器值的软件流程图。

主机操作 从机操作

写操作

读操作

微机原理与接口技术-键盘LED显示【课程设计报告】

微机原理与接口技术-键盘LED 显示【课程设计报告】

重庆大学 课程设计报告 课程名称:微机原理与接口技术 设计题目:键盘LED显示 院系:电气信息学院 班级:2007级 设计时间:2009年12月

第一章概述 (2) 1.1学习目的 (2) 1.2 计算机的应用 (3) 1.3学习计算机的意义 (3) 1.4课程设计目的 (4) 第二章总体方案设计 (4) 2.1 设计注意问题 (4) 2.2 总体思路 (5) 第三章硬件设计 (5) 3.1 8255工作原理 (5) 3.2 键盘工作原理 (7) 3.3 键特征值的形成 (8) 3.4段值的形成 (9) 3.5 8255接线图 (11) 第四章软件设计 (12) 4.1 8255初始化 (12) 4.2 键盘扫描的处理方法 (12) 4.2.1. 判断是否有键被按下的方法 (12) 4.2.2. 判断是否有键被按下的源程序 (13) 4.2.3 防抖动 (13) 4.2.4.防抖动的延时子程序 (14)

4.3 程序核心部分 (14) 4.3.1 逐行扫描 (14) 4.3.2逐行扫描的源程序 (15) 第五章源程序代码 (15) 5.1 根据整体思路以及软件设计得到的代码. 15 5.2 以上代码存在问题分析 (19) 第六章难点分析 (20) 第七章体会感慨建议 (25) 第八章参考文献 (26) 第一章概述 1.1学习目的 “微机原理与接口技术”是电气工程及其自动化专业的一门重要

的专业基础课程。我们通过该门课的学习,知道了微机的工作原理,微型计算机的基本结构,接口技术及汇编语言程序设计,为后续的课程的学习和今后的工作打下坚实的基础。通过实验可以培养学生利用计算机技术和编程手段分析,解决专业领域的各种问题的能力和意识,并进一步感受微机发展的微机发展的新技术和新方法。 1.2 计算机的应用 目前计算机的应用已经遍布各个行业,如科学计算、数据处理、过程控制、人工智能、网络应用等。 科学和工程计算:科学和工程计算的特点是计算量大,而逻辑关系相对简单,它是计算机重要应用领域之一。 数据和信息处理:数据处理是指对数据的收集、存储、加工、分析和传送的全过程。这些数据处理应用的特点是数据量很大,但计算相对简单。多媒体技术的发展,为数据处理增加了新鲜内容,都涉及更广泛的数据类型,这些数据处理过程不仅数据量大,而且还会带来大量的运算和复杂的运算过程。 过程控制:过程控制是生产自动化的重要技术内容和手段,它是由计算机对所采集到的数据按一定方法经过计算,然后输出到指定执行机构去控制生产的过程。 人工智能:人们把计算机模拟人脑力劳动的过程成为人工智能。人工智能是利用计算机来模拟人的思维过程,并利用计算机程序来实现这些过程。 1.3学习计算机的意义 电子计算机是一种能自动高速地进行大量运算的电子机器。电子计算机的出现和发展,是科学技术和生产力的卓越成就之一,反过来,它也极大地促进了科学技术和生产力的发展。

基于STC89C52的简易计算器设计..

福建电力职业技术学院课程设计课程名称:《智能仪器》 题目:基于STC89C52的简易计算器设计 专业班次: 姓名: 学号: 指导教师: 学期:2011-2012学年第2学期 日期:2012.2

目录 目录 1.引言 (1) 1.1 设计意义 (1) 1.2 设计任务和主要内容 (1) 2. 硬件设计 (2) 2.1 系统框图 (2) 2.2 最小系统 (2) 2.3 矩阵键盘 (3) 2.4 LCD1602 (4) 3. 软件设计 (5) 3.1矩阵键盘扫描原理 (5) 3.2 LCD1602的软件设计 (6) 3.3 主程序设计 (8) 3.4 源程序 (9) 3.5 调试结果 (9) 4. 设计小结 (9) 参考文献 (10) 附录 (10)

1.引言 随着社会的发展,人们生活水平的提高,单片机的应用越来越贴近生活了,人们常用单片机来实现一些简单的电子设计。计算器在人们的日常生活中是不可或缺的电子产品之一,目前市场上的计算器基本可以满足我们的日常需求,但它还在发展之中,我们要继续研究出更加强大的计算器。基于这样的理念,本设计采用单片机来设计简易计算器。本设计是以STC89C52为单片机,LCD为显示器设计的简易计算器,所设计的计算器将完成两位数的加、减、乘、除等功能。1.1 设计意义 通过本次课程设计,进一步掌握单片机知识,知道AT89S52单片机的原理、编程和各种功能的应用,了解简易计算器的工作原理,初步掌握计算器的硬软件设计、编写、调试和仿真,充分提高动手能力和排除故障的能力,同时通过课程设计加深我们对单片机的认识和兴趣,发挥我们的创新能力和动手能力。 1.2 设计任务和主要内容 本设计要制作的就是单片机于生活中最为常见的一种应用——简易计算器,以STC89C52单片机作为核心来进行的数字计算器模拟系统设计,可以完成计算器的键盘输入,进行加、减、乘、除两位数范围内的基本四则运算,并在LCD 上显示相应的结果。设计电路采用AT89C51单片机为主要控制电路,显示采用LCD静态显示,软件方面使用C语言编程,并用PROTUES仿真。 ①查阅相关文献资料,了解简易计算器程序的原理,能够运用C 语言进行简易计算器的设计与制作。 ②设计基于C 语言的计算器的控制系统硬件部分,画出控制系统硬件框图,设计简易计算器的控制系统的软件部分,首先根据简易计算器所需的具体功能设计好程序流程图,包括控制流程图、控制时序图、梯形图程序设计;根据设计的程序流程图写出代码,并进行代码编译的调试。 ③把设计好的软件代码烧入硬件中,然后进行总体调试,直至原先预定要实现的功能完全实现为止。 ④设计出系统方框图、单元图、原理总图;画出控制程序流程图,以及编写完整的程序

试验二ARM汇编语言程序设计

实验二 ARM汇编语言程序设计 一、实验目的 1.了解ARM汇编语言的基本框架,学会使用ARM的汇编语言编程 2.掌握ARM汇编指令 二、实验设备 1. EL-ARM-830教学实验箱,PentiumII以上的PC机,仿真器电缆。 2. PC操作系统WIN98或WIN2000或WINXP, ADS1.2集成开发环境,仿真器驱动程序。 三、汇编语言简介 1.ARM汇编的一些简要的书写规范 ARM汇编中,所有标号必须在一行的顶格书写,其后面不要添加“:”,而所有指令均不能顶格书写。ARM汇编对标识符的大小写敏感,书写标号及指令时字母大 小写要一致。在ARM汇编中,ARM指令、伪指令、寄存器名等可以全部大写或者全 部小写,但不要大小写混合使用。注释使用“;”号,注释的内容由“;”号起到此 行结束,注释可以在一行的顶格书写。 详细的汇编语句及规范请参照ARM汇编的相关书籍、文档。 2. ARM汇编语言程序的基本结构 在ARM汇编语言程序中,是以程序段为单位来组织代码。段是相对独立的指令或数据序列,具有特定的名称。段可以分为代码段的和数据段,代码段的内容为执 行代码,数据段存放代码运行时所需的数据。一个汇编程序至少应该有一个代码段,当程序较长时,可以分割为多个代码段和数据段,多个段在程序编译链接时最终形 成一个可执行文件。可执行映像文件通常由以下几部分构成: ◆ 一个或多个代码段,代码段为只读属性。 ◆ 零个或多个包含初始化数据的数据段,数据段的属性为可读写。 ◆ 零个或多个不包含初始化数据的数据段,数据段的属性为可读写。 链接器根据系统默认或用户设定的规则,将各个段安排在存储器中的相应位置。源程序中段之间的相邻关系与执行的映象文件中的段之间的相邻关系不一定 相同。 3. 简单的小例子 下面是一个代码段的小例子 AREA Init,CODE,READONLY ENTRY LDR R0, =0x3FF5000 LDR R1, 0x0f STR R1, [R0]

基于LCD1602液晶显示系统课程设计

课程设计(论文) 题目名称基于89C51的液晶显示系统设计 课程名称单片机原理及应在电气测控学科中的应用学生姓名刘晨 学号1141201014 系、专业电气工程系电气工程及其自动化专业 指导教师朱群峰 2013年6月14日

邵阳学院课程设计(论文)任务书 年级专业11级电气工程及 其自动化专业 学生姓名刘晨学号1141201014 题目名称基于89C51的液晶显示系统设计设计时间2013年6月3日—2013年6月14日 课程名称单片机原理及应 在电气测控学科 中的应用 课程编号121200105设计地点 数字控制与PLC实 验室(305) 一、课程设计(论文)目的 课程设计是在校学生素质教育的重要环节,是理论与实践相结合的桥梁和纽带。单片机课程设计,要求学生更多的完成软硬结合的动手实践方案,解决目前学生课程设计过程中普遍存在的缺乏动手能力的现象. 《单片机课程设计》是继《电子技术》、和《单片机原理与应用》课程之后开出的实践环节课程,其目的和任务是训练学生综合运用已学课程“电子技术基础”、“单片机原理及应用”的基本知识,独立进行单片机应用技术和开发工作,掌握单片机程序设计、调试和应用电路设计、分析及调试检测。 二、已知技术参数和条件 1、液晶显示功能见第三项“任务和要求”具体参数 1、89C51系列单片机; 2、KEIL 软件;Wave软件、protuse软件 3、THKSCM-1型单片机实验系统。 三、任务和要求 利用89C51驱动液晶显示器工作,液晶显示器的型号自己确定(可以用1602或者12864)要求显示出自己的基本信息(英文或者中文,内容自定)。 1、要求设计出硬件系统的电气原理图; 2、要求设计出程序流程图和程序; 3、要求设计出实物或者仿真调试。 注:1.此表由指导教师填写,经系、教研室审批,指导教师、学生签字后生效; 2.此表1式3份,学生、指导教师、教研室各1份。

简易计算器系统设计

(此文档为word格式,下载后您可任意编辑修改!) 湖南文理学院芙蓉学院嵌入式系统课程设计报告 题目简易计算器系统设计 学生姓名刘胜凯 专业班级计算机科学与技术 指导老师娄小平 组员李阳、杨帆、曾家俊

目录 一、摘要 (3) 二、原理与总体方案 (3) 三、硬件设计 (6) 四、调试 (10) 五、测试与分析 (12) 六、心得体会 (14) 七、参考文献 (15) 八、附录 (15) 一、摘要 计算器一般是指“电子计算器”,是能进行数学运算的手持机器,拥有集成电路芯片。对于嵌入式系统,以其占用资源少、专用性强,在汽车电子、航空和工控领域得到了广泛地应用。本设计就是先通过C语言进行相应程序的编写然后在ADS中进行运行最后导入PROTUES进行仿真。最后利用ARM中的LPC2106芯片来控制液晶显示器和4X4矩阵式键盘,从而实现简单的加、减、乘、除等四则运算功能。 二、原理与总体方案 主程序在初始化后调用键盘程序,再判断返回的值。若为数字0—9,则根

据按键的次数进行保存和显示处理。若为功能键,则先判断上次的功能键,根据代号执行不同功能,并将按键次数清零。 程序中键盘部分使用行列式扫描原理,若无键按下则调用动态显示程序,并继续检测键盘;若有键按下则得其键值,并通过查表转换为数字0—9和功能键与清零键的代号。最后将计算结果拆分成个、十、百位,再返回主程序继续检测键盘并显示;若为清零键,则返回主程序的最开始。 电路设计与原理:通过LPC2106芯片进行相应的设置来控制LCD显示器。而通过对键盘上的值进行扫描,把相应的键值通过MM74C922芯片进行运算从而让ARM芯片接收。 2.1 系统整体流程图 2.2 程序运行流程图

LED16乘16电子显示器课程设计

目录 1. 前言................................................... 错误!未定义书签。 2. 方案设计............................................... 错误!未定义书签。 2.1. 系统功能要求...................................... 错误!未定义书签。 2.2. 硬件设计.......................................... 错误!未定义书签。 2.2.1. 8255A芯片................................... 错误!未定义书签。 2.3. 设计框图.......................................... 错误!未定义书签。 2.4. LED点阵介绍 ...................................... 错误!未定义书签。 2.5. LED显示方式 ...................................... 错误!未定义书签。 3. 测试与调试............................................. 错误!未定义书签。 4. 总结与体会............................................. 错误!未定义书签。 5. 程序清单............................................... 错误!未定义书签。 6. 参考文献............................................... 错误!未定义书签。

嵌入式--计算器--实验报告

计算器设计实验报告 一、实验设计主要分工 04009320 文斌:算法设计,LCD显示。 04** 张希:界面(按钮控件)设计,文件内容读取。 共同调试、完善设计。 二、程序设计实现功能效果 (1)支持整数、小数基本加减乘除运算; (2)有优先级的判别计算。优先级由高到低一次为括号运算、乘除运算、加减运算。(3)支持键盘输入和触摸屏输入; (4)能读取指定目录下文本内容(内容为计算表达式)并计算得出结果,将内容和结果显示在LCD上。 程序任务开始后,等待键盘或触摸屏的输入。输入键有0~9数字键、+-*/()运算符、del退格键、clear清屏键、read读指定目录文本内容并计算键、enter'='键、‘.’小数点键。 每当有字符输入时,触摸屏相应键显示“AAA”,100ms后恢复原相应按键符号,同时LCD 屏幕上显示相应字符。当输入'del'键时,屏幕显示去掉最后一位字符。当输入'='号后,得出计算结果,结果显示于表达式的下一行。若是除零错误,则结果显示为“/0ERROR!”。若有非法字符(触摸点不能识别为设计按键符则视为非法字符),则结果输出为“Syntax Error!!”。若表达式有运算符连续输入,则忽略前面的运算符,只取最后一位运算符计算,正常显示数字结果。当输入'clear'键时,情况显示区域。当输入'read'键时,从指定目录文本文件中读取表达式并计算。将表达式内容和计算结果显示在LCD上。 三、程序算法实现 1、计算算法 首先将输入的0~9数字、+-*/()运算符的内容存储于一个全局变量cal[number]中, 表达为中缀表达式。用void str2repol()函数,将输入字符串cal[number]转换成逆波 兰表达式并存于全局数组char repol[maxs]中。str2repol()函数中缀表达式转成逆波兰 后缀表达式算法如下: (1)首先构造一个运算符栈stack[maxs],此运算符在栈内遵循越往栈顶优先级越高的 原则。

8×8LED点阵显示汉字课程设计

目录 第1章本设计的研究背景及目的要 求 0 1.1凌阳单片 机 0 1.2 LED(8×8)点阵模块简 介 (1) 第2章设计方案和基本原 理 (3) 2.1设计方 案 (3) 2.2 基本原 理 (3) 1. 8×8LED点阵的工作原 理 (3) 第3章程序设 计 (6) 3.1程序流程 图 (6) 3.2 程序代 码 (6) 第4章调试结果及分 析 (8) 4.1调试结 果 (8) 4.2结果分 析 (9) 第5章结论与体 会 (10) 参考文 献 .................................................................. 11 附 录 .................................................................. . (12) 第1章本设计的研究背景及目的要求

1.1凌阳单片机 (1)来源 随着单片机功能集成化的发展,其应用领域也逐渐地由传统的控制,扩展为控制处理数据处理以及数字信号处理,DSP(Digital Signal Processing)等领域。凌阳的16位单片机就是为适应这种发展而设计的。 (2)构造 它的CPU内核采用凌阳最新推出的Microcontroller and Signal Processor 16 位微机处理器芯片,以下简称μ'nSP?。围绕μ'nSP?所形成的16位μ'nSP?系 列单片机,以下简称μ'nSP? 家族。采用的是模块式集成结构,它以μ'nSP?内核为中心集成不同规模的ROM PAM和功能丰富的各种外设部件。μ'nSP?内核 是一个通用的和结构。除此之外的其它功能模块均为可选结构。以及这种结构可大可小可有可无,借助这种通用结构附加可选结构的积木式的构成,便可成为各种系列的派生产品,以适合不同场合,这样做无疑会使每种派生产品具有更强的功能和更低的成本。μ'nSP?家族有有以下特点:体积小,集成度高,可靠性 好易于扩展。μ'nSP? 家族把各功能把各功能部件模块化地集成在一个芯片里。内部采用总线结构,因为减少了各功能部件之间的连接,提高了其可靠性和抗干扰能力,另外,模块化的结构易于系列的扩展,以适应不同用户的需求。具有较强的中断处理能力。μ'nSP?家族的中断系统支持10个中断向量及10余个中断源,适合实时应用领域。高性能价格比:μ'nSP?家族片内带有高寻址能力的ROM,静态RAM和多功能的I/O口,另外μ'nSP?的指令系统提供出具有较高运算速度的16位,16位的乘法运算指令和内积运算指令,为其应用添加了DSP功能,使得μ'nSP?家族运用在复杂的数字信号处理方面既很便利又比专用的DSP芯片廉价。 优点: 功能强、效率高的指令系统:μ'nSP?的指令系统的指令格式紧凑,执行迅速,并且其指令结构提供了对高级语言的支持,这可以大大缩短产品的开发时间。低功耗、低电压:μ'nSP?家族采用CMOS制造工艺,同时增加了软件激发的弱振方式,空闲方式和掉电方式,极大地降低了其功耗,另外,μ'nSP?家族的工 作电压范围大,能在低电压供电时正常工作,且能用电池供电,这对于其在野外作业等领域中的应用具有特殊的意义。 (3)应用领域 凌阳单片机广泛应用于仪器仪表、家用电器、医用设备、航空航天、专用设备的智能化管理及过程控制等领域,大致可分如下几个范畴: 1.在智能仪器仪表上的应用 单片机具有体积小、功耗低、控制功能强、扩展灵活、微型化和使用方便等优点,广泛应用于仪器仪表中,结合不同类型的传感器,可实现诸如电压、功率、频率、湿度、温度、流量、速度、厚度、角度、长度、硬度、元素、压力等物理量的测量。采用单片机控例且功能比起采用电子或数字电路更加强大。智能化、微型化,制使得仪器仪表数字化、. 。如精密的测量设备(功率计,示波器,各种分析仪)在工业控制中的应用2. 例如工厂流水线的智能化管数据采集系统。用单片机可以构成形式多样的控制系统、

嵌入式系统之基于QT的简单计算器

嵌入式系统之基于Q T的 简单计算器 The pony was revised in January 2021

嵌入式系统课程设计报告 题目:基于QT的简单计算器 专业:计算机科学与技术 班级: 姓名: 学号: 指导老师: 日期:2012-12-26 第一章前言 设计背景 计算器(calculator;counter)一般是指“电子计算器”,计算器是能进行数学运算的手持机器,拥有集成电路芯片,其结构简单,比现代电脑结构简单得多,可以说是第一代的电子计算机(电脑)。计算器这一小小的程序机器实际上是从计算机中割裂出来的衍生品,虽然功能较单一,但因其操作模式的方便快捷和价格的低廉,携带方便等特点,已经被广泛应用于工程、学习、商业贸易等日常生活中,极大的方便了人们对于数字的整合运算,成为人们生活和办公中的必备品之一,深得使用者的青睐。

设计目的 本程序是基于linux下的嵌入式开发,所用软件为QT Creator,程序虽然简单,但是通过本程序的设计,可以进一步了解嵌入式系统开发工具以及熟悉linux环境下的常用命令,为以后进入嵌入式领域打下一定的基础。 通过该计算器程序软件的设计,培养独立思考、综合运用所学有关相应知识的能力,更好地巩固《C++程序语言设计》和《高级程序设计》课程学习的内容,掌握工程软件设计的基本方法,强化上机动手编程能力,体验理论与实践相结合的过程。 第二章功能需求分析 功能描述 本次设计的计算器在功能上大致与Windows系统自带的计算器程序相似,对于所设计的科学计算器,其功能大致为可以进行加(+)、减(-)、乘(*)、除(/)、简单算术计算。由于接触QT时间还不太久,所以目前只能简单地实现这些功能,相信随着以后逐步的了解,本程序将实现更多的功能。 第三章开发工具简介 QT简介 由于本次设计的小程序是用QT Creator所设计的,所以我觉得有必要先介绍下QT 开发工具的背景。

LCD几何图形显示课程设计

目录 第1章设计的研究背景及目的要求.................... 错误!未定义书签。 研究背景 ........................................ 错误!未定义书签。 设计目的 ........................................ 错误!未定义书签。 硬件选择 ........................................ 错误!未定义书签。 设计内容 ........................................ 错误!未定义书签。第2章设计的方案及基本原理........................ 错误!未定义书签。 方案............................................ 错误!未定义书签。 , 基本原理 (3) 第3章程序设计 (4) 主程序流程图 (4) 设计程序 (4) 第4章调试结果与分析 (5) 调试结果 (5) 结果分析 (5) 结论与体会 (6) @ 参考文献 (7) 附录 (8) ~

\

第1章 LCD几何图形显示设计的研究背景及目的要求 研究背景 在程序设计方面,凌阳十六位单片机还具有易学易用的效率较高的一套指令系统和集成开发环境。在此环境中,支持标准C语言,可以实现C语言与凌阳汇编语言的互相调用。 显示器的核心液晶显示器控制器品种繁多,各种控制芯片在控制电路逻辑、控制指令、指标参数等方面各有差异。但对于已带有控制电路的平板点阵式图形液晶显示器,使用者无需关心其控制核心的集成芯片、控制电路等,就可方便地利用它进行开发。 设计目的 熟悉利用SPLC501液晶显示模组显示几何图形的API函数。 掌握利用液晶显示器显示几何图形的方法。 — 硬件选择 装有window系统和仿真环境和PC机一台,十六位单片机实验箱一个。SPCE061A 核心及周边电路模块(包含 32 个 I/O 口),LCD显示模组模块。 设计内容 LCD显示器上一个实心圆,在实心圆的横向直径画一条横线,并在实心圆上叠加显示汉字:“凌阳科技”,最后向上滚屏。在LCD显示器实现实心圆和汉字的叠加显示。 利用 SPLC501 液晶显示模组显示英文(ASCII)字符时,需要对 LCD 进行初始化操作,以初始化 LCD 内部的供电方式、驱动设置等;在凌阳大学计划提供的 SPLC501 液晶显示模组的驱动程序中,提供了对 SPLC501 液晶显示模组的初始化程序,除了完成前面所述的操作外,该函数还可以初始化液晶的显示。初始化 SPLC501 液晶显示模组后,驱动程序默认设置图形显示模式为覆盖模式,ASCII 字符的字型默认为8×16的大小,如果需要修改这些参数可以调用对应的函数进行设置。主程序利用C语言编写,调用驱动程序(调动程序已提供在IDE的安装路\SPCE061A\example\model_Exa\driver\SPLC501driver)。

嵌入式系统之基于QT的简单计算器

嵌入式系统课程设计报告 题目:基于QT的简单计算器 专业:计算机科学与技术 班级: 姓名: 学号: 指导老师: 日期:2012-12-26 第一章前言 设计背景 计算器(calculator;counter)一般是指“电子计算器”,计算器是能进行数学运算的手持机器,拥有集成电路芯片,其结构简单,比现代电脑结构简单得多,可以说是第一代的电子计算机(电脑)。计算器这一小小的程序机器实际上是从计算机中割裂出来的衍生品,虽然功能较单一,但因其操作模式的方便快捷和价格的低廉,携带方便等特点,已经被广泛应用于工程、学习、商业贸易等日常生活中,极大的方便了人们对于数字的整合运算,成为人们生活和办公中的必备品之一,深得使用者的青睐。 设计目的 本程序是基于linux下的嵌入式开发,所用软件为QT Creator,程序虽然简单,但是通过本程序的设计,可以进一步了解嵌入式系统开发工具以及熟悉linux环境下的常用命令,为以后进入嵌入式领域打下一定的基础。 通过该计算器程序软件的设计,培养独立思考、综合运用所学有关相应知识的能力,更好地巩固《C++程序语言设计》和《高级程序设计》课程学习的内容,掌握工程软件设计的基本方法,强化上机动手编程能力,体验理论与实践相结合的过程。

第二章功能需求分析 功能描述 本次设计的计算器在功能上大致与Windows系统自带的计算器程序相似,对于所设计的科学计算器,其功能大致为可以进行加(+)、减(-)、乘(*)、除(/)、简单算术计算。由于接触QT时间还不太久,所以目前只能简单地实现这些功能,相信随着以后逐步的了解,本程序将实现更多的功能。 第三章开发工具简介 QT简介 由于本次设计的小程序是用QT Creator所设计的,所以我觉得有必要先介绍下QT开发工具的背景。 Qt是一个1991年由奇趣科技开发的跨平台C++图形界面应用程序开发框架。它既可以开发GUI程式,也可用于开发非GUI程式,比如控制台工具和服务器。Qt是面向对象语言,易于扩展,并且允许组件编程。 QT所具有的优势是:优良的跨平台特性,Qt支持下列操作系统: Microsoft Windows 95/98,Microsoft Windows NT,Linux,Solaris,SunOS,HP-UX,Digital UNIX (OSF/1,Tru64),Irix,FreeBSD,BSD/OS,SCO,AIX,OS390,QNX 等等。 面向对象:Qt 的良好封装机制使得Qt 的模块化程度非常高,可重用性较好,对于用户开发来说是非常方便的。Qt 提供了一种称为signals/slots 的安全类型来替代callback,这使得各个元件之间的协同工作变得十分简单。 丰富的API:Qt 包括多达250 个以上的C++ 类,还提供基于模板的collections,serialization,file,I/O device,directory management,date/time 类。甚至还包括正则表达式的处理功能。支持2D/3D 图形渲染,支持OpenGL大量的开发文档。 第四章详细设计过程 开发环境的搭建 本次所用系统环境为Ubuntu LTS,内核为Ubuntu搭建QT环境大致过程为: 1.安装g++,ubuntu默认是不带g++的,如果不安装的话,后面是无法进行桌面版的qt应用程序进行编译的,在终端中执行以下命令: sudo apt-get install g++ 2. Qt桌面版的安装 3.安装arm-linux-gcc (配置环境变量gedit /.bashrc 添加路径 export PATH=$PATH:/opt/FriendlyARM/toolschain/) 使配置文件立即生效:source /.bashrc或者注销logout 最好重启

ARM汇编程序设计

cmp r0,#5 bcs aaa add r0,r0,#1 aaa nop cmp r0,#5 addcc r0,r0,#1 bl指令完成两个功能:将子程序的返回地址保存在LR即R14同时将PC的值改为目标子程序的第一条指令的地址。 Start: Mov r0,#10 Mov r1,#3 Bl doadd Mov r1,r1,r0 Doadd Add r0,r0,r1 Mov pc,lr .end 用汇编程序实现IF语句的功能: Mov r0,#15 Mov r1,#12 Cmp r0,r1

Movhi r2,#100 Movls r2,#50 用汇编程序实现FOR循环的功能:Mov r0,#0 Mov r1,#10 Mov r2,#0 L1: cmp r0,r1 Bhs l2 Add r2,r2,#1 Add r0,r0,#1 B l1 L2: .end 用汇编语言实现WHILE循环While(x<=y) X=x*2; mov r0,#1 mov r1,#20 b l2 l1: mov r0,r0, lsl #1 l2: cmp r0,r1 bls l1 end

用汇编语言实现计算算术功能:n equ 100 .global _start -start: .arm arm_code: Ldr sp,=0x40003f00 Adr r0,thumbcode+1 Bx r0 .ltorg .thumb Thumb_code: Ldr r0,=n Bl sum_n B thumb_code Sum_n: Push {r1-r7,lr} Movs r2,r0 Beq sum_end Cmp r2,#1 Beq sum_end Mov r1,#1

单片机课程设计 电子日历时钟显示器设计

目录 1.题目设计要求 (1) 2.开发平台简介 (1) 3.系统硬件设计 (2) 3.1设计原理 (2) 3.2器件的功能与作用 (2) 3.2.1 MCS51单片机AT89C51 (2) 3.2.2复位电路 (3) 3.2.3晶振电路 (4) 3.2.4 DS1302时钟模块 (4) 3.2.5 引脚功能及结构 (4) 3.2.6 DS1302的控制字节 (5) 3.2.7 数据输入输出(I/O) (5) 3.2.8 DS1302的寄存器 (6) 3.2.9 液晶显示LCD1602 (6) 3.2.10 串行时钟日历片DS1302 (8) 4.系统软件设计 (10) 4.1程序流程 (10) 4.2程序代码 (10) 5.系统仿真调试 (20) 5.1仿真原理图设计 (20) 5.2仿真运行过程 (21) 5.3仿真运行结果 (21) 6.总结 (21) 7.参考文献 (22)

1.题目设计要求 通过串行日历时钟芯片DS1302生成当前日期和是时间,通过IO口传输到AT89c52芯片中,然后再将AT89c52接收到的数据输出到LCD上。要求LCD上显示的日期和时间与当前系统时间保持一致。 2.开发平台简介 2.1系统仿真平台Proteus Proteus软件是由英国Labcenter Electronics公司开发的EDA工具软件,已有近20年的历史,在全球得到了广泛应用。Proteus软件的功能强大,它集电路设计、制版及仿真等多种功能于一身,不仅能够对电工、电子技术学科涉及的电路进行设计,还能够对微处理器进行设计和仿真,并且功能齐全,界面多彩。和我们手头其他的电路设计仿真软件,他最大的不同即它的功能不是单一的。另外,它独特的单片机仿真功能是任何其他仿真软件都不具备的。 2.2软件开发平台Keil C Keil C51是美国Keil Software公司出品的51系列兼容单片机C语言软件开发系统,与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。Keil提供了包括C编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境(uVision)将这些部分组合在一起。Keil C51生成的目标代码效率之高,多数语句生成的汇编代码很紧凑,容易理解。在开发大型软件时更能体现高级语言的优势。

实验二_ARM汇编语言程序设计

实验二ARM汇编语言程序设计 实验目的 1、了解ARM汇编语言程序的结构特点 2、了解ARM汇编语言程序的编写方法 3、掌握用ARM汇编语言设计简单程序 实验仪器设备及软件 ARM实验箱,计算机,ADS程序开发软件 实验原理 1、存储空间的格式 ARM920将存储空间视为从0开始由字节组成的线性集合,字节0-3中保存了第一个字,字节4-7中保存了第二个字,依此类推。字节还可以按小端格式或大端格式排列。ARM实验箱中存储器的配置见附录C。 2、ARM的寄存器 ARM状态下任何时刻都可以看到16个通过寄存器(r0-r15),1或2个状态寄存器(CPSR,SPSR),在特权模式下会切换到具体模下的寄存器组。每个寄存器都是32位的,并且每个通用寄存器都可以作为数据处理的源数据或目标数据寄存器。因此可以编写出更精简的程序。 3、ARM指令的条件执行 状态寄存器中的N,Z,C,V是数据处理指令影响的标志。几乎每条ARM指令可以根据状态位或状态位的逻辑运算有条件执行。条件执行的指令后缀参考教材。 4、桶形移器 ARM的桶形移位器,使ARM指令的中第二个操作数非常录活。利用移位器,一条ARM 指令可以完成更多功能。移位操作有: LSL 逻辑左移 LSR 逻辑右移 ASL 算术左移 ASR 算术右移 ROR 循环右移 RRX 带扩展循环右称 实验内容 1、把内存中ramaddr开始的ramword个字清零 (1)用后变址法 ramaddr equ 0x31000000 ramword equ 64 clrram mov r0,#0 mov r1,#ramword ldr r2,=ramaddr clrram1 str r0,[r2],#4 subs r1,r1,#1

单片机课程设计报告—LED显示电子钟

《单片机原理及其接口技术》 课程设计报告 课题LED显示的电子钟 姓名 学号 院系自动控制与机械工程学院 班级 指导教师

2012 年6月 目录 一、课程设计目的 (3) 二、课程设计要求 (3) 三、设计内容 (4) 四、硬件设计需求 (5) 1、硬件系统各模块功能 (5) (1)、单片机最小系统——AT89C51 …………………………………5(2)、LED数码管显示模块……………………………………………8 (3)、晶振模块 (9) (4)、按键模块 (10) 五、电路软件系统设计 (10) 1、protues软件简介…………………………………………………10 2、仿真结果 (11) 3、流程图……………………………………………………… 13 六、误差分析………………………………………………………15 七、总结与心得体会………………………………………………………15 八、参考文献……………………………………………………… 16 九、附录(程序)………………………………………………………16

一、课程设计目的 单片机课程设计作为独立的教学环节,是自动化及相关专业集中实践性环节系列之一,是学习完《单片机原理及应用》课程后,并在进行相关课程设计基础上进行的一次综合练习。 单片机课程设计过程中,学生通过查阅资料,接口设计,程序设计,安装调试等环节,完成一个基于MCS-51系列单片机,涉及多种资源应用,并且有综合功能的小应用系统设计。使学生不但能够将课堂上学到的理论知识与实际应用结合起来,而且能够对电子电路,电子元器件等方面的知识进一步加深认识,同时在软件编程,调试,相关仪器设备和相关软件的使用技能等方面得到较全面的锻炼和提高。使学生增进对单片机的感性认识,加深对单片机理论方面的理解,加深单片机的内部功能模块的应用,如定时器/计数器,中断,片内外存储器,I/O接口,串行口等。使学生了解和掌握单片机应用系统的软硬件设计过程,方法及实现,强化单片机应用电路的设计与分析能力。提高学生在单片机应用方面的实践技能和科学作风,培育学生综合运用理论知识解决问题的能力。 二、课程设计要求 课程设计应以学生认知为主体,充分调动学生的积极性和能动性,重视学生自学能力培养。根据课程设计具体课题安排时间,确定课题的涉及,变成和调试内容,分团队开展课程设计活动,安排完成每部分工作。课程设计集中在实验室进行。在课程设计过程中,坚持独立完成,实现课题规定的各项指标,并写出设计报告。 要求学生自己调研,设计系统功能,划分软硬件功能,选择器件,用Proteus软件在PC机上完成硬件原理图设计。然后使用使用Proteus软件在PC机运行系统仿真,调试电路和修改调试程序。对整个系统做试运行,有问

LCD课程设计---128X64液晶显示程序设计

《CPLD/FPGA 》 课程设计报告 题目:128X64液晶显示程序设计 院(系):信息科学与工程学院 专业班级:通信1001班 学生姓名: 学号: 同组学生: 指导教师: 20 13 年 10 月 14 日至20 13 年 10 月 25 日

128X64液晶显示程序设计课程设计任务书一、设计(调查报告/论文)题目 128X64液晶显示程序设计 二、设计(调查报告/论文)主要内容 下述设计内容需由学生个人独立完成: 1.设计EP1C6Q240C8控制128X64液晶屏显示电路原理图; 2.分析128X64液晶工作原理; 3.能按要求进行元器件的焊接; 4. 能正确处理安装与调试过程中所遇到的问题; 三、原始资料 1. 通信与电子系统实验指导书; 2. 128X64液晶显示电路制作套件。 四、要求的设计(调查/论文)成果 1.元件布局美观,硬件焊接可靠,无虚焊,短路; 2. 能在液晶屏上正确显示相关文字信息; 3.结合实际编出具有特色功能程序,程序结构合理,语言简洁,格式规范,注释详细; 4. 按要求完成课程设计报告,格式符合学校规范标准,字数不少于2000字。 五、进程安排 第 1 天理论讲解,材料发放,学生进行元器件清理并检测; 第 2天安装焊接,电路调试,硬件故障排查; 第 3 天,软件编程调试; 第4-5 天调测,验收,评分。 六、主要参考资料 [1] 陈曦.通信与电子系统实验指导书,武汉:华中科技大学武昌分校. [2] 谭会生.EDA技术及应用,西安:西安电子科技大学出版社,2010. [3] 潘松,黄继业.EDA技术与VHDL,北京:清华大学出版社,2009. 指导教师(签名): 20 年月日

单片机课程设计——计算器设计

目录 一、设计总绪 (2) 1.1设计思想 (2) 1.2设计说明 (3) 1.3关键词:矩阵键盘,单片机,数码管显示,汇编语言 (3) 1.4设计目的 (3) 1.5设计要求 (4) 二、设计方案 (5) 2.1硬件电路设计方案 (5) 2.1.1基本结构 (5) 2.1.2系统框架图 (5) 2.1.3工作流程图 (6) 2.1.4单片机主控制模块 (7) 2.2系统功能描述 (9) 三、各模块功能介绍 (10) 3.1键盘输入模块 (10) 3.1.1键盘分布图 (10)

3.1.2工作原理 (11) 3.2运算控制模块 (11) 3.3显示模块 (12) 3.4振荡电路模块 (13) 四、仿真电路 (14) 仿真运行结果 (14) 五、调试过程总结 (17) 附录: (18) 参考文献: (18) 源程序代码 (19) 一、设计总绪 1.1设计思想 近年来随着科技的飞速发展,单片机的应用正在不断深入,同时带动传统控制检测技

术日益更新。在实时检测和自动控制的单片机应用系统中,单片机往往作为一个核心部件来使用,但仅单片机方面的知识是不够的,还应根据具体硬件结构、软硬件结合,来加以完善。计算机在人们的日常生活中是比较常见的电子产品之一。可是它还在发展之中,以后必将出现功能更加强大的计算机,基于这样的理念,本次设计是用AT89c51单片机、LCD显示器、控制按键为元件来设计的计算器。利用此设计熟悉单片机微控制器及汇编语言编程,对其片资源及各个I/O端口的功能和基本用途的了解。掌握应用程序开发环境,常用的LCD显示器的使用方法和一般键盘的使用方法 此设计是基于单片机技术的简易计算器的方案,本次设计所提出的一种基于单片机技术的简易计算器的方案,采用具有数据处理能力的中央处理器CPU,随机存储器ROM,多种I/O口和中断系统、定时器/计时器等功能集成到一块硅片上构成的一个小而完善的计算机系统——单片机,配以汇编语言编写的执行程序,能更好的解决计算机计算的问题,随着数字生活的到来,单片机在生活中越来越重要,它能将大量的逻辑功能集成与一个集成电路中,使用起来十分方便。 1.2设计说明 本次课程设计讨论了单片机技术的计算器构思,设计方案,工作原理,主要系统包括单片机80C51,排阻RESPACK—8,开关,六位数码管显示器等,主要组成部分包括:键盘输入模块,运算模块,控制模块,显示模块。通过键盘输入数值,单片机进行运算后在数码管显示出结果。 1.3关键词:矩阵键盘,单片机,数码管显示,汇编语言 1.4设计目的

LCD几何图形显示课程设计

目录 第1章设计的研究背景及目的要求 (1) 1.1研究背景 (1) 1.2设计目的 (1) 1.3硬件选择 (1) 1.4设计内容 (1) 第2章设计的方案及基本原理 (2) 2.1方案 (2) 2.2基本原理 (3) 第3章程序设计 (4) 3.1主程序流程图 (4) 3.2设计程序 (4) 第4章调试结果与分析 (5) 4.1调试结果 (5) 4.2结果分析 (5) 结论与体会 (6) 参考文献 (7) 附录 (8)

第1章 LCD几何图形显示设计的研究背景及目的要求 1.1 研究背景 在程序设计方面,凌阳十六位单片机还具有易学易用的效率较高的一套指令系统和集成开发环境。在此环境中,支持标准C语言,可以实现C语言与凌阳汇编语言的互相调用。 显示器的核心液晶显示器控制器品种繁多,各种控制芯片在控制电路逻辑、控制指令、指标参数等方面各有差异。但对于已带有控制电路的平板点阵式图形液晶显示器,使用者无需关心其控制核心的集成芯片、控制电路等,就可方便地利用它进行开发。 1.2 设计目的 熟悉利用SPLC501液晶显示模组显示几何图形的API函数。 掌握利用液晶显示器显示几何图形的方法。 1.3 硬件选择 装有window系统和仿真环境和PC机一台,十六位单片机实验箱一个。SPCE061A核心及周边电路模块(包含 32 个I/O口),LCD显示模组模块。 1.4 设计内容 LCD显示器上一个实心圆,在实心圆的横向直径画一条横线,并在实心圆上叠加显示汉字:“凌阳科技”,最后向上滚屏。在LCD显示器实现实心圆和汉字的叠加显示。 利用SPLC501 液晶显示模组显示英文(ASCII)字符时,需要对LCD 进行初始化操作,以初始化LCD 内部的供电方式、驱动设置等;在凌阳大学计划提供的SPLC501 液晶显示模组的驱动程序中,提供了对SPLC501 液晶显示模组的初始化程序,除了完成前面所述的操作外,该函数还可以初始化液晶的显示。初始化SPLC501 液晶显示模组后,驱动程序默认设置图形显示模式为覆盖模式,ASCII 字符的字型默认为8×16 的大小,如果需要修改这些参数可以调用对应的函数进行设置。主程序利用C语言编写,调用驱动程序(调动程序已提供在IDE 的安装路\SPCE061A\example\model_Exa\driver\SPLC501driver)。

相关主题
文本预览
相关文档 最新文档