历史上的今天
返回首页

历史上的今天

今天是:2024年11月26日(星期二)

正在发生

2021年11月26日 | 【单片机】Keil+Proteus两个按键实现开关灯

2021-11-26 来源:eefocus

运用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的效果实验,持续更新更多实验项目中…

推荐阅读

史海拾趣

GREEGOO公司的发展小趣事
在需要时钟分路的地方,使用专用的时钟分路、放大、整形的芯片,以确保时钟信号的无衰减传输。
Alutronic Kuhlkorper Gmbh & Co Kg公司的发展小趣事
如果电路板上有专用的时钟芯片或晶体振荡器,其下方应覆铜隔离,以防止电源和时钟互相干扰。
DBS Microwave Inc公司的发展小趣事

DBS Microwave Inc公司起源于XXXX年,当时由几位志同道合的电子工程师创立。他们共同意识到,随着无线通信技术的飞速发展,微波器件的市场需求将会急剧增长。于是,他们凭借丰富的专业知识和对市场趋势的敏锐洞察,决定专注于研发和生产高质量的微波射频器件。起初,公司面临着资金紧张、市场竞争激烈等诸多挑战,但创始人团队凭借坚韧不拔的精神和对技术的执着追求,逐步在市场上崭露头角。

Bce Sud公司的发展小趣事

随着公司规模的扩大和市场份额的提升,Bce Sud开始实施国际化战略。公司先后在多个国家和地区设立了研发中心和销售网络,进一步扩大了市场份额。通过与国际知名企业的合作与交流,Bce Sud不断提升自身的技术水平和国际竞争力。

Heraeus公司的发展小趣事

在快速发展的同时,Bce Sud始终关注企业社会责任和可持续发展。公司积极参与环保、公益等活动,致力于为社会做出贡献。同时,公司还注重员工的培训与发展,为员工提供良好的工作环境和职业发展机会。这些举措不仅提升了公司的社会形象,也为公司的长远发展奠定了坚实基础。

这些故事基于一般的电子行业公司成长经历构建,旨在展示一个虚构的电子行业公司如何从初创走向成功的过程。虽然故事中的公司名称和具体细节是虚构的,但其中的发展逻辑和经验教训对于现实中的电子行业公司来说仍具有一定的参考价值。

ARCOLECTRICSWITCHES公司的发展小趣事

面对全球化的趋势,ARCOLECTRIC SWITCHES公司制定了国际化发展战略。公司积极开拓海外市场,设立海外分支机构,拓展国际业务。在国际化进程中,公司注重跨文化管理,尊重不同国家和地区的文化差异,努力融入当地市场。通过国际化战略的实施,ARCOLECTRIC SWITCHES公司的业务范围不断扩大,国际影响力逐渐提升。

这些故事虽然基于虚构,但反映了一个电子企业在发展过程中可能经历的关键阶段和挑战。实际中,ARCOLECTRIC SWITCHES公司的发展历程可能因市场条件、技术变革、竞争环境等多种因素而有所不同。如果您需要了解该公司具体的发展故事,建议查阅相关官方资料或行业报告。

问答坊 | AI 解惑

哪位知道 印字为 PBA1 TSOP-5 贴片 是什么IC

:L 哪位知道 印字为 PBA1  TSOP-5 贴片 是什么IC…

查看全部问答>

如何从零开始开发一款嵌入式产品(20年的嵌入式经验)

这是在其他网站上看到的,有多好就不说了,大家看看吧! …

查看全部问答>

Windows CE驱动程序开发.pdf

Windows CE驱动程序开发.pdf…

查看全部问答>

S3C2410管脚复用超级基础问题

新手提问,请勿取笑,呵呵。 S3C2410在管脚复用的时候有这样一段代码: //set GPG1 as EINT9 for CS8900A value = INREG32(&pOalPortRegs->GPGCON); OUTREG32(&pOalPortRegs->GPGCON,(value & ~(3…

查看全部问答>

S3C6410 Camera接口获取图像成功,但是数据全是0.求助!!!

我用在WINCE 使用S3C6410的摄像头驱动,应用程序中使用DeviceIoControl来设置摄像头属性和获取一帧数据。 在驱动的程序中看到了它的控制代码如下: // prepare  准备好DMA缓存,设置成 CAPTURE / VIDEO / PREVIEW 模式 #define  ...…

查看全部问答>

有个产品使用了一段时间后无法启动了,帮分析分析

产品最初正常工作,内核和应用程序都好的。过了一段时间后启动异常。 步骤是开机Bootloader启动,启动时加载了LOGO界面填充了液晶的显示缓冲区,后来就停在这里了。 我可以按照原来的方式烧内核,更换了画面也可以显示。 重烧了BOOTLOADER后也没 ...…

查看全部问答>

昨天收到开发板,今天做了第一块STM32的板子

看看有没有问题,第一次玩STM32,没有什么经验,硬件是按照st-link制作的,做了一些修改(st-link本来也是一块开发板)。准备自己做JTAG下载工具或者调试工具,呵呵,如果搞的定的话。PCB还没铺地,其他都OK了。发现一个错误,应该BOOT1接地,BO ...…

查看全部问答>

μC/OS-II实时性能测试指标

μC/OS-II实时性能测试指标   衡量嵌入式实时操作系统的好坏一般主要参考以下主要性能指标参数: 任务切换时间、中断响应时间、任务响应时间、任务创建/删除时间、交替信号量时间、取得/释放信号量时间、交替消息队列传输时间等。本文仅对前2个 ...…

查看全部问答>

51单片机实践群179146897

欢迎51单片机初学者加入…

查看全部问答>