我们学习单片机,写单片机程序,首先要看看我们做实验的板子的原理图,这是最基本的,我们要知道了单片机的接口的使用情况,电路的驱动方式,所使用的的芯片,这样我才能去开始写程序。
一、电路原理分析
如上图所示就是我们整个板子的原理图了,今天我们只分析数码管和按键相关的部分,其他部分会在后续的教程中详细说明。上图中左上角的U1为主控STC15W408as,28引脚的DIP封装。右上角的LED1就是4位一体的共阴数码管,带时间秒显示点,紧接着下面的四个三极管Q6-Q9你和电阻R17-R20组成了共阴数码管的驱动电路。
在此三极管是作为开关使用,用它来控制数码的阴极的选通与关短;下面点的S1-S3为三个按键,在今天,我们用着三个按键来控制数码管上显示的字符的变化;在按键的左边有个U9和撒你管Q1组成的是蜂鸣器驱动电路。电路介绍完了,接下来看单片机接口使用情况。我们数码管的8个段选接单片机P2口,四个位选通过三极管驱动电路,分别接P3.1/P3.2/P3.3/P3.6,三个按键分别接单片机的P1.2/P1.3P1.4。蜂鸣器做发声元件,实现按键音提示,接的P3.7。电路部分全部介绍完了,接下来就是编程部分了。
二、程序原理分析
首先我们来说数码显示的原理。现在我们的显示电路采用的是动态显示的驱动方式,这样,在每个时刻,其实只有一位数码管是被选通点亮的,因为我们人眼的视觉暂留和LED发光管的余晖,当数码管再快速的选通点亮后,我们人眼看到的就是全部都是点亮的了。具体原理网上有一堆资料,我们不做过多说明。数码管显示首先得有个段选码,有些地方叫字形码,也就是说我要显示个“1”,那对应的单片机需要给数码管一个什么样的数据。具体怎么算请问百度,也可以关注我们我微信公众号或者Q群,里面有快捷的小工具,1秒钟帮你算完,直接复制来用。
有了段码后,就需要我们控制位选码了,比如我要在第三位上显示一个“1”,那就需要在段选码上(本电路中的P2口)送“1”对应的段选码,然后关闭第一、二、四位位选,开通第三位位选。这就完了,但是大家不要忘记了,我们单片机可厉害了,运行完你写的的两句话只要几微秒,对于微秒级别的时间,人眼是识别不出来的,也就说,单片机数执行了我们现实“1”的指令,但是我们人眼看不出来,因为太快了,怎么办呢,它快了,那就让它等等我们人眼吧,好的,这就简单了啊,执行完显示“1”的指令后,等待一会,让我们眼睛看到。这样是等待程序的来由了。
接下来,我们再说按键,从按键原理图中看出,一边接到单片机IO口,一边接电源地,也就说当按键按下后,单片机的IO口就接到电源地上,地上的电压是多少?0V啊,没按按键时,IO口上电平是默认的5V啊,也就说只要我们识别电平就可以知道按键按下没有。这就是程序的原理,具体怎么来写呢?慢慢说,单片机属于数字器件,它只知道高低电平,不知道电压具体是5V还是3.7V的,电压大于它的高电平的阀值,它就认为是高电平;反之它就认为是低电平。程序里我们就让单片机去识别是高电平还是低电平就可知道按键按下没有。
最后说说蜂鸣器,我们用的是有源蜂鸣器,如图所示,只要在接口上给高电平,蜂鸣器就发声,给低电平,蜂鸣器就关闭。
这样一来,全部程序都分析完了,接下来说程序设计的步骤。首先新建工程(这都要说,我也是醉了),完了包含头文件,这里我们包含了两个头文件,一个是官方的STC15.h,另外一个是我们自己写的延时函数头文件delay.h。这两个文件都需要我们手动复制到你的工程文件夹下去,不然编译时会提示找不到文件。完了新建一个C代码文件,我们所有的代码都在这个文件里编写。
-
单片机
+关注
关注
6035文章
44553浏览量
634735 -
led灯
+关注
关注
22文章
1592浏览量
107956 -
数码管
+关注
关注
32文章
1882浏览量
91069 -
驱动电路
+关注
关注
153文章
1529浏览量
108496 -
蜂鸣器
+关注
关注
12文章
891浏览量
45923
发布评论请先 登录
相关推荐
评论