前言-----

news2024/11/17 17:35:01

因要参加电赛,接触到STC89C52RC(A51)单片机 

 

 

STC89C52RC引脚功能  

1电源:
①VCC - 芯片电源,接+5V; 
②VSS - 接地端; 

2.时钟:  
XTAL1、XTAL2 - 晶体振荡电路反相输入端和输出端。  

3.控制线:  
控制线共有4根: 
         ALE/PROG:地址锁存允许/片内EPROM编程脉冲  
         ① ALE功能:用来锁存P0口送出的低8位地址  
         ② PROG功能:片内有EPROM的芯片,在EPROM编程期间,此引脚输入编程脉冲。 
        PSEN:外ROM读选通信号。 
        RST/VPD:复位/备用电源。 
                 ① RST(Reset)功能:复位信号输入端。 
                 ② VPD功能:在Vcc掉电情况下,接备用电源。 
        EA/Vpp:内外ROM选择/片内EPROM编程电源。 
             ① EA功能:内外ROM选择端。 
             ② Vpp功能:片内有EPROM的芯片,在EPROM编程期间,施加编程电源Vpp。 

4.I/O口线:P0、P1、P2、P3共四个八位口。  
    P0口是三态双向口,通称数据总线口,因为只有该口能直接用于对外部存储器的读/写操作。P0口也用以输出外部存储器的低8位地图1址。由于是分时输出,故应在外部加锁存器将此地址数据锁存,地址锁存,信号用ALE。  
     P1口是专门供用户使用的I/O口,是准双向口。  
     P2口是从系统扩展时作高8位地址线用。不扩展外部存储器时,P2口也可以作为用户I/O口线使用,P2口也是准双向口。  
     P3口是双功能口,该口的每一位均可独立地定义为第一I/O功能或第二I/O功能。作为第一功能使用时操作同P1口。

一、跑马灯

 

 使用程序控制P20-P27输出电平(0,1)实现LED模块 D1-D8发光二极管的循环电亮,完成跑马灯效果。

/*定义LED引脚*/
 #define LED P2

/*延迟函数*/
void Delay(unsigned int a)
{
	while(a--);
}

//流水灯
void Running()
{
	 u8 i;
	 LED = 0xfe;
	 Delay(50000);//大约延时450ms	
	 while(1)
	 {
		 for(i = 0;i<7;i++)
		 {
			 LED = _crol_(LED,1);	//左移一位  0xfe(11111110)--->0xfd(11111101)
			 Delay(50000);
		 }
		 for(i = 0;i<7;i++)
		 {
			 LED = _cror_(LED,1);	//右移一位  0x7f(01111111)--->0xbf(10111111)
			 Delay(50000);
		 }
	 }
}

定义LED为引脚P2,P2赋值为0xfe,二进制为11111110,共八位分别对于P27-P20,当P20引脚为0-低电压时电亮,1-高电压时熄灭。循环左移,右移并等待450ms电亮下一个

二、独立按键控制蜂鸣器

 

 在实验版有4个独立按键k1-k4,分别对于STC80C51的P30-33引脚,当按键按下后,对应的引脚接地,即赋值0。通过程序判断P30-P33哪个为0对应按键按下。

蜂鸣器的BEEF接无线四项步进电机ULN2003D的OUT5引脚,该引脚信号受IN5所对应的P25引脚影响。

 /*定义蜂鸣器*/
 sbit BEEP = P2^5;

void C_buzzer()
{
		 while(1)
	 {
		 if(P31==0)//按下关闭
		 {
			 BEEP=1;
			 while(1)
			 {
				 if(P31==0)//当再次按下时,再次启动
				 {
					 break;
				 }
			 }
		 }
		 else
		 {
			 BEEP = ~BEEP;
			 Delay(50000);
		 }
	 }
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/707235.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Java 17官方编程手册都针对哪些方面做了更新?

Java 17&#xff0c;官方编程手册&#xff0c; 《International Developer》杂志称为“全世界醉著名的编程书籍创作者之一”的Herbert Schildt倾情解读 《Java官方编程手册》从1996年首次出版以来&#xff0c;已经经历了数次改版&#xff0c;每次改版都反映 了Java不断演化的进…

分享解析,2+1链动模式为何能在市场上经久不衰

​小编介绍&#xff1a;10年专注商业模式设计及软件开发&#xff0c;擅长企业生态商业模式&#xff0c;商业零售会员增长裂变模式策划、商业闭环模式设计及方案落地&#xff1b;扶持10余个电商平台做到营收过千万&#xff0c;数百个平台达到百万会员&#xff0c;欢迎咨询。 随…

服务网格:Istio 架构

什么是服务网格 服务网格(Service Mesh)这个术语通常用于描述构成这些应用程序的微服务网络以及应用之间的交互。随着规模和复杂性的增长&#xff0c;服务网格越来越难以理解和管理。 它的需求包括服务发现、负载均衡、故障恢复、指标收集和监控以及通常更加复杂的运维需求&am…

数据结构--双端队列

数据结构–双端队列 双端队列&#xff08;Double-ended Queue&#xff0c;简称Deque&#xff09;是一种具有队列和栈特性的数据结构&#xff0c;可以在队列的两端进行插入和删除操作。双端队列允许从前端和后端同时进行插入和删除操作&#xff0c;因此可以称为“两端都可以进出…

「STC8A8K64D4开发板」第2-6讲:串口通信

第2-6讲&#xff1a;串口通信 学习目的掌握USB转串口电路的原理和设计。学习STC8A8K64D4的串口通信&#xff0c;包括串口初始化、波特率计算、串口发送和接收。编写串口收发程序&#xff0c;尤其是串口接收的软件缓存处理。编写串口发送命令控制LED指示灯亮灭的程序。 硬件电路…

【电商API接口系列】店铺所有商品数据的采集

API接口允许不同应用程序之间共享数据&#xff0c;在系统之间传输、读取和更新数据。例如&#xff0c;一个电商网站可以通过API接口获取支付系统的支付状态。API接口允许开发人员使用他人开发的功能来扩展自己的应用程序。通过调用第三方API接口&#xff0c;开发人员无需重新实…

二进制部署Kubernetes

二进制部署Kubernetes v1.20 k8s集群master01&#xff1a;192.168.142.10 kube-apiserver kube-controller-manager kube-scheduler etcd k8s集群master02&#xff1a;192.168.142.20 k8s集群node01&#xff1a;192.168.142.30 kubelet kube-proxy docker k8s集群node…

基于Java汽车售票网站设计实现(源码+lw+部署文档+讲解等)

博主介绍&#xff1a;✌全网粉丝30W,csdn特邀作者、博客专家、CSDN新星计划导师、Java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ &#x1f345;文末获取源码联系&#x1f345; &#x1f447;&#x1f3fb; 精彩专…

VUE_网页自定义右键菜单组件

可以在uni-app或vue脚手架项目使用 引入组件会接管页面右键事件&#xff0c;所有options为空数组时&#xff0c;在页面右键将没有反应 rightMenu.vue <template><view><view v-if"show" class"contextMenu" :style"lay_style"…

Kafka:Kafka资料整理

一、官网 二、博主文章 1、kafka是什么 • Worktile社区 三、源码解读

一文了解云计算

目录 &#x1f34e;云服务 &#x1f34e;云计算类型 &#x1f352;公有云 &#x1f352;私有云 &#x1f352;混合云 &#x1f34e;云计算服务模式 &#x1f352;IaaS基础设施即服务 &#x1f352;PaaS平台即服务 &#x1f352;SaaS软件即服务 &#x1f352;三者之间区别 &…

4.springboot原理篇

原理篇 spring与springboot区别 spring是承载容器 springboot做的主要工作&#xff1a; ①简化配置&#xff08;省去了spring中配置xml&#xff0c;引入application.yml文件&#xff09; ②为我们提供了 spring-boot-starter-web 依赖&#xff0c;这个依赖包含了Tomcat和sprin…

二进制搭建Kubernetes集群(二)——部署Worker Node 组件

四.部署node节点 4.1 所有node节点部署 docker引擎 #所有 node 节点部署docker引擎#安装依赖包yum install -y yum-utils device-mapper-persistent-data lvm2#设置阿里云镜像源yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker- ce.…

Nuget更新全局包、缓存和临时文件夹路径位置

Nuget更新缓存 1、查看默认的Nuget路径2、更改全局包路径2.1 通过环境变量来进行修改2.2通过Nuget.Config配置文件来进行修改 3、更改http-cache路径4、更改temp文件路径5、更改plugins-cache文件路径 NuGet是一个流行的软件包管理器&#xff0c;可以帮助.NET开发人员轻松地添加…

【Python】 【Pandas 】【read_csv()】Pandas库的read_csv()方法的使用,处理:None,NULL

近期&#xff0c;使用read_csv的时候&#xff0c;遇到一个问题&#xff0c;就是本地读取的csv文件中的数据有None和NaN 两种&#xff0c;如&#xff1a; 直接使用 pd.read_csv(rF:\我爱Python\预测\历史样本.csv,encodingutf-8)发现读取的数据是将None 和 NULL 直接处理成 NaN…

SpingData-JDBC(看这篇文章就够了,新手入门指引)

JdbcTemplate 的基本使用 写在前面&#xff1a; 当DDL操作时&#xff0c;一般是用execute方法&#xff0c;这也是一种规范吧&#xff0c;这个也可以运行DML但是通常来说我DML操作是需要返回值的&#xff0c;一般就是返回影响的行数。然后这篇文章主要介绍增删改查&#xff0c…

软考A计划-系统集成项目管理工程师-项目范围管理(四)

点击跳转专栏>Unity3D特效百例点击跳转专栏>案例项目实战源码点击跳转专栏>游戏脚本-辅助自动化点击跳转专栏>Android控件全解手册点击跳转专栏>Scratch编程案例点击跳转>软考全系列 &#x1f449;关于作者 专注于Android/Unity和各种游戏开发技巧&#xff…

Linux服务器网卡流量过高排查

第一种方式&#xff1a;nethogs 1.安装 yum -y install nethogs #nethogs em1 -d 3 监控eth0 并每3s刷新一次 手动安装 wget https://github.com/raboof/nethogs/archive/v0.8.5.tar.gz 依赖包&#xff1a; yum install -y libpcap libpcap-devel 编译&#xff1a; mak…

④数据封装对象(Vo、Bo、Po..)+MySQL视图

1.数据封装对象 VO&#xff08;View Object&#xff09;&#xff1a;视图对象&#xff0c;用于展示层&#xff0c;它的作用是把某个指定页面&#xff08;或组件&#xff09;的所有数据封装起来。 DTO&#xff08;Data Transfer Object&#xff09;&#xff1a;数据传输对象&a…

小黑特种兵重庆行走一天,体验了当地风土人情的leetcode之旅:剑指 Offer II 014. 字符串中的变位词

小黑代码 class Solution:def checkInclusion(self, s1: str, s2: str) -> bool:# 字符串长度n_s1 len(s1)n_s2 len(s2)if n_s1 > n_s2:return False# s1的字符计数字典count_s1 [0] * 26# 窗口计数字典count_window [0] * 26# 寻找初始窗口for i in range(n_s1):co…