搜索
bottom↓
回复: 5

来个无聊的实作:股票信息显示器

[复制链接]

出0入0汤圆

发表于 2012-5-7 11:40:43 | 显示全部楼层 |阅读模式

平时玩电脑的时候,由于是笔记本,屏幕尺寸比较小,查看股票信息什么的要频繁切换页面很是麻烦,能不能用launchpad做一个单独实时显示股票信息的工具呢,就像再加一台小显示器一样,手边刚好有个5110屏,接口少好操作,立即开工。
一、脚位定义:
由于2231的脚位比较少,就拿2452开工,电路很简单,我就不画图了,接口连接如下:
//5110端口定义
//P2
#define CLK   BIT5
#define DIN   BIT4
#define DC    BIT3
#define CE    BIT2
//P1
#define LED   BIT6
#define NOKIA5110_CLK_H               P2OUT |= CLK
#define NOKIA5110_DIN_H               P2OUT |= DIN
#define NOKIA5110_DC_H               P2OUT |= DC
#define NOKIA5110_CE_H               P2OUT |= CE
#define NOKIA5110_LED_ON        P1OUT |= LED

#define NOKIA5110_CLK_L               P2OUT &= ~CLK
#define NOKIA5110_DIN_L               P2OUT &= ~DIN
#define NOKIA5110_DC_L               P2OUT &= ~DC
#define NOKIA5110_CE_L               P2OUT &= ~CE
#define NOKIA5110_LED_OFF        P1OUT &= ~LED
//串口引脚定义
#define UART_TXD   0x02                     // TXD on P1.1 (Timer0_A.OUT0)
#define UART_RXD   0x04                     // RXD on P1.2 (Timer0_A.CCI1A)
二、工作原理及所用模块:
其实工作原理很简单,上位机取得设定好的股票信息,通过串口发送到MSP430中,然后在屏幕上显示出来,不断更新最新数据。
实现起来呢还是有几点稍有难度的地方。
1、串口的收发。
为保证收发速度,通讯波特率要保证在9600以上,所以时钟频率至少要1Mhz,我这里用了内部DCO12Mhz,其实目前用不了这么高,但是以后传输大量数据的时候留点余地。
串口通讯另外一个问题就是通讯协议,我采用的是头尾控制字格式,参考一个BCB串口控件的,觉得不错就拿来用了,版权归原作者所有,嘿嘿。协议方式具体描述如下:
/****************************************************************
| 简单数据包协议的实现原理:                                                
|   1.定义数据包头,尾,控制符, 例如本程序定义的为 DB,DE,DC                  
|           (DB,DE,DC 分别取 Data-Begin, Data-End, Data-Control 的字头)     
|   2.所有的数据发送都以如下格式:                                          
|            0xDB + 数据 + 0xDE                                             
|   3.如果数据含有控制符, 转换为 0xDC + 字符, 接收端认为 0xDC 后面的是数据  
| 例如: 3个字节的数据 0x12, 0xdb, 0x99 的数据包格式为:                     
|                     0xdb, 0x12, 0xdc, 0xdb, 0x99, 0xde                    
|     其中 0xdb 被转义为 0xdc, 0xdb 两个字节   
****************************************************************/
    2、串口的实现。
参考了官方例程,用了定时器Timer0-A(CCT1A,OUT0)P1.1,P1.2两个脚位的复用功能,一个定时输出,一个捕获起始位转定时接收。对比datasheet一看就明白了这里就不罗嗦了。
  3、信息显示。
驱动5110很简单,模拟串行总线,基本上定义那几个脚位修改为你自己的就可以用了。但问题在于MSP430的RAM小,从上位机发过来的数据不能一次传输完毕,所以就开辟了一个100Byte的缓存区,接受从上位机发来的数据,满一屏84x8bit显示一次。
还有个就是中文的显示,MSP430的没有那么大的存储空间去储存字库,所以中文的股票名称都是上位机转换后传输过来的。
  4、低功耗。
用MSP430肯定要把低功耗的特点考虑进去,所以在接收和显示之外的时间,程序都是运行在LPM3低功耗模式,上位机有数据发过来时会通过捕获终端收码。
4、上位机程序
用cb2010编写,基本能用,可以定制股票,数据也能实时更新,中间坎坎坷坷,简直是折磨人啊...由于水平有限,不会用线程所以添加股票信息时需要等按钮弹起再依次添加,所以上位机源码就不上传了,苦手啊...
三、运行图片及视频
http://www.tudou.com/v/dqnjemYQr_Q/&resourceId=100900070_04_02_99/v.swf

四、一点想法
其实最初的计划是更好点的,1.8‘’彩屏,可以显示天气图片,显示温度和时间,调节亮度,股票信息会以不同的颜色区分涨和跌,还可以利用cc2500实现无线手持,组网。可是工程太浩大了,赶上最近也忙,就先到这里吧,拿出来只是为了抛砖引玉....
下位机代码及上位机程序


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

阿莫论坛20周年了!感谢大家的支持与爱护!!

知道什么是神吗?其实神本来也是人,只不过神做了人做不到的事情 所以才成了神。 (头文字D, 杜汶泽)

出0入90汤圆

发表于 2012-5-7 12:24:17 | 显示全部楼层
楼主的想法挺好的啊!!!支持楼主!!

出0入0汤圆

发表于 2012-5-7 12:40:45 | 显示全部楼层
用launchpad啊,顶啊

出0入0汤圆

发表于 2012-5-7 12:42:51 | 显示全部楼层
这个 有才!

出0入0汤圆

发表于 2012-5-15 09:10:57 | 显示全部楼层
大神啊

出0入0汤圆

发表于 2012-5-18 10:04:22 | 显示全部楼层
想法很好的
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片。注意:要连续压缩2次才能满足要求!!】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-7-28 13:49

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表