对于新手,如何去了解51单片机的一些底层架构?

2020-01-20 19:13发布

对于新手,如何去了解51单片机的一些底层架构?
望有大神给出好的指导!!!
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
19条回答
lxa0
1楼-- · 2020-01-22 16:17
 精彩回答 2  元偷偷看……
learner123
2楼-- · 2020-01-22 17:18
不要动不动就说自己都不懂的词,结构就是结构,还上升不到架构。
板房和大楼不是一个数量级的。
51的经典可以看看早期教材,对照intel的英文pdf,intel8031。基本还算是cisc结构,再找一本计算机组成原理看看,对比简易CPU设计,体会一下用微码实现指令,时序结构的控制流程。
如果玩的深入点,搞搞汇编,用vhdl编个兼容指令集的小内核,验证一下。开源的比较多,可以尝试找些bug,大部分开源51的fpga代码实现都有自己小bug。
再深入,就可以直接定制点指令和自定义外设。
以上是硬件玩法,当然有点极端,根据爱好和就业情况来

如果只是随便玩玩,混口饭吃,玩好编译器和c语言,keil,iar。uart,spi,iic,外地址数据总线,就够了,剩下就不单纯是51的问题了。数电,模电,程序结构。。。
入门就是流水灯,串口通信。
51是小板房而已,不难,盖好小板房才能盖大楼,而且,只盖小板房一样能当房地产商。但是,无论板房还是楼房,都要认真仔细,否则只能当砌砖的,不能当设计的。
sidu320
3楼-- · 2020-01-22 18:35
learner123 发表于 2015-1-18 04:23
不要动不动就说自己都不懂的词,结构就是结构,还上升不到架构。
板房和大楼不是一个数量级的。
51的经典可 ...

这点评看起来很厉害的样子啊,可以帮忙抽时间看看这个简单程序吗?看不到实验现象(每次P3.4接触GND就会只亮P0.0),DEBUG又进不去COUNTER,计数器不比定时器,感觉难了点。

先谢了。
  1. ;======================================
  2. ;使用定时器/计数器实现6只灯的流水灯功能
  3. ;(分别使用定时器和计时器两种方式实现)
  4. ;====================================
  5. ;                        计数器实现
  6.                 ORG                0000H
  7.                 AJMP                MAIN
  8.                 ORG                000BH
  9.                 AJMP                C_0                                        ;COUNTER计数器模式
  10.                 ORG                0100H

  11. MAIN:        MOV                TMOD,        #06H                        ;计数器0工作方式2,8位自动重装
  12.                 MOV                TH0,                #0FFH
  13.                 MOV                TL0,                #0FFH                ;最快时间溢出
  14.                 MOV                R2,                #06H                        ;控制流水灯流6次,也就是6只灯!
  15.                 SETB                EA
  16.                 SETB                ET0
  17.                 CLR                IT0                                        ;低电平触发方式
  18.                 SETB                TR0
  19.                 SJMP                $                                        ;等待溢出
  20. C_0:                MOV                TH0,                #0FFH
  21.                 MOV                TL0,                #0FFH                ;最快时间溢出
  22.                 ACALL        TURN_R
  23.                 MOV                R2,                #06H                        ;流水灯结束之后重新赋值备下次使用。
  24.                 RETI
  25. ;------------------------------------------------------------------------------------------------
  26. ;流水灯程序
  27. ;----------
  28. TURN_R:        MOV                A,                #0FEH
  29.                 MOV                P0,                A
  30.                 RL                A
  31.                 ACALL        DELAY
  32.                 MOV                P0,                A
  33.                 DJNZ                R2,                TURN_R                       
  34.                 RET
  35. ;------------------------------------------------------------------------------------------------
  36. ;延时子程序约1s
  37. ;--------------
  38. DELAY:        MOV                R7,                #100
  39. DELAY0:        MOV                R6,                #100
  40. DELAY1:        MOV                R5,                #50
  41. DELAY2:        DJNZ                R5,                DELAY2                ;MOV R5, $
  42.                 DJNZ                R6,                DELAY1
  43.                 DJNZ                R5,                DELAY0
  44.                 RET

  45.                 END                                                                                                                                                          
  46.                        
复制代码
learner123
4楼-- · 2020-01-23 00:35
sidu320 发表于 2015-1-18 14:26
这点评看起来很厉害的样子啊,可以帮忙抽时间看看这个简单程序吗?看不到实验现象(每次P3.4接触GND就会只 ...

延时子程序错了一句
Zenmvol
5楼-- · 2020-01-23 01:58
learner123 发表于 2015-1-18 04:23
不要动不动就说自己都不懂的词,结构就是结构,还上升不到架构。
板房和大楼不是一个数量级的。
51的经典可 ...

感谢大神指教!!!
sidu320
6楼-- · 2020-01-23 07:02
 精彩回答 2  元偷偷看……

一周热门 更多>