目录
单片机型号说明:IAP15F2K61S2
新建工程时单片机型号选择STC15F2K60S2
单片机I/O口的使用
对单片机的控制,其实就是对I/O口的控制,无论单片机对外界进行何种控制,或接受外部的何种控制,都是通过I/O口进行的。51单片机总共有P0、P1、P2、P3四个八位双向输入输出端口
LED原理图
先来笨方法点个流水灯
#include <STC15F2K60S2.H>
sbit led0 = P0^0; // sbit写法
sbit led1 = P0^1;
sbit led2 = P0^2;
sbit led3 = P0^3;
long a;
void main()
{
P2 = 0xA0; P0 = 0x00; P2 = 0x80; P0 = 0xFF;//初始化,防止蜂鸣器乱叫
while(1)
{
led0 = 0; led1 = 1; led2 = 1; led3 = 1;
for (a = 80000; a > 0; a --); //阻塞性延时,只是看下流水灯效果!
led0 = 1; led1 = 0; led2 = 1; led3 = 1;
for (a = 80000; a > 0; a --);
led0 = 1; led1 = 1; led2 = 0; led3 = 1;
for (a = 80000; a > 0; a --);
led0 = 1; led1 = 1; led2 = 1; led3 = 0;
for (a = 80000; a > 0; a --);
}
}
直接在while(1)里写流水灯代码
stc-isp烧录程序经常烧录不进去,为啥呢???
单片机工作的基本时序
机器周期和指令周期
- 振荡周期:也称时钟周期,是指为单片机提供时钟脉冲信号的振荡源的周期,学习板上为12MHz,一个时钟周期就是1/12M = (1 / 12000000) s
- 状态周期:每个状态周期为时钟周期的2倍,是时钟周期经过二分频后得到的
- 机器周期:一个机器周期包含6个状态周期S1~S6,也就是12个时钟周期。在一个机器周期内,CPU可以完成一个独立的操作。
- 指令周期:它是指CPU完成一条操作所需的全部时间。每条指令执行时间都是有一个或几个机器周期组成。51单片机系统中,有单周期指令、双周期指令和四周期指令。
修改编码格式-支持中文
Keil5默认编码格式是ANSI,每次删除注释的时候,都要删除两下,而且赋值粘贴程序的时候,经常出现乱码,就很烦
把编码格式改成UTF-8或GB2312
个人更推荐使用UTF-8编码格式
但是15单片机的头文件注释是乱码,想要查看15头文件的注释,将编码格式改成GB2312即可
注意:拔插芯片要断电进行!
15单片机是51单片机运行速度的8~12倍
15单片机在线仿真
IAP15单片机可以支持在线仿真
先添加STC库、STC仿真器驱动到Keil中,安装路径选择Keil的安装路径
安装成功提示:
Debug默认设置如下:
设置成在线仿真模式,选择STC……51……那个
然后将COM设置成和烧录器 一样的COM口
设置为仿真芯片
烧录程序,在线仿真烧录程序比较慢!
然后就可以一步一步在线调试咯
另外使用15单片机头文件,可以直接使用P00代表P0^0 因为15的头文件中已经定义好了
编译下载程序,现象一致
#include <STC15F2K60S2.H>
long a;
void main()
{
P2 = 0xA0; P0 = 0x00; P2 = 0x80; P0 = 0xFF;//初始化,防止蜂鸣器乱叫
while(1)
{
P00 = 0; P01 = 1; P02 = 1; P03 = 1;
for (a = 80000; a > 0; a --);
P00 = 1; P01 = 0; P02 = 1; P03 = 1;
for (a = 80000; a > 0; a --);
P00 = 1; P01 = 1; P02 = 0; P03 = 1;
for (a = 80000; a > 0; a --);
P00 = 1; P01 = 1; P02 = 1; P03 = 0;
for (a = 80000; a > 0; a --);
}
}
书写方便,真香
代码太麻烦了,修改修改
#include <STC15F2K60S2.H>
unsigned char i;
long delay;
void main()
{
P2 = 0xA0; P0 = 0x00; P2 = 0x80; P0 = 0xFF; //初始化
while(1)
{
for ( i = 0;i < 8; i ++)
{
P0 = ~(0x01 << i); //流水
for(delay = 80000; delay > 0; delay --); //简单的延时
}
}
}
具体玩法如下