单片机外部存储器
① 51单片机有外部数据存储器的时候怎么开始AD转换
movx @dptr,A,开启AD转换会与外部数据存储器发生冲突,那是因为DPTR中的地址没有指向AD转换器的端口地址,或者AD端口地址与外部数据存储器的地址重复了。没有具体电路,真正原因不好确定。
单片机可采用端口模式与AD转换器连接比较好,见下图。
② 51单片机的存储器有哪些
51单片机的存储器主要包括以下几个部分:
1. 程序存储器(ROM或Flash):用于存储固件程序,单片机上电后从这里开始执行。程序存储区分为片内和片外,目前许多51单片机片内已具备64KB容量,因此很少需要外扩片外Flash或Rom。无论是片内还是片外,用Code修饰的常量在程序运行过程中不可更改。
2. 内部RAM:包括低128位(00-7F)和高128位(80-FF)。
- 低128位RAM(data):用于定义变量,如定义一个unsigned char类型的变量Var。
- 高128位RAM(idata):同样用于定义变量,但访问速度相对较慢。
- 特殊功能寄存器(SFR)(80-FF):用于定义Sfr类型的变量,操作这些变量相当于操作特殊的寄存器,但需注意不要随意定义Sfr变量。
3. 外部RAM(64KB,0000-FFFF):可以扩展至65536个字节。前256个字节可以用Pdata修饰,也可以用Xdata修饰,而超过256个字节的部分只能用Xdata修饰。
4. Pdata和Xdata:两者均可修饰外部RAM的第一页(256个字节),但Pdata仅适用于第一页,而Xdata适用于整个64KB外部RAM。Pdata使用R0和R1进行寻址,速度快且代码体积小;Xdata使用16位的DPTR进行寻址。
综上所述,51单片机的内存结构包括程序存储器、内部低128位RAM(data)、内部高128位RAM(idata)、特殊功能寄存器(SFR)以及外部65536个字节的RAM。需要注意的是,不同内核的单片机(如ARM)其存储器结构可能有所不同。