my blog my blog

Tag: 51单片机
单片机学习小结

 

这个学期的单片机课程告一段落了,不过我感觉这学期的单片机是大学学习的比较实用的一门课程了,至少从原理上知道如何去实现一些东西了,当然这学期的linux课程也有不少的帮助,在系统编程方面也有了浅薄的认识,今天来总结下单片机课程。

我认为呢,像单片机这种实践性很强的课程,单单看看课本是远远不够的~~~必须有个板子做,要不你可能永远都不知道那个led小灯是咋亮的。至少我是看了一些教程之后才知道可以直接往p0~p2口写引脚的,然后上电后单片机的引脚默认是高电平,要写0给它们,呃,虽然可能听着听简单的,但是书上未必讲那么全(估计是我们的课本比较烂,总是用自己老师写的书,-_–)

买个开发板吧,动手做做,哪怕是看看别人的代码,把代码下载到开发板上,做一遍看一遍分析一遍,你的收获都会远大于看课本。

从汇编开始吧,我觉得汇编其实很容易理解的,并没有想象中那么难(因为接触的也不是那种很深入的),就是赋值,跳转这些操作,但是你需要看懂为啥那么赋值那么跳转,要看懂算法就不是那么容易了。

有人推荐直接用c,其实我感觉呢,用c确实可以省事儿很多,而且代码更容易让人理解,不过有时候理解原理也很重要我觉得,至少我觉得寄存器那里确实需要仔细去理解的。

好吧,最后奉上一套板子的购买地址,以及两套资料,供想学习的朋友们下载跟购买。

51单片机卡发板购买:51+ARM+AVR三合一嵌入式学习板 51单片机开发板+2.6触摸彩屏  奶牛就买的这个,做工质量挺不错的,接口教程都挺丰富的

点此下载:51单片机教程下载(共10G)   强烈建议收藏下,我花了两天上传的

只有电脑不离不弃

 

RT,我爱我滴电脑,我滴系统,你们最好了,你们不会罢工~~~

课程设计下来了,多路数据采集系统的设计,51+a/d转换+键盘+外扩存储+led显示,设计硬件,让人纠结,网上有不少范例,呃,明天开始弄,周五还要交~~~

天好热,各种出汗睡不醒。。。

睡鸟,最近好水

发一套51单片机资料(5G iso文件)

 

发一套51单片机的资料,是我自己买的板子送的,感觉还挺好的,转了iso分享上来。

用的115网盘(PS:不要骂俺用yunfile,俺也讨厌那东西),呃…

下面的广告各位也看到了哇,呃,如果有愿意的可以自愿捐赠资助本博客,文件我上传了6个来小时,多了就不解释了。

下载地址:http://115.com/file/bec23mx6            #学习光盘(HC6800EM3).iso

51单片机日记:说说长调短调及返回

 

每次仔细看遍书都会有收获。今天记录下子程序调用。其实呢,就是lcall或者acall到一个address,然后这时候其实sp指针是有动作的哦,然后通过ret可以将sp指针的变化弹到pc指针,回到程序,这个过程就是程序的调用啦。

 

  1.                ORG        1000H 
  2. Father:        MOV        A,        #0FFH 
  3.                LCALL      Son                   ;调用子程序 
  4.                LJMP       Father 
  5. Son:           ANL        A,        #0FH        ;高位清零 
  6.                RET                              ;返回主程序 

过程是这样子的,首先father进程把FFH赋值给累加器A,然后调用子程序,这时候PC=(PC)+3 ; SP=(SP)+1 ;(SP)=(PC)L ; SP=(SP)+1 ;(SP)=(PC)H ; 然后开始跳到子程序son,在RET的时候,SP先弹值到(PC)H,然后SP-1,再弹值到(PC)L,最后SP-1回到初值,这样子,PC就又变为LJMP语句所在的地址了,也就是从LJMP开始继续执行。

PUSH与POP哇,LCALL/ACALL与RET哇一定要成对使用避免错误产生~~~

51单片机日记:从最简单的点小灯开始

 

对于P0 P1 P2 P3的端口的写,直接送数即可。虽然可以查到这些端口的地址,但是是无法直接写数到地址的。所以也就不需要记住他们的地址鸟,直接往端口送数即可。如果想直接操作P2.0 P2.1这样的端口,用位操作即可。延时程序嘛就是给单片机一些数让它去循环,时间是循环次数*指令的周期/机器周期的结果。

 

  1.         ORG             000H 
  2.         LJMP            MAIN 
  3.         ORG             030H 
  4. MAIN:   MOV             P2,     #00H 
  5.         LCALL           DELAY 
  6.         SETB            P2.0 
  7.         LCALL           DELAY 
  8.         SETB            P2.1 
  9.         LCALL           DELAY 
  10.         SETB            P2.2 
  11.         LCALL           DELAY 
  12.         SETB            P2.3 
  13.         LCALL           DELAY 
  14.         SETB            P2.4 
  15.         LCALL           DELAY 
  16.         SETB            P2.5 
  17.         LCALL           DELAY 
  18.         SETB            P2.6 
  19.         LCALL           DELAY 
  20.         SETB            P2.7 
  21.         LCALL           DELAY 
  22.         LCALL           MAIN 
  23.  
  24. DELAY:  MOV             R5,     #04H 
  25. F3:     MOV             R6,     #0FFH 
  26. F2:     MOV             R7,     #0FFH 
  27. F1:     DJNZ            R7, F1           
  28.         DJNZ            R6, F2 
  29.         DJNZ            R5, F3 
  30.         RET 
  31.         END 

 
呃,其实自己也觉得代码有点儿傻,记录吧,一点点儿来~~~

 

开始鼓捣51单片机

 

不行,得找点儿东西玩儿鸟,混日子是不对的。在儿童节木有收到啥礼物,自己淘了一个单片机的板子,学习点小灯,写小控制程序~~~

话说俺们只开了汇编,而且感觉讲课很多东西都得靠自己,特别是实际接触,如何去写如何去实现,如何去链接等等,呃。

今天板子到了,把小灯哇,蜂鸣器哇,数码管哇都搞了一遍,板子没啥问题应该。

记录下:

下载时候要注意波特率设置,不要太高,失败就降低。

com口从设备管理器的通信中选择,可以从属性的高级去定义。

HC6800的板子用谱中ISP程序下载比STP的好用一些,特别是有auto功能。

大体就先弄到这里吧,这几天看看他们如何用C来实现的,郭天祥的他们推荐很多,看了一集还挺好的,就是时间有点儿长哇~~~

今天windows又进不去鸟,继续拆下硬盘挂移动硬盘到舍友的电脑修复磁盘,然后又正常启动,发现可能跟装linux有关,因为上次也是,很纠结,因为文件系统不知道是哪里的损坏,因为在linux下可以正常访问,想到好像前几天看订阅中还有网友也有同种状况呢,我这是第二次鸟,不晓得。。。

自己的光驱貌似报废了,读盘能力几乎没有了,很郁闷,算鸟,等着假期有钱就再上个硬盘到光驱位吧。。。

杂记到此结束,吼吼,开始折腾51单片机~~~