STC89C52单片机学习(一)----点亮LED

发布者:RadiantSoul最新更新时间:2022-11-14 来源: csdn关键字:STC89C52  单片机  点亮LED 手机看文章 扫描二维码
随时随地手机看文章

1.通过数组实现led流水灯 

#include

 

int m;

unsigned char code leds[8] = {0x7f, 0xbf, 0xdf, 0xef, 0xf7, 0xfb, 0xfd, 0xfe};

 

void delay(unsigned int i)

{

unsigned int j;

unsigned char k;

 

for(j=i; j>0; j--)

for(k=125; k>0 ;k--);

}

 

int main()

{

while(1)

{

for(m = 0; m < 8; m++)

{

P1 = leds[m];

delay(500);

}

}

 

return 0;

}


  使用 if语句实现led灯的控制,i类似于标志位控制进行循环转移

i = 0;

while(1)

{

P1 = leds[i++];

delay(5000);

if(i == 8) i = 0;

}


2.通过独立按键实现LED灯的闪烁流动

运用独立按键需I/O端口,预先置高,表示作为输入端

#include

 

sbit k1 = P3^4;

 

unsigned int m;

unsigned char code leds[8] = {0x7f, 0xbf, 0xdf, 0xef, 0xf7, 0xfb, 0xfd, 0xfe};

 

void delay(unsigned int i)

{

unsigned int j;

unsigned char k;

 

for(j=i; j>0; j--)

for(k=125; k>0; k--);

}

 

int main()

{

k1 = 1;

while(1)

{

for(m = 0; m < 8; )

{

P1 = leds[m];

delay(500);

 

if(k1 == 0)

{

delay(80);

if(k1 == 0)

m++;

}

}

}

 

return 0;

}



3.外部中断1实现按键闪烁

1).实现部分在中断函数里

#include

 

sbit p3_4 = P3^4;

 

unsigned int m;

unsigned char code leds[8] = {0x7f, 0xbf, 0xdf, 0xef, 0xf7, 0xfb, 0xfd, 0xfe};

 

void delay(unsigned int i)

{

unsigned int j;

unsigned char k;

 

for(j=i; j>0; j--)

for(k=125; k>0; k--);

}

 

int main()

{

EA = 1;

EX1 = 1;

IT1 = 1;

 

p3_4 = 0;

P1 = leds[0];

while(1);

 

return 0;

}

 

void led_key() interrupt 2

{

if(m <= 7)

{

P1 = leds[m++];

delay(500);

//m++;

}

else

		P1 = leds[0];			


}


2)实现部分在主函数中

bit flag;         //标志位

 

 

while(1)

{

for(m = 0; m < 8; )

{

P1 = leds[m];

delay(500);

 

if(flag == 1)

{

delay(80); //去抖 -----中断

if(flag == 1)

m++;

}

}

}

 

 

void led() interrupt 0

{

flag = 1;

}


关键字:STC89C52  单片机  点亮LED 引用地址:STC89C52单片机学习(一)----点亮LED

上一篇:【51单片机】1602自定义字符原理及示例(”汉“、爱心及摄氏度示例)
下一篇:单片机led灯闪烁实验总结_玩转51单片机(1):点亮led灯

推荐阅读最新更新时间:2024-11-11 18:17

以AT89C51单片机为智能单元的全自动太阳跟踪系统设计
引言 随着社会经济的快速发展,人类所面临的能源问题越来越突出,太阳能作为一种清洁能源,无疑受到各国的普遍重视。在相同条件下,光照强度越大,太阳能电池输出功率越大。因而增大太阳能电池受光面的光照强度,就可增大太阳能电池输出功率。除了提高太阳光电池本身的转换效应和提高蓄电池充放电效应外,对太阳的自动跟踪是太阳光伏发电系统中另一种提高转换效率的有效手段。因此,在太阳能的利用过程中,实施太阳跟踪是很有必要的。 对太阳进行跟踪的方法很多,但不外乎为采用确定太阳位置所用的两种坐标系统,即赤道坐标系和地平坐标系,并分为双轴跟踪和单轴跟踪。单轴跟踪已在很多文献作了介绍,本文要讨论的为双轴跟踪。为了叙述方便,在以后的陈述中将两种坐标系下的整个系
[单片机]
以AT89C51<font color='red'>单片机</font>为智能单元的全自动太阳跟踪系统设计
做一个最简单的蓝牙小车
需要模块: 1.STC89C52RC单片机+最小系统 2.HC06蓝牙从机模块 3.L298电机驱动模块 4.电源(7v) 5.电机+车轮 以上都可以在淘宝上购买的到。不过建议DIY的同志还是自己买单个原件焊接,比较有学习意义。 第一步 ——车体 小车车体建议自己制作,一是简单,而是可以节省成本,找一块塑料板,买一瓶502胶水,把在网上买的电机直接粘上去就可以了,很稳固。淘宝也有成品的车体,我就是直接买成品的。自己动手太浪费时间也不好看,但是就没有成就感了。 第二步——控制系统 动手制作一个单片机最小系统,安上芯片,非常的简单 51单片机最小系统的电路图大家应该都知道—— 第三部——电机驱动 底盘和最小系统搞好了,
[单片机]
51单片机入门之七:按键检测
按键是单片机系统中最常用的交互方式,大学课程里介绍按键的时候,分为了两种:独立式按键和矩阵式按键。在单片机初期,各种扩展芯片的匮乏,导致了IO口资源的宝贵。而今各种按键管理芯片层出不穷,可以实现用尽可能少的IO口检测较多的按键,所以本人认为,矩阵式键盘如今存在的意义只是用在教学上了。下面介绍按键检测的方法。 功能描述: 图中有8个按键,8个发光二极管,1个数码管。当按键1按下时,数码管显示数字1,同时第一个发光二极管点亮。依次类推,当第八个按钮按下时,数码管显示8,并且第八个发光二极管点亮。 硬件分析:按键的一端接单片机,另一端接地,按键按下后单片机侧为低电平,所以当单片机检测到相应的端口为低电平时即可判断按键被按下,(实
[单片机]
51<font color='red'>单片机</font>入门之七:按键检测
单片机C51位运算应用技巧
位运算应用口诀: 清零取位要用与,某位置一可用或,若要取反和交换,轻轻松松用异或! 移位运算要点 1 它们都是双目运算符,两个运算分量都是整形,结果也是整形。 2 左移:右边空出的位上补0,左边的位将从字头挤掉,其值相当于乘2。 3 右移:右边的位被挤掉。对于左边移出的空位,如果是正数则空位补0,若为负数,可能补0或补1,这取决于所用的计算机系统。 4 运算符,右边的位被挤掉,对于左边移出的空位一概补上0。 位运算符的应用 (源操作数s 掩码mask) (1) 按位与-- & 1 清零特定位 (mask中特定位置0,其它位为1,s=s&mask) 2 取某数中指定位 (mask中
[单片机]
单片机有啥用?现在用的还多吗?
在刚开始工作的时候,当时也没想这么远,一心只想学习一门技术,然后找到一份不错的工作。 至少比去工地搬砖,做普工要强的就可以。 早期在做单片机开发的时候,我一直认为单片机是上个时代的产品,也是属于很传统的行业。 那个时候应该很少人听过单片机,到底是个什么东西? 最近这几年,我明显感觉变化地很快,可能是更多智能产品的带动下,比如说机器人、无人机、智能家居、充电桩,让越来越多人认识到单片机。 另外一个角度就是工资,在这几年都有明显地上涨。 记得我在5年前,当时公司研发岗位缺人,一时半会也招不到合适的。 就计划从公司内部找人来培养,后面找了一个在产线做公司产品维修的小伙子。 他也比较会做人,也聊得来,领导让我们带一下他,我们很爽快也就答应
[单片机]
基于AT89S51单片机的冲床控制器设计
系统硬件配置以AT89S51单片机为核心。AT89S51是一个低功耗,高性能CMOS 8位单片机,片内含4Kb ISP(In-system programmable)可反复擦写1000次的Flash只读程序存储器,器件采用ATMEL公司的高密度、非易失性存储技术制造,兼容标准MCS-51指令系统及80C51引脚结构,内置看门狗(WDT)电路。 功能强大的AT89S51可为许多嵌入式控制应用系统提供高性价比的解决方案。采用该单片机设计的冲床控制器,具有以下几个特点: 图1 控制器的硬件结构框图 ● 控制器采用PLC设计的理念,可靠性高,抗干扰能力强。 ● 面板上6位七段 LED 显示,既可以用来调节参数,工
[单片机]
基于AT89S51<font color='red'>单片机</font>的冲床控制器设计
单片机入门实验七
;*****************************************; ;实验名称: 1个独立键盘控制LED灯实验 ; ;作者: 龙谊 ; ;版本: VER 1.0 ; ;说明: 初学者入门实验 ; ;修改: 无 ; ;编程语言: 汇编语言 ; ;******************************************; ORG 00
[单片机]
如何对GD32 MCU进行加密?
GD32 MCU有哪些加密方法呢?大家在平时项目开发的过程中,最后都可能会面临如何对出厂产品的MCU代码进行加密,避免产品流向市场被别人读取复制。 下面为大家介绍GD32 MCU所支持的几种常用的加密方法: 首先GD32 MCU本身支持防硬开盖破解的功能,GD32 MCU内部Flash直接硬开盖破解读取的数据无法在同型号的产品上运行,因为GD32 MCU内部Flash物理地址和逻辑地址是随机加密的,因而可以有效防止硬破解读取代码的可能,这是GD32 MCU本身支持的,无需使用者进行配置; 可以设置读保护,GD32 MCU支持读保护设置,有些MCU支持低保护等级,设置读保护后,通过ISP出厂BOOTLOADER或者SWD端口均无
[单片机]
如何对GD32 <font color='red'>MCU</font>进行加密?
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved