STC89C51基础及项目第1天:初识单片机、IO口

1. 课程概述(156.1)

在这里插入图片描述

  • 课程要求:C语言至少学到函数(C语言课程_(上)),指针尽量!

2. 开发软件keil的安装(157.2)

  1. 双击“c51v952.exe”
    在这里插入图片描述

  2. 点击“Next”
    在这里插入图片描述

  3. 同意…
    在这里插入图片描述

  4. 修改为"D:\Program Files (x86)\Keil"
    在这里插入图片描述

  5. 填写:
    在这里插入图片描述

  6. 取消勾选
    在这里插入图片描述

  7. 双击打开
    在这里插入图片描述

  8. 工程列表:新建的工程文件
    在这里插入图片描述

  9. 代码区:写代码
    在这里插入图片描述

  10. 工具栏:各种工具功能
    在这里插入图片描述

  11. 编译结果、错误提示、编译信息
    在这里插入图片描述

3. 手把手创建一个Keil代码工程(158.3)

  1. 新建main.c文件
    在这里插入图片描述
    在这里插入图片描述
  2. 新建工程:进入keil主页面,工具栏project->new uVision project…
    在这里插入图片描述
  3. 保存至刚刚创建的Template文件夹下,命名为muban
    在这里插入图片描述
  4. 选择芯片类型AT89c52->会提示是否拷贝STARTUPA51选择是
    在这里插入图片描述
    在这里插入图片描述
  5. 生成了工程目录>在工程目录Source Group1上右键鼠标->addExiting file to Source Group1…->选择代码文件main.c->close关闭
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
  6. 双击main.c,即可在右栏编写代码
#include "reg52.h"

sbit led1 = P3^7;//¸ù¾ÝÔ­Àíͼ£¨µç·ͼ£©£¬É豸±äÁ¿led1Ö¸ÏòP3×éIO¿ÚµÄµÚ7¿Ú
sbit led2 = P3^6;//¸ù¾ÝÔ­Àíͼ£¨µç·ͼ£©£¬É豸±äÁ¿led2Ö¸ÏòP3×éIO¿ÚµÄµÚ6¿Ú

void main()
{
	led1 = 0;//¸ù¾Ýµç·ͼ£¬µÍµçƽµçÁÁled
	led2 = 0;
	while(1);
}

在这里插入图片描述
7. ctrl+滚轮:字体大小调整
8. 由于c1单片机不认识c语言,只认识01序列化的二进制,做配置:Target Options->Output
在这里插入图片描述
在这里插入图片描述
9. 勾选创建HEX文件:输出单片机可认识的二进制文件
在这里插入图片描述

  1. rebuild编译
    在这里插入图片描述
  2. .c是主要的代码文件,.hex是写入单片机中的 单片机可运行的执行程序,.uvproj是工程文件 正常双击Keil会自动打开 并加载整个工程
    在这里插入图片描述

4. Hex程序烧写到单片机

  1. 安装驱动
    在这里插入图片描述
  2. c口连接单片机,usb至电脑端口
    在这里插入图片描述
  3. 打开设备管理器,检查是否识别成功
    在这里插入图片描述
  4. 安装STC-ISP软件
    在这里插入图片描述
  5. 选择单片机型号STC89C52RC、核对串口号
    在这里插入图片描述
  6. 选择生成的执行程序文件muban.hex
    在这里插入图片描述
  7. 点击“下载/编程”按钮
    在这里插入图片描述
  8. 单片机开关拨动重新上电
    在这里插入图片描述
  9. 自动检测并下载了程序,看到灯亮。如果失败,仔细对照 以上每一步内容
    在这里插入图片描述

5. 单片机基本认知(160.5)

  1. 什么是单片机(类似电脑的主板)
  • 集成电路芯片
  • 中央处理器CPU、随机存储器RAM、只读存储器ROM
  • 多种I/O口和中断系统、定时器/计数器等功能(可能还包括显示驱动电路、脉宽调制电路、模拟多
    路转换器、A/D转换器等电路)
  • 集成到一块硅片上构成的一个小而完善的微型计算机系统,在工业控制领域广泛应用。
  1. 单片机开发板
  • 基于单片机设计一些外接电路、模块,以满足学习、日常调研等工作需求
  1. STC89系列单片机-芯片手册
  • 命名规则(*面试会问到),封装LQFP44, 特性,定时器,计数器,串口,看门狗,IO

6. 单片机那点事的思维发散(161.6)

  • 单片机编程是?:人类要求单片机干具体的活,有点像提前写个小纸条贴冰箱上,告诉你执行者煮鸡蛋不加水
  • 单片机执行程序怎么理解?: 执行者看到纸条后,照做
  • 单片机能做什么事情?: IO口供电,串口数据传输等
  • 肉眼可见的引脚是?:方便人类对单片机IO口、串口接东西
  • 单片机CPU怎么找到IO口?:通过寻址,有一些地址数据 在头文件里做很多了
  • 怎么写编程找到IO口呢:ANSI C
    sfr“指令”: 用来直接描述硬件地址,小白先理解成“一组IO口”的起始地址中数据 sfr P0 = 0x80; P0
    = 0;
  • 怎么找到IO口的具体一个引脚呢:
    sbit“指令”:对应可寻址空间的一个位,小白先理解成“一个IO口/针脚”的地址中数据 sbit led2 =
    P3^6
    c语言的一个字节,char型就是8位

7. SFR及SBIT描述IO口和具体引脚(162.7)

  • 找IO口:sfr“指令”
  • 找具体引脚:sbit“指令”

8. IO口输入输出(163.8)

  • STC89C52比较简单粗暴,关于引脚是输入还是输出的功能不需要配置,比如:
sbit IFfire = P1^0;

int main()
{
	int io_data;
	//什么情况叫做输入
	io_data = IFfire; // 给变量赋值就是输入 -- 或者理解为,这个针脚有数据了,拿个变量来保存
	if(io_data == 0){
	
	}
	//什么情况叫做输出
	IFfire = 1; // 给予一个数值,引起IO口电压变化(一般1输出高电平,0输出低电平),此时为输出,来影响外接的电路
	
	return 0;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值