z1r343l 发表于 2024-12-25 20:11:49

“32位8051单片机原理及应用”学习 个人汇总

本人是大学生一枚,电子专业的学生,刚刚接触单片机,学习学习。认识单片机。
单片机是小型微型计算机,汇编看了看,有点难,还是用c语言吧。今天就这样。
{:4_165:}{:4_197:}{:4_197:}{:4_197:}

z1r343l 发表于 2024-12-27 08:44:22

<p>第二集 硬件工具安装<img alt="ciya" class="emoji" src="https://www.stcaimcu.com/static/image/smiley/default/ciya.gif" title="ciya" /></p>
<p><img src="data/attachment/forum/202412/27/084500gciewiwerrewe8tf.png" alt="image.png" title="image.png" /></p>
<p>主要是keil 和isp 我注册机网上找了一下,直接下载视频下面的软件包。直接看教程安装</p>
<p><img src="data/attachment/forum/202412/27/084509drxvrk19bxg4gvg1.png" alt="image.png" title="image.png" /></p>
<p>stc教程还是非常丰富的<img alt="guzhang" class="emoji" src="https://www.stcaimcu.com/static/image/smiley/default/guzhang.gif" title="guzhang" /></p>

z1r343l 发表于 2024-12-28 12:35:17

<h1>第三集:开发环境搭建和程序下载上集</h1>
<p>还好stc公司离我们学校近,一天不到就到货了,擎天柱到手,直接开始学点灯。<img alt="ciya" class="emoji" src="https://www.stcaimcu.com/static/image/smiley/default/ciya.gif" title="ciya" /></p>
<p><img src="data/attachment/forum/202412/28/130631lwazxtuts7iaamw2.png" alt="image.png" title="image.png" /></p>
<h2>通电测试</h2>
<p>芯片内部应该有流水灯程序,焊接好引脚,通电就开始跑马灯了</p>
<video controls="controls" src="forum.php?mod=attachment&amp;aid=77567"></video>
<h1>第三集:开发环境搭建和程序下载下集</h1>
<h2>文件夹分类</h2>
<p>开始编写程序。打开keil ,先编辑一下keil的文件夹,把文件夹分类一下,我习惯使用User App Driver 三个文件夹表示自己写的程序。</p>
<p>先创建文件夹</p>
<p><img src="data/attachment/forum/202412/28/132332gm46ly84swb3wwsp.png" alt="image.png" title="image.png" /></p>
<p>然后keil中添加路径</p>
<p><img src="data/attachment/forum/202412/28/132202la155fi5e1kkaeef.png" alt="image.png" title="image.png" /></p>
<h2>消除警告</h2>
<p>当我们写程序的时候,发现有的函数虽然你写了,但是却警告你没有使用这个函数,看着就烦人</p>
<p><img src="data/attachment/forum/202412/28/133659at6rx6hthdz2v9tt.png" alt="image.png" title="image.png" /></p>
<p>我们把这个L57号的警告屏蔽掉</p>
<p><img src="data/attachment/forum/202412/28/133803ua1kk5wu88w2qeaw.png" alt="image.png" title="image.png" /></p>
<p>因为上文我们对文件的分类,添加了文件夹,现在我们再添加想对应的代码</p>
<p><img src="data/attachment/forum/202412/28/133910j3t7e7y3thqgg37l.png" alt="image.png" title="image.png" /></p>
<h2>硬件分析</h2>
<p>led闪烁部分直接复制demo里的跑马灯</p>
<p>因为我的板子led是P1口,如图</p>
<p><img src="data/attachment/forum/202412/28/134155cvyprzrdyx1fjzaa.png" alt="image.png" title="image.png" /></p>
<p>所以程序先使用P1引脚而不是P0.</p>
<p>void led_loop(void)<br />
{</p>
<pre><code>
void led_loop(void)
{
          P10 = 0;                //LED On
      delay_ms(250);
      P10 = 1;                //LED Off

      P11 = 0;                //LED On
      delay_ms(250);
      P11 = 1;                //LED Off

      P12 = 0;                //LED On
      delay_ms(250);
      P12 = 1;                //LED Off

      P13 = 0;                //LED On
      delay_ms(250);
      P13 = 1;                //LED Off

      P14 = 0;                //LED On
      delay_ms(250);
      P14 = 1;                //LED Off

      P15 = 0;                //LED On
      delay_ms(250);
      P15 = 1;                //LED Off

      P16 = 0;                //LED On
      delay_ms(250);
      P16 = 1;                //LED Off

      P17 = 0;                //LED On
      delay_ms(250);
      P17 = 1;                //LED Off
}
</code></pre>
<h2>程序下载测试</h2>
<p>下载程序(通电后,按住P32INT0按键 和 POWER按键,然后松开POWER按键),效果如下</p>
<video controls="controls" src="forum.php?mod=attachment&amp;aid=77580"></video>

z1r343l 发表于 2024-12-28 13:58:58

<h1>第四集:建立工程点亮第一颗LED 上</h1>
<h2>分析led点亮原理,二极管的导通</h2>
<p>可以看看我的分析,把LED的符号当成一个箭头,也就是电流从高电势流向低电势,也就是电流的指向方向,所以led导通。</p>
<p><img src="data/attachment/forum/202412/28/135523hv1orzr82j3fu014.png" alt="image.png" title="image.png" /></p>
<p>如果led的高电势接引脚,那么就是高电平点亮,同理,低电势接硬件就是低电平点亮。</p>
<p>上集测试的时候已经把led测试过了,那我后面再拓展一下。</p>

z1r343l 发表于 2024-12-28 14:45:44

<h1>第四集:建立工程点亮第一颗LED 下</h1>
<h2>实现自动下载工程</h2>
<p>截图记录一下</p>
<p><img src="data/attachment/forum/202412/28/140142ru99b8b8u8cicfju.png" alt="image.png" title="image.png" /></p>
<p>添加stc_usb_hid_lib库函数,找一找demo copy一下</p>
<p><img src="data/attachment/forum/202412/28/140540zaid51qdzz8f3avz.png" alt="image.png" title="image.png" /></p>
<p><img src="data/attachment/forum/202412/28/143903n8rq2krt3zmjrtlj.png" alt="image.png" title="image.png" /><br />
<img src="data/attachment/forum/202412/28/143948luuquufz0z28ufjm.png" alt="image.png" title="image.png" /></p>
<p>8051u如图添加文件,视频是stc32,8051的lib需要在官方资源包里面找</p>
<h2>测试不断电下载。</h2>
<p>👌<img alt="ciya" class="emoji" src="https://www.stcaimcu.com/static/image/smiley/default/ciya.gif" title="ciya" /></p>
<p><img src="data/attachment/forum/202412/28/144524v2crrxx66hhe0tho.gif" alt="GIF2024-12-2814-44-44.gif" title="GIF 2024-12-28 14-44-44.gif" /></p>

z1r343l 发表于 2024-12-29 10:49:20

<h1>第五集:C语言运算符和进制数入门 上</h1>
<h2>printf用法</h2>
<p>!image-20241229104715698</p>
<p><strong>\r \n 空格换行</strong></p>
<h2>数值转化</h2>
<p><strong>%d 十进制整数</strong></p>
<p><strong>%ld 十进制长整形</strong></p>
<p><strong>%f 单精度浮点</strong></p>
<p><strong>%lf 双精度浮点</strong></p>
<p><strong>%0 八进制整形</strong></p>
<p><strong>%x 或%X 以十六进制形式输出整形</strong></p>
<p><strong>%u 十进制无符号整形输出</strong></p>
<p><strong>%i 和%d一样</strong></p>
<p><strong>%c输出单字符</strong></p>
<p><strong>%s输出字符串</strong></p>
<p><strong>%e 或%E 输出指数</strong></p>
<p><strong>%g 或% G 自适应输出</strong></p>
<p><strong>%p 输出地址</strong></p>

z1r343l 发表于 2024-12-29 10:52:09

<h1>第五集:C语言运算符和进制数入门 下</h1>
<h1>1.数据基本类型</h1>
<p><img src="data/attachment/forum/202412/29/105208x1yd01n3ydmzyxmy.png" alt="image-20241229105059154" /></p>

z1r343l 发表于 2024-12-29 11:05:09

<h1>第六集:LED闪烁和花式点灯 上</h1>
<h2>delay函数</h2>
<p><strong>修改之前的delay 原本参数是u8类型,也就是只能1-255ms delay</strong></p>
<p><img src="data/attachment/forum/202412/29/110408qjqdojyqjkjto6dz.png" alt="image-20241229110004863" /></p>
<h2>led函数</h2>
<p><img src="data/attachment/forum/202412/29/110408gn9jnvvzfcncnfa7.png" alt="image-20241229110048918" /></p>
<h2>效果验证</h2>
<video controls="controls" src="forum.php?mod=attachment&amp;aid=77831"></video>
<p>!GIF 2024-12-29 11-03-26</p>

z1r343l 发表于 2024-12-29 12:48:27

<h1>第六集:LED闪烁和花式点灯 下</h1>
<h2>函数的使用</h2>
<h3>函数定义</h3>
<pre><code>返回值 函数名称 (入口参数)
{
    函数执行的功能;
}

</code></pre>
<h3>函数声明</h3>
<pre><code>返回值 函数名称 (入口参数);
</code></pre>
<h3>函数调用</h3>
<pre><code>函数名称 (入口参数);
</code></pre>
<h2>模块化编程</h2>
<p><img src="data/attachment/forum/202412/29/124827m0mpk8qys208yj2j.png" alt="image-20241229124754772" /></p>
<h2>CDC下载模式设置</h2>
<p>出了小插曲,突然芯片不能识别了,然后求助了一下,电脑重启了一下又能识别芯片了。<img alt="shuai" class="emoji" src="https://www.stcaimcu.com/static/image/smiley/default/shuai.gif" title="shuai" /></p>
<p>配置如下</p>
<p><img src="data/attachment/forum/202412/29/134427qtq8cah21kqsev7s.png" alt="image.png" title="image.png" /></p>
<p><img src="data/attachment/forum/202412/29/134557rmj2jkktj8ujtcxj.gif" alt="GIF2024-12-2913-45-35.gif" title="GIF 2024-12-29 13-45-35.gif" /></p>
<p>没问题了</p>
<h2>测试例程</h2>
<p>继续测试函数</p>
<p><img src="data/attachment/forum/202412/29/134801t1t3bjr88nbe8ua6.png" alt="image.png" title="image.png" /></p>
<p><img src="data/attachment/forum/202412/29/134900hx00i9x7x442ug6x.gif" alt="GIF2024-12-2913-48-39.gif" title="GIF 2024-12-29 13-48-39.gif" /></p>

z1r343l 发表于 2024-12-29 14:45:03

<h1>第七集:按键点灯 上</h1>
<h2>按键的原理</h2>
<p><img src="data/attachment/forum/202412/29/144408dzi56f5ptqbe5bg5.png" alt="image-20241229143535517" /></p>
<p><strong>类比开关,通断引脚</strong></p>
<p><img src="data/attachment/forum/202412/29/144409e84ftyfte28xptft.png" alt="image-20241229143607878" /></p>
<p><strong>按键按下与松开的抖动</strong></p>
<h2>程序测试</h2>
<p><strong>程序如图</strong></p>
<p><img src="data/attachment/forum/202412/29/144409qh8jsdnkdcegcccc.png" alt="image-20241229143749593" /></p>
<p>程序如图</p>
<p><img src="data/attachment/forum/202412/29/144424lb65zb7kxfmm5n6k.gif" alt="GIF2024-12-2914-38-37.gif" title="GIF 2024-12-29 14-38-37.gif" /></p>
<p>串口打印没问题</p>
<video controls="controls" src="forum.php?mod=attachment&amp;aid=77890"></video>
<p>led控制也没问题</p>
页: [1] 2
查看完整版本: “32位8051单片机原理及应用”学习 个人汇总