




已阅读5页,还剩63页未读, 继续免费阅读
(通信与信息系统专业论文)基于t0944的平板显示控制器的研究.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
摘 要 平板显示器件因为其低电压、低功耗、体积小、重量轻等诸多优点,正在 越来越多的领域逐渐替代传统的c r t显示设备。尤其在应用于便携设备显示终 端方面,平板显示器更具有不可替代的作用。但由于平板显示器仅支持逐行扫 描的数字视频格式,且其分辨率也是固定不变的,所以它不能直接与 p c机的 v g a输出信号相连,而必须要相应的显示控制电路进行转换。 本课题针对平板 显示器件在高档便携设备上的应用,提出了一种平板显示解决方案。该方案以 业界领先的t 0 9 4 4 显示控制芯片为核心,能适用于各种p c机输出 的图像信号。 该方案的另一突出优点在于能非常方便的扩展为d v i 接口。 在本方案中, p c 机输出的v g a信号经过高速a d c芯片a d 9 8 8 4 转换为数 字r g b 信号,然后将该信号输入显示控制芯片t 0 9 4 4 进行显示处理。为了输出 系统信息, 方便人机交互, 本系统采用了 功能强大的t 8 5 7 0 作为o s d控制芯片, 使 o s d显示效果完全能够满足实际使用的需要。系统的控制核心为单片机 8 0 c 5 5 2 ,它通过i c总线对系统中的a d 9 8 8 4 . t 0 9 4 4 和t 8 5 7 0 的内部寄存器进 行编程,从而达到控制硬件工作状态的目的。本文详细介绍了系统硬件电路和 相关控制软件的设计方法,并给出了扩展为d v i 接口的设计方案。 关键词: 平板显示器 v g a信号 d v i 接口 i 2 c总线 abs tract f l a t p a n e l d i s p l a y s ( f p d ) a r e t a k i n g t h e p l a c e o f t r a d i t i o n a l c r t d i s p l a y s i n m a n y f i e l d s f o r it s r e m a r k a b l e m e r i t s , s u c h a s l o w v o l t a g e , l o w p o w e r c o s t , s m a l l e r a n d l i g h t e r . e s p e c i a l l y i n t h e d i s p l a y t e r m i n a l o f p o r t a b l e i n s t ru m e n t , f p d i s i n d o m i n a n t p o s it io n . h o w e v e r , a f p d n o r m a l l y s u p p o rt s o n l y o n e f ix e d r e s o l u t i o n o f d i g i t a l n o n - i n t e r l a c e d d a t a f o r m a t , t h e r e f o r e , i t c a n n o t b e c o n n e c t e d d i r e c t l y t o v g a g r a p h i c s i g n a l f o r m p c . , i n t h i s p a p e r , i n o r d e r t o u s e f p d i n t o p g r a d e p o r t a b le i n s t r u m e n t , a c o m p r e h e n s i v e s o l u t i o n i s p r o p o s e d . t h i s s o l u t i o n i s b a s e d o n t 0 9 4 4 , a n a d v a n c e d d i s p l a y s c a l e r , a n d c a n c h a n g e t h e v a r i o u s g r a p h i c s f o r m a t s i n t o a f ix e d d a t a f o r m a t t o b e a c c e p t e d b y t h e f p d . b e c a u s e t h e g r a p h i c s i g n a l f r o m p c i s a n a l o g , i t m u s t b e c o n v e rt e d t o d i g i t a l s i g n a l t o fi t t h e t 0 9 4 4 . i n t h i s a rt i c l e , a d 9 8 8 4 , a h i g h s p e e d a d c c h i p i s c h o s e n t o d o t h i s w o r k . i n o r d e r t o o u t p u t t h e m e s s a g e o f t h e s y s t e m a n d in p u t t h e in s t r u c t i o n , a n o s d c o n t r o l l e r i s u s e d t o p r o d u c e o s d e ff e c t . a s a p o w e r f u l o s d c o n t r o l le r c h i p , t 8 5 7 0 c a n f i t t h e d e m a n d v e ry w e l l . 8 0 c 5 5 2 ( mc u ) i s u s e d a s t h e c o r e o f t h i s s y s t e m a n d c a n p r o g r a m t h e c h i p s v i a i = c b u s t o c o n t r o l t h e w o r k s t a t u s o f t h e w h o l e h a r d w a r e s y s t e m . t h e c i r c u i t a n d r e l a t i v e s o ft w a r e a r e d i s c u s s e d d e t a i l e d i n t h i s p a p e r a n d t h e d e s i g n o f e x t e n s i o n t h e s y s t e m t o d v i i n t e r f a c e i s a l s o i n t r o d u c e d . k e y w o r d : f l a t p a n e l d i s p l a y ( f p d) v g a s ig n a l d v i i n t e r f a c e p c b u s 独创性声明 本人声明所呈交的学位论文是本人在导师指导下进行的研究工作和取得的 研究成果,除了文中特别加以标注和致谢之处外,论文中不包含其他人已经发 表 或 撰写 过的 研究 成果 , 也 不 包 含 为 获 得 止 互 建大 匕 或 其 他教育 机 构的 学 位 或证书而使用过的材料。与我一同工作的同志对本研究所做的任何贡献均已 在 论文中作了明确的说明并表示了谢意。 学 位 论 文 作 者 签 名 : , j 7t 明 签 字 日 期 :侧年g 月 , 日 学位论文版权使用授权书 本 学 位 论 文 作 者 完 全 了 解选生鱼犯 有 关 保 留 、 使 用 学 位 论 文 的 规 定 。 特 授 权;f l选可 以 将 学 位 论 文 的 全 部 或 部 分 内 容 编 入 有 关 数 据 库 进 行 检 索,并采用影印、缩印或扫描等复制手段保存、汇编以供查阅和借阅。同意学 校向国家有关部门或机构送交论文的复印 件和磁盘。 保密的学位论文在解密后适用本授权说明) 、盈 、抓 学 位 论 文 作 者 签 冬岛新明 导师签名: 签字日 期:、 乙年 了月乙 w日 签 字 日 期 : . :) 而在 6 4 0 x 4 8 0 的分辨率下,场频为 6 0 h z 。为了兼容 c g a卡的 2 0 0线的显示方式,采用了两次扫描的技术,即对 2 0 0 线中的每一线都显示为相邻的两行,两行的内容一样,而且对于 3 2 0 x 2 0 0 的方式,每一行中的相邻两个象素的内容一致。 v g a标准同以 往的c g a , e g a等标准都不一样,它采用数模转换技术, 输 第一章 绪 论 出模拟r g b信号, 因此其彩色显示能力大大增强, 原则上可显示无穷多的颜色, 是后来所有显示技术的发展基础。 v g a标准采用 巧 针 d型插头, 各信号接口 的定义为: 1 :红色2 :绿色 3 蓝色4 :保留 5 :数字地6 :红色返回 7 :绿色返回8 :蓝色返回 9 :未使用1 0 :数字地 1 1 :保留1 2 :保留 1 3 : 行同 步 ( t m 电 平)1 4 : 场同步 ( t t l电 平) 1 5 :保留 其中1 , 2 , 3 脚输出模拟信号,峰值为0 . 7 v . v g a接口既可驱动彩色显 示器,也可驱动单色显示器,但要在接口 信号上作些处理,在单色显示器的接 口 信号中, 第 1 1 脚悬空,第 1 2脚接地。 而在彩色显示器中则相反, 第 1 1 脚 接地,第 1 2脚悬空。显示卡检测出为单色显示器时,则把绿基色通道作为视 频信号输出。 x g a 是 英 文e x t e n d e d g r a p h ic s a r r a y 的 缩 写, 即 扩 展图 形 阵 列。 它 的 分 辨 率为 1 0 2 4 x 7 6 8 ,但采用逐行扫描方式,因此行频大为提高,为 4 8 k h z ,场 频为 6 0 h z 。它兼容v g a标准。由 于计算机显示技术发展很快,各种显示标准 不断出现,为了做到统一,v e s a ( 视频电子标准协会)对以往的标准进行了 修订并重新做了说明,同时制订了一些分辨率超过v g a , x g a的显示标准, 如 8 0 0 x 6 0 0 . 1 0 2 4 x 7 6 8 , 1 2 8 0 x 1 0 2 4 , 1 6 0 0 x 1 2 8 0 等分辨率的标准,一 般 称之 为 s v g a或 s u p e r v g a标准. s v g a的 高分辨 率模式都 有多 个扫 描频 率,如对于 8 0 0 x 6 0 0 的分辨率,它的行频/ 场频分别有多种: 3 5 . 1 5 k h z / 5 6 h z , 3 7 . 8 8 k h z / 6 0 h z , 4 8 k h z / 7 2 h z等。采用较高的扫描频率能够获得 理想的显示效果,看起来感觉较舒服,但有些显示器在高的扫描频率下没法工 作,只好牺牲显示效果,采用低的扫描频率来获得较高的分辨率,这也是存在 不同扫描频率的原因。 1 . 3 本课题的任务: 不管何种类型的液晶平板显示屏,显示屏本身并不是最终产品,不能直接 作为显示终端使用。如果要其能够显示p a l , n t s c等电视信号或 p c机的模拟 v g a信号,必须有相应的控制电路,将其转换为适于显示屏显示的信号。 第一章 绪 论 本课题基于业界领先的 t 0 9 4 4显示控制芯片,给出了一种主要应用于高档 测量仪器的具有 o s d功能的液晶平板显示解决方案。该方案可以将 p c机的模 拟 v g a信号在 t f t - l c d显示面板输出,并可在显示画面上叠加控制及系统信 息。该方案的另一突出优点是稍加扩充即可不仅适用于模拟 v g a信号,而且 还可以适用于d v i 信号。扩充为d v i 接口的具体方案在第五章中给出。 第二章 系统的硬件结构 第二章 系统的硬件结构 本课题所作的显示控制电路包括 v g a信号的模数转换、o s d叠加电路和 显示控制信号生成部分。显示控制电路和液晶显示板的接口部分将在第四章介 绍。图2 . 1 给出了显示控制部分的功能框图。 平板显示设备 川 i 2 c 总线 图 2 . 1 如图所示,v g a信号先经过 a d转换器 a d 9 8 8 4 ,变为数字 r g b信号后 输入显示控制芯片t 0 9 4 4 进行处理,t 0 9 4 4 具有专门的帧缓存寄存器和o s d电 路的接口。 可以实现和s d r a m及t 8 5 7 0 的无缝连接。 t 8 5 7 0 是一款专门的o s d 芯片,内含5 1 2 个字符的 字库,基本可以满足人机界面信息交换的需要。 2 . 1 v g a 信号的 模数 转换 因为p c 输出的v g a 信号是模拟信号,如果要对这些信号进行处理以使其能 送数字液晶 屏显示,必须要先对这些信号进行模数转换,在本系统中模拟v g a 信号的模数转换主要由 芯片 a d 9 8 8 4 来完成。 a d 9 8 8 4 是专门用来对p c 机和工作 站的r g b 图像信号进行8 位1 4 0 ms p s 的模数转换的。其1 4 0 ms p s 的编码能力和 5 0 0 mh z 的模拟带宽可支持7 5 h z 刷新频率下高达1 2 8 0 x 1 0 2 4 的解析度。a d 9 8 8 4 内部p l l 可以从水平同步信号中提取的像素时钟,参考电压为1 .2 5 v ,并且具有 可编程的增益、偏置和钳位电路。用户只需提供一个3 . 3 v 的供电、一路模拟输 入信号以 及水平同步信号。三态c mo s 输出则可选择2 .5 - 3 .3 v 之间的电压供电。 a d 9 8 8 4 片上p l l 从输入水平同步信号中产生像素时钟。像素时钟的输出范围为 第二章 系统的硬件结构 2 . 4系统电路板设计 因为本系统中既包含高速数字电路,又有大量的 模拟电 路,所以 在设计电 路板时必须充分考虑到电磁干扰的影响,并力争通过合理的设计尽量的减少信 号的干扰。 1 为了减少模拟电路和数字电路间的相互串扰,电路板设计为模拟电路 和数字电路分别接地。 2 .因为系统中所用到的电源比较复杂,如+ 1 2 v , + 5 v , + 3 . 3 v , + 2 . 5 v ,即 使是 3 . 3 v也分为数字 3 . 3 v 、模拟 3 . 3 v ,锁相环 m v , a d 3 . 3 v等多种电 源,而且这些电源经常交错的与芯片连接,如果采用传统的两层电路板, 则设计难度很大,且非常容易造成系统不稳定,所以我们采用了一个单独 的电源层。 3 .为了减少信号间的相互干扰,整个电路板要采用一个单独的接地层以 减少信号干扰,这样,加上一个单独的电源层,整个板子采用了4层电路 t 板的架构。 4 . 电路板中最细的走线线宽为7 m i l ,是系统中的数据总线。 如果布线太细 会影响系统的性能, 并增加电 路板制作的 难度。 之所以 采用了7 m i 1 的宽 度, 是综合了芯片相关管脚的宽度限制及系统性能等多方面的考虑。 系统中的两个高速芯片t 0 9 4 4 和a d 9 8 8 4 是负责信号处理和模数转换的重要 芯片,由于两个芯片都存在着供电和接地复杂、数据线较多、工作频率较高等 特点,所以 在电路板设计时对这两个芯片还有如下特殊的要求。 i .为了 避免信号干扰并减少地阻,元件端芯片下方应全部布上地,并用多 个过孔和接地层相连。另外芯片下方应尽量避免走线。 2 .芯片的各个供电管脚都要通过一个 0 . 1 - l u f的旁路电容接地以旁路干扰 信号,供电管脚和旁路电 容之间的距离应该尽量短。 3 芯片的输入端应该尽量离噪声源 ( 如d c - d c转换器)远些 4 ,为了保持数据总线的线性,总线的线宽、线长、过孔数应尽量相同。 5 . a d 9 8 8 4的r , g , b信号的输入线应该至少有 2 5 m i 1 宽并最好在周围 用地屏蔽。 6 .输入信号的时钟线最好应远离模拟电路部分以减少干扰。 第三章 系统的软件设计 第三章系统的软件设计 3 . 1 1 2 c 总线简介及其用c 语言的实现 由 于在整个硬件系统中用到的集成芯片都提供1 2 c总线接口,因此在软件设 计中首先要解决的是1 2 c总线数据传输基本模块的实现。 3 . 1 . 1 1 2 c 总线简介 1 2 c总 线是p h i l i p s 公司 推出 的 芯片间串 行传输总线, 它以 二根连线实现了完 善的全双工同步数据传送, 可以 极方便的构成多机系统和外围器件扩展系统。 1 2 c 总线采用了器件地址的硬件设置方法,通过软件寻址完全避免了器件的片选线 寻址方法,从而使硬件系统具有最简单而灵活的扩展方法。 1 2 c总线应用系统的 典型结构如图3 . 1 所示: 图3 . 1 1 2 c总线应用系统典型结构 1 2 c总线的串 行数据传送与一般的u a r t的串 行数据传送无论从接口电器特 性、 传送状态管理以 及程序编制特点都有很大不同,以 下是 1 2 c总线的一般应 用特性: 1 .二线传输。 1 2 c总线上的所有节点,如主器件 ( 单片机、微处理器) 、 外围 器件、 接口 模块等都连到同 名端的s d a , s c l 上。 2 .系统中有多个主器件时,这些器件都可作为总线的主控制器,1 2 c总 线工作时任何一个主控制器件都可成为主控制器件。 3 . 1 2 c总线传输时,采用状态码的管理方法。 对应于总线数据传输时的 任何一种状态,在任何寄存器中会出现相应的状态码,并自动进入 相应的状态处理程序中。 4 ,系统中所有外围器件及模块采用器件寻址及引脚地址的编址方法。 系统中主控制器对任何节点的寻址采用纯软件的寻址方法,避免了 片选线的线连接方法.系统中若有地址编码冲突可通过改变地址线 引脚的电平设置来解决。 第三章 系统的软件设计 发起始信号 发送寻址字节 写 发送寄存备地址 s u 店 a n r 发电的伯号 发送寻址字节 ( 读) 诬 侧 到 应 答 亩, 己 接收盆招字节 发非应答倍号 图 3 6写入数据流程图 发终止信号 正常返回出错返回 图3 . 7读取数据流程图 3 . 2系统软件设计 在本系统中,我们选择了p h i l i p s 的8 0 c 5 5 2 作为 控制芯片。 微控制器的主 要任务是通过1 c总线和系统中a d 9 8 8 4 , t 8 5 7 0 , t 0 9 4 4 以 及a t 2 4 c 0 8 进行数 据通信,并通过设置其寄存器的值来控制整个系统根据外界输入信号进行调整。 另外,由于人机交互界面采用o s d方式,所以 要根据用户的选择做出调整,这 也需要编制相应的程序通过微控制器来实现。整个程序依此可以划为显示控制 和按键处理两大部分,并可进一步划分为a d转换、1 2 c总线控制、按键处理、 模式识别、o s d显示、 t 0 9 4 4 控制、中断、 e e p r o m控制等模块。由于8 0 c 5 5 2 的 指令集完全兼容 m c s - 5 1 , 且用 c语言开发 5 1 系列单片机具有开发速度快、 第三章 系统的软件设计 易于模块化的优点,所以本系统的控制程序采用 c语言编写。并在 m a i n模块 中调用。这种程序架构具有可读性强、易于调试修改、可根据需要增减功能等 优点。 整个软件的体系结构框图及各程序段间关系如图3 . 8 所示。 at 2 4 c o s 图 3 . 8 由图可见, 本系统通过i 1 c .c程序控制系统中m c u和具有i 2 c接口的器件, 如a d 9 8 8 4 , t 0 9 4 4 , t 8 5 7 0 和a t 2 4 c 0 8 等之间的 通信。关于i 2 c总线的时 序及 编程已 经在前一部分作过详细地论述。 m c u通过设置a d 9 8 8 4 , t 0 9 4 4 和t 8 5 7 0 内 部寄存器的值来实现诸如画面缩放、图 像校正、时 钟控制、o s d画面显示等 视频控制,并可将系统的默认设置以及用户在使用中所作的调整通过 i 2 c总线 存储在a t 2 4 c 0 8 中。图中的f g s c a l e r a c t , f g a u t o o n 和f g o s d a c t 等变量是一 些标记变量,在程序中定义为逻辑变量,用来标记系统的状态。程序根据这些 变量的 值来判断是否采取相应的操作。 3 5 第三章 系统的软件设计 3 . 2 . 1初夕 台 化部分 i n i t i a l . c程序用来在开机时初始化系统, 在这一部分将完成各芯片的复 位、同步源的选择、变量的初始化、单片机各寄存器的初始化赋值以及 t 0 9 4 4 , o s d和a t 2 4 c 0 8 的 初始化操作。 这部分程序的流程简图如下: 厂 r开始 对 d 9 8 8 4 t 0 9 4 4 复位 对变t进行初始化 读 e e p r 0 4 中 标志 位 _ _行 / /- 一 二_标 志 位 是 否 正 确_ 2 多 一 一n 、一 将系统初始参数写入 e e p r o a i 从e e p r o m 中 读取自 由 模 式下寄存器参数 t 0 9 4 4 运行于自由 模式 等待用户输入 图3 . 9 在初始化 e e p r o m之前,需要先检验 e e p r o m是否己经初始化过,这时 需要先读出e e p r o m中的 标志位,并判断 标志位是否正确。 如果正确, 则无须 再进行初始化:如果不正确,则需要进行初始化,即将系统的初始参数写入 第三章 系统的软件设计 e e p r o m中相应的地址。 在系统刚刚复位后,需要使系统运行在自由模式,即无需外部输入,系统 依靠内部时钟提供液晶屏所需的行场同步信号,并使液晶屏显示为蓝屏,等待 用户通过o s d菜单输入新的命令。 3 . 2 . 2 t 0 9 4 4 控制部分 t 0 9 4 4 控制程序主要为 tt f c .c及相应的头文件。tt f c .c中所要用到的函 数都先在ttf c .h中 予以 定义。 ttf c .c文 件的主 要功能就是将控制数据写入相 应的寄存器。在进入 t t f c . c程序之前,系统先根据所要显示的模式得出 mo d e n u m变量的值, 然后t t f c .c部分再根据此变量的值查表 ( 在程序中 通过 数组实 现) ,得到各个寄 存器的 相应值并写 入t 0 9 4 4 寄存器中。 ttf c .c中控制的寄存器有: p a n e l p l l r e g i s t e r o x b a . . .o x b e j i o c o n t r o l r e g i s t e r 0 01 .0 x 0 9 i o c o n t r o l r e g i s t e r 0 x 0 a . . 0 x 0 b 1 0 c o n t r o l re g i s t e r 0 x 0 d . .0 x 0 f o u t p u t c c o n t r o l r e g i s t e r 0 x 3 0 . .0 x 3 b b a c k g r o u n d c o n t r o l r e g i s t e r 0 x 4 0 . 0 x 4 3 j p a n e l es b a c k g r o u n d c o n t r o l re g i s t e r o x 5 o .o x 5 5 c l a mp c o n t r o l r e g i s t e r 0 x 7 a .0 x 7 b b r i g h t n e s s a n d c o n t r a s t c o n t r o l o x a e . o x b i , o x b 7 . .o x b 8 i n p u t c o n t r o l r e g i s t e r o x i o . .o x i f s c a l i n g es f a c t o r c o n t r o l r e g i s t e r 0 x 6 0 .0 00 s c a l i n g es f a c t o r c o n t r o l r e g i s t e r 0 01 . .0 x 7 3 i n / o u t h s / v s p a r a m e t e r r e g i s t e r 0 x c 3 .0 x c 9 以上寄存器中可见有几个同名寄存器被分开放置,这是因为这些寄存器的 地址并不相连, 分开放置 可以 实现用一段程序来完成数组到 t 0 9 4 4的 传输, 有 利于结构化编程。在本程序中先将各个模式下以 上寄存器的值以二位数组的形 式存放在 m o d e v g a .c中。 如 p a n e l p l l r e g i s t e r 寄 存器的 值在 程序中 存在 s c a le _ p a n e l_p l l t a b l e i j 数 组 中 。 + i ” 表 示 不 同 的 模 式 , + i ” 表 示 同 一 模 式 下 o x b a. o x b e 这5 个寄存器, 所以 在这里j 的 值为5 。 以 下为系统所支持的模式: b y t e r d a t a m o d e f a c t o r = 厦 0 , / * 0 , 6 4 0 * 3 5 0 / 7 0* / 第三章 系统的软件设计 1 , / * 1 , 6 4 0 * 4 0 0 / 5 6* / 1 , / * 2 , 6 4 0 * 4 0 0 / 7 0* / 1 , / * 3 , 6 4 0 * 4 0 0 / 8 5* / 2 , / * 4 , 6 4 0 * 4 8 0 / 6 0* / 2 , / * 5 , 6 4 0 * 4 8 0 / 6 6* / 2 , / * 6 , 6 4 0 * 4 8 0 / 7 2* / 2 , / * 7 , 6 4 0 * 4 8 0 / 7 5* / 2 , / * 8 , 6 4 0 * 4 8 0 / 8 5* / 4 , / * 9 , 7 2 0 * 4 0 0 / 7 0* / 4 , / * 1 0 , 7 2 0 * 4 0 0 / 8 5* / 7 , / *1 1 , 8 0 0 * 6 0 0 / 5 6* / 7 , / * 1 2 , 8 0 0 * 6 0 0 / 6 0* / 7 , / * 1 3 , 8 0 0 * 6 0 0 / 7 0* / 7 , / * 1 4 , 8 0 0 * 6 0 0 / 7 2 * / 7 , / * 1 5 , 8 0 0 * 6 0 0 / 7 5* / 7 , / * 1 6 , 8 0 0 * 6 0 0 / 8 5* / 这一段数组是将系统所支持的不同的模式以 表的形式存放在代码区,在系 统需要以 某种模式显示时, 先查表查到对应模式的值, 然后得到寄存器表中的 行变量的值,根据行变量的值即可确定需要将哪一行的值输入t 0 9 4 4 的寄存器。 以 下为 针 对不同 显 示 模式s c a l e _ p a n e l _pl l 寄 存器的 设置 值。 b y t e r d a t a s c a le _pa n e l _pl l t a b l e 5 = 厦 / * b a b b b c b d b e* / o x 4 8 ,o x 6 6 ,o x 7 c ,o x 4 7 ,o x o l ,/ 0 , 6 4 0 * 3 5 0 / 7 0 毛 o x 4 8 ,o x 6 9 , o x 7 c ,o x 4 7 ,o x o l ,/ 1 , 6 4 0 * 4 0 0 / 5 6 厦 o x 4 8 , o x 6 7 , o x 7 c ,o x 4 7 , o x o l ,/ 2 ,6 4 0 * 4 0 0 / 7 0 o x 4 2 ,o x 6 5 ,o x 7 c , o x 4 7 ,o x o l ,/ 3 ,6 4 0 * 4 0 0 / 8 5 o x 4 b , o x 6 9 , o x 7 c ,o x 4 7 ,o x o l ,/ 4 ,6 4 0 * 4 8 0 / 6 0 o x 4 a , o x 6 8 ,o x 7 c ,o x 4 7 , o x o l ,/ 5 , 6 4 0 * 4 8 0 / 6 6 o x 4 6 , o x 6 7 ,o x 7 c , o x 4 7 ,o x o l ,/ 6 , 6 4 0 * 4 8 0 / 7 2 o x 4 8 , o x 6 7 , o x 7 c , o x 4 7 , o x o 1 ,/ 7 , 6 4 0 * 4 8 0 / 7 5 o x 4 8 , o x 6 6 , o x 7 c , o x 4 7 , o x o 1 ) ,/ 8 , 6 4 0 * 4 8 0 / 8 5 o x 4 8 ,o x 6 7 ,o x 7 c , o x 4 7 ,o x o 1 ,/ / 9 ,7 2 0 * 4 0 0 / 7 0 o x 4 2 , o x 6 5 ,o x 7 c , o x 4 7 ,o x o 1 ,/1 0 ,7 2 0 * 4 0 0 / 8 5 第三章 系统的软件设计 o x 4 8 ,o x 6 9 ,o x 7 c ,o x 4 7 , o x o 1 ,/ / 1 1 , 8 0 0 * 6 0 0 / 5 6 毛 o x 4 c , o x 6 9 , o x 7 c , o x 4 7 , o x o l ,/1 2 , 8 0 0 * 6 0 0 / 6 0 夏 o x 4 c ,o x 6 8 ,o x 7 c , o x 4 7 , o x o 1 ,/1 3 ,8 0 0 * 6 0 0 / 7 0 o x 4 8 , o x 6 7 , o x 7 c , o x 4 7 , o x o 1 ,/1 4 , 8 0 0 * 6 0 0 / 7 2 厦 o x 4 8 , o x 6 7 , o x 7 c , o x 4 7 , o x o 1 ,/1 5 , 8 0 0 * 6 0 0 / 7 5 o x 4 8 ,o x 6 6 ,o x 7 c ,o x 4 7 ,o x o l ,/1 6 , 8 0 0 * 6 0 0 / 8 5 上 述 代码中“ b y t e ”已 被 宏定 位为“ u n s i g n e d c h a r ,即 无符号 数, 在系统 编译时占一个字节。 r d a t a ”己被宏定义为 “ c o d e ,在系统编译时将定义为 c o d e ”的数据存储在代码区,本系统中大量的表都以数组的形式存储在代码 区。 因为单片机r a m和r o m资源十分有限,在将数组值存入寄存器时不可能 为每一个数组专门 编制一段程序, 而是 采用了 专门 用来读取数组值的t r u tn b u 几 . 数组。由 于 此数组经常用到, 为了 加快系统存取速度, t r u m b u 几 被定义到了内 部r a m区,长度为1 6 。 定义长度为1 6 是对程序效率和系统资源的综合考虑。 以下是这部分的程序例子: / * * * s e n d p a n e l p l l r e g i s t e r o x b a . .o x b e * * * / d a t a p o in t e r = s c a l e _pa n e l _ p l l t a b l e mo d e n u m ; s 1 v a d r=z u r a c a d d r e s s ; b y t e c n t= 6 ; t n n b u 红 0 = p l l - p a n e l a d d r ; f o r ( i = 1 ; i = 5 ; i + + ) t r m b u 红 1 1 = * ( d a t a p o in t e r 十 十 ) ; s e n d d a t a o ; d a t a p o i n t e ;是一个指向“ c o d e ”区的全局指针变量,在每次欲将一段数据 传输到 t o 9 4 4时先将 d a t a p o i n t e r 指向数组的首地址。mo d e n u m 即欲使系统显 示的模式,预先根据系统所能显示的各种模式,以枚举的形式储存起来。在程 序中 m o d e n u m 即寄存器数组的“ 行” ,决定了系统要显示的模式。s 1 v a d r . b y t e c n t . t r m b u f o 是三个全局变量, 通过这三个变量给s e n d d a t a o f i 数传递重 要的控制信息。 其中s 1 v a d r 变量传递总线地址, 这里t 0 9 4 4 的总线地址是o x f o ; b y t e c n t 传递需向 总线上写入的字符数,为寄 存器二维变量的列数加上一个 t r m b u f o ,即片内的寄存器地址。 s e n d d a t a ( ) pw 1 数得到这些控制信息后将信息 通过p c 总线写入芯片并根据是否写成功而返回一 个逻辑值。以 下是s e n d d a t a ( ) 第三章 系统的软件设计 函数的程序样例: b o o l s e n d d a t a ( v o i d ) b y t e i , j ; b o o l n o we a c k =1 ; f o r ( i = 0 ; i 1 0 ; i + + ) / * r e t ry f o r 1 0 t i m e s * / 笼 i i c _ s t a n ( ) ; i f ( i i c se s e n d b y t e ( s 1 v a d r ) ) i i c _ s t o p o ; c o n t i n u e ; n o _ a c k = 0 ; f o r ( j = 0 ; j b y t e c n t ; j + + ) 笼 i f ( i i c _ s e n d b y t e ( t n n b u f j ) != s u c c e s s ) 厦 n o es a c k = 1 ; b r e a k ; i i c s t o p o ; i f ( n o - a c k =0 )b r e a k ;/ * c o m p l e t e * / r e t u rn n o es a c k ; 关于此段函数中的 1 = c操作细节,已 在前面章节专门介绍过,在此不再赘 述。 t 0 9 4 4 控制程序中 还包括帧缓存器控制, 亮度、 对比 度调节, g a m m a 校正 等部分。 3 . 2 . 3 a d 9 8 8 4 控制部分 为了处理输入 r . g . b信号的模/ 数转换,需要编制相应的程序来控制 a d 9 8 8 4芯片的工作,因为本系统中的模/ 数转换主要就是由微控制器控制 a d 9 8 8 4的各个寄存器的设置值完成的。主要控制的参数有时钟设定,相位调 整, 钳位门限设定, 钳位信号持续周期,同步信号宽度, r g b增益等。由于模拟 r g b信号模式千差万别,为了使系统在各个模式均能正常工作,需要给出所有 系统所支持模式下的寄存器设置,并以表的形式存储在系统中,在输入模式改 变时,只需按照新模式在系统中查表,并将相应的值存入对应的寄存器即可。 第三章 系统的软件设计 以下为不同输入模式下部分寄存器值的列表: b y t e r d a t a d a t a 9 8 8 4 1 4 卜 / * r e g o 8 ,r e g o 9 ,re g o c,r e g o c* / o x 1 o , o x 1 o , o x o o , o x o c , 1 * 0 ,6 4 0 * 3 5 0 / 7 0 * / 0 x 1 0 , 0 x 1 0 , 0 x 0 0 , o x o c , / * 1 ,6 4 0 * 4 0 0 / 5 6 * / o x 1 0 , o x 1 0 , 0 x 0 0 , o x o c ) , / * 2 ,6 4 0 * 4 0 0 / 7 0 * / 0 x 1 0 , 0 x 1 0 , 0 x 0 4 , o x 2 c , / * 3 ,6 4 0 * 4 0 0 / 8 5 * / 王 0 x 1 0 , 0 x 1 0 , 0 x 0 4 , o x o c ) , / * 4 ,6 4 0 * 4 8 0 / 6 0 * / 0 x 1 0 , 0 x 1 0 , 0 x 0 4 , o x 2 c , / * 5 , 6 4 0 * 4 8 0 / 6 6 * / 0 x 1 0 , 0 x 1 0 , 0 x 0 4 , o x o c , / * 6 , 6 4 0 * 4 8 0 / 7 2 * / o x l g , o x l o , o x o 4 , o x 2 c , / * 7 ,6 4 0 * 4 8 0 / 7 5 * / 0 x 1 0 , 0 x 1 0 , 0 x 0 4 , o x 2 c , / * 8 , 6 4 0 * 4 8 0 / 8 5 * / 厦 0 x 1 0 , 0 x 1 0 , 0 x 0 0 , o x o c , / * 9 , 7 2 0 * 4 0 0 / 7 0 * / 0 x 1 0 , 0 x 1 0 , 0 x 0 4 , o x 2 c , / * 1 0 , 7 2 0 * 4 0 0 / 8 5 * / 0 x 1 0 , 0 x 1 0 , 0 x 0 4 , o x 2 c , / * 1 1 , 8 0 0 * 6 0 0 / 5 6 * / 0 x 1 0 , 0 x 1 0 , 0 x 0 4 , o x 2 c , / * 1 2 , 8 0 0 * 6 0 0 / 6 0 * / o x l o , 0 x 1 0 , 0 x 0 4 , o x 2 c , / * 1 3 , 8 0 0 * 6 0 0 / 7 0 * / 0 x 1 0 , 0 x 1 0 , o x o 8 , o x 2 c , / * 1 4 ,8 0 0 * 6 0 0 / 7 2 * / 0 x 1 0 , 0 x 1 0 , 0 x 0 8 , o x 2 c , / * 1 5 ,8 0 0 * 6 0 0 / 7 5 * / 0 x 1 0 , 0 x 1 0 , o x 2 c , o x 2 c , / * 1 6 , 8 0 0 * 6 0 0 / 8 5 * / 3 . 2 . 4 按键处理及o s d 部分 因为按键处理主要是在相应的 o s d显示界面的基础上进行的,而且 o s d 显示的内容也是通过按键输入的命令来控制,所以虽然在程序的编制过程中为 了使程序的结构更加清晰而分别编制了o s d部分和按键部分, 但其实两部分是 相互调用,紧密合作的。 按键处理程序为k e y c和k e y t r e e .c 及其相应的头文件。 o s d显示部分 程序包括 o s d m.c和 o s d m e n u .c及其相应的头文件。 这两部分用到的函数 和部分变量均在头文件中预先定义。 程序是通过不断的扫描单片机端口来响应用户按键输入的。程序在运行到 k e y c 函数时将扫描 p 3端口,读入端口的数据,并和存储在代码区的各键的 第止章 系统的软件设计 键值进行比较以判断有无按键及是什么按键输入。 本系统中共有 6个按键,分别是 p o we r , u p , d o wn , l e f t , r 工 g h t 和 m e n
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论