【单片机】Keil+Proteus两个按键实现开关灯

发布者:Xiangsi最新更新时间:2021-11-26 来源: eefocus关键字:单片机  Keil  Proteus  按键  开关灯 手机看文章 扫描二维码
随时随地手机看文章

运用keil和proteus实现LED灯的点亮。(没有开发板,只能依靠仿真软件,等拥有单片机板子之后,进行实物展示)

功能1:Protues画图

功能2:Keil生成.hex文件


进入正文:

一、proteus 部分:

我们首先需要在proteus中绘制我们的图。如何绘图?步骤如下:

1)首先,我们需要新建一个项目。如果此处,不知如何使用proteus创建一个项目,请前往: Proteus和Keil分别创建单片机工程

2)在proteus中找到所需的元器件:

在这里插入图片描述

特别注意: 此处第三步中,本实例中,只需要搜索:AT89C51、CAP、CAP-ELEC、CRYSTAL、LED-BIBY、RES、SWITCH(其他的元器件,本实例未用到)


3)开始绘图(和此图一样即可,一些器件的参数按照此图即可):

在这里插入图片描述

特别注意: 在此处画图时,VDD和接地符号在:

在这里插入图片描述

4)Proteus绘制图完成,现在进入Keil部分。


二、Keil 部分:

我们首先需要新建一个Keil工程。如何创建?步骤如下:

1)如果此处,不知如何使用Keil5创建一个工程,请前往:

Proteus和Keil分别创建单片机工程

2)创建好我们的工程之后,就开始代码的编写:


/*************************实验例程**********************

功能:实现房间照明灯的方便控制,一个照明灯,在门口和床头各有一个(闭合式)开关控制。

开关的闭合并不直接决定灯的亮灭,而开关状态的改变才是决定灯亮灭的关键。即不管两个开关

当前的状态如何,只要有一个开关状态发生变化,都会使照明灯在打亮或者熄灭两种状态间切换。

此试验中,用P0口相连的第一个led来模拟照明灯,而用s2和s3(P1.0和P1.1)来模拟两个开关。

晶振:11.0592MHZ     测试开关有没有变化,主函数:检测到变化就控制灯,然后记录当前状态

******************************************************************/


#include

sbit light=P0^0; //注意某一位表示方法,特殊功能寄存器某一位用Sbit

sbit s1=P1^0;

sbit s2=P1^2;


bit change,s1sta,s2sta;//s1sta,s2sta为开关s1和s2前一时刻的状态,用来和当前的s1与s2状态进行对比,

//进而判决两个开关的状态有无发生变化。

bit keyscan()

{

if((s1^s1sta)||(s2^s2sta)) //^为异或,若两者不同,则结果为1。即若两开关中,任一开关的状态发生变化,则此条件即为真。

change=1;

return change;

}


void main()

{

s1sta=s1;

s2sta=s2;

while(1)

{

keyscan();    //扫描按键状态是否变化,即是否有人更改了按键状态。

if(change)

{

change=0;     //清零

light=~light; //一旦发现有开关状态发生了变化,则灯的状态就取反。

s1sta=s1;     //同时,将s1和s2的当前状态送给s1sta和s2sta,为以后的比较做准备。

s2sta=s2;

}

}

}


3)代码完成之后,我们需要编译,生成需要的.hex文件(此文件需要烧录到Proteus中)


第一步:

在这里插入图片描述

第二步:

在这里插入图片描述

第三步:

在这里插入图片描述

特别注意: 我用的是Keil5,默认生成的.hex文件保存在:

在这里插入图片描述

4)此时,生成了需要的.hex文件,我们再重新进入Proteus中:

在这里插入图片描述

5)此时,.hex文件已经烧录到了Proteus上面了,点击Proteus左下角,即可开始仿真:

在这里插入图片描述

6)点击图中相应的按钮,即可观察效果实现:


完结,撒花…


这只是一个简单的Keil+Proteus的效果实验,持续更新更多实验项目中…

关键字:单片机  Keil  Proteus  按键  开关灯 引用地址:【单片机】Keil+Proteus两个按键实现开关灯

上一篇:【单片机】Keil+Proteus流水灯(模块化编程)
下一篇:【单片机】Proteus和Keil分别创建单片机工程

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

单片机与DSP简单比较
自从2000MCU和DSP完全分家,大家对DSP的认识多为 将部分程序固化从而实现更快处理速度的MCU ,但这个解释总是有点牵强人意。再加上目前流传着这样的一种说法:DSP取代单片机的技术和价格的市场条件已经成熟,大规模推广指日可待。真的是这样的吗?笔者不敢苟同。单片机和DSP各有所长,AVR90单片机是125纳秒一个周期(也是哈弗结构),其内部有SPI、UART等,如果用来作控制、数据采集,只要速度要求不是太高,那么都可以用它,而且用它比用DSP方便。但是如果你的工程中有比较多的算法,特别是信号处理算法,那么用DSP就对了,此时单片机是不能胜任的。 自从2000年MCU和DSP完全分家,大家对DSP的认识多为 将部分程序固化从而实
[单片机]
关于单片机C8051F060的智能功率柜
  1 引言   随着发电机容量的不断增大,对励磁系统的要求越来越高。国内目前使用的各类励磁调节器都非常先进,但功率柜的制造水平却不尽如人意,这势必影响励磁系统整体性能的提高进而妨碍整体发电系统性能的提高。   目前,国产的励磁功率柜普遍存在检测功能不全、信息传送技术、控制和检测技术落后等问题。为了解决这一问题,本文给出了通过采用高集成度单片机C8051F060实现的智能励磁功率柜与CAN总线的通信方法,该方案具有完备的检测、控制和通信功能。   2 C8051F060单片机的特点   C8051FXX系列单片机是美国CYGNAL公司推出的一种与51系列单片机内核兼容的单片机。仅就笔者对C8051F060的使用实践介绍一下
[单片机]
关于<font color='red'>单片机</font>C8051F060的智能功率柜
51单片机STC89C52控制LED流水灯左移(使用位运算符实现)
/*-----------------------包含头文件区域-------------------------*/ #include reg52.h //单片机头文件 /*-----------------------函数声明区域---------------------------*/ void delay(unsigned int xms);//延时函数声明 /*-----------------------主函数区域-----------------------------*/ void main() { unsigned char i,j;//定义无符号字符型变量i和j(范围为0~255) whi
[单片机]
8051单片机串口编程知识总结
最近,把收集到有关单片机串口编程的资料总结一下,有利于把工作做好,材料整理如下: 单片机串口通信原理: 1、51系列单片机的串口有4个模式,可分别用作串并转换、并串转换、异步串行通信(2种模式)。异步串行通信中,有1+8+1和1+8+1+1两种帧格式,多机通信是特殊的通信方式。 2、基本原理是两组移位寄存器。将并行通信转换成串行通信模式(发送部分),或反之(接收部分)。可全双工运行。 3、速度通过移位脉冲决定。具体一般通过定时器1的自动装载模式产生的溢出脉冲给出。 4、电平上采用的是CMOS逻辑。 5、以上是物理层和数据链路层的单片机串口模块的约定,其他层需要软件人员根据需要自行把握。另外,电平需要根据实际通信环境做变换,如232
[单片机]
Maxim发布基于ARM Cortex-M4F内核的超低功耗微控制器系列
微型封装MAX32630和MAX32631可提供快速处理,同时延长电池寿命 中国,北京—2016年11月15日—Maxim推出基于ARM® Cortex®-M4F内核的MAX32630和MAX32631微控制器,可帮助设计者轻松开发高性能健身与医疗可穿戴设备。 随着个人健身和医疗可穿戴应用的快速增长,市场对设备内部的电子元器件也提出了复杂的新要求。这些器件必须尺寸很小,又同时具备高级的功能、处理性能以及最佳的集成外设。此外,器件还须在各种工作模式下同时实现高精度、低噪声与极低功耗,从而确保单次充电即可实现足够长的工作时间。Maxim最新推出的MAX32630和MAX32631微控制器拥有丰富和强大的功能,可以轻松解决上述难题。 M
[单片机]
51单片机8*8点阵LED程序
在8X8点阵LED上显示柱形,让其先从左到右平滑移动三次,其次从右到左平滑移动三次,再次从上到下平滑移动三次,最后从下到上平滑移动三次,如此循环下去。 1. 程序设计内容 8X8点阵LED工作原理说明 :8X8点阵共需要64个发光二极管组成,且每个发光二极管是放置在行线和列线的交叉点上,当对应的某一列置1电平,某一行置0电平,则相应的二极管就亮;因此要实现一根柱形的亮法,如图49所示,对应的一列为一根竖柱,或者对应的一行为一根横柱,因此实现柱的亮的方法如下所述: 一根竖柱:对应的列置1,而行则采用扫描的方法来实现。 一根横柱:对应的行置0,而列则采用扫描的方法来实现。 2. 硬件电路 3.汇编源程序 ORG 00
[单片机]
51<font color='red'>单片机</font>8*8点阵LED程序
单片机的烧录原理
我要问的不是如何制作烧写接口。而是,电脑在通过接口向单片机烧写时(此时单片机内没有程序),电脑是如何通过接口访问内部rom的??对应p口怎么就会指向单片机内部rom(就像单片机是一个rom?) 有三种方式: 1、把单片机当做一个ROM芯片,早期的单片机都是如此。将单片机放在通用编程上编程时,就像给28C256这样的ROM中写程序的过程一样。只是不同的单片机使用的端口,编程用的时序不一样。 2、像AT89S52或AVR单片机一样,在单片机上有SPI接口,这时用专用的下载线将程序烧写到单片机中。这时不同的是,单片机的CPU除了执行单片机本身的指令之外,还能执行对ROM进行操作的特殊指令,如ROM擦除、烧写和校验指令。在
[单片机]
写给对MCU感兴趣的读者
随着科技时代的到来,我们的日常生活中越来越多的充斥着各种各样的电子产品,使社会生产力极大的提高,也使得我们的生活更加的丰富多彩。与此同时,这些电子产品的大量普及也带动了史无前例的创业和就业机遇,按用途大体可以划分为两类电子产品:一类主要为人们提供温饱之后的享乐之用,例如机顶盒、手机、平板电脑、MP3、MP4、电子词典、游戏机、电子宠物、智能玩具等;另一类主要为人们节约劳动力成本或使用的工作流程更加智能化,例如机械手、遥控器、温度检测仪、刷卡计费系统、智能剃须刀、捕猎器、智能调光器、安防器械、医疗器械等。 从市场容量来看,10年前电子产品的主要市场在国外,那个时候我国人民正在努力解决温饱问题。而10年后的今天,我国已经成为了全球最
[单片机]
小广播
设计资源 培训 开发板 精华推荐

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

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

换一换 更多 相关热搜器件
更多往期活动

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

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