找回密码
 立即注册
楼主: 吉布斯

32G12K128核心板

[复制链接]
  • 打卡等级:常住居民III
  • 打卡总天数:153
  • 最近打卡:2025-05-05 21:37:43

1

主题

8

回帖

631

积分

高级会员

积分
631
发表于 2024-8-27 20:24:51 | 显示全部楼层
吉*** 发表于 2024-8-27 15:03
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后才开始开放

屏幕截图 2024-08-27 110852.png
屏幕截图 2024-08-27 112416.png


11:特殊功能的寄存器(SFR、XFR)
        SFR的地址范围:0x80-0xF8
        其他扩展的寄存器被称为:XFR。地址范围:0x7E0000-0x7EFFFF
        CKCON外部数据总线时钟扩展寄存器,作用:设置外部数据总线的等待时钟
        例:EAXFR = 1;                //使能XFR访问
              CKCON = 0;                //设置外部数据总线速度最快
              WTST = 0;                //设置程序读取等待时间为0个时钟,CPU执行程序速度最快



回复 支持 反对

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:153
  • 最近打卡:2025-05-05 21:37:43

1

主题

8

回帖

631

积分

高级会员

积分
631
发表于 2024-8-28 15:15:49 | 显示全部楼层
吉*** 发表于 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


屏幕截图 2024-08-27 154601.png



15:74HC595(串行输入并行输出,带锁存器的移位寄存器)
        原理:DS输入一位数据,SH_CP就产生一个上升沿,将数据(高位先行)移入移位寄存器(循环8次),然后输出存储器时钟ST_CP产生一个上升沿,移位寄存器中的数据才会存入输出存储器中并输出数据
        注:OE低电平有效,使用74HC595使需将OE接地或置0,且移动数据时为高为先行(左高右低),例:0xAA(1010 1010)中左边第一位的1先被操作

屏幕截图 2024-08-27 161231.png
屏幕截图 2024-08-27 163016.png



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-08-27 164824.png


回复 支持 反对

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:153
  • 最近打卡:2025-05-05 21:37:43

1

主题

8

回帖

631

积分

高级会员

积分
631
发表于 2024-8-28 19:48:16 | 显示全部楼层
吉*** 发表于 2024-8-28 15:15
12:八段数码管中的LED哪一极连着一起,则称为共__极数码管,则一端称为COM,LED的令一端被称为a,b,c,d,e, ...

18:独立按键
        原理:若按键一端接地一端接IO口时,当IO口设置为准双向模式时,IO口默认为高电平(此时类似于上拉输入),当按键按下时,IO口的电平被拉低变为低电平,松开时,IO口的电平又被拉高,变为高电平。
        注:由于硬件原因,按键并非理想状态被拉高或拉低,会有少许的抖动,可能被主控认为按下多次,消除方法:(1)(常用)软件消抖:添加延迟函数;硬件消抖:在IO口添加电容
        例:软件消抖:添加延迟函数
屏幕截图 2024-08-27 203941.png



20:4*4矩阵键盘
        各列按键的一端连在一起,各行的另一端连在一起。引出C1,C2,C3,C4四列,R1,R2,R3,R4四行。用8个IO口对各列各行进行高低电平判断从而判断出哪个按键被按下。
屏幕截图 2024-08-27 212043.png

        翻转法判断:首先让矩阵键盘的4列为高电平,4行为低电平,即P2=0xF0;当第一行第一列按键被按下时,则P2.4口电平被拉低,即P2=0xE0,此时只知道哪一列被按下,然后将P2口电平翻转,即P2=0x0F,若第一行第一列按键被按下,则P2=0x07,进而判断出第一行第一列被按下;依次类推
例如:
屏幕截图 2024-08-27 212250.png



回复 支持 反对

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:153
  • 最近打卡:2025-05-05 21:37:43

1

主题

8

回帖

631

积分

高级会员

积分
631
发表于 2024-8-29 10:07:47 | 显示全部楼层
吉*** 发表于 2024-8-28 19:48
18:独立按键
        原理:若按键一端接地一端接IO口时,当IO口设置为准双向模式时,IO口默认为高电平(此时类 ...

21:五向开关
        与独立按键的使用方法类似(都需要消抖),可看作为是五个开关集合在一起,但在单片机编码时,五向开关相当于是五个独立不相交的独立按键,要注意的是:编码时按键的方向以及竖直按下与左右前后按键是否相交。

屏幕截图 2024-08-28 195133.png


22:模块化编程(便于编程的修改及阅读)
        将不同功能的函数用.c文件装起来,并将函数声明,宏定义等放在.h文件中
.c文件直接写各种功能函数的执行过程,.h文件用#ifndef ,#define分别与H将函数名框起来,并且和#endif将函数声明和宏定义框起来,
.h文件格式:
#ifndef __[函数名]_H__
#define __[函数名]_H__

函数声明和宏定义

#endif



回复 支持 反对

使用道具 举报 送花

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|小黑屋|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

GMT+8, 2025-5-9 07:58 , Processed in 0.110939 second(s), 69 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表