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

【冲哥版】stc32学习心得

[复制链接]
  • 打卡等级:以坛为家I
  • 打卡总天数:268
  • 最近打卡:2025-06-17 07:01:20

62

主题

830

回帖

1552

积分

金牌会员

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

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

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


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

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

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

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















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

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:268
  • 最近打卡:2025-06-17 07:01:20

62

主题

830

回帖

1552

积分

金牌会员

积分
1552
发表于 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
  • 打卡总天数:268
  • 最近打卡:2025-06-17 07:01:20

62

主题

830

回帖

1552

积分

金牌会员

积分
1552
发表于 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
  • 打卡总天数:268
  • 最近打卡:2025-06-17 07:01:20

62

主题

830

回帖

1552

积分

金牌会员

积分
1552
发表于 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
  • 打卡总天数:268
  • 最近打卡:2025-06-17 07:01:20

62

主题

830

回帖

1552

积分

金牌会员

积分
1552
发表于 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
  • 打卡总天数:441
  • 最近打卡:2025-06-19 05:09:02
已绑定手机

17

主题

137

回帖

1745

积分

金牌会员

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

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:268
  • 最近打卡:2025-06-17 07:01:20

62

主题

830

回帖

1552

积分

金牌会员

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


---二刷了---

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

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

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

电子表(已经实现了)

离线搜歌

循迹小车?

飞行器?

智能门锁?

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

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


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

2.学习还是去官网。

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

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

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

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

截图202405100851586447.jpg


哈哈哈
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:268
  • 最近打卡:2025-06-17 07:01:20

62

主题

830

回帖

1552

积分

金牌会员

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


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

红外线发射器

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

18b20

矩阵键盘

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

24c02 存储芯片

独立键盘

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

232  485 接口

flash扩展  主要就是大

屏幕:1602?

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

我的降龙棍已到  看我屠龙


截图202405100912121477.jpg


这??我降龙棍单片机变异了?????
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:268
  • 最近打卡:2025-06-17 07:01:20

62

主题

830

回帖

1552

积分

金牌会员

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

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

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

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

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

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

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

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



回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:268
  • 最近打卡:2025-06-17 07:01:20

62

主题

830

回帖

1552

积分

金牌会员

积分
1552
发表于 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-6-19 05:42 , Processed in 0.166530 second(s), 96 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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