单片机(Microcontrollers)MCU 是一种集成电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU、随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计数器等功能(可能还包括显示驱动电路、脉宽调制电路、模拟多路转换器、A/D转换器等电路)集成到一块硅片上构成的一个小而完善的微型计算机系统,在工业控制领域广泛应用。从上世纪80年代,由当时的4位、8位单片机,发展到现在的300M的高速单片机。
这些是度娘上找到的
简单点说就是微型 廉价的逻辑电路 来控制我们身边许许多多的带电的东西
单片就是单个硅晶片 嵌入其他系统属于简单 低级的嵌入式系统。嵌入式指的是嵌入产品中 狭义的是嵌入linux系统 如android手机
博主是自动化专业所以单片机很重要 因为现在才大一所以先简单的51之后还会进一步学习arm 以后嵌入式也是很好的方向 所以记录一下自己学习的过程 同时也欢迎大家和我一起学习
首先是安装环境keil c51
链接:https://pan.baidu.com/s/1B-gWsxK2wiFtWQe5I4AUAA
提取码:8pro
激活的时候运行要以管理员身份运行然后进行激活 说明在分享的链接里有
(记得要带着耳机去激活有段很性感的音乐)
安装下载工具(将程序下载到单边机中,这个东西要看你用的那个单片机这里的是stc)
链接:https://pan.baidu.com/s/1vELF1DiPe3eykRs8HbWQYA
提取码:9pe4
51单片机很久远很久以前开发他的Intel就把内核是开放了 所以任何人都可以看到
还有就是要安装usb转串口驱动 这个可以驱动大师什么的自动安装
链接:https://pan.baidu.com/s/120E1RS-UD47PJLlO_SMb6A
提取码:f0ci
设备管理器能看到这个就是安装好了但是不一定是COM4 是COM几都有可能
单片机定时器
1.意义对cpu类似于闹钟对人
因为cpu同时只能干一件事情,所以要规定时间结束任务和开始任务
2.利用中断机制 软件和硬件的约定 让cpu在一段时间后执行一段特定使程序中断的程序函数之类的
3.可以有多个定时器 ,可以同时工作 51是两个8位 长时间可以16位 短时间可以是8位
4.利用计数器原理 51单片机利用加法计时溢出溢出后中断,类似于数据溢出 也有减法计时器从初值向下减
5.计时初值THn和TLn
单片机小精灵 可以输入时间计算时间初值等很多功能
链接:https://pan.baidu.com/s/1tWZo-ByP8J1TMj07gQ6miw
提取码:z03r
具体使用看开发手册
void main(void)
{
Timer0Init();//计时器初始化
while (1);//此时CPU主任务为1死循环
}
void Timer0Init(void)
{
TMOD &= 0xf0; // T0设为定时器模式,仅用TR0控制打开
TMOD |= 0x01; // T0选择为工作模式1:16位定时器、TH0 TL0全使用
TH0 = 0xd8; // 使用单片机小精灵计算10ms定时的TH0、TL0初值
TL0 = 0xf0;
ET0 = 1; // 打开定时器0中断允许
EA = 1; // 打开总中断
TR0 = 1; // 开始计时
}
void Timer0Isr(void) interrupt 1 //1代表T0计时器
{
TH0 = 0xd8; // 使用单片机小精灵计算10ms定时的TH0、TL0初值
TL0 = 0xf0;
if (gCnt++ >= 50) // 每隔50*10ms = 500ms,则让LED亮灭状态转换一次
{
gCnt = 0; // gCnt置为初值0以开启下一次中断次数计数
gLed1 = !gLed1; // LED亮灭转换 !为逻辑取反
}
}
tips 每次要给初值
实验现象每隔500ms闪烁一次
怎样让单片机跑你写的程序 需要使用烧录软件进行 选择正确的信号和串口号后 先打开程序文件 点击下载 出现正在检测目标单片机字样后 再去打开单片机开关
这样应该是因为单片机内存在通电时不能去修改的缘故