6(补充):Delay函数(延迟函数)一般采用循环变量加减的的方式使单片机循环操作,使其无法进人下一步,以 ...
10:(1)STC32单片机的所有IO口内部都配备了一个4.1k的上拉电阻(与正极并联)和一个10k的下拉电阻(与负极并联);通过PxPU(上拉电阻)和PxPD(下拉电阻)寄存器(x为IO口组别变量:0~7)控制
如:P7PU=0xFF(打开P7口的所有上拉电阻),P7PD=0x00(关闭P7口的所有下拉拉电阻)
(2)PxPU和PxPD寄存器在XFR区域内,而XFR默认无法访问,需将EAXFPR置1,使能XFR,PxPU和PxPD寄存器才能使用
(3)IO空内部上拉下拉电阻的设置可采用STC-ISP中IO口配置的高级配置功能配置
注:STC32G12K128没有开放内部下拉电阻功能,在STC32G8K64后才开始开放
11:特殊功能的寄存器(SFR、XFR)
SFR的地址范围:0x80-0xF8
其他扩展的寄存器被称为:XFR。地址范围:0x7E0000-0x7EFFFF
CKCON外部数据总线时钟扩展寄存器,作用:设置外部数据总线的等待时钟
例:EAXFR = 1; //使能XFR访问
CKCON = 0; //设置外部数据总线速度最快
WTST = 0; //设置程序读取等待时间为0个时钟,CPU执行程序速度最快
吉布斯 发表于 2024-8-27 20:24
10:(1)STC32单片机的所有IO口内部都配备了一个4.1k的上拉电阻(与正极并联)和一个10k的下拉电阻(与负 ...
12:八段数码管中的LED哪一极连着一起,则称为共__极数码管,则一端称为COM,LED的令一端被称为a,b,c,d,e,f,g,dp。从数码管的最高一段开始,顺时针数。
13:动态显示:多位数码管中,由于a-dp端都是连在一起的,故要两位数码管显示两个不同的数据,需要两个数码管快速进行交替循环显示
注:用IO口驱动数码管使需要限流电阻,避免数码管烧毁
共阴极段码:0~9
0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f
共阳极段码:0~9
0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90
15:74HC595(串行输入并行输出,带锁存器的移位寄存器)
原理:DS输入一位数据,SH_CP就产生一个上升沿,将数据(高位先行)移入移位寄存器(循环8次),然后输出存储器时钟ST_CP产生一个上升沿,移位寄存器中的数据才会存入输出存储器中并输出数据
注:OE低电平有效,使用74HC595使需将OE接地或置0,且移动数据时为高为先行(左高右低),例:0xAA(1010 1010)中左边第一位的1先被操作
17:两片74HC595级连,两片74HC595的SH_CP相连,两个ST_CP相连,第一片74HC595的DS接输入,第二片74HC595的DS接第一片74HC595的的串行输出Q7',两片74HC595的OE接低电平使能
原理:当第一个8位数据进入第一个74HC595的移位寄存器后,接着输入第二个8位数据,则第一个8位数据通过第一个74HC595的串行输出移入第二个第一个74HC595的移位寄存器,然后ST_CP产生一个上升沿,两片74HC595同时输出数据。(第一个74HC595进行位选输出,第二个74HC595进行数码管数据显示输出)
吉布斯 发表于 2024-8-28 15:15
12:八段数码管中的LED哪一极连着一起,则称为共__极数码管,则一端称为COM,LED的令一端被称为a,b,c,d,e, ...
18:独立按键
原理:若按键一端接地一端接IO口时,当IO口设置为准双向模式时,IO口默认为高电平(此时类似于上拉输入),当按键按下时,IO口的电平被拉低变为低电平,松开时,IO口的电平又被拉高,变为高电平。
注:由于硬件原因,按键并非理想状态被拉高或拉低,会有少许的抖动,可能被主控认为按下多次,消除方法:(1)(常用)软件消抖:添加延迟函数;硬件消抖:在IO口添加电容
例:软件消抖:添加延迟函数
20:4*4矩阵键盘
各列按键的一端连在一起,各行的另一端连在一起。引出C1,C2,C3,C4四列,R1,R2,R3,R4四行。用8个IO口对各列各行进行高低电平判断从而判断出哪个按键被按下。
翻转法判断:首先让矩阵键盘的4列为高电平,4行为低电平,即P2=0xF0;当第一行第一列按键被按下时,则P2.4口电平被拉低,即P2=0xE0,此时只知道哪一列被按下,然后将P2口电平翻转,即P2=0x0F,若第一行第一列按键被按下,则P2=0x07,进而判断出第一行第一列被按下;依次类推
例如:
吉布斯 发表于 2024-8-28 19:48
18:独立按键
原理:若按键一端接地一端接IO口时,当IO口设置为准双向模式时,IO口默认为高电平(此时类 ...
21:五向开关
与独立按键的使用方法类似(都需要消抖),可看作为是五个开关集合在一起,但在单片机编码时,五向开关相当于是五个独立不相交的独立按键,要注意的是:编码时按键的方向以及竖直按下与左右前后按键是否相交。
22:模块化编程(便于编程的修改及阅读)
将不同功能的函数用.c文件装起来,并将函数声明,宏定义等放在.h文件中
.c文件直接写各种功能函数的执行过程,.h文件用#ifndef ,#define分别与H将函数名框起来,并且和#endif将函数声明和宏定义框起来,
.h文件格式:
#ifndef __[函数名]_H__
#define __[函数名]_H__
函数声明和宏定义
#endif
页:
1
[2]