51单片机存储程序
A. 51单片机外部存储器怎么存程序
外部存储器一般有EPROM,ROM或者EEPROM、FLASH等。前者,一般需要用到编程器将程序烧录进去。后者,一般是具有IAP功能的单片机或者第三方单片机通过I2C(如24CXX系列)或并行接口写入存储器。
B. 51单片机内部存储器能存多少条c语言的程序
汇编指令一条通常占1~3个字节,与你的具体指令有关,例如INC
ACC占1字节、MOV
A,30H占2字节、LJMP
××就得占3个字节。
短程序对照指令表一个一个计算可知,长的通常估算就用2字节乘指令行数得个大概值。
C语言,可以说编译出来的程序代码大小与写的行数几乎没有关系了,将C程序编译看反汇编就可知道,大小由反汇编出来的指令数决定。比方说C语言中开方运算a=squr(b);仅此一行就可汇编成近千条指令。这就是为什么常说的C语言不如汇编简洁的原因。
至于51单片机存多少条指令还得看你用芯片的型号。51系列门类很多,初学者常用的ATMEL公司的AT89C51/AT89S51的程序存储区容量是4K字节的,AT89C52/AT89S52是8K的;若程序量较大且超过片内容量又不想片外扩容的话,可用WINBOND华邦公司的W78E54(16K)/W78E58(32K),华邦的片在市场上还是很好找的。
更多电子问题请关注我!_ceo竭诚为您解答!
C. 51单片机读取程序存储器的C语言程序
“从地址0x00000开始读出数据并传给AD557芯片DA转换成模拟量输出,一直读到0xfffff 读满一轮。”
60秒内读取并写出1MByte,平均57us读取并写出一次。如果CPU晶振12MHz的话,那这个要求是比较容易达到了。
只要你懂得如何对外部存储器读取、写出,那么完全可以独立完成这道题并符合要求。需要注意的是这个原理图中573的LE没有借助ALE而是通过P12实现,降低了效率;此外外部空间映射成多页,页切换时注意语句的编译效率。
至于“越快越好”,最快效果需借助汇编实现。提示:INC DPTR。
D. 51单片机程序如何把数组放在程序存储空间
定义的前面加个code就可以了
code unsigned char X[100] = {.....};
如果是汇编语言,用DB伪指令
DB 00H,01H....
E. 51单片机的储存方式
51存储器分为数据存储器和程序存储器两部分,都可进行外部扩展。还想知道什么?
F. 51单片机怎么存储数据
掉电存储需要用到EEPROM存储器的,普通的51单片机内部没有,可以使用外围EEPROM元件如24Cxx系列的存储器,也可以选用stc90系列的单片机,内部有EEPROM,程序兼容。
G. 求助,51单片机,程序是从程序存储器哪个位置开始存储的问题 。
程序是存在程序存储器的0000H开始的地址,还是存在了0030H的地址?
--0000H。
如果是存在了0030H开始的地址,为什么还要写开头的ORG 0000H?
--开机后,单片机自动从 0000H 开始执行。
为什么还要写 ORG 0030H ?
--因为:
--发生外部中断0时,单片机自动从 0003H 开始执行。
--发生定时器0中断时,单片机自动从 000BH 开始执行。
--发生外部中断1时,单片机自动从 0013H 开始执行。
--发生定时器1中断时,单片机自动从 001BH 开始执行。
--发生串口中断时,单片机自动从 0023H 开始执行。
--这些地址,不能随便占用,所以:
--我们的主程序,必须在这些地址的后面(如 0030H)编写。
H. 51单片机内部程序存储地址范围
51单片机内部存储器范围是:
1、8751,89X51,一般是EPROM,EEPROM:4K,0000H~0FFFH
2、8031,没有内部程序存储器,必须靠外部扩展。
3、8XX52,一般是EPROM或EEPROM:8K,0000H~1FFFH
4、其他,从4K~64K不等,比如Winbond77E58,64K,0000H~FFFFH,比如STC12C5A60S2,60K,0000H~EFFFH
I. 51单片机程序长度有限制吗 程序存储
51单片机理论上最大支持64K的程序寻址空间,但实际上现在有些51核心的单片机可以通过BANK的切换支持到256K的程序。但实际上的单片机空间都不会这么大,有2K,4K,8K等等很多规格,具体要查你所使用的单片机手册。
另外,HEX文件的大小与BIN文件是不一样的,因为HEX文件中还包含了实际数据的地址,长度,校验等信息,而BIN中只有实际数据,所以HEX肯定要比BIN大了。程序的长度要看BIN的大小为准。HEX而BIN是可以互相转换的,网上有很多转换的小工具。