蓝桥杯单片机的初始化原理和蜂鸣器关闭学习

之前看视频什么学习什么的,我总是靓仔疑惑哈,为什么P0等于什么什么,然后P2等于什么什么,然后就初始化好了,什么玩意,现在,我知道了原理

蓝桥杯的单片机和别的单片机不同之处就是在于这个初始化程序的不一样,别的单片机一个IO口控制一个设备或者是有跳线帽能控制,但是蓝桥杯的不一样,它的P0口控制了led灯,数码管,蜂鸣器,等等,所以它的初始化程序写起来比较麻烦,下面是我关于这个初始化的笔记

看我们的原理图:
在这里插入图片描述
在这里插入图片描述
可以看到,我们蓝桥杯的板子上的led灯其实是M74HC573M1R控制的,要使用这个芯片需要Y4C的信号,也就是说,Y4C控制着led灯,当Y4C有脉冲信号,P0控制的就是led灯啦,那么怎么才能使Y4C产生信号呢。
可以看到我上面的截图的74HC138控制着Y4C的信号输出,这个怎么控制呢,看到它的结构上面P25,P26,P27控制着Yx的信号,然后通过u25或非门控制YxC,所以我们来看蓝桥杯官方给我们的芯片资料:
点开74HC138的芯片资料:
我们参加竞赛的,特别是我这种不是电气和自动化专业的,咱只需要知道怎么输

### 蓝桥杯单片机初始化配置流程及相关代码 在蓝桥杯竞赛中,单片机初始化是一个非常重要的环节。它通常涉及硬件外设(如GPIO、定时器、串口等)以及通信协议(如I2C、SPI等)的基础设置。以下是关于单片机初始化的一个典型示例及其说明。 #### 1. GPIO端口初始化 GPIO端口初始化用于设定引脚的工作模式(输入/输出)、上拉下拉状态以及其他属性。以下是一段常见的GPIO初始化代码: ```c void GPIO_Init(void) { // 设置P1.0为输出模式 P1DIR |= BIT0; // 初始化P1.0为低电平 P1OUT &= ~BIT0; // 设置P2.1为输入模式并启用内部上拉电阻 P2DIR &= ~BIT1; // 输入模式 P2REN |= BIT1; // 启用上拉/下拉电阻 P2OUT |= BIT1; // 设定为上拉 } ``` 上述代码展示了如何通过操作寄存器来完成基本的GPIO初始化[^3]。 #### 2. 定时器初始化 定时器常被用来实现延时功能或者周期性触发事件。下面展示了一个简单的定时器初始化过程: ```c void TimerA_Init(void) { TA0CTL = TASSEL__SMCLK | ID__1 | MC__UP | TACLR; // 使用SMCLK作为源, 分频系数为1, 计数到CCR0重置 TA0CCTL0 = CCIE; // 开启捕获比较中断 TA0CCR0 = 1000 - 1; // 设置计数值为1000次 (假设SMCLK频率已知) } ``` 此部分代码设置了Timer_A模块的基本参数,并准备好了溢出中断的功能支持[^4]。 #### 3. I2C总线初始化 对于题目中的`adc()`函数调用了I2C接口读取数据的情况,可以参考如下I2C初始化逻辑: ```c void IIC_Init(void) { UCB0CTLW0 |= UCSWRST; // 软件复位I2C控制器 UCB0CTLW0 |= UCMODE_3 | UCMASTER | UCTR; // 主设备模式, 字符同步传输 UCB0BRW = 0x0F; // 波特率分频因子调整至适合范围 UCB0I2CSA = 0x48; // 默认从地址写入 UCB0CTLW0 &= ~UCSWRST; // 取消软件复位启动正常运行 IE2 |= UCB0TXIE; // 允许发送完成后产生中断请求 } ``` 这段程序片段完成了针对MSP430系列MCU上的USCI_B0模块进行标准模式下的I²C主机初始化工作[^5]。 #### 综合考虑以上各部分内容之后可得出结论,在实际比赛项目开发过程中还需要注意具体使用的芯片型号差异可能带来的细微变化;另外也要充分考虑到资源占用情况合理规划各个组件之间的优先级关系等问题。
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值