找回密码
 立即注册
查看: 486|回复: 0

STC32学习打卡/学习感悟

[复制链接]
  • 打卡等级:常住居民III
  • 打卡总天数:125
  • 最近打卡:2025-05-06 21:35:41

1

主题

0

回帖

16

积分

新手上路

积分
16
发表于 2024-5-12 13:41:03 | 显示全部楼层 |阅读模式
本帖最后由 GG-AIZHAJI 于 2024-5-14 18:44 编辑

复制代码
第一集 认识单片机
跟着冲哥学32

截图202405121331455386.jpg

截图202405121332207435.jpg


从开始学STC89C52到STC15W204s再到STC8H8K64U,发现STC单片机也可以很强大,足够做很多小玩具之类的,很庆幸申请了一块stc8h实验板,在暑假期间到现在也用8h单片机做了很多东西。最开心的是做了一个航模遥控器,那么现在,想更近一步学习stc32。
截图202405121333238830.jpg


沉下心,多做笔记
截图202405121339239020.jpg


加油加油,更上一层楼



第二集  了解硬件
在学习STC8H的时候,大部分东西都有了解应用过了,在这个试验箱,自己不会的还有比较多没接触过
1、RS232协议
2、FLASH拓展部分
3、NTC测温部分
4、PWM做DAC也没有操作过
截图202405121345075950.jpg
在接下来的学习中,重点学习上面的方面


第三集:开发环境搭建和程序下载
准备好了,差一个C251编译环境

截图202405121406265055.jpg


按照手册步骤,安装下载
截图202405121408108109.jpg

截图202405141623061115.jpg

终于找到了这个,今天又继续开始
截图202405141701335282.jpg
终于搭建好了。开始下一课。


第4集

点亮一个LED:
很简单,那么就是LED二极管正极给高电平,负极给低电平就可以点亮了,设计时加上限流电阻,防止LED烧坏和过亮刺眼
截图202405141711075702.jpg
由于和STC8H有兼容,由于目前还没有试验箱,就暂时用已有的STC8H演示
下面是两个灯的电路图,GREEN使用的是P34口

截图202405141709513056.jpg
  1. sfr         P3M1        =           0xb1;
  2. sfr         P3M0        =           0xb2;
  3. sfr         P3          =           0xb0;
  4. sbit P34=P3^4;
  5. void delay(long int time)
  6. {
  7.         while(time--);
  8. }
  9. void main()
  10. {
  11.         P3M0 = 0x00; P3M1 = 0x00;
  12.         while(1)
  13.         {
  14.                 P34=0;
  15.                 delay(0x00ffff);
  16.                 P34=1;
  17.                 delay(0x00ffff);
  18.         }
  19. }
复制代码

截图202405141724382537.jpg
闪烁成功
P3M0 = 0x00; P3M1 = 0x00; 是配置P3组IO口为双向口模式,那么使用其它模式是什么状态呢



第五集  C语言printf函数实现

截图202405141746096015.jpg
这个是啥意思呢,这个头文件哪里可以调用呢,有点懵了
文件打开后就不能理解了。。。。。这一堆是啥意思看不懂

之前也有用printf函数打印是这样写的(假设使用串口1)

char putchar(unsigned char Data)
{
SBUF= Data;
while(!TI);
TI=0;
return Data;
}

printf("HELLO");
printf("%.2f",a);
还得好好理解理解,这个跳转的太快了


第六集 LED花式点灯
  1. void main(void)
  2. {
  3.     P0M1 = 0x30;   P0M0 = 0x30;   //设置P0.4、P0.5为漏极开路(实验箱加了上拉电阻到3.3V)
  4.     P1M1 = 0x30;   P1M0 = 0x30;   //设置P1.4、P1.5为漏极开路(实验箱加了上拉电阻到3.3V)
  5.     P2M1 = 0x3c;   P2M0 = 0x3c;   //设置P2.2~P2.5为漏极开路(实验箱加了上拉电阻到3.3V)
  6.     P3M1 = 0x50;   P3M0 = 0x50;   //设置P3.4、P3.6为漏极开路(实验箱加了上拉电阻到3.3V)
  7.     P4M1 = 0x3c;   P4M0 = 0x3c;   //设置P4.2~P4.5为漏极开路(实验箱加了上拉电阻到3.3V)
  8.     P5M1 = 0x0c;   P5M0 = 0x0c;   //设置P5.2、P5.3为漏极开路(实验箱加了上拉电阻到3.3V)
  9.     P6M1 = 0x00;   P6M0 = 0xff;   //设置为推挽输出
  10.     P7M1 = 0x00;   P7M0 = 0x00;   //设置为准双向口
  11.     P40 = 0;                //LED Power On
  12.     while(1)
  13.     {
  14.         P6 = ~ledNum[ledIndex];        //输出低驱动
  15.         ledIndex++;
  16.         if(ledIndex > 7)
  17.         {
  18.             ledIndex = 0;
  19.         }
  20.         delay_ms(250);
  21.         delay_ms(250);
  22.     }
  23. }
  24. void  delay_ms(u8 ms)
  25. {
  26.      u16 i;
  27.      do{
  28.           i = MAIN_Fosc / 6000;
  29.           while(--i);
  30.      }while(--ms);
  31. }
复制代码

根据实验箱例程
这个延时为什么能根据时钟变化而变化呢?
单片机的主时钟频率给多大合适呢,排除低功率的情况下,可以认为越高越好吗?


第7集 按键点灯
代码示例,当按键按下时,LED亮,否则LED灭
那么这个是简单控制LED,在使用LED计数等等就需要考虑按键抖动的问题,
可以软件消抖或者硬件消抖。
一般采用延时软件消抖按键。
  1. sfr         P3M1        =           0xb1;
  2. sfr         P3M0        =           0xb2;
  3. sfr         P3          =           0xb0;
  4. sbit P34=P3^4;
  5. sbit P32=P3^2;
  6. void main()
  7. {
  8.           P3M1  =0x00;         
  9.    P3M0 =0x00;
  10.         while(1)
  11.         {
  12.                 if(P32==0)
  13.                 P34=0;
  14.                 else
  15.                 P34=1;
  16.                
  17.         }
  18. }
复制代码

第8集 按键消抖处理


按键在按下和松手的过程中会发生抖动,导致电平不稳定,会发生误判和多次判断


截图202405141839323389.jpg

采用延时消抖

在按下的时候和松手的两个过程,利用延时,跳过这两个时间段的检测


void main()
{
          P3M1  =0x00;         
   P3M0 =0x00;
        while(1)
        {
                if(P32==0)
                {
                        delay(20);
                        P34=0;
                        delay(20);
                }
                else
                P34=1;
        }
}















截图202405121325257405.jpg
截图202405121353315547.jpg
截图202405141709569865.jpg
截图202405141710385255.jpg
截图202405141720297007.jpg
回复

使用道具 举报 送花

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

本版积分规则

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

GMT+8, 2025-5-7 08:04 , Processed in 0.106721 second(s), 48 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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