第一次写这种东西,不好的地方就说声...........
目的:参加了个群,里面菜鸟好多,这没什么,高手都是曾经的菜鸟,这里只是给个学习的提纲,大家共同提高.还希望大家不要骂我,汗~~
适用人群:8051系列单片机的初学者,有一点使用经验的人群,如果你是高手就请多多指教咯,俺们一起完善吧
提到的范围:8051系列硬件,扩展接口,汇编,C51编程什么的,反应好的话就贴点做过的项目和同志们探讨下.....注意,这只是学习要注意的地方,绝对不是教科书,千万不要光看这个,没什么用的.
关于更新:本人不是无业游民,因此时间有限,有精力的话会努力更新的,有时候忙起来没空照顾blog,还请大大们不要见怪.以后有空的话会写些16位的以及高级C编程方面的东西,看时间吧
经验之谈:要学习单片机,最好的方法是做项目,先看些基本的书籍,不要太精细,然后找个不太复杂的已经做好的的项目,拿来仔细看,这样能够在一个月之内得到很大的提高,至少比在课堂学习一学期要好得多.然后接触些复杂的工程快速提高自己.
好了,废话不多说,让我们开始正题
一、硬件结构
很多人不喜欢看这章,其实这是很重要的地方,其他知识都是在这里的基础上产生的,尤其是新人,千万千万要重视硬件,别以为C语言真的可以独立于硬件,那样不可能做个顶级的C_er.
别的不说,引脚图到处都有,自己去看,强调下存储器好了,这里还比较重要.51系列的单片机里分ROM和RAM,ROM有4KB,主要用来放程序代码以及一些不变的常数和表格什么的,类似于PC汇编中的CODE段的作用.有几个比较特殊的地方强调下,ROM中有7个单元是有特殊用途的,编写汇编的时候要注意下,一个是0000H,系统复位后是从这里开始执行的,一般在这里加个强行跳转指令,跳到自己的主程序入口地址,然后是几个中断源地址,可以用:8n+3 n=0,1,2,3,4来计算这几个中断地址,往往是在这里添加的无条件跳转指令,跳到自己些的中断程序入口.可能这里有些人不大明白,没关系,后面C51编程时要详细讲到.
片内 RAM共计128Byte,是由用户自己定义并使用的,运算中的变量,堆栈什么的就放在这里了,00H到1FH为工作寄存器组区,分为4个组,每组有8个单元,都以R0~R7表示,汇编中可以直接用了,很方便,要换寄存器组的话就更改RSW单元好了.在20H到2FH的区域中还可以进行位寻址(注意:这里很容易被忽视,一定要知道这个),这里解释下,可能有些同志不太清楚了,位也就是一个字节中的组成部分,一个字节有8位,OK,位操作就是指以其中的一个位进行操作,什么把1变成0.0变成1什么的,呵呵,什么状态标志都在这里咯.后面的直到7FH都是数据缓冲区,随便用了.
80H到FFH(高128个Byte)又叫SFR,这里是用于控制单片机,管理片内算术逻辑部件,并行I/O口,串行I/O口,定时器/计数器,中断系统等功能模块.你可以更改其中的值,但不能移作它用.具体的东西自己去看教材好了,上面全有.不明白没关系,做几个项目,什么都明白了.里面也有可以按位操作的,至于具体用途看书,嘿嘿
累了,待续..........