这是一篇超级详细的C51教程。
单片机就是一个小型CPU,在电子领域应用广泛,电视、冰箱、洗衣机、空调等产品中都能见到他们的身影。它是一个可编程的mcu,根据代码的不同可实现非常多功能
首先介绍两个软件
1、keil uvision4:这是一个单片机开发软件,用于调试,生成可执行文件HEX文件
2、proteus7.8:电路仿真软件
一、首先,到网上下载一个keil uVision4开发环境(用来编写C语言程序)或者下载我的软件,keil下载链接://download.csdn.net/download/mbs520/12191016
二、下载好之后百度keil4的安装教程,开始按百度步骤安装
安装成功后打开软件,看到如下界面:
三、安装软件:Proteus 7.8
这是一个电路仿真软件,非常实用,用来绘制原理图和仿真
Proteus 7.8 下载链接://download.csdn.net/download/mbs520/12116854
下载好后安装,安装好打开软件:
四、下面开始用Proteus建立硬件环境
把led接在P1.0上,因为我们是初学者,晶振与电源可以先省略,电路一样可以工作。
点击P:
然后搜索需要的元器件:AT89C51、RES、LED
找到之后双击添加:左边元件栏里可以看到添加的元件
继续添加:
添加完成后开始布置元器件:
接地符号在这里:
元件布置完后开始接线:点击两个点就可以连接起来
连接完成。。。点击保存。
五、上面两个软件都安装成功后开始我们的第一个工程的建立,参考以下代码 ,代码作用: 让一个led闪烁
#include
void delayms(unsigned int t)//延时函数
{
int a,b;
for(a=0; a<t; a++)
for(b=0; b<120; b++);
}
void main(void)
{
P1_0 = 0; //让P1.0口输出0
delayms(500); //延时500ms
P1_0 = 1; //让P1.0口输出1
delayms(500); //延时500ms
}
下面开始建立工程,打开keil,点击新建工程
文件名改为“第一个51程序”,点击保存
找到ATMEL公司的AT89S51
点击OK,然后新建一个文本文件
点击保存,文件名后缀为.c,生成一个c文件
写下代码
添加C语言文件到工程:把刚刚写的c文件添加到工程
发现左边工程文件多了个.c文件
点击魔法棒:
勾选生成.hex文件
然后点击编译生成:
编译报告0错误0警告:说明已经生成了.hex文件
六、打开仿真软件
双击单片机,弹出对话框,点击选择文件夹,找到刚生成的hex文件
把hex文件导入单片机,运行仿真软件,可以看到led在闪烁,每隔1秒钟闪烁一次,如图:
#include
包含头文件
void delayms(unsigned int t)//延时函数
{
int a,b;
for(a=0; a
}
延时函数就是让CPU反复执行一条空指令来消耗时间,这段时间CPU仍然在工作,各寄存器的值保持不变。
void main(void)
这是主函数,程序从这里开始执行
P1_0 = 0; //让P1.0口输出0
delayms(500); //延时500ms
P1_0 = 1; //让P1.0口输出1
delayms(500); //延时500ms
P1_0是什么?P1_0是在reg51.h头文件定义的,没有头文件写P1_0编译是通不过的。P1_0的本质是一个位寄存器,存储了1bit数据,可以存储0或1,P1_0的值决定了P1_0引脚上输出的电平
P1_0 = 0;就是让P1_0输出0V
delayms(500);寄存器的值不变,P1_0持续500ms低电平
P1_0 = 1; 就是让P1_0输出5V(实际达不到5V),
delayms(500);寄存器的值不变,P1_0持续500ms高电平,循环执行,led就会以1HZ的频率闪烁了
另外,51单片机不用循环语句while,也会循环执行main函数中的内容
代码资料链接://download.csdn.net/download/mbs520/12117125
百度网盘链接:https://pan.baidu.com/s/18cVVHyE6O1AzvUvZMsApZA
提取码:22pi
或者编辑 “所需要的资源名字如:‘点亮一个发光二极管’”->邮箱:[email protected]
我就会把资料给你发过来,求支持求点赞啊。
(有问题欢迎留言,第一次发帖,不到之处希望各位大神指点)
(也可以私信我问题,看到否可以为为大家耐心解答,很高兴跟大家交流技术问题。范围:电路设计 电路仿真 PCB设计 51单片机 msp430 arduino stm32 luinx)