本人离职后不能从事本行业维修手机行业.有什么不懂

基于ARM9的带农历实时时钟LCD显示设计
  S3C2440A是Samsung公司为手持设备应用提供的低功耗、高性价比芯片。S3C2440A基于ARM920T内核,并在ARM920T内核基本功能的基础上集成了丰富的外围功能模块,如UART、RTC、控制器等外围器件,从而降低了嵌入式应用系统的成本。本文采用S3C2440A和WXCAT35液晶显示屏模块,搭建以两者为基础的嵌入式液晶系统工作平台。在此平台基础上,详细讨论带农历的在液晶显示屏上的显示以及更改时间和设置报警时间的方法,并给出了具体的实现程序。
  1 系统硬件设计
  1.1 实时时钟(RTC)模块
  S3C2440A集成了具有日历功能的RTC模块,它可以在系统关闭的情况下使用备用电池工作。RTC使用STRB/LDRB ARM操作传输二进制编码的十进制数(BCD)的8位数据给CPU。数据包括年、月、日、星期、小时、分钟、秒的时间信息。此外,RTC模块还可以实现报警功能。RTC模块采用32.768 kHz的外部,外部晶体振荡器与S3C2440A的连接如图1所示。XTIrtc和XTOrtc分别是RTC的32.768 kHz晶体振荡器输入和输出,2个22 pF电容是晶体振荡器的匹配电容,只有在外部所接电容为匹配电容的情况下,晶体振荡器频率才能保证在标称频率附近的误差范围内。
  1.2 通用异步接收传输(UART)模块
  S3C2440A的UART提供了3个独立的异步串行I/O端口,每个端口都可以在中断模式或者DMA模式下操作。UART使用系统时钟可以支持最高115.2 kb&s-1的速率。在对UART进行操作时,数据接收帧和发送帧的格式都是可编程的,它包含1个开始位,5~8个数据位,1个可选的奇偶位和1或2个停止位,这些都是通过线性控制器(ULCONn)设置。本文采用UART更改时间和设置报警时间,串口通信连接图如图2所示。
  1.3 LCD显示模块
  S3C2440A的LCD控制器的作用是将LCD图像数据从系统存储器中的视频缓冲区传送到外部LCD驱动器。LCD控制可以通过编程实现屏幕的不同要求,比如:水平和垂直像素的数量、接口时钟、刷新率等。S3C2440A与WXCAT35液晶显示屏模块的连接电路如图3所示。
  图中LCD控制器接口信号的意义:
  VFRAME:LCD控制器与LCD驱动器之间的帧同步信号,它通知LCD屏新一帧的显示,LCD控制器在一个完整帧的显示后发出VFRAME信号,开始新一帧显示。
  VLINE:LCD控制器与LCD驱动器之间的同步脉冲信号,LCD驱动器通过它来将水平移位寄存器的内容显示到LCD屏上。
  VCLK:LCD控制器与LCD驱动器之间的像素时钟信号。
  VM:LCD驱动器所使用的交流信号。LCD驱动器使用VM信号改变用于打开或者关闭像素的行和列电压的极性,从而控制像素点的显示或熄灭。
  VD0~VD23:LCD像素数据输出端口。
  2 软件设计
  2.1 读写RTC操作
  S3C2440内部集成了RTC模块,其内部的寄存器 BCDSEC,BCDMIN,BCDHOUR,BCDDAY,BCDDATE,BCDMON和BCDYEAR分别存储了当前的秒,分,小时,星期,日,月和年,表示时间的数值都是BCD码。这些寄存器的内容可读可写。在进行读写操作时,必须将RTCRTCCON的第0位置1 。实现读写功能的程序如下。  
  2.2 更改时间和设置报警时间
  采用S3C2440A的UART,在PC机上实现对实时时钟的更改和设置报警时间。其通讯协议为:当从PC机上发送0xaa时,分别将年、月、日、星期、小时、分和秒写到实时时钟数据寄存器中。当S3C2440A接收到数据后发送0xaa以示确认,调用前面的写操作函数,从而实现对实时时钟的更改;当从PC机上发送0xbb时,分别将预置的报警时间ALMYEAR(年)、ALMMON(月)、ALMDATE(日)、ALMHOUR(小时)、ALMMIN(分)和ALMSEC(秒)写到报警时间数据寄存器中,当S3C2440A接收到数据后发送0xbb以示确认,调用设置报警时间设置函数,从而实现对报警时间的设置。通过设置报警控制寄存器RTCALM,即可实现报警,程序流程图如图4所示。
  2.3 农历显示设计
  S3C2440的实时时钟模块没有提供农历的时间信息,因此采用公历转农历的方式,实现对农历的显示。公历转换为农历的算法是:首先建立公历年对应的农历数据,并将其存放入数组中,然后通过查表的方式实现公历与农历的转换。
  建立公历年对应的农历数据,每年用3个字节表示。
  公历年对应的农历数据的第1 Byte的高4位表示农历闰年月份,低4位表示农历1~4月的大小,其具体含义如表1所示。第2 Byte表示农历5~12月的大小,其具体含义如表2所示。第3 Byte的最高位表示农历第13个月的大小,第7位和第6位表示春节所在的公历月份,低5位表示春节所在的公历日期,其具体含义如表3所示。
  以2010年为例,农历无闰月,农历1月和3月是大月,2月和4月是小月,故而第1 Byte为(即0x0A);农历的5月、8月、10月和12月是大月,6月、7月、9月和11月是小月,故而第2 Byte为(即0x95);由于2010年的农历没有闰月,所以也就没有第13个月,故而第3Byte的第7位为0,2010年春节所在的公历2月14日,故而第3 Byte的第6~0位为1001110,即第3 Byte为0x4E。
  公历转农历的算法框图如图5所示。
  2.4 实时时钟的显示
  通过调用字符显示函数,将读取的实时时钟显示在LCD屏幕上。本文将要显示的实时时钟字符转换成字模,把所得的字模放在数组中,读取实时时钟寄存器,调用字符显示函数显示数字和汉字,从而将实时时钟显示在LCD屏幕上。最后显示效果图如图6所示。
  3 结束语
  设计了基于Samsung公司ARM9处理器S3C2440和液晶显示屏WXCAT35的带农历实时时钟显示电路。为了能够实现RTC的实时显示,采用S3C2440A中提供的RTC时间节拍中断,让它每秒钟中断一次,每次中断读取时间,刷新一次实时时钟。此外,在通过UART对RTC进行修改后,采用外部按键中断实现对实时时钟的更新,从而完成对时间的修改。设计通过软件形式使得不带农历实时时钟芯片能够实现对农历的显示,增强了芯片的应用范围,为在需要农历时钟作为参考的工作环境提供了便利。
继续阅读>>
热门关键词新手园地& & & 硬件问题Linux系统管理Linux网络问题Linux环境编程Linux桌面系统国产LinuxBSD& & & BSD文档中心AIX& & & 新手入门& & & AIX文档中心& & & 资源下载& & & Power高级应用& & & IBM存储AS400Solaris& & & Solaris文档中心HP-UX& & & HP文档中心SCO UNIX& & & SCO文档中心互操作专区IRIXTru64 UNIXMac OS X门户网站运维集群和高可用服务器应用监控和防护虚拟化技术架构设计行业应用和管理服务器及硬件技术& & & 服务器资源下载云计算& & & 云计算文档中心& & & 云计算业界& & & 云计算资源下载存储备份& & & 存储文档中心& & & 存储业界& & & 存储资源下载& & & Symantec技术交流区安全技术网络技术& & & 网络技术文档中心C/C++& & & GUI编程& & & Functional编程内核源码& & & 内核问题移动开发& & & 移动开发技术资料ShellPerlJava& & & Java文档中心PHP& & & php文档中心Python& & & Python文档中心RubyCPU与编译器嵌入式开发驱动开发Web开发VoIP开发技术MySQL& & & MySQL文档中心SybaseOraclePostgreSQLDB2Informix数据仓库与数据挖掘NoSQL技术IT业界新闻与评论IT职业生涯& & & 猎头招聘IT图书与评论& & & CU技术图书大系& & & Linux书友会二手交易下载共享Linux文档专区IT培训与认证& & & 培训交流& & & 认证培训清茶斋投资理财运动地带快乐数码摄影& & & 摄影器材& & & 摄影比赛专区IT爱车族旅游天下站务交流版主会议室博客SNS站务交流区CU活动专区& & & Power活动专区& & & 拍卖交流区频道交流区
白手起家, 积分 2, 距离下一级还需 198 积分
论坛徽章:0
针对ARM处理器的开发环境有ADS和IAR开发环境
在这里首先需要的是会用安装ADS开发环境
一、arm体系的存储器格式:字的长度为32位。 半字的长度则为 16&、字节的长度为8位。
arm920T体系中字需要4字节对齐、而半字则需要2字节对齐。
支持两种方法来存储字数据——大端格式和小端格式
二、s3c2410片上资源
其管理系统:地址空间为每个内存块 128M,一共1g等等。
三、s3c2410的中断系统
可以处理多达56个中断源的中断请求,有如下11个中断源通过分支中断器来申请使用中断。
5个中断控制寄存器。
中断控制逻辑的任务是:。。。。。&&&&& cpu内核只有FIQ和IRQ中断。
中断源挂起寄存器和中断挂起寄存器有什么区别和作用:作用是用于指示相应的中断源和中断是否被激活。
如何清除中断请求:
如何清除中断源挂起寄存器和中断挂起寄存器。
中断触发方式有5种:
中断控制程序工作流程:先屏蔽中断-执行-
中断程序实例解析:实验选择的外部中断EINT0;和EINT1;通过按钮向CPU申请中断。
四、s3c2410的i/o口
共分为8组端口:一个端口A;11位端口B、H;16位端口CDEG;8位端口F.有端口控制寄存器、端口数据寄存器、端口上拉寄存器。
编程实例:通过引脚来控制LED灯管的灭和亮。
五、s3c2410的串口UART及编程
提供了3个独立的异步串行通信接口,都可以工作于查询、中断、DMA模式。每个UART单元都包含一个16字节的FIFO,用于数据的接受和发送。
波特率的产生:由波特分频寄存器控制。
UART通信操作:发送数据帧和接收数据帧都是可编程的,一个数据帧包括1个起始位、5-8个数据为、1个可选的奇偶校验位、1-2个停止位。
UART的控制寄存器:ULCON\UCON\UFCON\
发送寄存器UTXH和接收寄存器URXH.还有发送和接收状态寄存器。
UART通信程序编写:以下是通过终端的 方式来进行通信程序的编写——选通道-选波特率和波特率发生器时钟-通信协议的设定通信控制字设-I/O口初始化-等等
六、实时时钟
实时时钟寄存器:实时时钟控制寄存器、告警寄存器、实时时钟计数器、告警时间寄存器、实时时钟寄存器。
实时时钟的编程:步骤——时钟初始化、将当前时间准确写入RTC、读取RTC时间到LCD上显示。
问题:什么是时间片中断、周期是什么RTC的中断函数入口地址是什么?
七、直接存储器存取控制(DMA)
DMA控制就是通过取代CPU来,获得总线的控制权,从而能够快速的内存与外设或者是内存之间区域的数据的高速传输。
数据传送过程:省略、在内存与外设之间DMA传送时,DMAC控制器只是输出地址和控制信号,而数据传送是直接在内存与外设之间传送的,并不经DMAC,
DMA传送的三种方式:i/o到存储器,存储器到存储器,存储器到I/O。这三种方式的过程要熟悉。
DMA控制器:4个通道。每个通道都可以处理一下四中情况。DMA地址寄存器、DMA控制寄存器、DMA配置寄存器。
编程实例:DMA内存传送程序、 怎样计算数据的大小。
7、看门狗电路
功能是防止系统跑飞。原理是:定时器在一个给定的周期中没有修改,那么会在某个时期溢出,引起系统复位。
输入到计数器的时钟周期:&&&& 看门狗的定时周期:
寄存器:WTCON;WTDAT;WTCNT
实验例子:原理:设置看门狗时钟周期和看门狗定时周期。
问题:如何设置看门狗电路中断向量和如何使能看门狗电路中断,如何屏蔽看门狗中断电路和清看门狗电路中断挂起。和中断源挂起寄存器。
IIC为多采用主从结构。通用存储器芯片为EEPROM:型号为AT24XX,各引脚的功能为。
iic的读写控制逻辑:iic数据传送的时序图
s3c2410支持四种模式:主发送,主接受、从发送和从接受。
有下列控制寄存器:控制、状态、地址、发送接收移位寄存器。
iic总线读写方法:开始条件、停止条件、确认信号、数据传送。
iic总线主要完成两个工作:系统初始化——使能系统中断、设置中断向量等,二是对相关寄存器进行设置。
实验实例:主发送程序流程、主接收程序。
9、iis总线
该总线专门用于总线音频设备之间的数据传输。芯片内置了一个IIS控制器:该控制器包含FIFO、DMA传输模式。
总线控制器结构为:两个5位位预处器、16个字节FIFO、主IISCLK产生器、通道产生器和状态寄存器、16位移位寄存器。
iis控制寄存器、模式、分频寄存器。
WAV声音格式文件:格式文件结构图——
iis控制程序编写:系统初始化——降频、然后对串口进行初始化、把端口的状态保存起来、设置DMA中断向量、获取语音数据及其大小和采样频率。——播音程序编写——录音程序编写
问题:如何初始化iis和使能关闭iis如何设置iis中断向量。
10、串行外设接口(SPI)
每个SPI口都有两个分别用于发送和接收的8位移位寄存器。在一次spi通信中,数据被同步发送和接收。
SPI的接口特性、spi的结构框图。
spi的传输格式:
spi通信模式:中断、DMA、查询模式。
spi控制寄存器、状态、引脚控制程序、波特率预分频、接收寄存器、发送寄存器。
&&nbsp|&&nbsp&&nbsp|&&nbsp&&nbsp|&&nbsp&&nbsp|&&nbsp
北京皓辰网域网络信息技术有限公司. 版权所有 京ICP证:060528号 北京市公安局海淀分局网监中心备案编号:
广播电视节目制作经营许可证(京) 字第1234号
中国互联网协会会员&&联系我们:
感谢所有关心和支持过ChinaUnix的朋友们
转载本站内容请注明原作者名及出处

我要回帖

更多关于 从事化妆品行业后悔了 的文章

 

随机推荐