转载自:https://news.html5.qq.com/share/1820160931?ch=060000&tabId=&tagId=1023433&docId=1820160931&url=http%3A%2F%2Fmp.weixin.qq.com%2Fs%3F__biz%3DMzI1NjE4MTA3Mg%3D%3D%26mid%3D2656416755%26idx%3D1%26new_sn%3DAAAAAGbAZs3TqFTRoHQWBKienm8&clientWidth=360&dataSrc=&sc_id=M9I70CC
【嵌牛导读】:嵌入式技术越来越深入我们的生活,而单片机是嵌入式技术知识中的一个重要模块,而我们又该怎样入门单片机而后登堂入室呢?这篇文章将以keil和proteus两个软件通过实现流水灯让你贴切的体会。
【嵌牛鼻子】:keil,proteus,电路仿真,电路设计
【嵌牛提问】:我们常常面对诸多大佬的不同忠告,对于怎么学习新知识停滞不前,一直无法找到适合自己的方法,那对于单片机的学习,我们又应该怎么学习呢?
【嵌牛正文】:对于上面的问题,我认为实践是最重要的,让自己有一个确切、感官的认识对单片机学习非常重要,下面的文章相信会对你有不少的启发。当然,这文章只是针对小白,大佬可以不看(没啥意义)
【Keil+Proteus仿真】51单片机实现心形流水灯
15自2益起来2017-07-27
心形流水灯制作
第一步:在Proteus中搭建仿真硬件电路
1./* 放置单片机芯片(选择AT89C52) */
在搜索框中以关键字来搜索再搜索结果中找到并选中“AT89C52”接着单击“OK”按钮回到绘图界面中单击左键放置单片机具体操作如下图所示:
2./* 放置LED灯 */
同样在搜索框中输入“LED”来搜索再在搜索结果中选择LED-BIBY(当然你也可以选择其他的)放置在绘图区内合适的地方并摆成心形图样具体情况如下图所示:
3./* 给LED灯连接导线 */
在Proteus中不用链接GND只需链接VCC即可这里我们使用16个LED分别使用单片机的P0口和P2口具体情况如下图所示:
第二步:在Keil中编写实现程序
1./* 建立工程 */
其中LED.c文件用于存放各个功能的子函数而delay.c文件则用于存放延时函数主函数直接调用前面的两个文件中的子函数即可具体操作如下图所示:
2./* 在LED.c源文件中编写功能子函数 */
turn_off(1)表示熄灭第一个LED灯turn_on_Only(int i)实现的功能是仅点亮对应位的LED灯其他灯不亮turn_on_Only(1)表示仅点亮第一个LED灯具体情况如图:
3./* 在delay.c源文件中编写延时函数 */
具体情况如下图所示:
4./* 在main.c文件主函数中 */
调用各个子函数来实现流水灯功能具体情况如下图所示:
第三步:将Keil编译后生成的hex文件下载到单片机中
1./* 在Keil中编写完所有代码 */
进行编译使其生成hex文件具体操作情况如下图:
2./* 在Proteus中双击单片机芯片 */
在弹出来的对话框中将生成的hex文件下载到单片机具体操作情况如下图:
3./* 运行仿真电路观察效果 */
具体操作情况如下图: