嵌入式系统学习笔记(2)——单片机的硬件结构:引脚、CPU、存储器

news/2024/7/3 12:22:29
  • 8大部件,单一总线:微处理器、数据存储器、程序存储器、I/O口(P0-P3)、特殊功能寄存器、中断系统、定时/计数器、串行口 在这里插入图片描述
  • P0-P3是4个8位并行I/O口,其中P0口数据地址分时复用,要特别注意
  • 串行口是全双工异步串行的,可以同时输入和输出
  • 51系列有2个16位定时/计数器,52系列有3个
  • 51系列有5个中断源,2个优先级
  • 51系列一共有21个特殊功能寄存器
  • 双列直插只能背面焊接,方形封装有4个NC引脚是无用的,可以表面焊接,但是双列直插用得比较多,因为更适合插仿真头 在这里插入图片描述
  • 在这里插入图片描述
  • 外接晶振的时候,如果是无源晶振,需要和内部震荡器共振,需要接XTAL1和XTAL2,有源晶振自带振荡器,只需要接XTAL2,此时XTAL1接地 在这里插入图片描述
  • ALE是用于地址锁存允许,P0用于传输地址时,需要在该引脚输出脉冲的下跳沿,作为地址锁存允许信号,当P0用于传输数据时不输出下跳沿 在这里插入图片描述
  • 虽然P0/P2口可以作为I/O口,但是最好还是先把他们当作数据地址总线,因为许多仿真软件确实只把它们当成数据地址总线。P1口完全面向用户,所以需要I/O口时,应该优先考虑P1。P3口有其它复用功能,当没有使用到它的其它功能时,可以和P1等效使用。 在这里插入图片描述
  • P3口的特殊功能引脚如下:其中,当对单片机外扩设备时,除了外扩数据存储器,还有其它一些外壳设备如AD-DA转换器等,51单片机把这些外扩设备都当成外部数据存储器,所以需要通过P3.6和P3.7进行读和写。当没有外扩设备时,可以把P3.6和P3.7当成普通I/O口使用来检测按键输入或者输出信号等,但是有些仿真系统不支持,它就把P3.6和P3.7当成单纯的WR、RD口,所以我们也要尽量避免将P3.6和P3.7D当作I/O来使用 在这里插入图片描述
  • 因为51单片机的ALU通常只与A交换数据,所以成为程序运行速度的瓶颈,新一代的单片机已经没有这个问题,其它的RAM也可以和ALU 交换数据 在这里插入图片描述
  • 在这里插入图片描述
  • PSW.1位是给厂家预留的,对于用户没有什么用 在这里插入图片描述
  • 在这里插入图片描述
  • 51系列的单片机采取的是哈佛结构,即程序存储器和数据存储器单独编址,所以如果说存储器为64K,指的是程序存储器或者数据存储器为64K。现在许多其它的单片机采取冯诺依曼结构,程序存储器和数据存储器共同编址,所以64K指的是程序和数据存储器和为64K。此外,51系列单片机是把I/O口和片外RAM统一编址的。这就意味着,如果你片外扩张了64K的RAM,那么你已经没有空间给I/O口了
    在这里插入图片描述
  • 位寻址区一般存放用户自定义的状态变量,通用RAM区一般作为堆栈区和数据缓冲区(存放运算中的一些中间结果)使用
    在这里插入图片描述
  • 存放常数是为了节约RAM空间,51单片机对ROM查表的支持较好。5种中断源处理时的第一条指令必须放在中断入口地址所指向ROM,并且在第二或三条指令加一条跳转指令(因为不够放,要跳转到别的地方去)。并且注意主程序不要写到这个区间来,所以0000H的程序启动地址应该是放一条跳转指令,跳转到0023H后面的后面去,一般是0060H之后。 在这里插入图片描述
  • 51的特殊功能寄存器一共只有21个字节,离散地分布在128个字节的RAM区域,剩下的128-21=107个字节由厂家保留,不允许用户使用,后来的单片机慢慢拓展特殊功能寄存器的数量,有更多的功能,但也是在这128个字节的区域中。此外,对于SFR中字节地址末位为0H或者8H的特殊功能寄存器,支持按位寻址,其它只能按字节寻址 在这里插入图片描述
  • 保护断点指的是对PC的值压栈,现场保护指的是对寄存器的值压栈。复位后SP的值为07H,如果不改写,堆栈的时候就会占用工作寄存器的空间,所以复位后需要改写SP的值,一般赋值为60H,放到内部RAM区的高位区去;对于DPTR,一般用来指示片外RAM的地址,当不这么用时,可以当作两个8位寄存器来暂存数据;对DPTR有专门的16位的操作 在这里插入图片描述
  • 在这里插入图片描述
  • 51单片机有211个寻址位,其中128个位于位寻址区,83个位于SFR,位寻址区的字节地址和位地址如下:操作字节的时候应该用字节地址,操作位的时候用位地址,切注意此处字节地址并非首位的位地址
  • 在这里插入图片描述
  • 在这里插入图片描述
  • 52系列单片机的内部存储空间如下所示,主要区别在于内部多了128个字节的RAM,其它的地方都一样。但是SFR和多出来128字节的RAM的地址是重叠的,为了解决这个问题,要求对SFR采取直接寻址而对多出来的RAM采取间接寻址。
  • 在这里插入图片描述

http://www.niftyadmin.cn/n/3658078.html

相关文章

嵌入式系统学习笔记(3)——I/O口电路结构、时钟周期、复位

P1口写数据时,将数据写到D0口,向P1W发写信号,这时Q口输出D0,Q非口输出D非,导致P10口输出D0。读数据时,可以从锁存器读,也可以直接从P10管脚读,取决于P1R1和P1R2,而且读锁…

如何在NTFS文件系统中创建文件的Link

大部分朋友可能知道UNIX提供了创建文件的Link的功能,而用过Windows的NTFS文件系统所支持的Link功能的朋友可能就没有那么多了(注意我说的不是Shortcut)。今天正好由于工作原因研究了一下相关内容,整理一下分享出来。本文简单介绍如…

win10自带截图工具

win10自带截图工具按winshifts可以呼出

.NET/CLR好书推荐

最近一直在看CLR方面的书籍,发现了几本不错的书,于是整理一下自己的感受放上来,希望能够对大家选择合适自己的书有所帮助。1. CLR via C#, 2nd Edition这本书不用我多说了。Jeffrey Richter的经典之作。条理清晰,深入浅出&…

.NET中的幕后英雄:MSCOREE.DLL

现在做.NET Framework的开发的朋友应该是越来越多了,但是可能并非人人都对MSCOREE.DLL非常了解。而事实上,毫不夸张地说,MSCOREE.DLL是.NET Framework中最为核心的DLL之一,没有这个DLL,托管程序根本无法开始执行起来&a…

嵌入式系统学习笔记(4)——指令系统(1)

注意不能MOVR0,R1MOV R_0, R_1MOVR0​,R1​ 或是反过来 注意这里只能用ACC不能用A,A 和ACC是有区别的,详细看这里,这个很重要:A和ACC的区别 当采用Ri时,要先把高8位写入P2口,所以尽量避免用Ri来访问外部RAM…

走近Silverlight - 微软Silverlight上海开发团队Blog第二篇

Silverlight上海开发团队Blog第二篇,是对Silverlight技术的一个比较全面的介绍。本文转自http://blog.csdn.net/SilverlightShanghai/archive/2007/08/21/1753258.aspx如果有对于Silverlight技术本身的疑问,看法,意见,建议&#x…

嵌入式系统学习笔记(5)——指令系统(2)

一般在多个数据连加的时候用到ADDC指令,比如三个数相加,先前两个数用ADD,然后再用ADDC指令加上第三个数 即使溢出也不会使得进位寄存器改变,算一种循环加一的操作,加满了就归0.如果加一的操作对象是I/O口,先…