proteus跑马灯仿真_不花费一分钱,实现跑马灯编程实验

建立仿真工程

初学者学习单片机编程,并不需要去网上买个开发板才能开始编程做实验,若是想先了解,可以先用proteus仿真软件来做实验,Protues软件具有其它EDA工具软件的功能。这些功能是:

1.原理布图

2.PCB自动或人工布线

3.SPICE电路仿真

另外,它可以仿真51系列、AVR、PIC、ARM、等常用主流单片机。还可以直接在基于原理图的虚拟原型上编程,再配合显示及输出,能看到运行后输入输出的效果。配合系统配置的虚拟逻辑分析仪、示波器等,Proteus建立了完备的电子设计开发环境。下面用AT89C55单片机外部连接8个LED反光二极管,采用共阴极连接方法。当单片机管脚输出为0时,LED亮;当管脚输出为1时,LED灭。

6b22d23e4b97357269ead8d24440d500.png

链接方法

编程环境

使用Keil 开发编译环境,首先建立一个新工程,接着建立一个.C文件,如main.c,单片机运行程序入口main(),开始编写程序代码。

a0e11ee7497aa609eaef369cb1be3659.png

编程环境

跑马灯程序代码

跑马灯需要一个延时程序,延时子程序调用delay(),然后单片机管脚在不同时段输出控制LED发光二极管,进行跑马灯的控制。以下贴上本次实验代码。欢迎讨论留言!

#include

#include

typedef unsigned char uint08;

typedef unsigned short int uint16;

typedef unsigned long int uint32;

void delay_ms(uint16 ms)

{

uint16 i,j;

for(i=0;i

{

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

{

_nop_();

}

}

}

// 0x01 0x02 0x04

uint08 display1[8] = {0x01,0x03,0x07,0x0f,0x1f,0x3f,0x7f,0xff};

uint08 display2[8] = {0x80,0xc0,0xe0,0xf0,0xf8,0xfc,0xfe,0xff};

void main()

{

uint08 i;

uint08 temp;

uint08 ptemp;

// 初始化变量

P2 = 0xff;

ptemp = 0;

while(1)

{

if(ptemp>=8)

{

ptemp = 0;

}

temp = display1[ptemp]; // ÿ´ÎÏÔʾledÊýÁ¿¼Ó1µÄ×Ö¶ÎÂë

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

{

P2 = ~temp;

temp <<= 1;

delay_ms(200);

}

temp = display2[ptemp];// ÿ´ÎÏÔʾledÊýÁ¿¼Ó1µÄ×Ö¶ÎÂë

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

{

P2 = ~temp;

temp >>= 1;

delay_ms(200);

}

ptemp++;

}

}

100dcff52b1bbddda5827b3647d43afe.gif

效果图

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/244712.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

java异常 说服力_异常常见面试题目

1) Java中什么是Exception?这个问题经常在第一次问有关异常的时候或者是面试菜鸟的时候问。我从来没见过面高级或者资深工程师的时候有人问这玩意&#xff0c;但是对于菜鸟&#xff0c;是很愿意问这个的。简单来说&#xff0c;异常是Java传达给你的系统和程序错误的方式。在ja…

linux下python脚本print中文显示不正确_在终端上运行python脚本,没有打印或显示-为什么?...

通过艰苦的学习Python&#xff0c;第25课。我尝试执行脚本&#xff0c;结果如下&#xff1a;myComp:lphw becca$ python l25myComp:lphw becca$终端中不打印或显示任何内容。这是密码。def breaks_words(stuff):"""This function will break up words for us.&q…

美团科技 Java工程师_美团网java工程师面试都会问哪些问题?

美团网java工程师面试主要考察面试者的专业知识&#xff0c;涉及TCP/IP 线程、synHashMap底层、进程关系、servlet生命周期、pringMVC单例异常、Object方法、ConcurrentHashMap、java并发包、线程池、zookeeper、SpringMVC、JMM、GC等&#xff0c;问的问题很细致&#xff0c;专…

线性共轭梯度法python_python实现的共轭梯度法

共轭梯度法是介于最速下降法与牛顿法之间的一个方法&#xff0c;它仅需利用一阶导数信息&#xff0c;但克服了最速下降法收敛慢的缺点&#xff0c;又避免了牛顿法需要存储和计算Hesse矩阵并求逆的缺点&#xff0c;共轭梯度法不仅是解决大型线性方程组最有用的方法之一&#xff…

java原子操作cas_java并发编程系列二:原子操作/CAS

什么是原子操作不可被中断的一个或者一系列操作实现原子操作的方式Java可以通过锁和循环CAS的方式实现原子操作CAS( Compare And Swap ) 为什么要有CAS&#xff1f;Compare And Swap就是比较并且交换的一个原子操作&#xff0c;由Cpu在指令级别上进行保证。为什么要有CAS&…

power bi 日期计算_PowerBI 动态计算周内日权重指数

在很多行业&#xff0c;尤其是零售业&#xff0c;其销售规律在一周内呈现一定的特点。例如&#xff1a;平时有一种购买特点&#xff1b;周末有一种购买特点。故而一周内的星期一到星期日呈现一定的权重分布。周内日权重分布1 到 12 表示月序号&#xff1b;1 到 7 表示周内日。这…

updatechecker.java_解决ehcache的UpdateChecker问题

问题描述项目中用了ssh框架&#xff0c;每次启动tomcat的时候都特别慢&#xff0c;会在这样一句话下面停留很久[2016-01-08 23:55:51,517 INFO UpdateChecker.java:doCheck:98] ---- New update(s) found: 2.6.5 [http://www.terracotta.org/confluence/display/release/Releas…

vb 6.0 获取重定向的url_接口测试:A07_HttpRunner重定向_04_解决方案

A07_HttpRunner重定向_04_解决方案既然 HttpRunner 是对 requests 模块的封装&#xff0c;那我们就试图从 requests 中寻找答案&#xff0c;在其官网中发现了对重定向的描述和处理&#xff1a;地址&#xff1a;http://cn.python-requests.org/zh_CN/latest/user/quickstart.htm…

java wordcount程序_[java]wordcount程序

词数统计系统。作业解析&#xff1a;这次作业的内容是从本地读取一个程序代码&#xff0c;计算出这个程序中的行数&#xff0c;单词数&#xff0c;也可进行拓展。实现语言&#xff1a;java编程思路&#xff1a;程序是由各种单词和符号组成的&#xff0c;单词包括关键字&#xf…

python怎么创建虚拟环境_anaconda怎么创建python虚拟环境

anaconda创建python虚拟环境的方法是&#xff1a;执行命令【conda create -n your_env_name pythonxx】即可。如果我们要激活虚拟环境&#xff0c;执行命令【activate your_env_name】即可。具体方法如下&#xff1a;创建python虚拟环境conda create -n your_env_name pythonxx…

java servlet深入理解_java 步步惊心 (web ) 深入理解servlet

用户在浏览器中输入一个网址回车&#xff0c;浏览器会向服务器发送一个HTTP请求。服务器端程序接受这个请求&#xff0c;并对请求进行处理&#xff0c;然后发送回应&#xff0c;浏览收到回应&#xff0c;再把回应的内容显示出业。这种请求-响应模式就是典型web应用程序访问过程…

robot ride edit 页面不显示_【框架】robot-framework预研

隔壁组在使用robot framework进行自动化测试&#xff0c;这玩意之前我没接触过&#xff0c;决定来预研一下这个auto test框架。背景一个好的框架&#xff0c;背后少不了一个牛逼的团队或组织(金主爸爸)&#xff0c;也是判断是否值得投入时间学习的一个参考因素(虽然强如塞班系统…

java 多态 降低耦合_java多态

Java多态就是为了降低耦合&#xff0c;方便我们开发的一种特性。比如我写了一个动物的接口。然后我通过接口实现了猫和狗这个类。在我需要使用的时候我可以这样实例化对象动物 w new 猫。这就是向上转型。这里就有一点疑问了&#xff0c;我们开发人员为啥不直接写个猫和狗的类…

jap和java有关系吗_hibernate与jpa有什么区别和联系?

~JPA Java Persistence API&#xff0c;是Java EE 5的标准ORM接口&#xff0c;也是ejb3规范的一部分。Hibernate&#xff0c;当今很流行的ORM框架&#xff0c;是JPA的一个实现&#xff0c;但是其功能是JPA的超集。JPA和Hibernate之间的关系&#xff0c;可以简单的理解为JPA是标…

python找房源_Python租房信息分析!找到最适合自己的房源信息!

原标题&#xff1a;Python租房信息分析&#xff01;找到最适合自己的房源信息&#xff01;租房信息分析import numpy as npimport pandas as pdimport matplotlib.pyplot as pltimport seaborn as snsfile_data pd.read_csv("./data/链家北京租房数据.csv")file_dat…

php 任意字符串_php 生成任意长度字符串的类(只含有数字 只含有字母 混合数字和字母)...

[php]代码库/** 生成随机字符串的类&#xff0c;默认只包含数字、大小写字母*/class randomString {/** 生成的字符串包含的字符设置*/const NUMERIC_ONLY 1; //只含有数字const LETTER_ONLY 2; //只含有字母const MIXED 3; //混合数字和字母/** 用户传入变量&#xff0c;分…

python添加时间戳_在python中添加时间戳

这两个解决方案(AFAIK)都可以在python的任何2.x版本上运行(因此保证了相当多的向后兼容性)仅依赖于regex库的实现&#xff1a;import redata 2011-03-07 0:27:412011-03-06 0:13:412011-03-05 0:17:402011-03-04 0:55:402011-05-16 0:55:402011-05-16 0:55:402011-07-16 0:55:…

php 删除某个文件夹,Php删除指定文件与文件夹的方法

例子&#xff1a;复制代码 代码示例://删除指定目录(文件夹)中的所有文件函数function delfile($dir) {if (is_dir($dir)) {$dhopendir($dir);//打开目录//列出目录中的所有文件并去掉 . 和 ..while (false ! ( $file readdir ($dh))) {if($file!"." && $fi…

python 按月份分组_django ORM queryset按月、周、TruncMonth分组

如何在Django ORM中对datetime字段进行group by查询&#xff1f;在型号&#xff1a;class test1(models.Model):id models.AutoField(primary_keyTrue, uniqueTrue, verbose_nameid)name models.CharField(verbose_namename, max_length200)cdate models.DateField(verbose_…

explode php 报错,ecshop在php5.4下报错怎么办

ecshop在php5.4下报错的解决办法&#xff1a;1、打开“cls_template”文件&#xff0c;并修改“$tag_selarray_shift(explode( ,$tag));”&#xff1b;2、修改“static”&#xff1b;3、修改cls_captcha文件。本教程操作环境&#xff1a;windows7系统、PHP5.4版、Dell G3电脑。…