完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
|
|
相关推荐
1个回答
|
|
概述
如果我们对数字电路和模拟电路没有任何基础,但是我们还是很想学单片机怎么办? 密密麻麻的电路以及一些不知道什么的线和焊针,可能直接把你劝退。 本文是我的第一篇博客,以下是我对单片机的总结,我初学单片机的时候跟大家是一样的,什么都不懂,就会一点点C语言。我经过一个月的学习,把单片机(开发板)的硬件资源全部整了一遍,到现在差不多可以灵活运用上面的所有硬件资源了以及外接资源。 以下是我入门的经历,以及解决办法。 预备知识
我入门开发板为普中51 A2开发板点亮第一个小灯,是我们有单片机之后的一个任务。 首先请保证你已经会C语言到循环语句之前了。 第一个可能让你产生不适的概念 :高电平、低电平。 这里高电平代表的是1,低电平代表的是0。 这里我们将高电平和低电平可以当作正负极。 这里看以下原理图: 通过这个图我们可以看到所有的LED灯的一边都接在了vcc上面,(这里vcc指高电平,也就是正极),而右边则是分别对应接在了P20、P21等上面了。 现在我们需要知道第一个概念:寄存器 其实P2就是一个8bit的寄存器,这里我们可以这样理解: 我们可以将P2寄存器看作一个可以存储8个bit的盒子,也就是说,从最低位到最高位分别是从P20到P27这八个可以存储0和1的小盒子组成了一个寄存器,这个寄存器的名字叫做P2. 我们可以通过C语言来控制每个小盒子让他变换0和1,注意0和1分别是低电平和高电平,也就是负极和正极。 比如我们让P20这个小盒子变成0也就是负极,这个 LED0就可以亮了,因为另一端都都连接着正极。 程序如下: #include 我们也可以不定义LED0,直接用P2=0xfe,代表的也是P20=0,而其他盒子都是1. 流水灯实验 据说流水灯困扰了一些人很长时间。 教程中的流水灯是如何实现的。 有些书上还有一些入门视频引入了一个库函数: intrins.h这个头文件中的_crol_(unsigned char c,unsigned char b)这个函数。 这个函数有两个参数,第一个参数是要循环移动的变量。第二个参数是移动几位。 例子: #include (图画的有点丑不好意思) 总之就是这个循环的样子,让这8个盒子循环移动 这段代码中用到了一个延时函数,说一下延时函数的原理。 延时函数 其实上面用的延时函数就是拖单片机运行的时间,在51单片机中运行一条指令大概要用19微秒, 就是说运行一个i++,或者P2=0xfe 耗时19微秒可以记住上面用的延时函数,经过测试大概令z=1,用时1毫秒左右。 大概先了解这么多应该就可以明白单片机的大概原理了,其实就是通过对寄存器的控制,从而控制单片机上面的硬件资源(先写这么多!) 下一篇中断介绍 |
|
|
|
只有小组成员才能发言,加入小组>>
2557 浏览 0 评论
1156浏览 2评论
759浏览 1评论
512浏览 0评论
271浏览 0评论
447浏览 0评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-26 03:00 , Processed in 1.589858 second(s), Total 79, Slave 61 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号