51单片机89C516笔记(一)

1.前言

最近突然想玩一玩51单片机,之前没有玩过,也是小白一个,记录下折腾过程。淘宝下了一单,型号是89C516,芯片信息(89C516普通Series,64K内存,非RD非RC系列):

// STC89C516-35I-PDIP40-1944CPW616.X90C

到货开箱现场,东西有不少:
在这里插入图片描述

2.开始

2.1 工具

工具淘宝打包给的都是全套的,先备份一下主要的工具(KEIL、板子驱动、烧录软件、仿真器驱动、辅助工具等)
在这里插入图片描述

2.2 准备

先看一段新手开发板介绍视频,主要的内容是各个模块的介绍,粗略记录一下:

1.数码管
在这里插入图片描述
是4位一体的共阴极数码管,有对应的驱动电路(如下图),单片机并不能单独的驱动它,单片机只起到一个控制的作用。左侧的电路是74HC245芯片,控制8位数码管的段选,右侧的电路是74HC138译码器,通过3个管脚控制8位数码管的片选,从而可以达到节约IO口资源的目的。
在这里插入图片描述

2.LCD1602/9648/12864接口

接外部显示器来显示数据量较多的内容。
在这里插入图片描述

3.电位器和串转并

电位器用于调节LCD的显示对比度。再下图是74HC595串转并,用于扩展IO口。黄色的短接片用于更改串转并的使能状态的(开关,右侧是开)。
在这里插入图片描述
在这里插入图片描述

4.LED8x8 点阵

对于初学者来讲, LED矩阵灯能使内部结构清楚明白。
在这里插入图片描述

5.LED灯

用于学习一些简单的IO口的操作,或者利用它查看程序状态。
在这里插入图片描述

6.矩阵4x4键盘
在这里插入图片描述

7.温度传感器接口(上),红外接收头(下)

不能插错,有凸起的白色弧线凸的方向指向了接口的功能或名称。
在这里插入图片描述

8.NIF24l01-2.4G(需要配对使用)
在这里插入图片描述

9.独立按键
在这里插入图片描述

10.电源输出管脚
在这里插入图片描述

11.CH340串口(左侧画圈,用于USB转串口通信)
在这里插入图片描述

12.上图右侧短接片(打通CH340和单片机串口),上图最左侧是电源
13.AD/DA(pwm+rc)模块(含光敏电阻,热敏电阻)
在这里插入图片描述

14.时钟电路
在这里插入图片描述

15.电机模块(5线4项步进电机)
在这里插入图片描述

2.3 Demo

先跑一个点亮单个LED灯的小例子,打开Keil新建工程,89C516在Keil中选择型号AT89S51AT89S52AT89C52AT89S51均可,再添加C源文件。

根据硬件的说明图纸,可以看到D1LED灯是由P20口控制,8个LED共阳极,于是我们给P20低电平就可以点亮它了。
在这里插入图片描述
代码中给P20底电平,编译。

#include <REGX52.H>

void main() {

	P2_0 = 0;  // 给P20低电平
	while(1) {
		
	}
}

编译完成后,使用工具将生成的hex文件下载到单片机中:
在这里插入图片描述
可以看到结果:
在这里插入图片描述
至此,51单片机的学习就由此开端了。

  • 23
    点赞
  • 86
    收藏
    觉得还不错? 一键收藏
  • 25
    评论
你可以使用以下的Python代码来创建一个Minio上传图片的工具类: ```python from minio import Minio from minio.error import ResponseError class MinioUploader: def __init__(self, endpoint, access_key, secret_key, bucket_name): self.endpoint = endpoint self.access_key = access_key self.secret_key = secret_key self.bucket_name = bucket_name def upload_image(self, file_path, object_name): try: minio_client = Minio(self.endpoint, access_key=self.access_key, secret_key=self.secret_key, secure=False) # 检查bucket是否存在,不存在则创建 if not minio_client.bucket_exists(self.bucket_name): minio_client.make_bucket(self.bucket_name) # 上传图片 minio_client.fput_object(self.bucket_name, object_name, file_path) return True, "Image uploaded successfully" except ResponseError as err: return False, f"Error uploading image: {err}" ``` 使用时,你需要提供Minio服务的endpoint、access_key、secret_key以及bucket_name。然后,你可以调用`upload_image`方法来上传图片。该方法接收两个参数:`file_path`表示本地图片文件的路径,`object_name`表示在Minio中保存的对象名称。 以下是一个使用示例: ```python minio_uploader = MinioUploader(endpoint='minio.example.com', access_key='your-access-key', secret_key='your-secret-key', bucket_name='your-bucket-name') success, message = minio_uploader.upload_image('/path/to/image.jpg', 'image.jpg') if success: print(message) else: print(f"Error: {message}") ``` 请确保已经安装了`minio`库,可以使用`pip install minio`来进行安装。此外,根据你实际的Minio配置,需要修改代码中的相关参数。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 25
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值