前言:
当前大家对“单片机c语言寻址”都比较珍视,你们都想要分析一些“单片机c语言寻址”的相关知识。那么小编在网摘上搜集了一些关于“单片机c语言寻址””的相关资讯,希望我们能喜欢,大家一起来学习一下吧!之前我们一起聊过了单片机的大概怎么运行,还有一个简单的累计器,今天来讲讲一个非常重要的内容,就是地址,还是回到我们第一次聊到的stm8操作单片机针脚的那个图片。
首先可能很多人和我一开始学的时候有一样的疑问,什么这个地址就有这个功能?为什么会是这个地址?
第一个疑问涉及到电路里面的设计,我们来简单看一下厂家的芯片设计图,因为芯片的设计还是非常复杂的,所以大家就跟着我的箭头看就好了,其他的有兴趣也可以一起聊聊。其实控制器就是我们上回讲过的逻辑运算后怎么通过输入来输出内容,output就是通过一组控制器的集合只要ddr方向控制器确定他是输出,就能够这005000h的内容输出到针脚。通用如果ddr是输入,针脚也会直接连到input这个地址。(如果不太了解为啥ddr方向这个位置怎么控制那部分电路觉得很神奇可以看看控制,其实任何输出去后面加个“并”计算器就可以完全了,已经开通了合集,有兴趣的小伙伴可以收藏阅读,记得给个赞[酸])
另外一个问题就是今天的主图,地址,为什么是005000h为啥是005001h等等,其实这点很简单,是设计师给规定的(意不意外,惊不惊喜,哈哈)。下面是st公司小容量芯片的地址分配
每个芯片都会对芯片内部的“硬盘”进行分区,有些放连接外部的设备“交互地址”,有些放置代码的地址。有些放置“中断”的区域(以后再讲)。这些其实都是硬件工程师设计的时候规定的。但是最最主要的一点是其实这些地方都是没有连接到“CPU”的计算单元,比如前面稍微提到的加法器。那计算核心怎么访问这些“硬盘资料”和为什么要这样设计呢?
首先关于设计这点是如果每个地址都有所有的加法器,逻辑器集合,那电路太太太复杂了,然后就是成本也太高了。我们先看看计算核心有什么直接连接的设备器,然后再回到针脚读写的问题上,一起走一遍。
原来计算核心只连接了A 加法计算器, X,Y 两个寻址器,还有SP是堆栈指针(以后再讲,主要偏编程内容),PC程序位置指向器(告诉计算单元,要执行哪里的代码,也主要和编程设计关系大),cc是一个特殊的结果展示器(例如A计时器的结果是不是0,A计时器是不是算完了位数不够还需要进位等等一些显示结果的地方)。
其实实际芯片运行都是靠这几个计算器把数据搬来搬去,然后算出结果,好那我们来一起用人脑跑一段读取IO针脚PA1的程序,首先代码在前面就配置好了PA1是输入。我们就直接要把005001h这个地址上的8位数字中的从右向左第二位(因为计算机里面最右边是PA0,不是PA1开始)拿出来看是1还是0就能够完成我们的任务了。
在x寻址器里面放入50h,01h.然后启用导入x寻址器指向的内容到加法计算器。因为加法计算器没有只判断第二位的功能,那我们执行加法计算器的“并”计算器,然后把0000 0010b“并”到加法计算器里面去,这时除了第二位因为和0进行“并”都变成0,那么这时候加法计算器里面的第二位如果是0,就全部是0,如果不是就结果不是0,我们读取cc结果展示器里面的A计时器的结果是不是0就得到我们要的结果(注意cc结果展示器一样是8位,但是又特殊指令只判断这一位忽略其他,所有可以直接执行)。
好了,今天文章有点长,需要你们读懂,下一篇来写写寻址器和内容的具体连接,顺便讲一下类似屏幕这么多个点,芯片怎么控制。喜欢请关注,不定时更新
#连载写作训练营#
标签: #单片机c语言寻址