? ? ? ? 大家拿到国信长天这块开发板的时候先不要着急下手编程,一定要先看一下这块板子都有哪些外设,然后再简单分析一下原理图,先大概了解一下各个外设是跟哪些IO口连接,这样也方便我们后续的编程。
? ? ? ? 这次我们要做的是如何利用这块开发板上的LED灯做一个跑马灯设计,咱们从易到难,逐个讲解板子上的外设。
设计内容:
? ? ? ? 1、让八只LED灯整体闪烁三次,间隔为1秒钟;
? ? ? ? 2、LED灯从左到右逐渐点亮,间隔为0.5秒;
? ? ? ? 3、LED灯从左到右逐渐熄灭,间隔为0.5秒。
? ? ? ? 相信大家都已经看过这个电路图了,板子上的LED灯与一个74HC573锁存器相连接,74HC573锁存器又与一个74HC02或非门连接,最后又和74HC138译码器相连接,所以我们如果想驱动LED灯的话,需要先驱动74HC138译码器,继而驱动74HC02和74HC573锁存器对LED进行操作。
74HC138译码器真值表
? ? ? ? 想要控制Y4我们需要怎样,肯定是通过输入端A、B、C来控制,通过真值表我们发现,要想选中Y4的话我们只需要让C为高电平,B为低电平,A为低电平,即C=1;B=0;A=0;此时Y4为低电平,74HC02是一个而输入或非门,通过电路图我们可以发现WR实际上是与GND相连接,因为咱们选择的是IO模式编程,所以用了一个跳线帽把WR与GND连在了一起,那就是低电平嘛,这样的话那Y4=0,WR=0,Y4C=1;此时74HC573导通,咱们就可以通过单片机P0口来控制LED灯了,总结一下,想要驱动LED灯、继电器、蜂鸣器等外设的话,咱们只需要通过A、B、C让74HC138译码器的对应输出端为低电平就行了。
? ? ? ? 参照上面知识和电路咱们就可以着手写代码了。
#include<stc15f2k60s2.h>
sbit HC138_A=P2^5;
sbit HC138_B=P2^6;
sbit HC138_C=P2^7;
void LED_Run();
void delayms(int ms);
void main()
{
while(1)
{
LED_Run();
}
}
void LED_Run()
{
int i;
HC138_C=1;
HC138_B=0;
HC138_A=0;
for(i=0;i<3;i++)
{
P0=0X00;
delayms(1000);
P0=0XFF;
delayms(1000);
}
for(i=0;i<8;i++)
{
P0=(0XFF<<i);
delayms(500);
}
for(i=0;i<8;i++)
{
P0=~(0XFF<<i);
delayms(500);
}
}
void delayms(int ms)
{
int i,j;
for(i=ms;i>0;i--)
for(j=845;j>0;j--);
}
这些日子一直在简书上使用markdown写作,已经渐渐的痴迷于这种简洁纯粹的写作方...
1 . 目标 演示下图的git reset 各选项的效果。 2. Git Reset操作说明 图中说明:...
Greediness(贪婪型):最大匹配 X、X*、X+、X{n,} 是最大匹配。例如你要用 “....
从另一台机器上复制过来的项目,由于两台机器的库目录不一致,导致了stdio.h等很...
本文实例讲述了正则表达式中的操作符及说明。分享给大家供大家参考,具体如下: ...
3月22日消息 外媒 Winfuture 报道,此前微软面向 Insider 预览用户公布了 Window...
Go原生就支持连接数据库,所以在使用 Golang 开发时,当需要数据库交互时,即可...
ajax 实现三级联动,相当于写了一个小插件,用的时候直接拿过来用就可以了,这里...
2月23日消息 据外媒 Windows Latest 今日报道,借助 Windows 10 Sun Valley 更新...
橡皮擦一个逗趣的互联网高级网虫。 观前提醒本篇文章涉及知识点巨大建议先收藏再...