单片机stc89c52用什么软件下载程序
其实STC系列单片机是直接用串口下载的,其下载器就是直接做个MAX232的电平转换就可以了!!!当然如果你的电脑没有串口,比如笔记本,你就需要设计个USB转TTL电路。
USB转TTL目前方案有很多种,常用的有PL2303,CP2102,FT232,CH340。
如果是笔记本USB转的话这些芯片都是贴片的,需要自己设计电路板(或者热转印)。
以下提供几个电路仅供参考!!串口直接下载方案:PL2303 USB转串电路:CH340 USB转串电路:FT232 USB转串电路:
STC89C52单片机下载不了
展开全部 看来你是刚开始接触单片机呀,还是一片空白。
stc89c52rc单片机需要usb烧录程序,即你要买一条USB转串口线,不知你的stc89c52rc单片机是安在买的开发板上的,还是安在什么板子上的。
再去STC官网下载一个烧录软件,叫STC-ISP软件。
编程器和下载器对你都没有意义,不用管。
Keil5 是编译软件,就是你要写程序,用C语言写程序,写完了程序,需要翻译成HEX代码文件,才能烧录到单片机中。
至于什么是HEX代码文件,先不用管那么多,安装了keil5以后,就知道了。
...
STC89C52单片机C程序求解(有完整程序)
展开全部 我给你解释一下吧 希望帮得上你#include // 头文件#define uint unsigned int //宏定义 把uint 等价为 unsigned int #define uchar unsigned charsbit CS = P2^0; //定义三个特殊功能位, 我感觉应该是驱动一个东西吧,CSsbit CLK = P2^1; 是片选 高选中或者低选中, CLK是通信的时钟线,sbit SDO = P2^2; SDO应该是驱动芯片的数据输出口, 不过应该有输入口的?? 怎么没看到程序里有????void DELAY(void) //简单的延时子程序{ uint x,y; for(y = 5;y > 0;y--) for(x = 110;x > 0;x--);}void main(void){ uint i = 0; uint j = 0; uint k = 0; 定义三个变量 TMOD = 0X20; TH1 = 0XF3; 定时器工作方式 和初值 TL1 = 0XF3; TR1 = 1; 打开定时器 REN = 1; REN SM0 SM1 是串口这里的设置 具体的你自己看文档 我就不 SM0 = 0; 细说了 SM1 = 1; while(1) { CLK = 0; CS = 1; SDO = 0; DELAY(); for(i=0;i> 8) & 0XFF; 把刚才从驱动芯片里读出的uint 16位数据 取高八位 送入 while(!TI); 串口的SBUF 寄存器 貌似是要传给电脑 或者上位机软件 TI = 0; 等待传输完成 清 标志位 SBUF = j & 0XFF; 把刚才从驱动芯片里读出的uint 16位数据 取低八位 送入 while(!TI); 串口的SBUF 寄存器 貌似是要传给电脑 或者上位机软件 TI = 0; 等待传输完成 清 标志位 上面这次 正好把 UINT型的 16位 2个字节全部传输到上位机 SBUF = 0XFF; 最后在传输0xff 这个数据给上位机 while(!TI); TI = 0; }}好了 回答完了 , 希望能帮得上你。
STC89C52,51增强型单片机内部资源问题
关于STC89C52:1、STC89C52只有512字节的的RAM,包括2部份,一是256字节的内部RAM,二是256字节的外部RAM;STC89C54以上的芯片才有1K的RAM(内256+外1024)。
2、1K的EEPROM(应为2K)出厂时内置有支持串行下载功能的代码,配合官方下载软件完成代码的串口下载。
这个区域在实际应用当中也可用于可保存断电后不能丢失的数据,但实际操作上不能像RAM那样直接读写,需要通过专门的寄存器操作来完成读写。
3、EEPROM不是ROM,也不是RAM,EEPROM也没有用作RAM--你先这样记,这个问题说起来内容比较多,后面细谈。
4、Flash程序存储器8K就是当ROM用(这句话严格的讲应该说成“Flash程序存储器8K就是当程序存储器用”):基本上是这样。
关于ROM、FALSH后面细说。
是否需要1K的RAM:可在编译完成后观察编译结果,如果能编译成功,应该有类似下面的信息:“program size:data=9.0,xdata=1,code =2345”,其中data的整数部份就是你实际需要的内部RAM字节数,xdata是你实际需要的外部RAM字节数,code是代码长度。
你可以根据这个信息选择最合适的STC单片机型号。
具体到STC89C52:data 对上述的一些概念补充说明(包括_at_)1、51单片机的C语言中有个需要关注的概念就是变量或数据的存储模式(PC机是否有类似的情况我不了解)。
在C51中的存储模式是data、bdata、idata、pdata、xdata、code共6种:data、bdata、idata:就是说变量或数据位于单片机的内部RAM中(ST89C52有256字节),访问速度最快。
pdata、xdata:就是说变量或数据位于扩展的外部RAM中(ST89C52内集成了256字节),相对内部RAM访问速度要慢。
code:就是程序代码,位于单片机的程序存储其中(ST89C52内含8192字节) KEIL C编译时在有个选项叫数据存储模式(Memory Model),如果选择小模式,则程序中的变量一般会放在内部RAM(data)中,选择其它模式则会放在外部RAM(xdata或pdata,采用这两种存储模式的变量在物理上都放在外部RAM中,只是寻址方式有所不同,整体上pdata更快些);当然,如果在定义变量时就声明了存储模式,编译时会根据声明决定该变量在哪个区。
比如:char data flag就是指定将flag放在内部RAM中;char xdata flag _at_0x0000则指定放在外部RAM中,而且地址是0x0000。
"_at_" 用于指定变量在内存中的地址。
指定地址的方法优点在于调试方便,比如仿真单步运行时可以直接到该地址去更直观的观察变量的实际变化情况,若不指定则编译器会自己决定放在什么地方,只能通过.M51文件去获取该变量的地址了。
其缺点则是容易出错,由于人为的因素,可能会成各变量的地址重叠。
所以实际应用中一般都不指定地址,编译器会自动安排的,除非是特殊要求。
这里针对内部RAM和外部RAM再说几句:早先的单片机(8031、8032)外部RAM和程序存储器都需要通过P0口P2口来扩展的,51单片机本身没有哪怕是1个字节的外部RAM,扩展起来很麻烦。
后来随着发展才演变到现在几乎所有的单片机都或多或少的集成了RAM和程序存储器,这样大多数应用只需要设计功能电路就可以了,不需要再去扩展,这就降低了不少成本。
2、关于FLASH、ROM、PROM、EPROM、EEPROM、RAM 我们现在一般都会把单片机的程序存储器叫ROM,早先的硬件程序代码确实是放在ROM型的器件中(包括电脑的BIOS),所以ROM就是程序、程序就是ROM,大家都理解,就成习惯了。
其实这是不对的,真正的ROM现在很少用了。
下面就这几个名词解释一下:RAM:一般都叫内存,特点是读写速度快,但断电后数据丢失(后5种断电后数据不丢失) ROM:只读存储器。
特点是只能读,其内容在芯片出厂时就已经固化,如果有错只能扔掉 PROM:可编程只读存储器。
特点是实际应用中只能读,但应用产品生产环节可由用户来完成对芯片的编程,只能写1次,有错的话下场同ROM。
EPROM:可重复擦写的只读存储器。
特点是实际应用中只能读,但可以通过紫外线擦除(也有电擦除的),从而实现再编程,只是编程时一般需要将芯片取下来在专用设备上擦除、编程(电擦除的虽然可以在用户系统上实现擦除及编程,但必须设计专门的擦除编程电路)。
上世纪90年代基本上都采用的是这种模式,如果你看到某个芯片上有个小玻璃窗,一般就是这种工艺的芯片。
紫外线擦除需要15分钟的时间,也很麻烦,而且映像中编程次数只有1000次。
EEPROM:可重复擦写的非易失性存储器。
特点是可读可写,且断电后数据不丢失。
采取这种工艺的芯片大多数都是通过IIC总线模式来访问的。
但其容量一般都不大,适合于数据不多的应用。
FLASH:可重复擦写的非易失性存储器。
特点是可读可写,且断电后数据不丢失。
与EEPROM的主要区别在于口线更多、存储容量更大、速度更快,还有就是擦写方式不同:EEPROM可按字节擦写,而FLASH是块擦写模式,所以速度上FALSH的读写更快。
STC单片机为什么要采取EEPROM的模式而不采用FLASH我不知道,可能是因为EEPROM相对成本较低,而且可以直接用作非易...
stc89c52和stc89c51区别
52是51基础上衍生出来的增强产品,事实上52内核现在是实际应用的主流。
主要差别在1、内部ROM增加了4K,总计8K,相应的如果外扩程序存储器,则从2000H开始从外部取指。
2、增加了128字节的内部RAM,地址从80H到FFH。
使用时这128字节地址因为与特殊功能寄存器地址重叠,所以只能采用间接寻址的方式读写。
3、增加了定时器2,而且该定时器也可用作波特率发生器,具备16位自动重装载和捕获能力。
4、相应的增加了定时器2中断。
5、增加了有关定时器2的特殊功能寄存器T2MOD、T2CON、RCAP2L、RCAP2H、TH2、TL2等,还有诸如T2、ET2等控制位其它方面均与51一致。
相对而言定时器2增加了不少内容,还是需要系统的看一下。
STC89C52单片机
我原来正常用了一段时间也是出现你这种情况,装了驱动,还是用不鸟,开始还以为是线坏了,在别人电脑上又可以用,最后我怀疑是杀毒软件的一键优化改变过设置(具体设置我也说不清楚),最后我还原了下系统,装上驱动,USB通讯口又能用了,你可以试试,亲身经历,绝对有用
AT89S52直接通过USB下载程序到单片机
现在网上卖的Atmel 51系列下载器很多都是做一个ATMEGA(AVR)下载固件也就是程序。
然后做一个ATMEGE的最小系统,引出MOSI、MISO、SCK、RESET就可以给AT89S52等51系列单片机下载程序了。
你可以去找这个的固件程序,自己修改成STC的。
就是把下载器的芯片换成STC。
转载请注明出处 51数据库 » stc80c52下载软件