本博客为本人学生时代的技术博客,工作后10年已经不再更新,需要关注可以访问geekpm.com,点击访问!
摘要: 我们经常需要写代码,查看代码,查看代码时一般会用记事本,但是记事本的功能太弱,而写代码时有的编译器大的编辑功能太弱,像IAR keil之类的,因此需要一个小巧好用的替代记事本的编辑软件。Notepad++我用了很久了,以前主要是用他来查看代码,他有语法高亮功能,这是相对于记事本来说最大的特点,对于代码他还有很多实用的功能,如将一段文字给注释掉,以前需要手动添加/**/,现在只需要选择一段文本使用快捷键就可以,另外不知道大家在用VS2008的时候单词和函数的自动提示功能是不是很爽,但是很多的编辑器都没有这个功能,Notepad就有这个功能。前面只是介绍了一部分,下面说一下怎样在IAR中调用No. 阅读全文
posted @ 2010-08-07 17:35 emouse 阅读(5253) 评论(0) 推荐(0) 编辑
摘要: PS2键盘解码的基本原理是通过外部中断读取键盘输出的串行信号,在根据扫描码进行查表解码。键盘发送往主机的信号总是在时钟的下降沿因此此中断是在下降沿触发,且时钟信号是由键盘给出,因此使用P1口中断(已经在初始化端口时设置)。发送的数据位11位,第一位是起始位,总为0,紧接是8个数据位,然后是奇校验位,最后是停止位总为1. 本程序只能对基本按键(即键被按下时产生三个字节的扫描码的按键)做出解码,包括所有的可显示字符键和Table,Back Space和Ente三个特殊功能键。基本按键的扫描码由三个字节组成,第1个字节为接通码,第2、3字节为断开码;其中第1字节和第3字节相同,中间字节为断开标志0. 阅读全文
posted @ 2010-08-07 11:59 emouse 阅读(1017) 评论(1) 推荐(0) 编辑
摘要: 与51、AVR等单片机不同msp430的时钟信号源有LFXT1,XT2,DCO三种。1、LFXT1:可接高速和低速晶振,在低速模式下,它可以外接32k的晶振而不需要负载电容,这种方式较为常见主要用来为ACLK提供低速的时钟信号,以供低速外设使用。2、XT2:高速振荡器,它可以接一个0.4~16M的晶振,它相当于高速模式下的LFXT1。通常将它配置成一个高速的振荡源,为MCLK何SMCLK提供高速时钟信号。3、DCO:内部数字控制振荡器,它的频率可以通过DCOCLK进行配置。在系统PUC之后,DCOx=7,MODx=3,表示选择了最高的频率。前面介绍了MSP430中有三个个时钟信号源,MSP43 阅读全文
posted @ 2010-08-05 00:34 emouse 阅读(1179) 评论(0) 推荐(1) 编辑
摘要: MSP430寄存器中文注释---P1/2口(带中断功能) /************************************************************ * DIGITAL I/O Port1/2 寄存器定义 有中断功能 ************************************************************/ #define P1IN_ 0x0020 /* P1 输入寄存器 */ const sfrb P1IN = P1IN_; ... 阅读全文
posted @ 2010-08-04 22:40 emouse 阅读(804) 评论(0) 推荐(0) 编辑
摘要: 讲解430的书现在也有很多了,不过大多数都是详细说明底层硬件结构的,看了不免有些空洞和枯燥,我认为了解一个MCU的操作首先要对其基础特性有所了解,然后再仔细研究各模块的功能。 1.首先你要知道msp430的存储器结构。典型微处理器的结构有两种:冯。诺依曼结构——程序存储器和数据存储器统一编码;哈佛结构——程序存储器和数据存储器;msp430系列单片机属于前者,而常用的mcs51系列属于后者。 0-0xf特殊功能寄存器;0x10-0x1ff外围模块寄存器;0x200-?根据不同型号地址从低向高扩展;0x1000-0x107f seg_b0x1080_0x10ff seg_a 供flash信息.. 阅读全文
posted @ 2010-08-04 22:06 emouse 阅读(1668) 评论(0) 推荐(0) 编辑
摘要: ST7920较为常见,由于自带字库使用较为方便。下面的这个程序是根据开发板上的例程做适当修改而来,总的来说较为简单,对着ST7920的DATASheet看一下时序和指令集就能明白。驱动程序如下:#include <msp430x14x.h>typedef unsigned char uchar;typedef unsigned int uint;extern const unsigned char shuzi_table[];#define LCD_DataIn P4DIR=0x00 //数据口方向设置为输入#define LCD_DataOut P4DIR=0xff ... 阅读全文
posted @ 2010-08-04 21:31 emouse 阅读(1315) 评论(0) 推荐(0) 编辑
摘要: 本文不讨论显示驱动,只讨论怎样通过软件对图片进行取模然后让12864显示。1、将需要显示的图片进行处理首先12864只能显示黑白图像而且不能显示灰度,因此可以确定图片的要求:图像大小:128像素*64像素图像格式:bmp图像位数:1处理方法如下:先将要显示的图像进行裁剪,按照2:1的比例更改图像大小为128像素*64像素保存图像为bmp格式颜色深度为1或者就是黑白模式以上操作可以使用Photoshop来完成,通过以上操作可以得到要显示的图片。2、导入图像进行取模到网上找一个PCtoLCD2002的软件,点击打开导入刚刚生成的图像点击选项按照图进行设置上面的设置是我试验得到的,阴码和阳码显示的颜 阅读全文
posted @ 2010-08-03 20:41 emouse 阅读(9436) 评论(0) 推荐(0) 编辑
摘要: 看门狗定时器用来防止程序因供电电源、空间电磁干扰或其它原因引起的强烈干扰噪声而跑飞的事故。在很多单片机中都内置了看门狗,看门狗本身是一个定时器,当定时器溢出时即进行系统复位,因此需要在程序中对看门狗定时器进行清零,即常说的喂狗。由于我用过AVR的单片机,和AVR的相比,MSP430的看门狗要灵活的多,首先默认看门狗是开着的,因此如果不使用看门狗的话要关闭,指令如下:WDTCTL = WDTPW + WDTHOLD如果打开看门狗则需要在程序中清零,指令如下:WDTCTL=WDTPW+WDTCNTCL这只是基本的应用,430的看门狗要稍微复杂一些,首先从IAR的头文件中看看定义了几种工作状态:/. 阅读全文
posted @ 2010-08-03 10:44 emouse 阅读(7274) 评论(0) 推荐(0) 编辑
摘要: 这个例程也是开发板上面的一个经典例程,我对程序的框架进行了修改,更适合以后的调用。具体的4*4键盘扫描原理较为基础这里不再赘述,这里我认为比较重要的是要养成一个良好的写程序的习惯,想4*4键盘扫描这样的函数可以写成一个固定的C或者H文件,便于以后调用。先看看主程序:/***********************************************程序功能:扫描4X4键盘并将键值在数码管上显示------------------------------------------------测试说明:按动K1~K16按键,观察数码管显示************************. 阅读全文
posted @ 2010-08-02 22:45 emouse 阅读(1101) 评论(0) 推荐(0) 编辑
摘要: 这个程序主要部分是我改写的,程序把看门狗当做普通定时器使用,在看门狗中断中进行数码管扫描,另外我加入了显示的缓冲区,想在数码管上显示什么数字只需要对缓冲数组中的值进行操作即可。最后加入了小数点的操作,可以很方便的加入小数点,程序如下:/**********************************************程序功能:在八位数码管上显示任意数字-----------------------------------------------拨码开关设置:将SMG位拨至ON,其余拨至OFF测试说明:观察数码管显示*********************************** 阅读全文
posted @ 2010-07-22 21:40 emouse 阅读(780) 评论(0) 推荐(0) 编辑