Albsm
发表于 2023-7-1 15:24:14
2023年7月1日 15:24:27
第12期主要讲了共阴极共阳极数码管的驱动方式,其中提到了段码数组,这个数组可以保存下来留作复用
一位数码管有8个主要引脚用于驱动其完成主要功能,二位,四位或更多位数的数码管的引脚也是可以复用的,通过导通不同的共阴极或共阳极来达成点亮指定位置数码管的效果
Albsm
发表于 2023-7-1 21:28:12
第13期主要讲了数码管的动态与静态显示,由于还没学习到定时器,一些功能无法更精简地实现。
本人的开发板上使用的是74138译码器和两组四码共阴数码管,所以代码部分稍显复杂
#include <STC89C5xRC.H>
#include <intrins.h>
unsigned char code smg[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71}; //共阴数码管段码
unsigned char code ls138[]={0x00,0x04,0x08,0x0c,0x10,0x14,0x18,0x1c}; //74138真值表
void Delay1ms();
void main(){
unsigned char seg7 = 0;
unsigned char ls38 = 0;
unsigned char l;
while(1){
for(seg7=0;seg7<10;seg7++){
for(l=0;l<50;l++){
for(ls38=0;ls38<8;ls38++){
P2=ls138;
P0=smg;
Delay1ms();
P0=0xff;
}
}
}
}
}
void Delay1ms() //@11.0592MHz
{
unsigned char data i, j;
_nop_();
i = 2;
j = 199;
do
{
while (--j);
} while (--i);
}
实现了一个从0到9的循环显示,知识点和教程视频相差不大
Albsm
发表于 2023-7-1 23:37:25
2023年7月1日 23:36:22
14期教程讲解的是上一集的应用,没太大差别。
Albsm
发表于 2023-7-2 00:36:03
第15期主要讲了74hc595的使用。595属于移位寄存器,通过串行输入数据,锁存给高电平使输入数据从输出引脚输出。与38译码器不同的是,38译码器使用并行输入,并每次只从一个引脚输出高电平,而595可以使用串行输入信息,并可同时输出八位甚至通过级联达成更多引脚高电平同时输出,这免除了一部分不必要的刷新,降低程序的时间复杂度。
angmall
发表于 2023-7-2 15:35:08
5.生成hex文件,修改hex文件格式为386,此处是否因为cpu是32位,由于简中区的优秀索引机制我并没找到关于此问题的答案,铺天盖地都是【天晓得keil为什么不规整一下】最终在ARM社区找到了一个没有回答的提问给了我一点小启发,他提到“ As hex-386 is for 32-bit addressing and Hex-80 is 16 bit” 或许是此处设置为386的原因。希望有老ass帮忙答疑解惑。
Keil C251集成开发环境
设置编译环境
设置项目1:选择Target页,将CPU Mode项设为Source(251 native)。
设置项目2:选择Target页,将Memory Model项设为XSmall:near vars,far const,ptr-4,。
设置项目3:选择Target页,当程序大小不超过64K字节时,将Code Rom Size项设为Large:variables in XDATA;当程序大小超过64K字节时,将Code Rom Size项设为Huge:64K functions,16M progr,此时需要保证单个函数及单个文件的代码大小必须在 64K字节以内,并且单个表格的数据量也必须在64K字节以内,同时还需要设置External Memory。
设置项目4:选择Output页,若程序空间超过64K字节,则HEX format项必须设为HEX-386,只有当程序空间不超过64K字节时,此项才可设为HEX-80。
设置项目5:编译时创建hex文件。勾选“Create HEX File”选项。
Albsm
发表于 2023-7-2 15:57:48
angmall 发表于 2023-7-2 15:35
5.生成hex文件,修改hex文件格式为386,此处是否因为cpu是32位,由于简中区的优秀索引机制我并没找到关于此 ...
感谢答疑,也就是说hex386和80的选择与项目3设置的程序空间大小有关,但并不是完全关联,这个只与实际应用时的程序文件大小有关
angmall
发表于 2023-7-2 16:09:17
Albsm 发表于 2023-7-2 15:57
感谢答疑,也就是说hex386和80的选择与项目3设置的程序空间大小有关,但并不是完全关联,这个只与实际应 ...
就是说你的应用程序超过64k就要像这样子做。
STC32G12K128系列超64K程序演示
https://www.stcaimcu.com/forum.php?mod=viewthread&tid=1678&highlight=64K
jwd
发表于 2025-2-8 14:51:35
angmall 发表于 2023-7-2 15:35
5.生成hex文件,修改hex文件格式为386,此处是否因为cpu是32位,由于简中区的优秀索引机制我并没找到关于此 ...
请问4 byte interrupt frame Size,这个选项什么时候勾选,什么时候不勾选?
angmall
发表于 2025-2-8 15:08:03
jwd 发表于 2025-2-8 14:51
请问4 byte interrupt frame Size,这个选项什么时候勾选,什么时候不勾选?
4 byte interrupt frame Size,
因为cpu是32位,这个选项勾选
cpu是8位,这个选项不勾选
不过32g12k 是32位,这个选项勾选
jwd
发表于 2025-2-8 15:15:32
angmall 发表于 2025-2-8 15:08
4 byte interrupt frame Size,
因为cpu是32位,这个选项勾选
我看stc32的有些例程也没有勾选,自己下载下来后勾选反而有警告