一、前言

1.1 先认识一下这个块板子

1.2 板载资源

1.3 使用

1.3.1 CH340 驱动安装

1.3.2 程序的烧录

在下载程序前先确认下开发板上的 USB 转 TTL 串口模块上的 J39 和 J44 端子短接片是否短接好(即 P31T 与 URXD 连接,P30R 与 UTXD 连接)

1.4 51单片机介绍

STC89Cxx 芯片介绍我国芯片技术的快速发展,宏晶公司推出的增强型 51 单片机STC89Cxx/STC90Cxx 等系列更受大众喜爱,除内部资源及功能大大增强外,还有一个非常重要的是它支持 ISP(在系统可编程)/IAP(在应用可编程),无需专用编程器或专用仿真器。宏晶公司推出的 51 芯片种类非常多,我们只需选择一款经典的学习即可

  • STC–表示芯片为 STC 公司生产的产品,其他公司的也有 AT、i、SST 等
  • 8–表示该芯片为 8051 内核芯片
  • 9–表示内部含有 Flash EEPROM 存储器,还有如 80C51 中 0 表内部含有MaskROM(掩模 ROM)存储器;如 87C51 中 7 表示内部含有 EPROM(紫外线可擦除ROM)存储器。
  • C–表示该器件为 CMOS 产品。还有如 89LV52 和 89LE58 中的 LV 和 LE 都表示该芯片为低电压产品(通常为 3.3V 电压供电);而 89S52 中 S 表示该芯片含有可串行下载功能的 Flash 存储器,即具有 ISP 可在线编程功能。
  • 5–固定不变。
  • 2–表示该芯片内部程序存储(FLASH)空间大小,1 为 4KB,2 为 8KB,3 为
    12KB,即该数乘以 4KB 就是芯片内部的程序存储空间大小。程序空间大小决定了一个芯片所能装入执行代码的多少。一般来说,程序存储空间越大,芯片价格也越高,所以我们再选择芯片的时候要根据自己需求选择合适芯片。

二、数字电路与C语言基础

2.1 电平特性

单片机是一种数字集成芯片,数字电路中只有两种电平:高电平和低电平
我们暂时定义单片机输出与输入为 TTL 电平,其中高电平为+5V,低电平为 0V。计算机的串口为 RS232 电平,其中高电平为-12V,低电平为+12V。这里强调的是,RS232C 电平为负逻辑电平,大家不要认为上面是我写错了。因此当计算机与单片机之间要通信时, 需要依靠电平转换芯片,比如 MAX232 电平转换芯片。
TTL 电路和 CMOS 电路的逻辑电平关系如下:
①VOH:逻辑电平 1 的输出电压。
②VOL:逻辑电平 0 的输出电压。
③VIH:逻辑电平 1 的输入电压。
④VIL:逻辑电平 0 的输入电压。
TTL 电平临界值:
①VOHmin=2.4V,VOLmax=0.4V。
②VIHmin=2.0V,VILmax=0.8V。
CMOS 电平临界值(假设电源电压为+5V):
①VOHmin=4.99V,VOLmax=0.01V。
②VIHmin=3.5V,VILmax=1.5V。
TTL 和 CMOS 的逻辑电平转换:CMOS 电平能驱动 TTL 电平,但 TTL 电平不能驱动 CMOS 电平,需加上拉电阻。

2.2 二进制中运算

2.2.1 & 与运算

与”运算是实现“必须都有,否则就没有”这种逻辑关系的一种运算。C 语言中运算符为“&”,其运算规则如下:0&0=0,0&1=0(1&0=0),1&1=1。
C 语言中“&&”表示“按位与”运算,意思是变量之间按二进制位数对应关系一一进行“与”运算。如(0101 0101)&&(1010 1010)=0000 0000,而上面讲到的“&”运算只是对单一位进行运算

2.2.2 | 或运算

或”运算是实现“只要其中之一有就有”这种逻辑关系的一种运算。C 语言中运算符为“|”,其运算规则如下:0|0=0,0|1=1(1|0=1),1|1=1。
C 语言中“||”表示“按位或”运算,意思是变量之间按二进制位数对应关系一一进行“或”运算。如(0101 0101)||(1010 1010)=1111 1111,而上面讲到的“|”运算只是对单一位进行运算

2.2.3 非运算

非”运算是实现“求反”这种逻辑关系的一种运算。C 语言中运算符为“!”,其运算规则如下:!0=1,!1=0
C 语言中“”表示“按位取反”运算。如~0101 0101=1010 1010,而上面讲到的“!”运算只是对单一位进行运算。

2.3 C51中的基础知识

C 语言数据类型:

单片机的 C 语言中常用的基本数据类型如下

大家在 C 语言的书籍上还能看到有 short int,long int,signed short int 等数据类型,在单片机的 C 语言中我们默认的规则如下:short int 即为 int, long int 即为 long,前面若无 unsigned 符号则一律认为是 signed 型。
C51 扩充数据类型

在 C51 中,为了增加程序的可读性,允许用户为系统固有的数据类型说明符用 typedef 起别名,格式如下

typedef c51 固有数据类型说明符 别名

三、实验与学习阶段

3.1 点亮第一个LED

GPIO概念
GPIO(general purpose intput output)是通用输入输出端口的简称,可以通过软件来控制其输入和输出。51 单片机芯片的 GPIO 引脚与外部设备连接起来,从而实现与外部通讯、控制以及数据采集的功能。不过 GPIO 最简单的应用还属点亮 LED 灯了,只需通过软件控制 GPIO 输出高低电平即可。当然 GPIO 还可以作为输入控制,比如在引脚上接入一个按键,通过电平的高低判断按键是否按下。

Led简介
LED 即发光二极管。它具有单向导电性,通过 5mA 左右电流即可发光,电流越大,其亮度越强,但若电流过大,会烧毁二极管,一般我们控制在 3 mA-20mA 之间,通常我们会在 LED 管脚上串联一个电阻,目的就是为了限制通过发光二极管的电流不要太大,因此这些电阻又可以称为“限流电阻”。当发光二极管发光时,测量它两端电压约为 1.7V,这个电压又叫做发光二极管的“导通压降发光二极管正极又称阳极,负极又称阴极,电流只能从阳极流向阴极。直插式发光二极管长脚为阳极,短脚为阴极。仔细观察贴片式发光二极管正面的一端有彩色标记,通常有标记的一端为阴极。
查看开发板上的电路设计

分析
中 LED 采用共阳接法,即所有 LED 阳极管脚接电源 VCC,阴极管脚通过一个 470 欧的限流电阻接到J19以及J18端子上,要让 LED 发光即对应的阴极管脚应该为低电平,若为高电平则熄灭。
代码

#include "reg52.h"
sbit LED1 = P2^0;
void main(){LED1 = 0;
}

接线

说明:
我们在代码中使用的是p20针脚,说以我们只能接p20针脚,然后我们的LED灯可以接J19j18任意的针脚,接哪哪亮,因为led都是共阳极嘛!

代码解析
简单不解析了

3.2 LED 闪烁实验

如果要实现 LED 闪烁,只需循环让 D1 指示灯先亮一会后熄灭。

#include "reg52.h"
// 对系统默认数据类型进行重命名
typedef unsigned int u16;
sbit LED1 = P2^0;
void delay(u16 ten){while(ten--);
}
void main(){while(1){LED1 = 0;delay(5000);LED1 = 1;delay(5000);}
}

接线和上一个一实验室一样的不需要变化,将程序烧录进去我们直接看效果:

代码解析
与上个实验相比,我们增加了一个延时函数,我们就说一下这个延时函数,这个函数无非就是进入了一个while循环,来占用cpu,就是让cpu一直在个while循环内一直循环ten次,这样就起到了延时的作用,还有一个问题就是我们看到这个ten是一个u16类型,u16是个什么类型呢?其实这个u16不是 C 语言数据类型关键字,这是我们重定义的数据类型使用关键字 typedef 对系统默认数据类型 unsigned int 和 unsigned char 重新命名,主要是方便我们代码的书写和变量类型的查看。u16 即代表该变量是16 位的无符号整型数据,u8 代表该变量是 8 位的无符号字符型数据。

普中51单片机 A6相关推荐

  1. 基于普中51单片机开发板的温控风扇

    自学单片机也不算很久,刚好遇上了这一门的课程设计,查找了好多的资料发现都不算合适,合适的又要收费,那么最后呢才找到了一个有关我使用的开发板的温控风扇程序,也就是普中单片机开发板,该程序来自--黑51论 ...

  2. 普中51单片机-步进电机启停、变速控制级速度显示

    实验工具: ①普中51单片机-单核-A3,某宝买的:②28BYJ-48型号步进电机:③液晶数码管. 实现功能 实验一: ①按下独立按键K1,步进电机启动: ②按下K2,实现变速(由Delay(50)变 ...

  3. 普中51单片机学习日记-点亮LED

    普中51单片机中LED小灯所用端口为P2端口,从P2^0到P2^7分别为从左到右八个小灯. 可以使用sbit关键字定义变量led,以此简化端口的输入,并且使程序的可读性增强. 当变量的值设置为0,即端 ...

  4. 工业顺序控制--基于普中51单片机模拟

    1.实验目的 掌握工业顺序控制的硬件设计.软件设计.软件编程和调试. 2.实验内容 利用单片机实验箱实现注塑机的顺序控制. 3.实验要求 单片机P1口控制注塑机的6道工序,利用6只发光管的亮与否来模拟 ...

  5. 学习历程--普中51单片机A2--直流电机实验

    今天学习了普中的直流电机实验部分,将自己的一些学习内容记录一下. 直流电机的官方定义:直流电机(direct current machine)是指能将直流电能转换成机械能(直流电动机)或将机械能转换成 ...

  6. 学习历程--普中51单片机A2--蜂鸣器实验

    今天学习了普中的蜂鸣器部分,将自己的一些学习内容记录一下. 蜂鸣器有无源蜂鸣器和有源蜂鸣器,需要注意的是"源"的意思是"震荡源".是指震荡源.也就是说,有源蜂鸣 ...

  7. 普中51单片机按键-数码管显示

    基于普中单片机按键-数码管显示 简介 1.硬件部分 普中单片机开发板 数码管 独立按键 2.软件部分 keil软件 硬件部分 普中单片机开发板 数码管 独立按键 (这些都是开发板的最基本的配置) 软件 ...

  8. 学习历程--普中51单片机A2--LED实验

    前些天学习了普中的LED实验部分,现将自己的一些学习内容记录一下. 这个是led的电路图,普中的a2系列开发版中led的连接只需设置好管脚就可以了,不需要自己进行杜邦线单独接线,还是很方便的,唯一不足 ...

  9. 普中51单片机独立按键原理及源代码

    由于按键是机械弹性按键,具有弹性,在毫秒级别的时间下:按键后有短暂的抖动 转载自江科大自协化51单片机入门教程 如果按键一次用力较轻,按键里的小金属片可能会多次抖动,使得LED闪烁多次 即轻微按一次, ...

最新文章

  1. Winform/WPF实例中的相互操作
  2. 优雅的缓存解决方案--设置过期时间
  3. 什么原数据更容易平稳_【时间序列】-航空数据预测
  4. 转:ps aux指令詳解
  5. php一行多个商品,【后端开发】php一行展示多个商品怎么实现
  6. 牌类游戏使用微服务重构笔记(八): 游戏网关服务器
  7. Spring Boot 集成 GRPC
  8. 一个转行学习前端的初学者,应该如何计划自己的学习规划?
  9. nfs 端口_Linux挂载NFS,偶发执行df命令卡顿
  10. 【图像配准】基于matlab GUI光流场模型图像配准【含Matlab源码 831期】
  11. 使用vscode作为golang开发环境,无法跳转代码定义
  12. Tcp协议socket通信数据包粘包问题分析及解决方案
  13. CSU2020期中测试题(2)WOWO爬水井
  14. python裁剪图片大小
  15. Linux:ftrace: 为什么有些函数没有在available_filter_functions
  16. 基于Android studio 的学生课堂管理app
  17. python百度地图标注,Python+百度地图实现地址多点标注--用上BMap了
  18. 腾讯优图NCNN详细分析及实践操作(含Yolov5实践)
  19. 人大计算机系学霸,中国人民大学8个最强专业,有的超越清华北大,软肋也比较明显...
  20. Mac 使用Jad 反编译class文件

热门文章

  1. python将音频转换成文字_用Python将音频内容转换为文本格式,方言可以吗?
  2. 2021山东省大学生网络技术大赛网络安全赛道决赛WP
  3. 电磁场复习之场论总结
  4. maple 假设_Maple 常用计算命令
  5. (旧)子数涵数·Flash——影片剪辑的基本操作
  6. javaBean的概念是什么
  7. 【单片机项目实训】基于nRF905的多点温度无线采集系统
  8. coredump配置教程
  9. 【真人手势动画制作软件】万彩手影大师教程 | 自定义动画移动路径
  10. 淘宝上取SessionKey 淘宝网开放平台API(taobao.user.get)调用示例,需SessionKey