2020-01-20 19:13发布
learner123 发表于 2015-1-18 04:23 不要动不动就说自己都不懂的词,结构就是结构,还上升不到架构。 板房和大楼不是一个数量级的。 51的经典可 ...
sidu320 发表于 2015-1-18 14:26 这点评看起来很厉害的样子啊,可以帮忙抽时间看看这个简单程序吗?看不到实验现象(每次P3.4接触GND就会只 ...
最多设置5个标签!
板房和大楼不是一个数量级的。
51的经典可以看看早期教材,对照intel的英文pdf,intel8031。基本还算是cisc结构,再找一本计算机组成原理看看,对比简易CPU设计,体会一下用微码实现指令,时序结构的控制流程。
如果玩的深入点,搞搞汇编,用vhdl编个兼容指令集的小内核,验证一下。开源的比较多,可以尝试找些bug,大部分开源51的fpga代码实现都有自己小bug。
再深入,就可以直接定制点指令和自定义外设。
以上是硬件玩法,当然有点极端,根据爱好和就业情况来
如果只是随便玩玩,混口饭吃,玩好编译器和c语言,keil,iar。uart,spi,iic,外地址数据总线,就够了,剩下就不单纯是51的问题了。数电,模电,程序结构。。。
入门就是流水灯,串口通信。
51是小板房而已,不难,盖好小板房才能盖大楼,而且,只盖小板房一样能当房地产商。但是,无论板房还是楼房,都要认真仔细,否则只能当砌砖的,不能当设计的。
这点评看起来很厉害的样子啊,可以帮忙抽时间看看这个简单程序吗?看不到实验现象(每次P3.4接触GND就会只亮P0.0),DEBUG又进不去COUNTER,计数器不比定时器,感觉难了点。
先谢了。
- ;======================================
- ;使用定时器/计数器实现6只灯的流水灯功能
- ;(分别使用定时器和计时器两种方式实现)
- ;====================================
- ; 计数器实现
- ORG 0000H
- AJMP MAIN
- ORG 000BH
- AJMP C_0 ;COUNTER计数器模式
- ORG 0100H
- MAIN: MOV TMOD, #06H ;计数器0工作方式2,8位自动重装
- MOV TH0, #0FFH
- MOV TL0, #0FFH ;最快时间溢出
- MOV R2, #06H ;控制流水灯流6次,也就是6只灯!
- SETB EA
- SETB ET0
- CLR IT0 ;低电平触发方式
- SETB TR0
- SJMP $ ;等待溢出
- C_0: MOV TH0, #0FFH
- MOV TL0, #0FFH ;最快时间溢出
- ACALL TURN_R
- MOV R2, #06H ;流水灯结束之后重新赋值备下次使用。
- RETI
- ;------------------------------------------------------------------------------------------------
- ;流水灯程序
- ;----------
- TURN_R: MOV A, #0FEH
- MOV P0, A
- RL A
- ACALL DELAY
- MOV P0, A
- DJNZ R2, TURN_R
- RET
- ;------------------------------------------------------------------------------------------------
- ;延时子程序约1s
- ;--------------
- DELAY: MOV R7, #100
- DELAY0: MOV R6, #100
- DELAY1: MOV R5, #50
- DELAY2: DJNZ R5, DELAY2 ;MOV R5, $
- DJNZ R6, DELAY1
- DJNZ R5, DELAY0
- RET
- END
-
复制代码延时子程序错了一句
感谢大神指教!!!
一周热门 更多>