找回密码
 立即注册
查看: 9895|回复: 69

【冲哥版】stc32学习心得

[复制链接]
  • 打卡等级:以坛为家I
  • 打卡总天数:311
  • 最近打卡:2025-08-22 19:35:27

62

主题

833

回帖

1625

积分

金牌会员

积分
1625
发表于 2024-5-9 13:58:17 | 显示全部楼层 |阅读模式
本帖最后由 zhange 于 2024-5-12 15:38 编辑

已经学习到io中断了,补一下学习心得。

学习8051单片机有一段时间了,自己也可以写一写小东西,本着继续学习的心态,又入了stc32,确实比51强大了,晶振也免了,慢慢学,慢慢记。


-------学习建议-------

1.第一遍就当看着玩吧,不一定学会,可以二刷。

2.写下心得很有必要,有些东西,写一下比不写记得就是久。

3.菜就多练,菜就多练,菜就多练。。。。。。。。。















1 喜欢他/她就送朵鲜花吧,赠人玫瑰,手有余香!
回复

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:311
  • 最近打卡:2025-08-22 19:35:27

62

主题

833

回帖

1625

积分

金牌会员

积分
1625
发表于 2024-5-9 14:13:16 | 显示全部楼层
第十五集:外部中断

外部中断:中断的一种,stc32有5个外部中断分别为:INT0(中断号0)INT1(中断号2)INT2(中断号10)INT3(中断号11)INT4(中断号16)其中中断0和中断1可以上升沿和下降沿,其他的全为下降沿中断。并且0,1,4可以设置优先级优先级高的优先执行,执行完优先级高的再执行优先级低的。

使用中断的时候千万一定要把总中断开关打开,以前就忘了一次,咋也排查不出来问题。

EA = 1;
截图202405091405203649.jpg


昨天看完外部中断,感觉很强大,中断号0的就是牛,于是迫不及待的就给我的st1637加上了p3.2外部中断,利用中断0的下降沿,给分加一;只用到了INT0中断。

  1. //外部中断
  2. void exit0(void)
  3. {
  4.         IT0 = 1;
  5.    EX0 = 1;
  6. }
复制代码

  1. //外部中断
  2. void exint0( ) interrupt 0
  3. {
  4.         f++;
  5.         if(f == 60)
  6.         {
  7.                 f = 0;
  8.         }
  9. }
复制代码


回复

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:311
  • 最近打卡:2025-08-22 19:35:27

62

主题

833

回帖

1625

积分

金牌会员

积分
1625
发表于 2024-5-9 15:58:54 | 显示全部楼层
第十六集:i/0中断


中断里老师不叫加延时?但是不加不好观看,还是加上吧,实际应用看情况吧,出了事就欺师灭祖。。。。。。。。。。。。。。。。


STC32G 系列支持所有的 I/O 中断,且支持 4 种中断模式:下降沿中断、上升沿中断(STC32G12K128-Beta 不要用)、低电平中断、高电平中断。每组 I/O 口都有独立的中断入口地址,且每个 I/O 可独立设置中断模式。


低电平,高电平中断,只要进入低(高)电平一直中断。

中断优先级是CPU响应中断的先后顺序。中断优先处理的原则是: (1) 先响应优先级高的中断请求,再响应优先级低的中断请求。 (2) 如果一个中断请求己被响应,同级的其他中断请求将被禁止。 (3) 如果同级的多个中断请求同时出现,CPU则按单片机内部的自然优先级顺序响应各中断请求。



截图202405091532278489.jpg


stc32 所有的io口都有中断,可以设置优先级级中断模式。

中断函数编写个人总结

1:先使能  //  P0INTE
2:配置中断模式  //        P0IM0 = 0x00; P0IM1 = 0xff;
3: 设置优先级 // P0IPH = 1; P0IP = 1;

  1. void ioInit ()
  2. {
复制代码
  1. void ioZhongDuan () interrupt 37
  2. {
  3.         unsigned char intf;
  4.         intf = P0INTF;//中断寄存器必须软件清0
  5.         if (intf)
  6.         {
  7.                 P0INTF = 0x00;
  8.                 if (intf & 0x01)// intf ==1
  9.                 {
  10.                         //P0.0 口中断
  11.                 }
  12.                 if (intf & 0x02)
  13.                 {
  14.                                 //P0.1 口中断
  15.                 }
  16.                 if (intf & 0x04)
  17.                 {
  18.                         //P0.2 口中断
  19.                 }
  20.                 if (intf & 0x08)
  21.                 {
  22.                         //P0.3 口中断
  23.                 }
  24.                 if (intf & 0x10)
  25.                 {
  26.                         //P0.4 口中断
  27.                 }
  28.                 if (intf & 0x20)
  29.                 {
  30.                         //P0.5 口中断
  31.                 }
  32.                 if (intf & 0x40)
  33.                 {
  34.                         //P0.6 口中断
  35.                 }
  36.                 if (intf & 0x80)
  37.                 {
  38.                         //P0.7 口中断
  39.                 }
  40.         }
  41. }
复制代码


回复

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:311
  • 最近打卡:2025-08-22 19:35:27

62

主题

833

回帖

1625

积分

金牌会员

积分
1625
发表于 2024-5-9 20:01:21 | 显示全部楼层
本帖最后由 zhange 于 2024-5-11 11:49 编辑

第十七集:模数转换器ADC上

第一遍没看懂?再来一遍吧


---二刷心得---

1.基准电压不能小于测量的电压(单片机这里目前只接触到电压,我记得plc可以选择电流,后边应该??????)

2.数字量  模拟量   digtal    analog    单词这里不知道记对没  但是一定要记住

3.stc32单片机采集来的模拟量转换为数字量存储在12位二进制里边,也就是范围为0-4096

4.已经用降龙棍测试成功,p00口高阻状态有电压。

5.io口四种状态待研究。







回复

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:311
  • 最近打卡:2025-08-22 19:35:27

62

主题

833

回帖

1625

积分

金牌会员

积分
1625
发表于 2024-5-9 20:06:28 | 显示全部楼层
本帖最后由 zhange 于 2024-5-11 11:50 编辑

第十七集:模数转换器ADC下

幸好以前没事的时候看过几集plc教程,在这里有的知识点还能用上。

教程里提到了4096由来。

4096 = 2的12次方,假设我们的基准电压为0-5v,对应0-4096,我们的模块对应的是0-100度,就可以进行转换了。


1.二进制数字每左移一位转换为十进制倍数乘以2。


2.采集来的模拟量转换为数字量必须存储在16位的数里边,因为高位要左移,位数不够数据就丢了。下边画圈的地方需要左移。



截图202405100754518940.jpg



回复

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:505
  • 最近打卡:2025-08-25 18:15:10
已绑定手机

17

主题

137

回帖

2161

积分

金牌会员

积分
2161
发表于 2024-5-9 22:36:38 | 显示全部楼层
回复

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:311
  • 最近打卡:2025-08-22 19:35:27

62

主题

833

回帖

1625

积分

金牌会员

积分
1625
发表于 2024-5-10 08:52:49 | 显示全部楼层
第一集:认识单片机


---二刷了---

一开始了解单片机是8051,买了本书跟着看,刚开始看的洋桃电子后来是清翔,看着看着发现功能太小,实现不了我想要的,于是来了官网,打开新世界。

单片机真的很强大,我想实现很多功能(最想的就是做一个离线的语音搜歌小硬件),以前看教程都没看完,这次坚持看完吧。

看完这集我的目标更多了:

电子表(已经实现了)

离线搜歌

循迹小车?

飞行器?

智能门锁?

51单片机永远不会被淘汰。。
51单片机永远不会被淘汰。。

51单片机永远不会被淘汰。。


1.入门单片机一定要做项目,每学习一个功能,就往自己的项目上去靠。

2.学习还是去官网。

3.有条件还是打印一个芯片手册吧,没事看一遍。

4.模块化编程仔细学(看完一遍了总结出来的)

5.遇到问题实在搞不出来了,找官网,找客服。。。。。。

桌面镇楼  看谁比我强。。。。。。。。。。。

截图202405100851586447.jpg


哈哈哈
回复

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:311
  • 最近打卡:2025-08-22 19:35:27

62

主题

833

回帖

1625

积分

金牌会员

积分
1625
发表于 2024-5-10 09:12:38 | 显示全部楼层
第二集:了解硬件


数码管(已经烧了好几个了,注意接电阻 数码管其实是二极管,一不小心就烧了)

红外线发射器

adc(数字量  模拟量转换) 基准电压

18b20

矩阵键盘

lcd(一样是二极管,注意接分压电阻 当然你要是有试验箱  就不用管了)我没试验箱  我这是烧出来的经验

24c02 存储芯片

独立键盘

蜂鸣器(有源?无源?目前接触的都是有源?无源的我做离线播放器应该就用到了吧????)

232  485 接口

flash扩展  主要就是大

屏幕:1602?

我的降龙棍已到  看我屠龙
我的降龙棍已到  看我屠龙

我的降龙棍已到  看我屠龙


截图202405100912121477.jpg


这??我降龙棍单片机变异了?????
回复

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:311
  • 最近打卡:2025-08-22 19:35:27

62

主题

833

回帖

1625

积分

金牌会员

积分
1625
发表于 2024-5-10 09:23:33 | 显示全部楼层
本帖最后由 zhange 于 2024-5-10 09:27 编辑

第三集:开发环境的搭建和程序下载

stc-isp  官网下载,找最新版

pdf阅读器:wps最好了 我有会员  哈哈

官网手册:加密了  自己去破解吧   我已经破解了  粘贴复制 嘎嘎香。。。。。

keil下载:官网可以免费下载 社区版 不要钱  

数据下载:选好数据线,我这里买的板子不带数据线,随便找了一个下载,不管用,只能通电,又换了个带快充的就好了,应该是线的问题。后学习的可以避坑,买个好的数据线,或者好板子带线的。

我的板子是屠龙棍??降龙棍啦  太简洁了  要开始艰难的学习了  但是也锻炼了自己接外设模块的能力 烧起来数码管  嘎嘎好用



回复

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:311
  • 最近打卡:2025-08-22 19:35:27

62

主题

833

回帖

1625

积分

金牌会员

积分
1625
发表于 2024-5-10 10:36:46 | 显示全部楼层
第四集:建立工程点亮第一颗LED上


1.电灯原理:电子的移动。电势差?

2.以前点亮led都是直接正负极,老师讲的这个竟然加了一个三极管,而且还是我不会的pnp(我只会npn),正好今天把pnp原理也学习下。

p型半导体:?   n型半导体:?     pn结合形成pn结   二极管就是这个原理  单向导电性   二极管
pnp:发射极和基极必须有电势差才可以导通(奶奶的 学完就忘  还是没有实践  必须实践呀)
截图202405100948304850.jpg


3.国外软件,新建名字最好用英文,路径啥的也是。

4.单片机里我们虽然给管脚赋值为1,但是读出来不一定是高电平。下图一定要看懂
截图202405101024492497.jpg


5.sfr 特殊功能寄存器  sbit 位定义   单片机特有   c语言中没有。。。。。。

6.貌似这个老师没有讲io的几种状态  后边也没讲吧??  这个应该学会??即使没讲   有用途
  准双向口(弱上拉)

  推挽输出

  高阻输入


  开漏输出

四种状态没学会,。。。。。

回复

使用道具 举报 送花

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

本版积分规则

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

GMT+8, 2025-8-26 04:09 , Processed in 0.134757 second(s), 96 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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