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 小米 华为 单反 装机 图拉丁
 
   -> 嵌入式 -> 7.按键循环灯及proteus仿真 -> 正文阅读

[嵌入式]7.按键循环灯及proteus仿真

功能

利用51单片机,加上按键、8个LED小灯、以及限流电阻,设计一个按键按下小灯循环亮灭,这里在不涉及中断的情况下,实现此功能。

1.硬件电路

在proteus中,仿真只需51单片机(80c51),8LED小灯,限流电阻,及一个按键。
首先,8LED小灯接P1口,加限流电阻后共阴极接地(共阴就是二极管低电平汇聚一起,自己的理解哈哈),然后按键在我看来随便接个P2或P3都可以(不知道仿真里面是带了上拉电阻还是其他)

proteus仿真电路图

在这里插入图片描述

2.点亮D1操作先查看有无问题

1.写基础程序(基础定义LED,只需点亮功能即可),其实这一个步骤是我自己思考后加的,原本是直接编最后程序,但是我觉得可以编一个小程序试试硬件电路或其他有没有用,以下为程序简单代码,尝试作用,减少后期试错成本

#include"reg52.h"
#define led P1
sbit k1=P3^2;

//void delay()
//void DigKey()

main()
{
  while(1)
   {
    led=0x01;//点亮D1
   }
}

2.生成hex文件放入proteus软件中的单片机里,达到烧录程序进入硬件仿真的效果,点击运行后,出现如下结果,如图

在这里插入图片描述
D1点亮,说明proteus仿真电路有效,代码编译有效,且生成的hex文件也有效果

编辑按键循环灯程序及仿真实验(代码如下)

#include"reg52.h"

typedef unsigned char u8;
typedef unsigned int u16;

u8 code table[]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80};//定义数组,分别表示从LED D1到D7亮
#define led P1
sbit k1=P3^2;

void delay(u16 i)//延时函数
{
 while(i--);
}

void Deled()//循环灯函数,8个LED,循环8次后继续从D1开始
{
  while(1)
  {
   u8 j=0;
   for(j;j<8;j++)
   {
   led=table[j];
   delay(10000);//延时一定时间,才能在视觉上看出LED循环点亮
   }
  }
}

void DigKey()//按键检测及消抖
{
 if(k1==0)
 {
  delay(1000);
  if(k1==0)
  {
   Deled();
  }
  while(!k1);
 }
}

main()
{
 DigKey();
 return 0;//函数返回值
}

生成hex文件后放入proteus仿真的80c51单片机中,点击运行后,按下按键,灯达到循环流水亮灭效果,以下如图

在这里插入图片描述

问题及解决(代码)

1. 开始遇到自己写的一个函数出现如下情况,如图

在这里插入图片描述
虽然只是警告,但是我想看看警告问题出在哪,于是打开搜索,得到如下答案,然后加了头文件后,依然显示有这个警告,正在我左思右想之际,我个人感觉就是因为字母开头大小写问题,之前所看函数开头都是大写,而自己写的用小写出了问题,于是我把d换成D,编译之后果然没有那个警告了。我真牛哇哈哈哈

在这里插入图片描述
2. 第二个问题(警告)则是main()主函数返回值问题,编程序忘了加return 0;这一个语句,加上这条语句编译后警告就没了,如下图

在这里插入图片描述
加return 0;语句后,如下图

在这里插入图片描述
小小仿真任务完成,哈哈(说明一下哦,这里按键按下后灯循环,再次按下按键将没有任何作用,因为没写哈哈)

  嵌入式 最新文章
基于高精度单片机开发红外测温仪方案
89C51单片机与DAC0832
基于51单片机宠物自动投料喂食器控制系统仿
《痞子衡嵌入式半月刊》 第 68 期
多思计组实验实验七 简单模型机实验
CSC7720
启明智显分享| ESP32学习笔记参考--PWM(脉冲
STM32初探
STM32 总结
【STM32】CubeMX例程四---定时器中断(附工
上一篇文章      下一篇文章      查看所有文章
加:2021-11-14 21:52:49  更:2021-11-14 21:54:30 
 
开发: 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年11日历 -2024/11/26 8:25:04-

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