IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 嵌入式 -> 基于51单片机的霓虹灯(初学者入门) -> 正文阅读

[嵌入式]基于51单片机的霓虹灯(初学者入门)

设计要求:

1.使用PWM驱动8个LED灯

2.人眼不能观察到灯光全灭

3.灯光要有动画效果

实验设备:智能小车上的核心板、STC89C52芯片、芯片手册及核心板原理图。

设计思路:通过keil4创建一个新项目,选用89C52芯片,再创建一个新文件,将文件添加到项目中。写出代码并编译无错后,生成.hex文件,将代码烧入核心板中,观察流水灯模块LED灯变化情况。(本人写的代码是实现流水灯变化)

代码如下:

? ?1? ?#include<reg52.h>

?2

#include"delay.h"

?3

#include"liushuiled.h"

?4

void main()

?5

{

?6

unsigned int i,j;

?7

while(1)

?8

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

?9

{

?10

P1=0xff;

?11

led_ctl(i,LEDON);

?12

delay_s(1);

?13

}

?14

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

?15

{

?16

led_ctl(j,LEDON);

?17

delay_s(1);

?18

P1=0xff;

?19

}

?20

}

?21

//延时函数头文件

?22

#ifndef _DELAY_H

?23

#define _MELAY_H

?24

char delay_ms(unsigned int ms);

?25

char delay_s(unsigned int s);

?26

#endif

?27

//延时函数

?28

#include "delay.h"

?29

?30

char delay_ms(unsigned int ms)

?31

{

?32

volatile unsigned int i,j;

?33

if(ms<0||ms>65535)

?34

return -1;

?35

for(i=0;i<ms;i++)

?36

{

?37

for(j=0;j<120;j++)

?38

;

?39

}

?40

return 0;

?41

}

?42

#if 1

?43

char delay_s(unsigned int s)

?44

{

?45

if(s<0||s>65535)

?46

return -1;

?47

for(;s>0;s--)

?48

{

?49

delay_ms(1000);

?50

}

?51

return 0;

?52

}

?53

#endif

?54

//LED灯控制函数头文件

?55

#ifndef __LIUSHUILED_H

?56

#define __LIUSHUILED_H

?57

#include<reg52.h>

?58

#define LEDON 0 //μ?áá

?59

#define LEDOFF 1 //μ??e

?60

char led_ctl(unsigned char led_num,unsigned char flag );

?61

#endif

?62

//LED灯控制函数

?63

#include<reg52.h>

?64

#include"liushuiled.h"

?65

#if 1

?66

char led_ctl(unsigned char led_num,unsigned char flag )

?67

{

?68

if(led_num<0||led_num>7||flag<0||flag>1)

?69

{

?70

return -1;

?71

}

?72

if(flag)

?73

{

?74

P1 = 1 << led_num;

?75

}

?76

else

?77

{

?78

P1 &= ~(1 << led_num);

?79

}

?80

return 0;

?81

}

?82

#endif

? ? 虽然写代码的过程很难很枯燥,但是写出来并且编译成功之后的那种畅快淋漓的感觉,总是令人陶醉。目前的我还只能算是一个小白,能力弱、基础薄,但是我会利用好这个假期时间,努力学习,积极进取。

  嵌入式 最新文章
基于高精度单片机开发红外测温仪方案
89C51单片机与DAC0832
基于51单片机宠物自动投料喂食器控制系统仿
《痞子衡嵌入式半月刊》 第 68 期
多思计组实验实验七 简单模型机实验
CSC7720
启明智显分享| ESP32学习笔记参考--PWM(脉冲
STM32初探
STM32 总结
【STM32】CubeMX例程四---定时器中断(附工
上一篇文章      下一篇文章      查看所有文章
加:2021-07-14 11:05:27  更:2021-07-14 11:09:09 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/6 13:53:25-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码