/////////////////////////////////////////////////////////////////////////
实现功能:打开实验板上的蜂鸣,响0.3秒,然后关闭0.3秒,然后依次这样循环,
同时在实验板上继电器旁边的发光二极管也会跟随继电器不停地闪烁
实验板型号:KBL-XYD-C52
实验名称: 继电器实验
编写人: 谢应东
编写日期: 2012-4-25
/////////////////////////////////////////////////////////////////////////
#include
#define uchar unsigned char //定义unsigned char 为 uchar
#define uint unsigned int
sbit JDQ=P2^5;
#define JDQ_ON JDQ=0
#define JDQ_OFF JDQ=1
/////////////////////////////////////////////////////////////////////////
函数名称:毫秒延时函数
函数功能:实现毫秒级的延时
参数介绍:Delay_MS: 定义需要延时的毫秒的数值
iNumber: 记录Delay_MS的数值,以for语句实现所要求的延时
iValue: 要延时毫秒所要进行的循环数值,本数值为实际测得
返回值: 无
注意事项:本实验是在所用晶振为12M的前提下实现的毫秒延时,本函数是通过循环的形
式完成,所以如果改变了晶振的频率,请做相应的改变
/////////////////////////////////////////////////////////////////////////
void DelayMs(uint Delay_MS)
{
uint iNumber,iValue;
for(iNumber=0;iNumber
{
iValue=107;
while(iValue--);
}
}
/////////////////////////////////////////////////////////////////////////
函数名称:main
函数功能:完成打开继电器,延时0.3秒,然后关闭0.3秒,这样依次循环
参数介绍:无
返回值: 无
注意事项:无
/////////////////////////////////////////////////////////////////////////
void main()
{
while(1)
{
JDQ_ON; //打开继电器
DelayMs(300); //延时0.3秒
JDQ_OFF; //关闭继电器
DelayMs(300); //延时0.3秒
}
}
关键字:STC89C52 单片机 继电器实验
引用地址:
STC89C52单片机继电器实验
推荐阅读最新更新时间:2024-03-16 14:50
适用于STM32 MCU的NanoEdge人工智能软件
Cartesiam已针对STM32微控制器开发板推出优化的NanoEdge人工智能软件。 据Cartesiam称,NanoEdge AI Studio专为没有机器学习相关资源的公司而设计。 “在许多改进中,它直接通过STM32串行USB端口和Cartesiam的自动数据符合性和质量验证工具的增强版,将实时数据记录到NanoEdge AI Studio中。” ST的Nucleo-F401RE和Nucleo-L432KC开发板现已完全支持。 该软件套件可在Windows 10或Ubuntu上运行,用户能够生成并验证嵌入式系统的机器学习库。 用户可以选择上述开发板之一并下载自定义的NanoEdge AI库,可以构建可在板
[单片机]
基于51单片机控制的热源自动测试仪
在药品质量监测过程中,热源反应的测温是一项重要内容。药品检测有其特殊性,对测试系统的精度、稳定性、一致性和线性度等指标有着较高的要求。传统老式仪器大多是各类温度计,测试效率和精度都难如人意。根据现场监测要求,研制了基于单片机控制的热源自动测试仪,实现了在实验室内自动巡回测试30路热源,满足了现场测温准确稳定的高标准要求,成功地完成了药检实验室测试仪器的更新换代。 1 测试仪器系统组成与工作原理 本测试仪器的工作原理图如图1所示,对多点测试的热源数据经多路转换开关,送入仪器放大器实现差值放大后,用V/F转换器将电压信号转换成一定频率的脉冲信号,送入8051单片机的T0口,T0为计数器,T1作为定时器,在定时时间内接受脉冲
[单片机]
基于普中科技51单片机的四路抢答器
在普中科技开发板上实验成功了。下面附上代码,由于都有注释,就不废话了,如果看不懂,可以连线调试一下(这是作为一个硬件生应该掌握的基本技能。 单片机源程序如下: #include reg51.h #define uchar unsigned char #define uint unsigned int #define WHO P0 sbit player1=P1^0; sbit player2=P1^1; sbit player3=P1^2; sbit player4=P1^3; sbit Ensure=P3^7; sbit beep=P1^6; sbit LSA=P3^2; sb
[单片机]
单片机远距离串行通信电路
单片机的应用越来越普遍。有些单片机设置了串行通信口,使其应用范围更加扩大。如51系列单片机的串行口是一个全双工通信接口,能同时进行发送和接收,且可通过对串行控制寄存器SCON的设置,选择多种串行通信模式,包括多机通信。实际应用系统中往往要涉及远距离多机串行通信。 按一般介绍,多机通信的主机与从机连接如图1-9所示,通过软件编程实现由主机查询、从机响应的通信方式,但这种通信方式只限于主机与从机近距离(几米)范围内。这是因为串行口TxD发出的TTL 电平 信号无论在驱动能力还是在抗干扰能力方面都不足以实现远距离串行数据传送,所以要实现单片机串行口的远距离通信(几十米到几千米),必须另辟蹊径。 远距离串行通信 电路 1
[单片机]
如何将51单片机进行内存优化
对51单片机内存的认识,很多人有误解,最常见的是以下两种 ① 超过变量128后必须使用compact模式编译 实际的情况是只要内存占用量不超过 256.0 就可以用 small 模式编译 ② 128以上的某些地址为特殊寄存器使用,不能给程序用 与 PC机不同,51单片机不使用线性编址,特殊寄存器与 RAM 使用重复的重复的地址。但访问时采用不同的指令,所以并不会占用 RAM 空间。 由于内存比较小,一般要进行内存优化,尽量提高内存的使用效率。 以 Keil C 编译器为例,small 模式下未指存储类型的变量默认为data型,即直接寻址,只能访问低 128 个字节,但这 128 个字节也不是全为我们的程序所用,寄存器 R0-R7必
[单片机]
学习笔记之-51单片机IO口详解
前言 对单片机的控制,其实就是对I/O口的控制,无论单片机对外界进行何种控制,或接受外部的何种控制,都是通过I/O口进行的。51单片机每个IO端口结构都有差异,都各有各的特点。在平时的应用中,特别是设计外围硬件的时候,如果不了解其内部结构的话设计起来也许会有问题(特别是用到P0口),所以好好了解每个端口的结构是非常有必要的。再有一点是51单片机的引脚不像STM32那样可以支持重映射,所以硬件布局的时候也要注意这一点。下面就是在网上找的一点资料,整理如下: 51单片机I/O口内部结构 1.1P0端口的结构及工作原理 P0端口8位中的一位结构图 由上图可见,P0端口由锁存器、输入缓冲器、切换开关、一个与非门、一个
[单片机]
51单片机超声波测距仿真结果分析
制作51单片机超声波测距仪时,程序设计及试工作是一项重要内容,所设计的程序51单片机超声波测距程序只是在编译环境下通过编译,消除编程工作中产生的语法错误后,直接将程序写入单片机中与硬件一起进行联调,如果这时硬件设计制作是正确的还好说,只需要进行软件的调试修改,烧写到硬件环境中验证直到达到设计要求即可,但这个工作也是需要反复不停地修改程序并烧录到硬件单片机中进行调试,但如果说硬设计、制作及程序设计都存在问题,整个调试工作就显得无从下手,给软件调试、硬件故障排出带来非常大的困难,增加不少工作量,甚至造成整个超声波测距系统设计制作的失败。有好的解决办法吗?回答是肯定的,就是程序仿真,编译通过的程序,在Proteus环境下,按设计的硬件原
[单片机]
51单片机P0口的特性及使用方法解析
一、P0口特性: P0口为三态双向I/O口。对于内部有程序存贮器的单片机基本系统(如定制的8051),P0口可以作为输入/输出口使用,直接连外部的输入/输出设备;也可以作为系统扩展的地址/数据总线口。对于内部没有程序存贮器的单片机(如8031),P0口只能作为地址/数据总线口使用。 1、P0口的输出驱动器中也有一个多路电子开关。输出驱动器转接至口锁动器的Q端时,P0口作为双向I/O口使用。 这时,CPU发来的控制信号为低电平,使输出驱动电路的上拉场效应管T1截止。P0口的锁存器为“1”时,输出驱动器中的两个场效应管均截止,引脚浮空;由于P0口输出电路是漏极开路的电路,必须外接10kΩ拉高电阻才能有高电平输出。而写入“0”时,下
[单片机]