(1)LED

LED正负极:大红旗——负极,小红旗——正极

如何看原理图电阻/电容值:

eg:

102 = 10 2 = 10 * 10 ^ 2 = 1000
473 = 47 3 = 47 * 10 ^ 3 = 47000

单片机使用TTL电频:高电平(逻辑1)5V 低电平(逻辑0)0V

单片机上电的时候所有的IO口默认都是高电平

LED一端接VCC(正极)一端接芯片P20-P27口,P20-P27口在芯片中由P2寄存器映射,当芯片输出高电平时LED不亮,输出低电平时亮

请添加图片描述

如果只要第一个LED亮则P2寄存器赋值1111 1110最低位为0输出低电平,在代码中使用十六进制表示

#include <REGX52.H>
void main(){
	P2 = 0xfe; // 1111 1110
	while(1){}
}

单片机执行完main函数后会再次重复执行main

Keil -> options for target -> output -> create hex file

HEX文件格式是一种能够烧写到单片机中,被单片机执行的文件格式。可以使用不同的编辑器将C或汇编源文件编译成HEX文件,如IAR,KEIL等

单片机系统频率:12MHz,一秒运行一百万次

通过STC-ISP->软件延时计算器生成延时方法

#include <INTRINS.H>

void Delay500ms()		//@12.000MHz
{
	unsigned char i, j, k;

	_nop_(); // 空语句,INTRINS.H中声明
	i = 4;
	j = 205;
	k = 187;
	do
	{
		do
		{
			while (--k);
		} while (--j);
	} while (--i);
}

请添加图片描述
在单片机里int是16位的(unsigned int: 0 ~ 65535 int:-32768 ~ 32767)

void Delayxms(unsigned int xms) // 指定延时时间ms
{
	unsigned char i, j;

	while(xms--){
		i = 2;
		j = 239;
		do
		{
			while (--j);
		} while (--i);
    }
}

在REGX52.H头文件中定义了各寄存器及其各位

sfr P2      = 0xA0;
/*------------------------------------------------
P2 Bit Registers
------------------------------------------------*/
sbit P2_0 = 0xA0;
sbit P2_1 = 0xA1;
sbit P2_2 = 0xA2;
sbit P2_3 = 0xA3;
sbit P2_4 = 0xA4;
sbit P2_5 = 0xA5;
sbit P2_6 = 0xA6;
sbit P2_7 = 0xA7;

独立按键接MCU的P30-P33口,使用寄存器P3的前四位映射,按下为0,松开为1

请添加图片描述

按键消抖:

由于机械触点的弹性作用,一个开关在闭合时不会马上稳定地接通,在断开时也不会一下子断开,所以在开关闭合及断开的瞬间会伴随一连串的抖动。

img

按键的消抖有两种方法:

  1. 加个线,把这个线通过这些电路里面进行一些触发器等等,通过一些电路来进行操作,把这个抖动进行一些过冲,然后再给我们单片机进行点上。比较麻烦!
  2. 通过软件来进行一个延迟函数,把这个消抖进行操作!

独立按键控制LED显示二进制:

使用unsigned char型变量表示寄存器:无符号字符型(所占1字节 = 8bit位)刚好对应着8位二进制的数据

unsigned char p = 0;
while(1){
    if(P3_1 == 0){
        Delayxms(20);
        while(P3_1 == 0);
        Delayxms(20);

        p++;
        P2 = ~p;
    }
}

局部变量定义要放在函数里的第一行,在main函数,for、while、if里面也要放第一行,只要是局部变量的定义都要放在所在函数体内的第一行

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值