论文研究了基于Bayer格式的CCD原始图像的颜色插值算法,并将设计的改进算法应用到以FPGA为核心的图像采集前端。出于对成本和体积的考虑,一般的数字图像采集系统采用单片CCD或CMOS图像传感器,然后在感光表面覆盖一层颜色滤波阵列(CFA),经过CFA后每个像素点只能获得物理三基色(红、绿、蓝)其中一种分量,形成马赛克图像。为了获得全彩色图像,就要利用周围像素点的值近似地计算出被滤掉的颜色分量,称这个过程为颜色插值。由于当前对图像采集系统的实时性要求越来越高,业内已经开始广泛采用FPGA来进行图像处理,充分发挥硬件并行运算的速度优势,以求在处理速度和成像质量两方面均达到满意的效果。。主要的工作内容如下: 本文首先介绍了彩色滤波阵列、图像色彩恢复和插值算法的概念,然后分析和研究了当下常用的颜色插值算法,如双线性插值算法、加权系数法等等,指出了各个算法的特点和不足;接下来针对硬件系统并行运算的特性和实时性处理的要求,结合其中两种算法的思路设计了适用于硬件的改进算法,该算法主要引入了方向标志位的概念以及平滑的边界仲裁法则来检测边界,借鉴利用梯度的三角函数关系来判断边界方向,通过简化且适用于硬件的方法计算加权系数,从而选择合适的方向进行插值。 在介绍了FPGA用于图像处理的优势后,针对FPGA的特点采用模块化结构设计,详细阐述了本文算法的软件实现过程及所使用到的关键技术;文章设计了一个以FPGA为核心的前端图像采集平台,并将改进插值算法应用到整个系统当中。详细分析了采集前端的硬件需求,讨论了核心芯片的选型和硬件平台设计中的注意事项,完成了印制电路板的制作。 文章通过MATLAB仿真得到了量化的性能评估数据,并选取几种算法在硬件平台上运行,得到了实验图片。最后结合图片的视觉效果和仿真数据对几种不同算法的效果进行了评估和比较,证明改进的算法对图像质量有所增强,取得了良好的效果。
上传时间: 2013-06-11
上传用户:it男一枚
/*--------- 8051内核特殊功能寄存器 -------------*/ sfr ACC = 0xE0; //累加器 sfr B = 0xF0; //B 寄存器 sfr PSW = 0xD0; //程序状态字寄存器 sbit CY = PSW^7; //进位标志位 sbit AC = PSW^6; //辅助进位标志位 sbit F0 = PSW^5; //用户标志位0 sbit RS1 = PSW^4; //工作寄存器组选择控制位 sbit RS0 = PSW^3; //工作寄存器组选择控制位 sbit OV = PSW^2; //溢出标志位 sbit F1 = PSW^1; //用户标志位1 sbit P = PSW^0; //奇偶标志位 sfr SP = 0x81; //堆栈指针寄存器 sfr DPL = 0x82; //数据指针0低字节 sfr DPH = 0x83; //数据指针0高字节 /*------------ 系统管理特殊功能寄存器 -------------*/ sfr PCON = 0x87; //电源控制寄存器 sfr AUXR = 0x8E; //辅助寄存器 sfr AUXR1 = 0xA2; //辅助寄存器1 sfr WAKE_CLKO = 0x8F; //时钟输出和唤醒控制寄存器 sfr CLK_DIV = 0x97; //时钟分频控制寄存器 sfr BUS_SPEED = 0xA1; //总线速度控制寄存器 /*----------- 中断控制特殊功能寄存器 --------------*/ sfr IE = 0xA8; //中断允许寄存器 sbit EA = IE^7; //总中断允许位 sbit ELVD = IE^6; //低电压检测中断控制位 8051
上传时间: 2013-10-30
上传用户:yxgi5
BIT_SELFREFRESH EQU (1<<22) ;定义SDRAM自刷新标志位 16 17 ;Pre-defined constants 预定义6种工作模式 18 USERMODE EQU 0x10 ;用户模式 19 FIQMODE EQU 0x11 ;快速中断模式 20 IRQMODE EQU 0x12 ;中断模式 21 SVCMODE EQU 0x13 ;监管模式 22 ABORTMODE EQU 0x17 ;异常中断模式 23 UNDEFMODE EQU 0x1b ;未定义模式 24 25 MODEMASK EQU 0x1f ;模式掩码 26 NOINT EQU 0xc0 ;取消中断 27 28 ;The location of stacks;设置6种工作模式的堆栈的起始地址 29 ;在option.inc中定义了_STACK_BASEADDRESS EQU 0x33ff8000 30 UserStack EQU (_STACK_BASEADDRESS-0x3800) ;0x33ff4800 ~ 31 SVCStack EQU (_STACK_BASEADDRESS-0x2800) ;0x33ff5800 ~ 32 UndefStack EQU (_STACK_BASEADDRESS-0x2400) ;0x33ff5c00 ~ 33 AbortStack EQU (_STACK_BASEADDRESS-0x2000) ;0x33ff6000 ~ 34 IRQStack EQU (_STACK_BASEADDRESS-0x1000) ;0x33ff7000 ~ 35 FIQStack EQU (_STACK_BASEADDRESS-0x0) ;0x33ff8000 ~
上传时间: 2013-10-07
上传用户:m62383408
80C51 汇编指令集:TF1:计时器1溢出标志位,当计时器1溢出,时此位=1,发出中断请求,然后硬件自动清0.TR1:计时器1的控制位,TR1=1时,计时开始,TR1=1时则停止。TF0:计时器0溢出标志位,当计时器0溢出,时此位=1,发出中断请求,然后硬件自动清0。TR0:计时器0的控制位,TR0=1时,计时开始,TR0=1时则停止。IE1:外部中断1的请求标志位,当外部中断有请求时,此位=1,发出中断请求,然后硬件自动清0。IT1:外部中断1的中断类型控制,当IT1=1时,边沿触发方式,下降沿触发有效,当IT1=0时,电平触发方式,低电平触发有效。P3.3信号触发。IE0:外部中断0的请求标志位,当外部中断有请求时,此位=1,发出中断请求,然后硬件自动清0。IT0:外部中断0的中断类型控制,当IT0=1时,边沿触发方式,下降沿触发有效,当IT0=0时,电平触发方式,低电平触发有效。P3.2信号触发
上传时间: 2013-11-17
上传用户:kangqiaoyibie
深入浅出AVR单片机思路清晰,以AVR单片机为载体,介绍了初学单片机所必须掌握的专业知识。书中语言严谨但不乏幽默风趣,配以大量的照片、图示和实例程序,使读者在愉悦中完成专业知识的学习,并培养了学习嵌入式系统的兴趣。本书在讲述AVR单片机的同时,更注重于对读者学习和设计能力的启发、培养,帮助他们养成“从实践中来,到实践中去”的科学方法论,为进一步的学习创造了基础。 本书讲述浅显、内容丰富、编排合理、实例详尽。首先介绍了如何阅读器件资料的方法,然后熟悉ICCAVR集成开发环境并搭建实验开发装置,接着从实际应用出发,启发式地介绍AVR单片机的常用资源和对应软件方法,最后较为全面地补充了从事嵌入式系统开发要扩展的软件知识。 第1篇 Are you ready? 第1章 学会阅读Datasheet 1.1 如何阅读PDF文件,如何获得Datasheet文件 1.2 Datasheet告诉我们些什么 1.3 如何看懂AVR的Datasheet 1.4 如何得到帮助 1.5 汇编语言执行时间的计算方法 1.6 ATmega48/88/168常用熔丝的作用及其配置方法 1.7 对误烧写为外部时钟模式的解锁方法 实例1 阅读74HC595 Datasheet 第2章 深入开发环境 2.1 认识ICC编译环境 2.2 事半功倍的代码生成器 2.3 ICC之不得不说的故事 2.4 AVR最小系统和下载线DIY 实例2 AVR最小系统DIY第2篇 Let\'s go! 第3章 从跑马灯开始 3.1 输入/输出界面 3.1.1 单片机的输入/输出设备——引脚 3.1.2 “芯”里有数——数码管显示 3.1.3 单片机的输入/输出设备——从按键到键盘 3.2 用ATmega48/88/168单片机端口驱动数码管 3.3 操纵ATmega48/88/168单片机端口 3.4 端口内建上拉电阻的使用 3.5 端口位操作 实例3 跑马灯 实例4 数码管的显示(上) 实例5 数码管的显示(下) 实例6 矩阵键盘 第4章 对不起接个电话 4.1 十万火急——中断 4.2 中断的特性 4.3 使用中断时的注意事项 4.4 ATmega48/88/168单片机有哪些中断源 4.5 如何编写一个中断的服务程序代码 4.6 ATmega48/88/168单片机中断的开关控制 4.7 ATmega48/88/168中断标志位 4.8 ATmega48/88/168中断优先级 4.9 ATmega48/88/168单片机中断向量 4.10 中断与查询之争 4.11 用查询方式响应外设中断 4.12 中断误触发 4.13 前后台与原子操作 实例7 中断唤醒的键盘扫描 实例8 旋转编码器 第5章 一秒究竟有多长 5.1 单片机与时间 5.2 软件延时 5.3 不需要加载的“自由计时器” 5.4 通过重加载控制定时中断周期 5.5 使用代码生成器生成定时器1初始化代码 5.6 定时器的其他工作模式 5.7 PWM波及其应用简介 5.8 人类能看懂的电子时钟——实时时钟简介 实例9 闪烁的灯 实例10 渐明渐暗的灯 实例11 复杂闪烁控制 第6章 电量低 6.1 从猜数游戏到A/D转换器 6.2 ATmega48/88/168的A/D转换器 6.3 ATmega48/88/168单片机中与A/D相关的引脚 6.4 ATmega48/88/168单片机中与A/D相关的寄存器 6.5 使用A/D时需要注意些什么 6.6 怎样知道A/D转换完成 6.7 读取A/D的转换结果 6.8 使用代码生成器生成ADC初始化代码 6.9 书写具有工程结构的初始化代码 6.10 电量计原理概述 …… 第7章 正在过收费站 第8章 包装的学问 第9章 傻孩子求职记 第10章 MISSION UPDATE第3篇 Code Name C 第11章 朝花夕拾 第12章 指针都是纸老虎 第13章 来自身边的启示 第14章 初识嵌入式系统
上传时间: 2014-05-05
上传用户:佳期如梦
SPCE061A采用的内核 SPCE061A采用的内核(CPU)为μ‘nSP。 μ‘nSP(读做micro-n-S-P)是凌阳科技推出的16位微处理器,它的突出特点是较高的处理速度,这就使其有能力进行复杂的数字信号处理(DSP,Digital Signal Processing)。 μ‘nSP内核由凌阳自主开发,因而也具备它自己的指令系统。 指令系统.61 3.1 指令系统的概述及符号约定.61 3.2 数据传送指令62 3.3 算术运算..66 3.3.1 加法运算..67 3.3.2 减法运算..68 3.3.3 带进位的加减运算.70 3.3.4 取补运算..70 3.3.5 SPCE061A的乘法指令.71 3.3.6 SPCE061A的n项内积运算指令.71 3.3.7 比较运算(影响标志位N,Z,S,C)..73 3.4 SPCE061A的逻辑运算.74 3.4.1 逻辑与..74 3.4.2 逻辑或..75 3.4.3 逻辑异或..76 3.4.4 测试(TEST).78 3.4.5 SPCE061A的移位操作.80 3.5 SPCE061A的控制转移类指令..83 3.6 伪指令86 3.6.1 伪指令的语法格式及特点..87 3.6.2 伪指令符号约定..87 3.6.3 标准伪指令.87 3.6.4 宏定义与调用98 3.6.5 段的定义与调用101 3.6.6 结构的定义与调用..102 3.6.7 过程的定义与调用..106 3.6.8 伪指令的应用举例..106
上传时间: 2013-10-31
上传用户:xuanchangri
汇编指令查询器:数据传送指令 MOV 格式: MOV OPRD1,OPRD2 功能: 本指令将一个源操作数送到目的操作数中,即OPRD1<--OPRD2. 说明: 1. OPRD1 为目的操作数,可以是寄存器、存储器、累加器. OPRD2 为源操作数,可以是寄存器、存储器、累加器和立即数. 2. MOV 指令以分为以下四种情况: <1> 寄存器与寄存器之间的数据传送指令 <2> 立即数到通用寄存器数据传送指令 <3> 寄存器与存储器之间的数据传送指令 <4> 立即数到存储器的数据传送 3. 本指令不影响状态标志位
上传时间: 2013-11-13
上传用户:脚趾头
基于单片机的红外门进控制系统设计与制作:我们所做的创新实验项目“基于单片机的红外门控系统”已基本完成,现将其工作原理简要说明。该系统主要分为两大部分:一是红外传感器部分。二是单片机计数显示控制部分。基本电路图如下:其中红外传感器部分我们采用红外对管实现,红外对管平行放置,平常处于接收状态,经比较器输出低电平,当有人经过时,红外线被挡住,接收管接收不到红外线,经比较器输出高电平。这样,当有人经过时便会产生一个电平的跳变。单片机控制部分主要是通过外部两个中断判断是否有人经过,如果有人经过,由于电平跳变的产生,进入中断服务程序,这里我们采用了两对红外传感器接到两个外部中断口,中断0作为入口,实现加1操作,中断1作为出口,实现减1操作。另外,我们通过P0口控制室内灯的亮暗,当寄存器计数值为0时,熄灯,不为0时,灯亮。显示部分,采用两位数码管动态显示,如有必要,可以很方便的扩展为四位计数。精益求精!在实验过程中,我们走了非常多的弯路,做出来的东西根本不是自己想要的,我们本想做成室内只有一个门的进出计数,原理已清楚,即在门的两边放置两对红外对管,进出时,挡住两对对管的顺序不同,因此,可判断是进入还是出去,从而实现加减计数,编程时,可分别在两个中断服务程序的入口置标志位,根据标志位判断进出,详细内容在程序部分。理论如此,但在实际过程中,还是发现实现不了上述功能,我们初步判定认为是程序掌握得不够好,相信随着自己对单片机了解的深入,应该会做出更好的 (因为我们是临时学的单片机),程序的具体内容如下: $MOD52 ORG 0000H LJMP MAIN ORG 0003H LJMP 0100H ORG 0013H LJMP 0150H ORG 0050HMAIN: CLR A MOV 30H , A ;初始化缓存区 MOV 31H , A MOV 32H , A MOV 33H , A MOV R6 , A MOV R7 , A SETB EA SETB EX0 SETB EX1 SETB IT0 SETB IT1 SETB PX1NEXT1: ACALL HEXTOBCDD ;调用数制转换子程序 ACALL DISPLAY ;调用显示子程序 LJMP NEXT1 ORG 0100H ;中断0服务程序 LCALL DELY mov 70h,#2 djnz 70h,next JBC F0,NEXT SETB F0 CLR P0.0 LCALL DELY0 SETB P0.0 MOV A , R7 ADD A , #1 MOV R7, A MOV A , R6 ADDC A , #0 MOV R6 , A CJNE R6 , #07H , NEXT CLR A MOV R6 , A MOV R7 , ANEXT: RETI ORG 0150H ;中断1服务程序 LCALL DELY mov 70h,#2 djnz 70h,next2 JBC F0,NEXT2 SETB F0 CLR P0.0 LCALL DELY0 SETB P0.0 CLR C MOV A , R7 SUBB A , #1 MOV R7, A MOV A , R6 SUBB A , #0 MOV R6 , A CJNE R6 , #07H , NEXT2 CLR A MOV R6 , A MOV R7 , ANEXT2: RETI ORG 0200HHEXTOBCDD:MOV A , R6 ;由十六进制转化为十进制 PUSH ACC MOV A , R7 PUSH ACC MOV A , R2 PUSH ACC CLR A MOV R3 , A MOV R4 , A MOV R5 , A MOV R2 , #10HHB3: MOV A , R7 ;将十六进制中最高位移入进位位中 RLC A MOV R7 , A MOV A , R6 RLC A MOV R6 , A MOV A , R5 ;每位数加上本身相当于将这个数乘以2 ADDC A , R5 DA A MOV R5 , A MOV A , R4 ADDC A , R4 DA A ;十进制调整 MOV R4 , A MOV A , R3 ADDC A , R3 DJNZ R2 , HB3 POP ACC MOV R2 , A POP ACC MOV R7 , A POP ACC MOV R6 , A RET ORG 0250HDISPLAY: MOV R0 , #30H MOV A , R5 ANL A , #0FH MOV @R0 , A MOV A , R5 SWAP A ANL A , #0FH INC R0 MOV @R0 , A MOV A , R4 ANL A , #0FH INC R0 MOV @R0 , A MOV A , R4 SWAP A ANL A , #0FH INC R0 MOV @R0 , A MOV R0 , #30H MOV R2 , #11111110BAGAIN: MOV A , R2 MOV P2 , A MOV A , @R0 MOV DPTR , #TAB MOVC A , @A+DPTR MOV P1 , A ACALL DELAY INC R0 MOV A , R2 RL A MOV R2 , A JB ACC.4 , AGAIN RETTAB: DB 03FH , 06H , 5BH , 4FH , 66H , 6DH , 7DH , 07H , 7FH , 6FH ;七段码表DELY: MOV R1,#80D1: MOV R2,#100 DJNZ R2,$ DJNZ R1,D1 RET DELAY: MOV TMOD , #01H ;延时子程序 MOV TL0 , #0FEH MOV TH0 , #0FEH SETB TR0WAIT: JNB TF0 , WAIT CLR TF0 CLR TR0 RETDELY0: MOV R1, #200D3: MOV R2,#250 DJNZ R2,$ DJNZ R1,D3 RET END 该系统实际应用广泛。可用在生产线上产品数量统计、公交车智能计数问候(需添加语音芯片)、超市内人数统计等公共场合。另外,添加串口通信部分便可实现与PC数据交换的功能。 由于,实验简化了,剩下不少零件和资金,所以我们又做了两项其他的实验。
上传时间: 2013-12-22
上传用户:tangsiyun
8086总线操作:8086微处理器与片外存储器或I/O接口进行数据传输时,经BIU执行8086规定的总线操作。总线周期的组成:8086的基本总线周期为4个时钟周期,每个时钟周期间隔称为一个T状态。8086的中断系统:8086微处理器可处理256种中断。8086对外部硬件中断请求INTR的响应: 当INTR有一高电平,即有可屏蔽中断请求。若此时IF=1且当前指令执行完,进入中断响应周期,处理过程如下:INTA#在两个总线周期中分别发出有效信号,第二周期中8086读到中断类型码保护现场:标志寄存器入栈,清除IF和TF标志位,保护断点(下一条指令地址入栈)。8086总线请求:在一个系统中,若存在多个可控制总线的主模块时,总线使用权的转移存在着一个请求与响应的过程。
上传时间: 2013-10-21
上传用户:皇族传媒
问:为什么已经有了西门子官方的Modbus通信解决方案却还要选择免狗功能块? 答:因为官方的价格有点贵、编程有点繁锁、功能过于简单! 1、 官方ModbusRTU主站示例程序相对复杂,占用中间变量多,从站多时就显得相当繁琐。 2、 官方不支持CP340卡件的ModbusRTU通信; 3、 官方不支持对主站命令报文先进行智能分析判别后再发送; 4、 官方不支持对各从站通信故障判别并产生相应故障状态标志位供用户直接调用; 5、 官方不支持在CPU运行时对暂无需进行通信的从站地址进行动态屏蔽; 6、 官方不支持ModbusRTU 测试功能08号功能码; 7、 官方没有独立的主站通信功能块来简化编程工作量,依靠发送接收块的调用来拼凑实现; 8、 官方只能在轮询模式下对从站发出命令,不支持随机模式,更不支持批量随机模式
上传时间: 2015-01-02
上传用户:zfyiaaa