蓝桥杯细节与功能Understanding——小结共欣赏,疑义相与析

模块

LED

  • 由74HC573芯片控制,令P2=0x80;(或P27=1;P26=0;P24=0;P23=0;),即可启用该芯片。

  • P0引脚控制,高电平时亮。

  • J13接IO。

摁键

J5接bin,启动摁键。

  • P3^7 P3^6 P3^5 P3^4为输入引脚,默认为高电平。

  • P3^3 P3^2 P3^1 P3^0为判断引脚。

  • sbit S7 = P3^0;
    sbit S6 = P3^1;
    sbit S5 = P3^2;
    sbit S4 = P3^3;

蜂鸣器

  • 令P2=0xa0;同时通过调节P0^6接口的频率来实现音频。(利用延迟来调节频率)

    P2=0XA0;//打开控制蜂鸣器的573

    P0=0X00;//关闭蜂鸣器继电器

数码管

  • 共阴(高电平为熄灯,低电平为开灯)

  • 由74HC573芯片控制

  • 由74HC138芯片控制位选和段选,打开数码管位选(位数)——P2=0xc0;打开数码管段选(数字)——P2=0xe0;

中断

  • 初始化:

    void int0() //中断T0,判断3^2引脚
    {
    EA=1; //中断总开关
    EX0=1;
    IT0=1; //置1时为下降沿触发、置0时为低电平触发
    }

    void int1() //中断T1,判断3^3引脚
    {
    EA=1;
    EX1=1; //T1中断开关
    IT1=1;
    }

  • 中断时实现功能的程序:

    void int0_intfun() interrupt 0 using 1//输入中断执行的程序 (using 0到3是指寄存到哪个寄存器,可以不理会或不写)
    {
    unsigned int i;
    for(i=0;i<7;i++)
    {
    P0=(0xfe<<i);
    delay(50000);
    delay(50000);
    delay(50000);
    }
    }

    void int1_intfun() interrupt 2 using 1 //输入中断执行的程序
    {
    unsigned int i;
    for(i=0;i<7;i++)
    {
    P0=(0xbf>>i);
    delay(50000);
    delay(50000);
    delay(50000);
    }

定时器

  • 初始化:

    注:可用STC烧入软件自动生成定时器的初始化,但需删除第一行,并加上EA=1;ET0=1;

void Timer0Init()

{

EA=1; //总开关

TR0=1; //打开定时器

ET0=1; //允许定时器中断

TMOD=0X01; //选择工作方式

TL0 = 0x18;

**TH0 = 0xFC; ** //两者共同决定定时时长

}

  • 定时到点时实现功能的程序:

void Timer0() interrupt 1
{
static unsigned int i;
TL0 = 0x18; //设置定时初值
TH0 = 0xFC; //设置定时初值 (用于重新计数,需与前面初始化相同的定时的初值)
i++;
if(i==1000) //计数一千次时执行下面程序
{
i=0; //归零,重新开始计数
P0=0x11; //用于实现的功能
}
}

I2C总线

  • 用于数据的存放与读写。(可以把数据存入内存中,也可把数据取出实现功能)

功能

一、制造混乱——rand()函数

1.rand()可以产生1-100以内的随机整数。

2.产生[m,n]范围内的随机数num,可用:

int num=rand()%(n-m+1)+m;

例,产生[10,30]之间的随机数:

int num=rand()%21+10;

产生[0,n]的随机数,可用:

int num=rand()%n;

3.需要用到的头文件:#include<stdlib.h>

二、控制引脚的方式

1.十六进制:P0=0x00;

2.十进制:P0=255;

3.二进制:P0=00000001; (不能有空格)

4.定义单个引脚:sbit a=P0^1; a=1;


细节

1.for与switch所包含的执行语句,须整体用大括号包起来,不然会执行不全面,其语法并没有错误。


说明

一、DATA、XDATA、CODE的意思

1.DATA,51的内部RAM,只有128B(字节)大小,不管是最新的什么增强型单片机。

2.XDATA,外部RAM,只能使用MOVX寻址。

3.CODE,代码区,即是你的代码的大小,AT89C51为4K,C52为8K等,增强型的有更多的选择。

二、几种RAM的区别

1.DATA,也是上面1提到的DATA RAM,占51的128B。

2.IDATA,大小也为128B,与DATA构成256字节的内存(如AT89C52)。

3.PDATA,外部RAM的前256B(就是一个页的大小),是XDATA的一部分

4.XDATA,外部RAM。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值