【单片机】滑稽AT89C52表情实现

零、原因

在群里看到了这样一个表情:



这是用51做的,刚好开发板上有8个小灯,想实现一下。

一、代码

新建工程,写入如下代码:

#include<reg52.h>

sbit ADDR0 = P1^0;
sbit ADDR1 = P1^1;
sbit ADDR2 = P1^2;
sbit ADDR3 = P1^3;
sbit ENLED = P1^4; void delay400ms(void) //误差 0us
{
unsigned char a,b,c;
for(c=19;c>0;c--)
for(b=20;b>0;b--)
for(a=130;a>0;a--);
} void main()
{
unsigned char cnt = 0,n,i;
ADDR0 = 0;
ADDR1 = 1;
ADDR2 = 1;
ADDR3 = 1;
ENLED = 0; while(1)
{
switch(cnt)
{
case 0:
{/*第一部分,灯从左至右依次点亮*/
n = 0xFF;
while(1)
{
P0 = n; delay400ms(); if(n == 0x00)break; n = n>>1;
}
cnt++;
} case 1:
{/*第二部分,灯从右至左依次熄灭*/
n = 0xFF;
while(1)
{
P0 = ~n; delay400ms(); if(n == 0x00)break; n = n<<1;
}
cnt++;
} case 2:
{/*第三部分,灯从左至右依次点亮且熄灭上一个*/
n = 0x80;
while(1)
{
P0 = ~n; delay400ms(); if(n == 0x01)break; n = n>>1;
}
cnt++;
} case 3:
{/*第四部分,灯从右至左依次点亮且熄灭上一个*/
n = 0x01;
while(1)
{
P0 = ~n; delay400ms(); if(n == 0x80)break; n = n<<1;
}
cnt++;
} case 4:
{/*第五部分,灯同时点亮后又同时熄灭10次*/
n = 0x00;
for(i = 0; i<20 ;i++)
{
P0 = ~n;
delay400ms();
n = ~n;
}
cnt++;
} case 5:
{/*第六部分,前后四个灯为一组两组灯交替点亮8次*/
n = 0xF0;
for(i = 0; i<16 ;i++)
{
P0 = n;
delay400ms();
n = ~n;
}
cnt++;
} case 6:
{/*第七部分,第3,7,1,4,6个灯依次点亮且熄灭上一个灯3次*/
for(i = 0; i<3 ;i++)
{
n = 0x20;
P0 = ~n;
delay400ms();
P0 = 0xFF;
delay400ms();
n = 0x02;
P0 = ~n;
delay400ms();
P0 = 0xFF;
delay400ms();
n = 0x80;
P0 = ~n;
delay400ms();
P0 = 0xFF;
delay400ms();
n = 0x10;
P0 = ~n;
delay400ms();
P0 = 0xFF;
delay400ms();
n = 0x04;
P0 = ~n;
delay400ms();
P0 = 0xFF;
delay400ms();
}
cnt++;
} /*大家还可以再加更多组合,记得cnt++*/ default : cnt = 0;break;
/*组合结束,重新开始*/
}
} }

保存,下载到单片机里:



成功实现效果~

二、总结

兴趣很重要,单片机很好玩,哈哈

【单片机】滑稽AT89C52表情实现的更多相关文章

  1. nodejs之mock与跨域代理的三两事

    emmm...好久没写博客了,都忘了该怎么开始. 那就先说下mockjs.因为一些原因,导致后台接口没有数据,那么我们就开始自己造数据,使用的是比较流行mockjs,根据文档就能简单的配置,然后开始愉 ...

  2. Warm_up(HCTF_2018)

    Warm up 考察知识点: 文件包含漏洞 代码审计 解题步骤 首先我们进来看到了一个滑稽的表情,没啥别的东西,先看看源码 源码中发现有注释 source.php 我们访问source.php,得到代 ...

  3. [每日电路图] 1、基于AT89C52单片机最小系统接口电路【转】

              come from:http://www.21ic.com/dianlu/basis/interface/2015-04-21/621607.htm AT89C52是美国Atmel ...

  4. 【转载】芯片级拆解51、AVR、MSP430、凌阳61、PIC,5种单片机,多张显微照片

    先秀一张解剖照,放大裁剪,小米1S微距拍摄,800万像素摄像头很给力!今天等待被拆的是5个单片机芯片:(1)凌阳16位单片机SPCE061A ,这是我接触的第一个单片机,最高主频49MHz,32KB的 ...

  5. Keil uVision4 创建51单片机工程

    Keil uVision4 创建51单片机工程 版权声明:未经授权,严禁转载! 在学习51单片机的过程当中,我们需要使用 Keil uVision4 来创建一个项目,今天就来图示一下创建的流程. 首先 ...

  6. 如何快速入门单片机C语言

    一.为什么要学单片机技术? 传统的电子产品升级改造成智能化的电子产品需要用到单片机技术.也就是说传统的电子产品如电视机.电子表.计算器.数码相机.手机.MP3.遥控器.洗衣机等产品智能化.微型化,需要 ...

  7. 单片机小白学步系列(十三) 点亮第一个LED——好的開始,成功的一半

    前面介绍了非常多概念知识.做了非常多准备工作,从这一节開始,我们正式開始单片机的学习.我们将使用单片机完毕一项非常easy的工作:点亮一个发光二极管(即LED:Light-Emitting Diode ...

  8. 【零基础】彻底搞懂51单片机各种型号(ATMEL系列)

    零.前言 初学者开始学习51单片机时往往先是一愣,说好51单片机啊,咋个型号是AT89C52,这个S52又是咋回事?上学的时候大都懵懵懂懂就这么用着,但始终没整明白,所以今天我们就彻底搞明白这些“51 ...

  9. 【零基础】入门51单片机图文教程(Proteus+Keil)

    参考资料: https://www.jianshu.com/p/88dfc09e7403 https://blog.csdn.net/feit2417/article/details/80890218 ...

  10. AVR单片机教程——示波器

    本文隶属于AVR单片机教程系列.   在用DAC做了一个稍大的项目之后,我们来拿ADC开开刀.在本讲中,我们将了解0.96寸OLED屏,移植著名的U8g2库到我们的开发板上,学习在屏幕上画直线的算法, ...

随机推荐

  1. 今天记录一下vue更改时间格式的js

    首先定义js文件,我这边定义为date.js,里面包含了增加零的处理 //date.jsexport function formatDate(date, fmt) { if (/(y+)/.test( ...

  2. CDS标准视图:功能位置信息 I_FunctionalLocationData

    视图名称:I_FunctionalLocationData 视图类型:基础视图 视图代码: 点击查看代码 @EndUserText.label: 'Functional Location Data' ...

  3. ASP.NET Core - 日志记录系统(二)

    本篇接着上一篇 [ASP.NET Core - 日志记录系统(一)] 往下讲,所以目录不是从 1 开始的. 2.4 日志提供程序 2.4.1 内置日志提供程序 ASP.NET Core 包括以下日志记 ...

  4. WPF 无边框窗体改变大小和移动

    WIN32 API: private const int WM_NCHITTEST = 0x0084; private readonly int agWidth = 12; //拐角宽度 privat ...

  5. Nginx日常运维方法Linux版

    1,安装? 下载RPM:wget http://nginx.org/packages/centos/7/x86_64/RPMS/nginx-1.10.0-1.el7.ngx.x86_64.rpm 离线 ...

  6. MPC收藏

    收集有关MPC的优秀文章,方便查阅. 同态加密 原理 介绍 程序员的干货!核心理论之同态加密 https://mp.weixin.qq.com/s/1uH0UjnS_Mo8ShXJ-16UXw BGV ...

  7. Secure Face Matching Using Fully Homomorphic Encryption-2018:学习

    本文学习论文"Secure Face Matching Using Fully Homomorphic Encryption-2018"和"基于全同态加密的人脸特征密文认 ...

  8. HTTPS 证书自动化运维:基础知识与重要性

    简介: 随着互联网的飞速发展和网络安全威胁的日益增多,HTTPS(HyperText Transfer Protocol Secure)已经成为保护网站和用户数据安全的标准协议.HTTPS 证书的管理 ...

  9. 开源接流:一个方法搞定3D地图双屏联动

    老大提需求:一份数据,在2D地图上可编辑,在3D地图上显示高度信息,关键是两个地图得支持视图同步,末了还来句"两天时间够了吧?"我饶了饶头,内心各种问候...,代码如何下手,特X的 ...

  10. Luogu P10842 Piggy and Trees 题解 [ 绿 ] [ 拆边 ] [ 贡献思维 ] [ 组合数学 ]

    Piggy and Trees:把路径拆成边的思维题. 思路 一看到这题的路径,就想到了 Luogu P3177 树上染色 这题化路径为边的贡献,分别计算的思维. 那么对于此题,先来观察题目里式子的意 ...