备战蓝桥杯(一)LED的使用

 寒假在学校准备第九届蓝桥杯的单片机开发大赛,从暑假开始也是有半学期没有怎么去写单片机的C程序的。突然一上手感觉也是很懵逼。所以决定把练习的过程和心得体会都写下来。留作一个纪念的同时别人也可以参考我的思路,在今后的蓝桥杯比赛中少走弯路,取得更好的成绩。前一段时间帮老师做项目写技术文档,因为之前从来没写过东西,所以文档写的乱七八糟。我也希望通过这种写感悟的方式来提升自己的写作的水平。

 话不多说,进入今天的正题:蓝桥杯开发板LED的使用。

 

 以上的三个图就是CT107D开发板上的LED的原理图。通过上图我们可以看出,LED是通过74HC573来控制的,只有当573芯片的Q1——Q7端口为低电平的时候LED才会发光。573的使能端口LE又是通过或非门74HC02来控制的只有当WR和Y4同时为0的时候Y4C才为1,这样是或非门的原理0+0 == 1。WR连接的是IAP单片机的P4.2端口。在程序中需要将P4.2端口手动拉低。

 Y4端口连接在一个38译码器(74HC138)上面,对于38译码器的使用,想必大家都在数字电路中学过。没有学过的朋友我在这做一个简单的概述。

 

74HC138是一款高速CMOS器件,74HC138引脚兼容低功耗肖特基TTL(LSTTL)系列。74HC138译码器可接受3位二进制加权地址输入(A0, A1和A2),并当使能时,提供8个互斥的低有效输出(Y0至Y7)74HC138特有3个使能输入端:两个低有效(E1和E2)和一个高有效(E3)。除非E1和E2置低且E3置高,否则74HC138将保持所有输出为高。复合使能输入,轻松实现扩展 兼容JEDEC标准no.7A 存储器芯片译码选择的理想选择 低有效互斥输出 ESD保护 HBM EIA/JESD22-A114-C超过2000 V MM EIA/JESD22-A115-A超过200 V 温度范围 -40~+85 ℃ -40~+125 ℃ 多路分配功能。

在开发板中我们可以看到G1已经连接到了VCC,G2A和G2B也已经接地,所以我们只需要通过单片机将P2.5、P2.6、P2.7三个I/o口送入数据就可以控制38译码器后端的Y0——7八个端口了。下图为38译码器的真值表,大家可以一一对应一下。


 为了简单的记忆,可以将38译码器上的ABC三个端口ABC理解为:A代表1,B代表2,C代表4。如果想让Y5端口为低电平的话就只需将A和C置1(1+4 = 5。如果想使Y3口为低电平的话就仅仅需要将A和B两个端口置1即可,这种方法十分的使用而且便于记忆。

所以如果想使LED发光两种方法,举个让LED1发光的栗子:

  1. 直接对一列端口进行操作。
    void LED1()
    {
        P2 = (P2&0x1f)|0x80;
        WR = 0;
        P0 = 0x01;
        delayms(1);
        WR = 1;
        P2 = P2&0x1f;
    }


    
    
    
    
    
    
  2. 对需要操作的端口直接进行操作。
    sbit P27 = P2^7;
    sbit P26 = P2^6;
    sbit P25 = P2^5;
    void LED1()
    { 
        P25 = 0; 
        P26 = 0; 
        P27 = 1;
        WR = 0; 
        P0 = 0x01; 
        delayms(1); 
        WR = 1; 
        P2 = P2&0x1f;
    }


    
    
    
    
    
    
    
    

  通过以上的两种方式就可以完成对LED的基本控制,当然在后续的操作中还需要逐步的去调整和完善。学习单片机的过程本不难就是不断的

去改错去矫正,并且把之前的错误记录下来下次不再出错的过程。大家加油!




评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值