⑴ STC12C5A60S2 因为有256字节RAM,高128字节间接寻址来访问,C语言该怎么使用呢
如果你用的是Keil编译器,51内核(加强)以及52以上内核的RAM有256字节的内存,
低128字节位于data区,通过直接寻址访问,代码体现为 data unisgned char/int/long YourValue;
高128字节位于idata区,通过间接寻址访问,代码体现为 idata unsigned char/int/long YourValue;
在Keil编译器里通过存储区域关键字data,idata,code...来选择变量的存放位置,不同的存放位置汇编语言会自己生成访问代码。
或者通过指针实现:
unisgned char ucDataAreaLoc = (unsigned char data *)0x56; //将0x56转换为指向data区域的指针
*ucDataAreaLoc就是对高128字节中0x56地址单元的引用。
中断那里,你定义的是using 1,就是串口中断内使用的寄存器为1号寄存器组,程序输出不对可能1号寄存器组在为串口中断工作的同时也被其他模块使用,造成数据错乱。
第三个问题建议你看一下啊51的StartUp.asm文件,我记得好像是这个文件名...
⑵ 在keil C和伟福编译器中,找不到STC12系列的型号
可以选择89S52 有2点问题
1,这芯片目前没有任何编译器 支持实时调试 及xRAM 查看等
但用keil选89S52就可以 只要在头文件里加一些S52没有的STC的寄存器
2,由于不能实施调试(1T) 所以像DELAY这类函数 SPI i2c 速速等
只好自己计算时间
其他用法一样
⑶ stc12c2052用什么编译器编程
我找了一下,没发现哪个支持呢,你现在有编程器么,现在很多厂家都可以申请支持的,你可以打电话问一下的
⑷ 如何用KEIL编译出STC12系列的程序,要保证有60K的FLASH.我说的不是CODE 是FLASH 一般用89C52只有8K
不懂你说的flash是什么意思
⑸ 用什么软件编译STC12C5A60S2单片机的C程序文件。什么版本的。
如果这样的化 那就只用仿真器了
写好程序用仿真器在你的硬件电路调试就好了
两者都可以
编译器比较普遍的使用keil 这个是软件如何操作网上挺多的 而且很简单
仿真器我用的很多 市场上比较普遍的是伟福(WAVE)系列的仿真器 这系列的对大部分的mcu都能仿真 操作也比较简单好用
要说好当然是仿真器啦 它相当于单片机 而且是可以一边修改一边调试的单片机 配合硬件电路 挺好的
另外 你题目给的不大明确
你是说你硬件已经设计焊好了?还是整个硬件还没做 要通过软件模拟仿真整个过程??
如果是后者 那么可以用proteus去仿真硬件 用keil编译程序导入 可以实现 整个电路的仿真
希望你成功
⑹ stc12c5410单片机,10kflash,编译后code=4549,但程序只执行一部分功能,后面的不执行,或者根本不执行
检查编译器是否优化错了!或是单片机执行中堆栈溢出!
⑺ stc12c5a60s2编译软件
到STC官网下载搭配的UV2.CDB在放到指定的安装目录就可以了
⑻ STC12的1T模式与12T模式哪个稳定
1T和12T
1T和12T只有在STC12系列以后的单片机里才出现的。前面我们已经说到了,传统的单片机其实就是12T单片机,也就是晶振频率会被12分频后才是指令运行的频率。到时STC12系列以后的STC单片机出现1T模式,也就是有些指令的执行时只需要两个晶振周期就能执行完。理论上来说,这样的运行速度会比传统单片机快6倍,为什么加“理论”,因为不是所有的指令都快6倍,只是一部分,还有些是快4倍,快3倍的。具体的需要看STC官方数据手册,如下图。
仔细的小伙伴会看到在第5列的第一行里有个小括号(采用STC-Y2 CPU内核指令集),STC12用的就是这个内核,而到了STC15系列芯片用的是STC-Y5内核,STC8系列用的是STC-Y6内核,Y后面的数字越大,指令优化的越厉害,表现出来的就是运行的更快,STC-Y5内核的指令集里,大部分的汇编指令到时一个晶振周期就执行完成的了,也就是比传统单片机快12倍。 现在我在做单片机开发的时候,绝大部分都是采用的C语言开发,你还在用汇编,那我只能是膜拜你了。C语言编程的程序方便移植,好理解,容易入门,不需要去记住那些复杂的寄存器,但是确定也明显,就是效率不高,运行速度我们没办法准确的计算出来。编译器在把C语言代码转化为汇编语言的过程我们是没法控制的,这样编译出来的机器代码我们就没办法去计算时间的指令运行时间。 >>>>
软件仿真和实际开发板
仿真软件,外国老表开发的,STC国产(好吧,内核还是人家的)。不知道什么原因,我们不知道,也不敢问,在仿真软件里就是没有STC的单片机芯片可以选择,没有STC的单片机,我们只能选择传统51单片机,这样一来,仿真的时候,程序运行的速度是传统的12T模式,也就是晶振频率12分频后才是执行的实际频率。 单片机开发板运行时,因为提问小伙伴用的单片机是STC12系列的芯片,就算他运行在12T模式下,指令系统还是有优化,速度肯定比传统的指令集要快。更何况呢,他连1T和12T都分不清,运行在1T模式下也是有可能的,所以,今天的问题就来了。实际开发板运行速度肯定会比软件仿真快。 写在最后 在很久之前,我就写过一篇文字,就说了不建议初学单片机的菜鸟从软件仿真开始。现在还有多少高校的单片机课程还在是以仿真运行的呢,希望是没有了,但我想,仅仅是我想想。 其实,小代觉得,学单片机的最终是要自己设计属于自己的东西,比如自己的毕设,更或是亲手做一个小礼物俘获女神的芳心。但是自己写的代码永远都运行在软件里,没有实际电路,你又怎么可能会自己设计电路呢。你不自己看见过电阻,又怎么可能会知道一个长得很像电阻的电子元件它其实是二极管。 最最后,回到今天的问题上,当我们把软件仿真运行完美的代码移植到实际开发板上运行时,代码是需要做单片机的适配的,比如,采用代码方式实现的延时函数,比如IO端口的配置,比如某些中断的入口,比如某些寄存器的定义等等。在移植之前,还是得拿目标芯片的数据手册来看看。
⑼ STC12C2051C使用什么编译器
STC单片机是51单片机内核,所以,用汇编语言或C语言写程序都用keil编译器。新建工程时,可用AT89C51代替,用#define包含STC的头文件。
⑽ STC12C5A60S2是几位的单片机能简单介绍一下吗
STC12C5A60S2/AD/PWM系列单片机是宏晶科技生产的单时钟/机器周期(1T)的单片机,是高速/低功耗/超强抗干扰的新一代8051单片机,指令代码完全兼容传统8051,但速度快8-12倍。内部集成MAX810专用复位电路,2路PWM,8路高速10位A/D转换(250K/S),针对电机控制,强干扰场合。
1.增强型8051 CPU,1T,单时钟/机器周期,指令代码完全兼容传统8051
2.工作电压:STC12C5A60S2系列工作电压:5.5V- 3.3V(5V单片机)STC12LE5A60S2系列工作电压:3.6V- 2.2V(3V单片机)
3.工作频率范围:0 - 35MHz,相当于普通8051的 0~420MHz
4.用户应用程序空间8K /16K / 20K / 32K / 40K / 48K / 52K / 60K / 62K字节......
5.片上集成1280字节RAM
6.通用I/O口(36/40/44个),复位后为:准双向口/弱上拉(普通8051传统I/O口) 可设置成四种模式:准双向口/弱上拉,推挽/强上拉,仅为输入/高阻,开漏 每个I/O口驱动能力均可达到20mA,但整个芯片最大不要超过55mA
7. ISP(在系统可编程)/IAP(在应用可编程),无需专用编程器,无需专用仿真器 可通过串口(P3.0/P3.1)直接下载用户程序,数秒即可完成一片
8.有EEPROM功能(STC12C5A62S2/AD/PWM无内部EEPROM)9. 看门狗10.内部集成MAX810专用复位电路(外部晶体12M以下时,复位脚可直接1K电阻到地)
11.外部掉电检测电路:在P4.6口有一个低压门槛比较器 5V单片机为1.32V,误差为+/-5%,3.3V单片机为1.30V,误差为+/-3%
12.时钟源:外部高精度晶体/时钟,内部R/C振荡器(温漂为+/-5%到+/-10%以内) 1用户在下载用户程序时,可选择是使用内部R/C振荡器还是外部晶体/时钟 常温下内部R/C振荡器频率为:5.0V单片机为:11MHz~15.5MHz 3.3V单片机为: 8MHz~12MHz 精度要求不高时,可选择使用内部时钟,但因为有制造误差和温漂,以实际测试为准
13.共4个16位定时器 两个与传统8051兼容的定时器/计数器,16位定时器T0和T1,没有定时器2,但有独立波特率发生器 做串行通讯的波特率发生器 再加上2路PCA模块可再实现2个16位定时器
14. 2个时钟输出口,可由T0的溢出在P3.4/T0输出时钟,可由T1的溢出在P3.5/T1输出时钟
15.外部中断I/O口7路,传统的下降沿中断或低电平触发中断,并新增支持上升沿中断的PCA模块, Power Down模式可由外部中断唤醒, INT0/P3.2, INT1/P3.3, T0/P3.4, T1/P3.5, RxD/P3.0, CCP0/P1.3(也可通过寄存器设置到P4.2 ), CCP1/P1.4 (也可通过寄存器设置到P4.3)
16. PWM(2路)/PCA(可编程计数器阵列,2路) ---也可用来当2路D/A使用 ---也可用来再实现2个定时器 ---也可用来再实现2个外部中断(上升沿中断/下降沿中断均可分别或同时支持)
17.A/D转换, 10位精度ADC,共8路,转换速度可达250K/S(每秒钟25万次)18.通用全双工异步串行口(UART),由于STC12系列是高速的8051,可再用定时器或PCA软件实现多串口
19. STC12C5A60S2系列有双串口,后缀有S2标志的才有双串口,RxD2/P1.2(可通过寄存器设置到P4.2),TxD2/P1.3(可通过寄存器设置到P4.3)
20.工作温度范围:-40 - +85℃(工业级) / 0 - 75℃(商业级)21.封装:PDIP-40,LQFP-44,LQFP-48 I/O口不够时,可用2到3根普通I/O口线外接 74HC164/165/595(均可级联)来扩展I/O口, 还可用A/D做按键扫描来节省I/O口,或用双CPU,三线通信,还多了串口。