入门任务:点亮LED

辛昕   2011-3-7 15:58 楼主
       上星期六的下午,琳子姐给我寄的430板子到了。拿来后,我只是拆开来看了看,然后就忙别的事情......这些天事情还真多啊。
 
       然后昨天想玩一玩,首先插进光盘,感慨这光盘怎么先进,直接就连到网络上去——其实我想骂它该死,要是能直接打开多好......后来想想可能资料太多了。不过还好,咱好像已经不担心没网了。
       习惯性把所有的资料都翻了翻,下载。
       不过最有建设性意义的就是下载了那个IAR。然后安装了,但是对着它,半天不知道是什么。
 
       这事干了一个下午,主要是网速慢,而IAR居然100多M,下了好久。在下的时候我就继续看那些资料,可惜全都是英文的,而且,感觉不是给我这个连它是什么都不知道的菜鸟看的。然后我就把它放开了,我觉得,啥都别说,咱先把例程跑起来再说,所以就只好等这个IAR了。
 
        这个时间里,我开始考虑我的 无线温度传感器 的毕业设计,主要是选择温度传感器......
        晚上的时候,吃完晚饭跑图书馆找430的书看。在书库里无意看到一本2009年的 无线电 合刊,这本杂志我很喜欢,就随手抽了下来。坐下来打开一看,发现,还真巧,里头的单片机栏目正好有一个 沈建华老师 的430系列文章。
        我很认真地看了一下,基本上就记得IAR的基本操作了。
        回来后,因为忙着去想 毕业设计 的事情,然后跑步什么的,乱糟糟的,昨晚想把IAR玩一遍的事情给耽搁了。
        第二天起来,跟琳子姐商量了一下51板块DIY的事情,发了个进展贴。然后因为三极管取代继电器的事情,费了一些脑筋,后来还是没搞定,可这回,快中午了。
        吃了饭,心想再不能拖沓了。于是拿出借的那本 430的书,还真巧,这书恰好就是 沈建华老师 写的。
不过那本书讲的跟杂志里的没多大区别。
 
        因为我还不懂430的寄存器和编程。所以我没那么大的野心,我只是想把一个例程跑起来。
        打开之前准备申请430搜索的几个PDF,找了其中一个比较实用的,然后按照他教的,点开了IAR自带的一个例程。
         然后轻车熟路地进行了一遍项目文件建立,设置编译的相关选项,这些都挺顺利的。
 
         唯一有点奇怪的是,我在USB口上那块开发板上看到的那个430,明明是430F1612,可奇怪的是,当我运行时,IAR提示我器件型号错误,而且它居然告诉我应该是430F2274,这个型号我倒是记得,不过那是在另一块板子上的啊。
        现在看来,这可能是一块烧写芯片,相当于PL2303或者MAX232。想想也对,据称,现在F1XXXX系列已经逐渐被淘汰,那么,TI拿它来做编程器倒也是很合理的。不管如何吧,设置这一步搞定了。
        我看了一眼例程,挺简单的,只是一个点亮P1口的LED,也没太在意。
        烧程序进去了......
        因为对于KEIL用的比较熟,而这个IAR跟KEIL还是比较像的,我凭感觉找到了单步调试的按键,一步一步来,嘿,怪事了。压根没反应!!
         纳尼¥#&×(%&%#……#
 
         在改了几个PIOUT的值以后,我停下来,打开一份USER GUIDE。找到了这个板子的原理图,对啊,那两个LED就是连接在P1.0和P1.2啊。
         没办法,我只好去看430的PI口的设置状况,因为我看到有个PIDIR的设置。
         这个东西我玩51一年多从没见过。可是,昨天晚上,在一个单片机群里,有个人问了一个问题,还贴了一段程序,我在里面也看到这样的寄存器PIDIR。我当时听他说是51,就答应帮他看看,等他发了资料,我才知道那是一个无线数传模块,只是里面用了51内核的控制器。我看了半天没感觉,只好跟他说不好意思。
         所以我看到这个P1DIR的时候我觉得问题可能出在这,于是我就找到了430的资料,果然如此,这是一个设置输出和输入模式的寄存器。
        于是我就把所有的IO口都设置为输出模式,灯就亮了。
        唯一有点奇怪的是,我发现,这两句话的效果是很不一样的:
       P1OUT =0XFF;
       P1OUT ^=0XFF;
       运行的时候,一个是一直亮着,一个是一闪一闪的。
       我不太知道这个^是个什么意思,因为还没看资料。准备待会上图书馆静静看那本书。
---------------
       末了,说一下这个开发板的东西。
       昨天边等IAR下载的时候,我拿着板子细细在看,一直觉得很是长见识。USB那块板子上的那个白色的条状物,我猜测就是那种片状天线,我只听说过,那是大二的时候,村田在我们学校开讲座,我当时去听了,在他们的资料上看到东西,而第一次见还是昨天。
       还有就是那三片很薄很小的27M的晶振。还有一个小的几乎我要很小心才能按动而不至于把整个2500模块压下来的小开关。
       至于那几个不知道是0402还是0201的贴片电阻电容就更是小的可以,不过那个我早见过,在我拆开的一个手机锂电池里见过。
       另外就是这个IAR软件。
       很是欣赏。一开始我还在犯嘀咕,完了,这只有IAR,我上哪找烧写软件去?后来我看着书的介绍,貌似就没提及过这个东西,我就抱着试试的态度,直接照着上面的做,这才发现,IAR估计是已经把这一个功能也集合进去了。而且,最重要的是,程序烧进去后,我还可以单步调试,并且这片子的实际运行情况都是随我的调试过程实时进行的,也就是说,天啊,这里已经带了仿真功能!
        自个玩51,我就没用过仿真器,贵啊,买不起。倒是在实验室用WAVE6000时用过。(所以,一开始这430让我很是费解,直到我几乎是凭感觉在调试,才知道原来如此,嘿嘿,灯就是这好处,它再小也好,只要它亮了,眼睛的余光就能察觉。)
        而且,我还尝试了一下拔下U口,重新插上,这个时候,430的板子才会自己运行。也就是说,与STC的冷上电烧写程序相比,它是上电冷复位后才能自己运行。
 
----------------
        这就是我的第一篇430笔记,入门任务之点亮LED。
        暂时就写到这里,我会抓紧时间看懂怎么玩的。有个朋友跟我说,430跟51相比,内心还是长得比较像的,就是寄存器的设置比较麻烦,如今看来,他说对了。
        比如P1 P2口,那可真是麻烦得很,不过,这也是一个全新的理念,谁能想到,它居然把这个IO口设置了如此之多的功能,并且单独抽出了好几个设置的寄存器呢?
         玩430,这些才是最有意思的地方,不然跟玩51还有啥区别。
 
 
 
 

回复评论 (16)

LZ在用的时候型号报错是因为选择的信号时调试器的430型号,而非目标板上的430型号,430官版的USB调试器也是拿1XX系列的MSP430来做的
点赞  2011-3-7 16:41
P1OUT ^=0XFF这句应该是先把寄存器中的内容读出来,再^0xFF
P1OUT =0xFF这句应该是直接给寄存器赋值!两个不一样的
点赞  2011-3-7 18:04
斑竹开始搞430啦
点赞  2011-3-7 18:09

支持一下,顶

http://shop34182318.taobao.com/ https://shop436095304.taobao.com/?spm=a230r.7195193.1997079397.37.69fe60dfT705yr
点赞  2011-3-7 19:16

回复 4楼 常见泽1 的帖子

嗯,之前申请,不知道接下来事情会这么多。那天琳子姐跟我说要给我寄的时候,有过犹豫,因为突然手头撒开了好几件事。忙得一塌糊涂。
但是想想,430,这次如果错过了,就不知道什么时候有机会了。再想想时间有一个月到两个月,所以就要了。
然后既然来了,当然不能白白耗在这,至少还占用了一个哥们的机会呢,坛子给的一个机会。还有就是咱那20快运费不能白给。
强者为尊,弱者,死无葬身之地
点赞  2011-3-7 23:45
看到这类帖子,总是会不由的怀念起一些美好的事情来
点赞  2011-3-8 20:46
楼主好厉害!我才准备开始学习51,太落后了!~~
多多指教!
点赞  2011-3-9 16:22

回复 板凳 scbzlijun 的帖子

额,据我所知。
这一句的是取反。
昨天晚上在图书馆看了一个多小时的书,但是各种原因,至今没试着编写简单的IO口控制程序。
强者为尊,弱者,死无葬身之地
点赞  2011-3-9 22:53

回复 8楼 hting104 的帖子

没什么落后不落后,我真的很奇怪,为什么那么多人会把品种繁多,千变万化的单片机世界人为划分为高人一等和低人一等的。
我还是认为应用场合和物尽其用才是比较合适的态度。

另外,我想说,我的51也处于刚掌握最基本的基础的状态,还需要做点东西练习。
强者为尊,弱者,死无葬身之地
点赞  2011-3-9 22:55

回复 7楼 losingamong 的帖子

很想听听你的故事,那些美好的回忆。
强者为尊,弱者,死无葬身之地
点赞  2011-3-9 22:56

回复 11楼 辛昕 的帖子

哈~那是因为看到你对”IO复用”感到意外有感而发,我第一次看到时也觉得这个很复杂
但在用过51,AVR,430,PIC,STM32,LM3S,LPC13xx甚至是2440这么多器件后才发现,唯独就是51单片机没有IO复用...
所以楼主若干年后应该会有这种感觉:在习惯了IO复用的单片机之后,猛然发现居然还有没有IO复用的片子
PS:不是我军太弱,而是共fei太强啊

[ 本帖最后由 losingamong 于 2011-3-10 00:37 编辑 ]
点赞  2011-3-10 00:36

回复 12楼 losingamong 的帖子

哈哈。
还真是那种感觉。
强者为尊,弱者,死无葬身之地
点赞  2011-3-14 22:22

回复 9楼 辛昕 的帖子

51上面这样取反的例子很多哟
点赞  2011-3-15 12:49
51也有复用的呀P3不就是啊
点赞  2011-3-15 13:04

回复 15楼 k410533234 的帖子

都有一点吧。
呵呵,我刚开始用C51没多久,之前学的C老忘记很多语法,只记得有那个东西。
强者为尊,弱者,死无葬身之地
点赞  2011-3-15 19:30
引用: 原帖由 scbzlijun 于 2011-3-7 11:04 发表 P1OUT ^=0XFF这句应该是先把寄存器中的内容读出来,再^0xFF P1OUT =0xFF这句应该是直接给寄存器赋值!两个不一样的
^=是异或的意思啊,与1异或就相当于取反,所以LED灯就是闪烁状态。
点赞  2011-3-16 20:03
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复