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 小米 华为 单反 装机 图拉丁
 
   -> 嵌入式 -> 如何用Keil uVision3和ISIS 7 Professional中C51单片机做出 LED流水灯 -> 正文阅读

[嵌入式]如何用Keil uVision3和ISIS 7 Professional中C51单片机做出 LED流水灯

大家好,今天教一教大家如何做出LED流水灯的实验,本文将分为四个部分,第一部分将教大家如何用ISIS软件排布电路,第二部分教大家如何用Keil写出实现流水灯的代码,第三部分教大家如何将二者联系起来,第四部分是结语。

一.排布电路

1.首先我们先打开软件,这里我使用的是Proteus 7 Professional图标如下:

?

2.接下来我们打开软件,找到“P”的按钮(看图片中红圈)点击进入找寻我们所需的单片机

?3.在搜索栏输入“89C51”看到左边最上面一个就是我们这次要找的C51单片机“AT89C51”选中之后点击右下角的“OK”按钮

?4.点击“OK”后我们自动会回到主界面,这时光标变为了铅笔样式,我们点击一次鼠标左键即可出现所选单片机,可以通过滑动鼠标进行位置的改变,也可以通过键盘上的“+”按钮进行单片机的旋转,之后我们再点击一次鼠标左键即可将单片机放置于操作界面上,如下图所示:

?5.现在我们就要寻找LED灯了,首先跟寻找C51单片机一样重复上面的操作,只是在搜索的时候输入“LED”,这里我选择了一个黄灯?,接下来如何放置也是和单片机的放置方法相同。

?6.那么我们需要实现流水灯,所以要放多个灯,(注意灯的放置的方向)这时我们继续点击鼠标左键,会继续出现LED灯,依次放置即可:

?7.现在我们要将他们挨个与单片机上的端口连接,我们将鼠标移到P0.0/AD0端口处,点击鼠标左键即可进行线的放置,在移动光标移到LED灯的左端接口点击鼠标左键,那么电线就布置成功了,最后的效果图如图所示?:

?8.那么接下来我们要放置电阻,这里起到的是限流的作用,寻找方式也是和单片机的方式一样,在搜索栏中输入“Resistors”,这里我选择的是“0.6W Metal Film”,右边点击的是第一个之后点击“OK”

?9.之后我们将其放置,(注意电阻的放置方向),然后我们将其依次与LED灯连接,效果如图所示

?

?10.接下来我们要放置电源,我们点击鼠标右键点击“Place”,点击“Terrminal”再点击“Power”即可放置和单片机方式一样:?

?11.放置成功后,在进行电线的连接,效果如图所示:

?12.到此为止,我们的电路排版就算完成了,接下来就是我们如何通过代码实现我们想要的流水灯的效果。

二.通过使用keil软件输入代码,来实现所要的流水灯效果:

1.首先呢,我这次使用的软件是Keil uVision3,图片如下图所示:

?2.我们接下来打开keil,要生成一个hex文件,这个文件是我们与上一个软件之间搭建桥梁的一个重要文件,我们打的代码就会储存于其中随后应用于上一个文件,首先我们新建一个工程

?3.这里我将其命名为demo2(因为之前有一个是命名为demo)之后会出现选择CUP的界面,我们一定要选择和我们刚刚上一个软件所选择的单片机型号相同即“AT89C51”,(在有书本图标旁边写的是Atmel)

?

?4.点击“确认”后我们会出现这个界面,我们点击“否”就可以了

?

?5.接下来我们要在工具栏(左上角)的 File中新建一个文件

?6.点击后会出现一个输入代码的框,这时我们再按Ctrl+S保存为demo2.c一定要将后缀修改为.c。这个文件就是我们要的C语言源文件

?7.之后我们点击左边的项目工作空间,点击Target的Source Group1下面,鼠标右击点击“Add Files to Group'Source Group' ”:

?8.之后所出现的界面双击demo2.c就可以将其添加到Source Group1文件夹中

?如果出现这种情况不用担心,这时已经添加好了,直接关了就可以了:

?8.这时候我们就发现Source Group1中就有我们的demo2.c,那么下来就是打代码的时间啦

?9.这里我建议大家打代码是可以在vs里面打,因为这个软件直接打的话会很麻烦,所以会建vs里面打代码,接下来就是教大家如何打出我们所需代码了,这里我先写了部分代码的注释:

?10.接下来为大家解释第16行代码的具体含义:这里的的P0 << 1是指左移的意思,举个例子我们上面的代码是让P0 = 0xfe,这里0xfe是十六进制转换为二进制就是1111 1110,当P0左移时P0也就等于1111 1100,向左移一位,空出的位数补0,但是我们只是让第二个灯亮,其余灯灭,而这时我们的P0的值是让第一二的灯亮其余的灭,所以我们要通过或运算做到我们所期望的效果,这里的或运算与我们大学所学的离散数学有关。

????????大家应该知道1V0=1(这里的V是或的意思),这个就是我们或运算的核心,这里我用的是0x01,转换为二进制就是0000 0001,大家跟我一起来看,当P0左移一位时是1111 1100,这时我们的或运算进行使用也就是1111 1100 V 0000 0001 = 1111 1101,多么美妙,这是就是第二个灯亮,其余灯灭,那么我们再来一次,再左移一位也就是1111 1010,那么或运算登场1111 1010 V 0000 0001 = 1111 1011

? ? ? ? 好了这就是这一行语句的基本含义,抱歉由于个人水平有限,自己很难给大家讲清楚,也是自己想了些时候才有所体会,望大家多多包涵,那我们接着继续

?11.这里我简单的解释了一下,相信读者们一定会理解其中的含义:

void delay(u16 num)//这里是前面定义的delay函数括号里面是要设置的灯闪烁间隔时间
{
	u16 x, y;//不知道的可以看一看前面几步
	for (x = num; x > 0; x--)
	{
		for (y = 110; y > 0; y--)
		{
			;
		}
	}
}

12.这时我们将所打代码复制到keil上并且点击下图中红圈的按钮,观察下方的框里是否显示有error有的话就是代码打错了(这里我是0个error就是没有错误的意思,大家输入的代码也要有这样的显示哦):

三.二者结合

1.好了,现在我们输入代码的过程就结束了,接下来就是生成hex文件,将其与我们上一个软件联系起来,让我们开始吧,首先执行如图所示的操作:

?2.下面我们点击“Option for Target ‘Target 1’”点击Output,在Create HEX File处打勾,再点击确定即可:

?3.这时我们再点击下图中红圈按钮,即可生成一个hex文件(可看下方的框中所画的红线)

?4.这时我们可以回到上一个软件中,双击C51单片机即可出现如下图所示界面

?5.我们再点击图中红圈内容

?6.点击之后出现如下界面,我们找到我们之前所存储keil文件处找到以.hex为后缀的文件,点击“打开”即可:

?7.我们再点击红圈的内容,也就是“OK”即可

?8.之后再点击左下角的按钮“play”即可开始运行即演示我们的流水灯实验

?9.想要结束运行可点击左下角一列图标中最右边的一个(红圈)即可结束:

?四.结语

那么大家辛苦了,这么有耐心看我讲这么长时间的流水灯实验,由于本人是一位知识还很浅薄的学生,一些的点没有讲的那么清楚,所以希望大家能够理解。大家有什么疑问也可以留言向我提问等等各种方式,只要是我看到的会尽自己一切能力给大家解答的,那么,争取下次给大家带来更优质的文章,感谢大家的阅读,谢谢大家,再见啦!

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

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