一、流水灯1. 硬件电路 开发板的LED灯连接到GPIO的P2口的P20~P27: LED采用共阳极接法。这种接法的好处是点亮LED不需要I/O口输出很大功率电流;GPIO在输出低电平时LED亮。 2. 代码实现(1) 点亮一个LED的基本操作 这里简单给P2口赋值0或1实现GPIO口开关,实际只操作P20端口。由于输出低点平点亮,所以给0x01取反,除了最低位其它位都会变成高电平,效果就是最低位LED亮。 #include "reg52.h" typedef unsigned char u8; typedef unsigned int u16; #define LED_PORT P2 void delay_10us(u16 ten_us){ while(ten_us--); } void main(){ while(1){ LED_PORT=~0x00; delay_10us(50000); LED_PORT=~0x01; delay_10us(50000); } } (2) 使用算术左移实现流水灯 让0x01里的1使用 << 先左移到合适位置,然后整体取反,即可以让想要的位置灯亮。#include "reg52.h" typedef unsigned char u8; typedef unsigned int u16; #define LED_PORT P2 void delay_10us(u16 ten_us){ while(ten_us--); } void main(){ int i=0; while(1){ LED_PORT = ~(0x01<7)i=0; delay_10us(50000); } }(3) 使用库文件左移函数 这里要使用系统intrins.库。下面的循环流水灯使用变量 direction 来表示方法,只占用一个bit即可。 crol 与 << 最大区别是,左移后溢出部分自动补到最右侧。#include "reg52.h" #include "intrins.h" typedef unsigned char u8; typedef unsigned int u16; // 宏定义使用P2端口 #define LED_PORT P2 // ten_us 大约延时10us void delay_10us(u16 ten_us){ while(ten_us--); } /** * 循环流水灯代码 */ void main(){ int i=0; bit direction=0; while(1){ // LED_PORT = _crol_(0xFE, i); if(direction==0){ i++; if(i>=7){ direction=1; i=7; } }else{ i--; if(i<0){ i=1; direction=0; } } delay_10us(1000*(i+1)); } } 这里延时计算把i值也带进去了,会产生类似跳跃的效果。 二、蜂鸣器1. 蜂鸣器介绍 来自百度百科的介绍: 蜂鸣器是一种一体化结构的电子讯响器,采用 直流电压 供电,广泛应用于计算机、打印机、复印机、报警器、 电子玩具 、汽车电子设备、电话机、 定时器 等电子产品中作发声器件。 蜂鸣器在电路中用字母"H"或"HA"(旧标准用"FM"、"ZZG"、"LB"、"JD"等)表示。 主要分类: 压电式蜂鸣器(无源蜂鸣器):使用脉冲信号 电磁式蜂鸣器(有源蜂鸣器):提供电源即可 2. 硬件电路原理图 蜂鸣器需要30mA左右电流进行驱动,51的I/O口驱动能力比较弱,一般不会直接使用I/O口来驱动蜂鸣器,需要使用放大电路。 开发板使用了ULN2003D来驱动蜂鸣器,原理图如下: BEEP接在ULN2003D的12脚,通过单片机的P25来进行控制。 ULN2003 ULN2003是高耐压、大电流复合晶体管阵列,由七个硅NPN 复合晶体管组成。一般采用DIP—16 或SOP—16 塑料封装。ULN2003灌电流可达500mA,并且能够在关态时承受50V 的电压,输出还可以在高负载电流并行运行。它可以直接驱动继电器等负载;输入5VTTL电平,输出可达500mA/50V。 注意3.3V的高电平也可以直接驱动输入端I/O口。 内部结构图: 引脚接线图 3. 代码实现#includesbit BEEP = P2^5; // 蜂鸣器对应管脚 void delay(int); // 声明延迟函数 void beep(int,int,int); // 声明发声函数 /** * 主程序 /** main() { while(1) { beep(100,10,10); // 响100次,频率为100Hz delay(2000); // 延迟2000 0.5ms=1s } } /** * 延迟函数。延迟时间=n 0.5ms **/ void delay(int n) { int i,j; for(j=0;j
微信更新不下于6项变化,建议大家更新由于外界的一些原因,现在我们对社交软件的依赖更加严重了,无论是打开健康码还是和朋友之间进行交流,都要比现实中见面更加的安全一些。而且,微信对于很多办公用户来说也是非常受用,可以说微多少人都错把腹部疼痛当做胃疼?前天昨晚先生下班回家,进家门就几乎软成一滩泥了,脸色苍白。平时那么胖墩墩的一个人,此刻看起来特别的弱不禁风了。先生前几天就一直说胃疼,因为平时身体素质比较好,也就没有当回事儿,心想太臭?太辣?给你每天吃蒜的四大理由你每天会吃很多蒜么?许多人,包括麦麦在内,都非常喜欢吃蒜,但也会顾忌吃蒜后,那恐怖的味道。和韭菜一样,大快朵颐后,便是无止境的臭味,还有些人接受不了大蒜的辛辣味,因为他们的舌头比较为应用赋能!博云容器云产品族正式发布5月23日,博云于线上举行容耀新生,大器所成2022博云容器云产品族发布会,围绕以应用中心,为应用赋能的理念发布全新博云容器云产品族,从资源应用运维和安全四个层面全面升级,用敏捷自为什么比亚迪突然就霸榜了?随着比亚迪换装独家黑科技刀片电池后,比亚迪新能源汽车开始发力,才两年不到,旗下众多车型的销量开始呈井喷式爆发,直至目前,比亚迪已牢牢站稳全球新能源汽车第一的宝座。相信很多之前并不待哈工大基于仿生葫芦的相变材料胶囊研究背景太阳能等低碳和可再生能源的利用和储存受到了广泛的研究关注。太阳能因其无污染易获取成本低廉等特点,已被广泛应用于能源利用和转化。利用和储存太阳能对于有效提高能源利用率和优化能互联网收费时代来临,免费的午餐成历史不知道从什么时候开始,在网上不管干嘛都会有一个价格标签,看电影要钱,看直播要钱,听音乐要钱,存文件要钱,玩游戏也要钱互联网似乎什么都开始跟钱绑在一起,不办几个vip好像就寸步难行了棉花出了什么大事?棉花当前年线,半年线两条均线斜率为正,并且斜率差不多,正好45度,说明,长线趋势处于快速的上涨过程当中。中期趋势线,60线以及30线两条均线,斜率一正一平,说明中期趋势由原来的上涨中国外贸的寒冬中国海关总署发布的外贸进出口数据显示,4月中国出口同比增速3。9,较上月的14。7大幅下降。从行业来看,根据中国机电产品进出口协会的分析,4月机电产品出口额同比微增0。11,增幅明袖珍总裁李创利,16岁创业,资产高达3亿,娶美女秘书为妻1978年以来,深圳这块宝地孕育了无数的企业,创造了数不清的财富,诞生了不计其数的总裁富豪,政商大佬,他们无一不是精神焕发卓尔不群的。但其中偏偏就有这么一位总裁,16岁开始创业,2卡里有美元,也很头疼何女士反映,最近想注销一张中信银行的信用卡,因为里面还有三百多美元,目前陷入了两难境地。视频想要注销信用卡,卡里美元怎么办?何女士他说我卡里有三百一十四多美元,这个钱没用,说是消费