学习啦>学习方法>通用学习方法>学习经验> 怎么样学习单片机

怎么样学习单片机

时间: 方琪1092 分享

怎么样学习单片机

  想要学好单片机,一定要有C语文的基础,一定要付出一定的心血,下面是学习啦小编为你搜集到的相关内容,希望对你有所帮助。

  怎么样学习单片机

  初步确定学习目标:是学习简单便宜的51呢,还是学习简单但是性价比已经不算太高的,但是功能强大稳定可靠的avr,还是物美价廉的stm32,或者ARM9(可以跑系统了),再往上x86什么的

  如果是学8位的单片机,推荐一款仿真软件proteus,支持的芯片很多比如atmel的最新版本是8.2,但是破解不大完全,不需要买硬件,写好的程序可以直接在电脑上运行,还可以与keil联调,推荐版本7.9或者7.8

  可以先学51,51是单片机的鼻祖,图书馆找本51的基础书来看,挑那种薄薄的,带有较多的例子的,花个一两天的时间看一下,然后按照书上的写个点亮LED,尝试写下串口,中断的程序,驱动一下数码管之类的(当然程序在proteus下都可以直接运行的)。如果想深入51,后面可以忽略。

  也可以先学AVR(我们做航模飞控很多就是用的额Avr,现在atmega系列的48比较便宜才5块钱一片)(感谢@刘杨的提醒,avr不知有atmega还有atiny和at90)。avr与51的区别不多说,学习前期可以借助仿真软件proteus,然后照着书上的例子写一些程序。中间datasheet很重要,前期可以看中文,但是一定要养成看英文datasheet的习惯。如果想继续停在avr上,那就可以尝试移植硬实时操作系统ucos等,这里推荐一本书《深入浅出avr》,里面的例子讲的挺简单的

  学习8位单片机之后,学习ARM相对会容易很多(也可以直接上arm,本人不反对,但是我确实看到很多上我们学校的tm4c123g(一款TI的demo板)的课,因为零基础而听不懂的),然后可以学习STM32了

  单片机寻址方式

  1. 寄存器寻址 寄存器寻址就是操作数存放在寄存器中,指令中指定的寄存器的内容就是操作数。

  2. 直接寻址 直接寻址方式就是在指令中直接给出操作数所在存储单元的地址。此时,指令中操作数部分是操作数所在地址。

  3. 立即数寻址 立即数寻址就是操作数在指令中直接给出,或者说指令操作码后面立即给出一字节或两字节操作数

  4. 寄存器间接寻址 寄存器间接寻址是把指定寄存器的内容作为操作数地址,该地址所指定的单元内容作为操作数。为了区分寄存器寻址和寄存器间接寻址,在寄存器间接寻址中,所用到的寄存器的前面要加间接寻址符“@”。

  例:寄存器R0内容为30H,片内RAM 30H单元的内容为45H。

  解:指令“MOV A,R0”的功能是将R0的内容30H传送给累加器A,指令执行结果是累加器A中的内容为30H。 指令“MOV A,@R0”的功能是将R0的内容30H作为操作数的地址,根据这一地址找到内部RAM 30H单元,将其内容45H传送至累加器A,指令执行结果是累加器A中内容为45H。

  5. 变址寻址(基址寄存器+变址寄存器间接寻址) 例如:指令“MOVC A,@A+DPTR”是变址寻址。解:假设DPTR的内容为2030H,累加器A的内容为12H。 该指令的功能是将2030H和12H相加,得到2042H作为操作数地址,在程序存储器中找到2042H单元,将其内容送至累加器A。

  6. 相对寻址 例如:在程序存储器中2000H单元有一条双字节的相对转移指令“SJMP 75H”。 解:程序存储器2000H、2001H单元的内容80H、75H是“SJMP 75H”的机器语言代码。

3613415