有些东西不好保存,放到这里了,诸位如果感兴趣可以一起交流,关于单片机是第一次创作,有说的不对或者写的不好的地方,评论区留言即可。
软件安装驱动安装
软件,放网盘了,在这,这里给的是C51的。
打开之后,解压缩有需要解压的,你会看到:
最上面那个是安装包,双击,安装路径自己知道在哪里就好,最好不要放在C盘。
这些什么东西的随便填
等
这边这样选择
安装好了是这个样子的
到这里不算完成安装,你还需要破解,不然只能用几天。
破解工具在这,双击,不过最好在双击之前,关掉你电脑的声音,如果你的电脑此时是外放声音的,那么你可能会吓所有人一跳;如果你在图书馆并且外放,那么所有人都会记住你doge;如果你带着耳机,你的耳朵可能下一秒就会双双阵亡,嘿嘿。
打开了么,好的,先放着。
右键点击刚刚装好的keil,点击以管理员身份运行,之后,↓
一定要要右键管理员身份运行啊,否则会出现这个
点这个
复制这个东西
粘贴到这,右边那个Target选C51,然后点击下面的generate,
生成的这一串,复制,粘贴到下面这张图中的New Licence ID Code那个地方然后点击右边的Add LIC,然后变成下图中的样子,点close就好。
安装并且破解完毕。
这边重新打开一下
这是我们在创建工程的时候选的芯片型号,可能数据手册上并没有明确提及IAP15F2K61S2支持仿真,但其实两款芯片的区别主要在于程序存储容量上,功能和性能方面没有很大区别,所以说,你的CT107D上面如果是IAP15F2K61S2的芯片,那么很大概率它也是支持仿真的。
IAP15F2K61S2程序调试方法
作为参加过蓝桥杯的电子人来说,我认为这个技能还是必要的,越是到后期,你的代码量就越大,如果说你的逻辑思维能力特别强,也有比较另类的方法来确定你的程序到底走到哪一步,走到哪一步出错了,这个方法你随便听听就好,但是如果说你一下找不出来错误,你就非常需要知道调试是怎么个事。它能让你的代码一行一行走,能让你非常明显地找到程序到哪里出错了。
1) 安装 Keil 版本的STC 仿真驱动
在STC-ISP右上方选择“ Keil仿真设置”标签,单击“添加型号和头文件到 Keil中”按钮,
打开浏览文件夹对话框,在这个框里面找到你安装Keil5的那个路径,单击“确定”按钮,STC-ISP提示“STC MCU型号添加成功!”,如图所示
添加的路径这个一定要注意,否则很可能牵一发而动全身,后面所有设计仿真、调试的你都完成不了。
当你添加到的文件夹里面只有这两个东西的时候,点击,显示添加成功,这个时候才算是真的完成了这一步。
2) 创建仿真芯片IAP15F2K61S2
打开 STC-ISP,选择正确的单片机型号 (IAP15F2K61S2) 和串口号(因人而异,经验来看的话,应该是那个最长的,前面带着:USB-SERIAL CH340 COM(数字)),在“ Keil仿真设置”标签中单击“将IAP15F2K61S2/IAP15L2K61S2设置为仿真芯片”按钮, 界面右下方显示“正在检测目标单片机”, 按下开发板上的电源开关, STC-ISP 检测到单片机后开始下载仿真程序, 当程序下载完成后仿真器便制作完成, 如图所示
现在的话,芯片是知道你想要仿真了,但是现在仍然缺一点需要配置的东西。
点一下有个长得像魔法棒的东西(或者在Target上面右键选择Options for Target ‘Target 1’),点开之后选择Debug
点击右边的settings打开下面这个框,注意红框里面的这俩选项
注意红框里面这俩,一个串口,和你stc-isp里面那个串口号选择一致的,然后波特率选stc-isp里面那个最高波特率
然后你应该会看到这个
左侧是单片机内部的一些寄存器
这是用到的程序,
// 使用程序前,将J13调整为IO模式(2-3脚短接)
#include "reg52.h"
// #include "absacc.h"
// 关闭外设
void Cls_Peripheral(void)
{ // IO模式(J13-2和J13-3相连)
P0 = 0xFF;
P2 = P2 & 0x1F | 0x80; // P27~P25清零,再定位Y4C
P2 &= 0x1F; // P27~P25清零
P0 = 0;
P2 = P2 & 0x1F | 0xA0; // P27~P25清零,再定位Y5C
P2 &= 0x1F; // P27~P25清零
//XBYTE[0x8000] = 0xFF; // MM模式(J13-2和J13-1相连)
//XBYTE[0xA000] = 0;
}
// LED显示
void Led_Disp(unsigned char ucLed)
{ // IO模式(J13-2和J13-3相连)
P0 = ~ucLed;
P2 = P2 & 0x1F | 0x80; // P27~P25清零,再定位Y4C
P2 &= 0x1F; // P27~P25清零
//XBYTE[0x8000] = ~ucLed; // MM模式(J13-2和J13-1相连)
}
// 延时函数(最小约1ms@12MHz)
void Delay(unsigned int num)
{
unsigned int i;
while(num--)
for(i=0; i<628; i++);
}
// 主函数
void main(void)
{
unsigned char i, j;
Cls_Peripheral();
while(1)
{ // 4个亮度等级
for(i=0; i<4; i++)
for(j=0; j<100; j++)
{
Led_Disp(0xff);
Delay(i+1);
Led_Disp(0);
Delay(4-i);
}
}
}
在运行过程中,如果你想查看某一个变量的值,将光标放上去,双击,或者
然后你就会看见
在程序往下走的时候,应该按下去的是左上角的step over,如果说遇见了某个函数,如果想要进到函数内部,点左边的step,跳出来的话就点step out
还可以通过这个外设里面的端口选项
然后这个外设里面还有
定时器,串口等等