蓝桥杯单片机学习笔记(1)——国信长天CT107竞赛板简述

最近因为延期开学,一直呆在家里,有机会学习准备一下蓝桥杯的电子类单片机组的比赛,
正好写点东西,将学习的过程记录一下。

这是第一篇学习笔记,我准备简单介绍一下竞赛使用的单片机开发板——CT107开发板。

1. 概述实验板组成部分

CT107实验板实物图
关于开发板的相关资料可以从蓝桥杯官网下载。
大赛使用的单片机是IAP15F2K61S2,是STC公司生产的15系列1T型单片机,在1T模式下比传统8051快8-12倍,内部有R/C震荡电路,可以不接外部晶振,通过stc的ISP下载器调节内部时钟的频率(5~35MHz)。K61表示内部Flash共61KB,S2表示有2个串行口。

板上提供的主要模块有:
(按赛题使用频率排序)

8位数码管
8个LED灯
4*4矩阵键盘(也可作为独立按键)
ds1302时钟模块
ds18b20温度模块
uln2003驱动芯片(驱动继电器,蜂鸣器等)
pcf8591 A/D转换芯片
at24c02 EEPROM存储器芯片
超声波发送接收模块
实验板布局图

2. 电路连接与驱动方法

(1)74HC138和74HC573的使用

了解和学习74HC138(38译码器)和74HC573(简单而经典的锁存器)的使用是板子的一大重点。 板子上这么这么多模块,单片机引出的IO口只有P0~P3这32个引脚,肯定不够用啊。。。(那咋办嘛) 因此,这两个芯片的使用就成为了必须,保证led,数码管,uln2003等 在共用P0口的情况下互不干扰。P2口的高三位接38译码器,用于选择要使用的模块;38译码器的输出与573锁存器的使能端相连,用于控制锁存器的状态;而P0口接锁存器输入,输出数据。

通俗说来,想要使用某个模块时,先从P2口输出选择信号,选定想要使用的模块(led,数码管或uln2003),再通过P0口输出数据。 锁存器在被译码器选中(使能端为低)时将P0口数据传输至模块,在未被选中时起到锁存作用。关于各模块具体的使用在这里先不写。
38译码器电路图
译码器输出端接线
573锁存器电路图

(2)独立按键与矩阵键盘

板上有4*4矩阵键盘模块,接在P3口上,占用了P3全部的8个引脚。键盘的第一列也可作为4个独立按键使用,这时需要将键盘右侧的跳线帽J5跳接23端,使用P30~P33这4个引脚。(接12用矩阵键盘,接23用独立按键)。
矩阵键盘电路图

(3)I2C总线

IIC总线在板子上用于A/D转换(PCF8591)和存储器EEPROM(AT24C02)的使用,也是较为重要的部分。单片机的P20和P21口分别作为I2C总线的SCL和SDA,而I2C总线接到PCF8591和AT24C02,被两者共用。
PCF8591接线图
AT2402接线图

(4)DS1302和DS18B20的接线

DS1302时钟芯片的接线为SCLK,IO,RST三线,分别与单片机的P17,P23,P13相连。接线简单,没啥好说的。
DS1302接线
DS18B20温度模块使用单总线,只有一个数据口,与单片机P14相连。
DS18B20接线

3.总结

本篇学习笔记是对竞赛板电路原理的概述和分析,先明白了电路接线原理和基本驱动方法才能进行之后的编程学习。以后应该会写一些具体模块的编程使用,希望能支持一哈~ 有其他关于51单片机的问题也可以互相交流~~

### 关于国信长天单片机开发LCD的使用教程 #### 打开下载界面并配置环境 为了开始使用国信长天单片机开发上的LCD屏幕,首先需要确保已经正确安装了STC ISP软件,并按照说明选择了合适的单片机型号以及匹配的串口号[^1]。 #### 配置硬件连接 对于LCD显示模块而言,通常会涉及到特定的数据线和控制信号线与单片机之间的连接。具体到国信长天这款开发上,应当参照官方提供的电路原理图来理解如何将LCD模块接入单片机系统中。如果LCD采用的是SPI接口,则需特别注意MOSI, MISO, SCK等引脚的位置;若是基于4位或8位并行通信方式,则要关注数据总线D0-D7以及其他必要的控制端子如RS(寄存器选择)、RW(读写模式)和E(使能)等设置情况[^3]。 #### 编程实现基本功能 针对该款开发所配备的具体类型LCD显示器(例如字符型LCD或是图形点阵LCD),可以编写相应的初始化程序片段来进行测试验证: ```c #include <reg52.h> sbit RS = P2^0; // 定义RS引脚 sbit RW = P2^1; // 定义RW引脚 sbit EN = P2^2; // 定义EN引脚 void delay(unsigned int time){ while(time--); } // 向LCD发送命令函数定义 void lcd_command(unsigned char cmd){ P0=cmd; RS=0; RW=0; EN=1; delay(5); // 延迟一段时间等待指令执行完成 EN=0; } // 初始化LCD显示屏 void init_lcd(){ lcd_command(0x38); // 设置为8位数据长度、两行显示、5*7点阵格式 lcd_command(0x0C); // 显示开启,光标关闭 lcd_command(0x06); // 自增地址指针,不移屏 lcd_command(0x01); // 清除屏幕内容 } ``` 上述代码展示了向LCD发出低级操作指令的方法,比如设定工作参数、清空现有文本等等。实际应用过程中还需要进一步完善以支持更复杂的功能需求,像字符串打印、自定义图案绘制等功能都可以在此基础上逐步构建起来。 #### 资源推荐 除了以上介绍的基础知识点外,建议查阅更多有关STM8/AVR系列MCU驱动液晶面的技术文档,这些资料往往包含了更为详尽的操作指南和技术细节描述,有助于加深理解和掌握相关技能。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值