• 回复
  • 收藏
  • 点赞
  • 分享
  • 发新帖

STC15W204S单片机,开始学编程,请高手指导。。。有图

  学单片机要是有人引导一下,那是最快掌握编程的一种途径,当然也不能全让别人来出力出时间来为你工作,自己要做好请教问题的材料,特别是图文并茂的那种,高手就可以因势利导指点迷津了,所以我先就准备了我这款单片机的系统原理图,我想先从点亮LED3开始,简单的点亮一颗LED应该是比较容易上手的吧,对于新手来说,能掌握这点就算是一脚跨进去了,其他的就不难了。但是万事开头难,用C写程序特别是简单的IO口操作虽然容易做到,但是从手里开始拿到一款芯片,找到该芯片数据手册,然后用对应的编辑软件开始编写第一句程序往往要花费大量的冤枉宝贵时间,一旦掌握了之后回过头来看其实很简单,这个问题就差在没人直接对症指导,还有关键是自己没做好让有心帮忙的大侠能下手帮忙的着手点。我就从这里开始吧。点亮图中LED3,编辑软件Keil Uv4...

全部回复(93)
正序查看
倒序查看
fzhlpp
LV.7
2
2013-07-26 23:31

写了那么多,乱了,不要误以为我是来指导别人的哦,我是来请教各位大师的,特别是用过STC的高手,请教你们的一些经验,比如你们是用什么编辑软件的,怎么开始创建一个工程新建一个.c文件,然后又该怎么设置编辑软件里的一些关键设置的@#@#¥%%#,又问的太多了,你只要说一点就够,然后又有人愿意补充一些...这样就把头绪理出来了,我这里上传一个Keil Uv4

C51.haozip04 C51.haozip05 C51.haozip06 C51.haozip07 C51.haozip08 C51.haozip09 C51.haozip10 C51.haozip11 C51.haozip12 UV4.haozip01 UV4.haozip02 UV4.haozip03 UV4.haozip04   C51.haozip01 C51.haozip02 C51.haozip03  本分卷由2345好压 编辑软件,方便跟我一样需要的新手吧,希望我们共同进步!。上面这些解压到C盘根目录新建的一个Keil文件夹下:

 

0
回复
2013-07-26 23:48
@fzhlpp
写了那么多,乱了,不要误以为我是来指导别人的哦,我是来请教各位大师的,特别是用过STC的高手,请教你们的一些经验,比如你们是用什么编辑软件的,怎么开始创建一个工程新建一个.c文件,然后又该怎么设置编辑软件里的一些关键设置的@#@#¥%%#,又问的太多了,你只要说一点就够,然后又有人愿意补充一些...这样就把头绪理出来了,我这里上传一个KeilUv4[图片]C51.haozip04 [图片]C51.haozip05 [图片]C51.haozip06 [图片]C51.haozip07 [图片]C51.haozip08 [图片]C51.haozip09 [图片]C51.haozip10 [图片]C51.haozip11 [图片]C51.haozip12 [图片]UV4.haozip01 [图片]UV4.haozip02 [图片]UV4.haozip03 [图片]UV4.haozip04   [图片]C51.haozip01 [图片]C51.haozip02 [图片]C51.haozip03 [图片]本分卷由2345好压 编辑软件,方便跟我一样需要的新手吧,希望我们共同进步!。上面这些解压到C盘根目录新建的一个Keil文件夹下:[图片] 

版区刚刚成立,希望大家能一起学习,一起进步。

0
回复
fzhlpp
LV.7
4
2013-07-27 00:30
@电源网-娜娜姐
版区刚刚成立,希望大家能一起学习,一起进步。
谢谢师长捧场鼓励,希望知道的大侠鼎力相助。这里先谢过了!。。。
0
回复
fzhlpp
LV.7
5
2013-07-27 01:02
@fzhlpp
谢谢师长捧场鼓励,希望知道的大侠鼎力相助。这里先谢过了!。。。

我就先一步一步把我的做法贴出来吧,不对的地方请大侠指导一下:

我在STC官网http://www.mcu-memory.com/上面先下载了这个stc-isp-15xx-v6.53 软件,然后把我上面的UV4编辑软件解压到C盘根目录下新建的一个叫keil的文件夹下

 

 

 

为什么要这么做我也不知道,好像我是哪个论坛里看到的说要这么做才可以方便STC单片机型号导入什么的,以后再去了解吧,有知道的也说说是不是这样。然后解压上面这个stc-isp-15xx-v6.53软件并双击运行打开,打开后界面是这样的: 

 

点击右上角小箭头,出现头文件栏目后继续点击中间出现的按键框,“添加MCU型号到Keil中”

 

太晚了,明天再做了,路过的大侠指导一下啊!!!

 

0
回复
dapeng
LV.5
6
2013-07-27 08:19
@fzhlpp
我就先一步一步把我的做法贴出来吧,不对的地方请大侠指导一下:我在STC官网http://www.mcu-memory.com/上面先下载了这个[图片]stc-isp-15xx-v6.53 软件,然后把我上面的UV4编辑软件解压到C盘根目录下新建的一个叫keil的文件夹下 [图片]  为什么要这么做我也不知道,好像我是哪个论坛里看到的说要这么做才可以方便STC单片机型号导入什么的,以后再去了解吧,有知道的也说说是不是这样。然后解压上面这个stc-isp-15xx-v6.53软件并双击运行打开,打开后界面是这样的: [图片] 点击右上角小箭头,出现头文件栏目后继续点击中间出现的按键框,“添加MCU型号到Keil中”[图片] 太晚了,明天再做了,路过的大侠指导一下啊!!! 

继续加油

0
回复
fzhlpp
LV.7
7
2013-07-27 23:36
@dapeng
继续加油

 谢谢鼓励,今天把芯片放在了下载板上,按下电源键后看到了锁紧座周围的贴片LED指示灯呈流水式依次亮灭跑了起来。问了他们客服才知道他们芯片里面都已烧好了这种流水程序的,方便用户检查芯片放在锁紧座上是否正确和到位。

今天就连接这块下载板花费了好多时间,我笔记本只有USB接口所以买了一个USB转串口线,线插到电脑上后驱动安装不上,后来又上网找驱动,驱动装上了但有时又不灵,不知道是什么原因。

 

0
回复
fzhlpp
LV.7
8
2013-07-28 00:40
@fzhlpp
[图片] 谢谢鼓励,今天把芯片放在了下载板上,按下电源键后看到了锁紧座周围的贴片LED指示灯呈流水式依次亮灭跑了起来。问了他们客服才知道他们芯片里面都已烧好了这种流水程序的,方便用户检查芯片放在锁紧座上是否正确和到位。今天就连接这块下载板花费了好多时间,我笔记本只有USB接口所以买了一个USB转串口线,线插到电脑上后驱动安装不上,后来又上网找驱动,驱动装上了但有时又不灵,不知道是什么原因。 
还不知道怎么开头呢,包含头文件是知道一点了,下面怎么设置IO口就不是很清楚了,一直在网上找这种操作IO口的例程,以前我用AVR就是抄例程写出的程序,那样效果特别好,有效果后自己慢慢消化吸收然后举一反三,不理解的再仔细的看芯片数据手册,这时看数据手册是有目的的看了,跟开始什么都不做就看手册是有本质区别的,看了手册后对着自己“抄”来的程序,慢慢理解了芯片资源配置大概是个什么玩意。
0
回复
bode
LV.9
9
2013-07-28 10:50
@fzhlpp
还不知道怎么开头呢,包含头文件是知道一点了,下面怎么设置IO口就不是很清楚了,一直在网上找这种操作IO口的例程,以前我用AVR就是抄例程写出的程序,那样效果特别好,有效果后自己慢慢消化吸收然后举一反三,不理解的再仔细的看芯片数据手册,这时看数据手册是有目的的看了,跟开始什么都不做就看手册是有本质区别的,看了手册后对着自己“抄”来的程序,慢慢理解了芯片资源配置大概是个什么玩意。
我也正在学习,跟着楼主一起学习。
0
回复
fzhlpp
LV.7
10
2013-07-28 19:47
@bode
我也正在学习,跟着楼主一起学习。
呵呵有人一起学很好啊,不过我进度很慢的,估计你已经成了绝世高手了我还在初级阶段继续摸索着。主要工作不是做这个,所以只在有空时来学学。
0
回复
摘云
LV.5
11
2013-07-29 14:27
@fzhlpp
还不知道怎么开头呢,包含头文件是知道一点了,下面怎么设置IO口就不是很清楚了,一直在网上找这种操作IO口的例程,以前我用AVR就是抄例程写出的程序,那样效果特别好,有效果后自己慢慢消化吸收然后举一反三,不理解的再仔细的看芯片数据手册,这时看数据手册是有目的的看了,跟开始什么都不做就看手册是有本质区别的,看了手册后对着自己“抄”来的程序,慢慢理解了芯片资源配置大概是个什么玩意。
学习单片机是不是要熟记很多的指令?
0
回复
fzhlpp
LV.7
12
2013-07-29 17:33
@摘云
学习单片机是不是要熟记很多的指令?
 不用记指令的,开始学的时候只用到几个指令,你会一个指令并实践了这个指令后,你就自然渴望到寻找其他指令来满足你的求知欲了。
0
回复
2013-07-29 18:51
@摘云
学习单片机是不是要熟记很多的指令?
可以用C语言来开发应用的
0
回复
摘云
LV.5
14
2013-07-30 07:59
@fzhlpp
 不用记指令的,开始学的时候只用到几个指令,你会一个指令并实践了这个指令后,你就自然渴望到寻找其他指令来满足你的求知欲了。
没学过汇编,也没学过C语言,可能学起来比较困难
0
回复
fzhlpp
LV.7
15
2013-08-01 20:42
@摘云
没学过汇编,也没学过C语言,可能学起来比较困难

对于这款STC单片机,我跟你一样一无所知,所以你可以从现在开始跟我一起学,我也在试着学会它,没学过C语言没事,你可以上网查上论坛看,多发帖请教,论坛好人多,但记住自己也要勤快点。

 经过这段时间的折磨我终于了解了一点这款单片机。并如愿的实现了点亮上面原理图中的LED3指示灯。

 #include "STC15F2K60S2.h"
   sbit LEDCONTROL=P1^5;//先定义P1.5这个IO口用LEDCONTROL表示,这个LEDCONTROL可以用别的自己认为好记的代替,比如LEDKZ=P1^5;

    sbit LED3=P1^4; //这里定义P1.4这个IO口用LED3表示

  void main()
  {    
 
     while(1) 
   {    
    LEDCONTROL=0;  //P1.5这个IO口设置为低电平,从原理图分析这个IO口控制的是
                     //一个PNP型三极管,拉低后三极管导通,其控制的LED3阳极就有了5V工作电压         
    LED3=0; //P1.4这个IO口也设置为低电平,这样LED3这个指示灯有有电流流通点亮发光了。
   }                               
  } 

 

0
回复
fzhlpp
LV.7
16
2013-08-01 23:22
@fzhlpp
对于这款STC单片机,我跟你一样一无所知,所以你可以从现在开始跟我一起学,我也在试着学会它,没学过C语言没事,你可以上网查上论坛看,多发帖请教,论坛好人多,但记住自己也要勤快点。 经过这段时间的折磨我终于了解了一点这款单片机。并如愿的实现了点亮上面原理图中的LED3指示灯。 #include"STC15F2K60S2.h"  sbitLEDCONTROL=P1^5;//先定义P1.5这个IO口用LEDCONTROL表示,这个LEDCONTROL可以用别的自己认为好记的代替,比如LEDKZ=P1^5;    sbitLED3=P1^4;//这里定义P1.4这个IO口用LED3表示 voidmain() {         while(1)   {       LEDCONTROL=0; //P1.5这个IO口设置为低电平,从原理图分析这个IO口控制的是                    //一个PNP型三极管,拉低后三极管导通,其控制的LED3阳极就有了5V工作电压            LED3=0; //P1.4这个IO口也设置为低电平,这样LED3这个指示灯有有电流流通点亮发光了。  }                               }  

上面只是这个指示灯一直亮着,那么要让这个指示灯动起来,一亮一灭的好看一点就要用到延时程序了,下面这个就可以做到这个功能:

#include "STC15F2K60S2.h"
   sbit LEDCONTROL=P1^5;//先定义P1.4这个IO口用LEDCONTROL表示,这个LEDCONTROL可以用别的自己认为好记的代替,比如LEDKZ=P1^4;
   sbit LED3=P1^4; //这里定义P1.5这个IO口用LED3表示

   void delay()
{
    int i, j;

    for (i=0; i<800; i++)
    for (j=0; j<500; j++);
}

  void main()
  {    
 
while(1) 
 {    
LEDCONTROL=0;//P1.5这个IO口设置为低电平,从原理图分析这个IO口控制的是一个PNP型三极管,拉低后三极管导通,其控制的LED3阳极就有了5V工作电压         
LED3=0; //P1.4这个IO口也设置为低电平,这样LED3这个指示灯有有电流流通点亮发光了。
delay();  //延时一段时间,也就是上面的LED3=0;这句程序表示LED3这个指示灯亮的状态延时保持一段时间
LED3=1;   //经过上面一段时间延时后,程序运行到这句指令就把P1.4这个IO口拉高了,指示灯就没回路而熄灭。
 }                               
  } //上面这个while(1)是个死循环,就是这几句指令周而复始一直循环运行下去,那么LED3这个指示灯就一亮一灭的了,直到关闭总电源。

0
回复
fzhlpp
LV.7
17
2013-08-01 23:33
@fzhlpp
上面只是这个指示灯一直亮着,那么要让这个指示灯动起来,一亮一灭的好看一点就要用到延时程序了,下面这个就可以做到这个功能:#include"STC15F2K60S2.h"  sbitLEDCONTROL=P1^5;//先定义P1.4这个IO口用LEDCONTROL表示,这个LEDCONTROL可以用别的自己认为好记的代替,比如LEDKZ=P1^4;  sbitLED3=P1^4;//这里定义P1.5这个IO口用LED3表示  voiddelay(){   inti,j;   for(i=0;i

STC给我寄的USB转串口线是坏的,晕死,难怪一直不能烧芯片,幸亏有台带串口输出的台式电脑,才验证了我的程序。

哎,也不见高手来指导一下,是天气太热了是吧,没人想出来逛了,我倒是希望跟我一样刚学的新手快快的学起来这款芯片,来跟我一起交流学习,接下来我就要写整个数码管的数字显示程序了,有想学的新手如果有不懂上面的可以直接发帖问,不然下面的数码管你就跟不上了,呵呵。我还想等着你们反过来教教我啊。

没高手来我就只有硬着头皮慢慢揣摩了。。。

0
回复
摘云
LV.5
18
2013-08-02 09:42
@fzhlpp
STC给我寄的USB转串口线是坏的,晕死,难怪一直不能烧芯片,幸亏有台带串口输出的台式电脑,才验证了我的程序。哎,也不见高手来指导一下,是天气太热了是吧,没人想出来逛了,我倒是希望跟我一样刚学的新手快快的学起来这款芯片,来跟我一起交流学习,接下来我就要写整个数码管的数字显示程序了,有想学的新手如果有不懂上面的可以直接发帖问,不然下面的数码管你就跟不上了,呵呵。我还想等着你们反过来教教我啊。没高手来我就只有硬着头皮慢慢揣摩了。。。
跟着您走
0
回复
2013-08-02 10:07
@fzhlpp
上面只是这个指示灯一直亮着,那么要让这个指示灯动起来,一亮一灭的好看一点就要用到延时程序了,下面这个就可以做到这个功能:#include"STC15F2K60S2.h"  sbitLEDCONTROL=P1^5;//先定义P1.4这个IO口用LEDCONTROL表示,这个LEDCONTROL可以用别的自己认为好记的代替,比如LEDKZ=P1^4;  sbitLED3=P1^4;//这里定义P1.5这个IO口用LED3表示  voiddelay(){   inti,j;   for(i=0;i

出于节能与CPU的考虑,delay延时是否可以不要呢,加一句PCON = 0X01;

再搭配定时器使用延时。

0
回复
摘云
LV.5
20
2013-08-02 11:31
@fzhlpp
上面只是这个指示灯一直亮着,那么要让这个指示灯动起来,一亮一灭的好看一点就要用到延时程序了,下面这个就可以做到这个功能:#include"STC15F2K60S2.h"  sbitLEDCONTROL=P1^5;//先定义P1.4这个IO口用LEDCONTROL表示,这个LEDCONTROL可以用别的自己认为好记的代替,比如LEDKZ=P1^4;  sbitLED3=P1^4;//这里定义P1.5这个IO口用LED3表示  voiddelay(){   inti,j;   for(i=0;i
延时程序怎么写才能更精确呢?我买了个学习板,配有老师讲课,根据视频的讲解这个时间很难调
0
回复
2013-08-02 12:03
@摘云
延时程序怎么写才能更精确呢?我买了个学习板,配有老师讲课,根据视频的讲解这个时间很难调
不到万不得已一般不用软件延时,那会浪费很多时间在无用的循环上,你可以学习完定时器后再来看看延时,那叫做硬件延时,当然,学习一步一步来,急不得。
0
回复
fzhlpp
LV.7
22
2013-08-02 21:59
@爱炫小王子
出于节能与CPU的考虑,delay延时是否可以不要呢,加一句PCON=0X01;再搭配定时器使用延时。
你说的很对,不得不用的情况下才考虑用软件延时,只是刚开始学单片机的最好还是先学会用软件延时,而且刚学的人都还不知道什么叫“软件延时”哦,呵呵,等学过一段时间,自己也写出一点能运行的程序后就慢慢理解了,不能急于一时的要求像“摘云”网友提问的那样高精度延时,刚学的最好先像我上面那个LED灯一亮一灭的工作起来,然后自己试试修改那个延时里面的数字看看改变后的效果去理解软件延时,以后到需要精确延时的时候应该都懂了,软件延时在很多程序中都是必须的啊,没那么多定时器。这款芯片好像就2个定时器吧,我还没看到学到这里,马上我说的数码管显示也是软件延时的,这个数码管显示就是须要用软件延时了。定时器留给了后面的功能。
0
回复
fzhlpp
LV.7
23
2013-08-02 22:04
@摘云
延时程序怎么写才能更精确呢?我买了个学习板,配有老师讲课,根据视频的讲解这个时间很难调
你买的是什么学习板,为什么想到要精确延时能,把你遇到的问题详细的说出来这个论坛高手如云,说不定就解决你的疑问了。
0
回复
摘云
LV.5
24
2013-08-02 23:31
@爱炫小王子
不到万不得已一般不用软件延时,那会浪费很多时间在无用的循环上,你可以学习完定时器后再来看看延时,那叫做硬件延时,当然,学习一步一步来,急不得。
谢谢,呵呵呵,初学嘛总要搞懂是怎么回事情,先摸到大门才能进去呀!!呵呵呵
0
回复
摘云
LV.5
25
2013-08-02 23:34
@fzhlpp
你买的是什么学习板,为什么想到要精确延时能,把你遇到的问题详细的说出来这个论坛高手如云,说不定就解决你的疑问了。
我买的是哈尔滨工业大学的一个叫天祥的学习板,他的广告语是“单片机,十天征服你”,配有教学光盘
0
回复
摘云
LV.5
26
2013-08-02 23:35
@fzhlpp
你买的是什么学习板,为什么想到要精确延时能,把你遇到的问题详细的说出来这个论坛高手如云,说不定就解决你的疑问了。
弄这个延时也就是练习写一些小程序而已
0
回复
fzhlpp
LV.7
27
2013-08-02 23:39

还真不知道按什么排版原则发帖跟帖才不会乱,试试跟第一帖效果怎么样,有论坛发帖经验的高手也指导一下咱,新手们也学习学习。

下面是我成功数码显示功能的程序,新手们可要好好分析了,别小看我这个新手,我可是花了不少时间才琢磨出来的,这个原理图对单片机的IO口操作很有代表性,我觉得^_^。这就是传说中的IO口复用吧,当然还有更精辟的IO口复用,咱慢慢来,学单片机就要先分析硬件原理,这里用两个共阳数码管显示,两组LED的共阴极相同段并在一起,两组的阳极是分开的,这样我们显示时先显示其中一个数码管,另外一个关闭,延时几个毫秒后关闭这个开启另外那个数码管,这样我们眼睛看到的就是两个数码管是一起显示的了,眼睛是分辨不出两个数码管其实是轮流显示的。

#include "STC15W204S.h"
sbit LED=P1^5;   //定义控制3个LED的IO口,数码管显示的时候这个IO口必须为高电平,否则3个LED就有机会发光了。
sbit ANJIAN=P3^0; //定义控制按键的IO口,同样的道理,数码管显示的时候按键输出的IO口也设置为高,经过按键隔离电阻后就不影响数码管显示了
sbit SHUMA1=P1^1;  //定义控制数码管1的IO口
sbit SHUMA2=P5^5;  //定义控制数码管2的IO口
#define  uchar unsigned char
#define  uint  unsigned int
 
uchar a=0,b=0;//定义全局变量,也可以在main主函数里局部定义,只是我以后要在别的函数和中断函数里要用到这个变量。

const unsigned char table1[]={0xEA,0xEF,0xFA,0xEE,0xEF,0xEE,0xEA,0xEF,0xEA,0xEE,0xFF};  //这里数组等我有空了分析给跟我一样的新手看
const unsigned char table3[]={0xB5,0xFD,0x75,0x75,0x3D,0x37,0x37,0xF5,0x35,0x35,0xFF};

  void delay(uchar ms) //延时函数,具体多少时间我不知道,呵呵,不要紧这个时间自己可以修改里面的数字,时间长LED亮度高,相反LED就较暗。
{
      uchar i,j;
 for(i=0;i

 {
    for(j=0;j<50;j++);
   }

}


 void show(uchar xs,uchar k) //显示函数,把显示部分分离出来更清晰方便模块化。
     {
   LED=1;   //控制3个LED三极管Q1的IO口拉高。
   P1=0xFF; //P1口全部拉高,这样其上的LED或数码管都不亮,
   P3=0xFF; //同上,其中还包含了控制按键拉高,就是说在显示函数里屏蔽其他功能以免造成影响。
     P5=0xFF;  //控制数码管阳极的Q2的IO口拉高,其控制的数码管不亮。
     if(k==1){SHUMA1&=0;}//这句话的意思就是如果是主函数运行到show(a,1)这个显示函数那么就是要显示数码管1的数字,这是就要开启控制数码管1的那个阳极的那个三极管 

   if(k==0){SHUMA2&=k;}//这句话的意思就是如果是主函数运行到show(b,0)这个显示函数那么就是要显示数码管2的数字,这是就要开启控制数码管2的那个阳极的那个三极管  

    P1&=table1[xs];
     P3&=table3[xs];
     delay(5);
     }

/////////其中的a是代表数码管的个位,b是代表数码管的十位。  

void main()
{
;
 while (1)
    {
   uint jj;
       b=(a==10)?b+1:b;
    a=(a==10)?0:a;
    b=(b==10)?0:b;
    a=(a>9)?9:a;
    show(a,1);
    show(b,0);
    jj++;
    if(jj==3100){a=a+1;jj=0;}

    }
}

这里上传这个原理图的99SE版.schSTC15W204S 

0
回复
fzhlpp
LV.7
28
2013-08-02 23:42
@摘云
弄这个延时也就是练习写一些小程序而已
我是问你用的是什么单片机,在做什么功能,看你好像跟我一样是新手啊,呵呵,一起学吧。
0
回复
摘云
LV.5
29
2013-08-03 00:29
@fzhlpp
我是问你用的是什么单片机,在做什么功能,看你好像跟我一样是新手啊,呵呵,一起学吧。
绝对的新手,呵呵呵,而且是崭新的,芯片也是STC89C52
0
回复
bode
LV.9
30
2013-08-03 08:00
@fzhlpp
呵呵有人一起学很好啊,不过我进度很慢的,估计你已经成了绝世高手了我还在初级阶段继续摸索着。主要工作不是做这个,所以只在有空时来学学。

呵呵,我进展也不快。来电源网讨论单片机技术,本职大都是做电源,为了兴趣或者充电在业余学习单片机的。

我平时也就是看看书,玩玩开发板,工作忙的时候,一天也就看个一两页。

有空也会看看视频,有个视频叫《十天精通单片机》,看名字虽然夸张些,不过讲得确实不错。

楼主在学习单片机的过程中,学习汇编吗?

 

0
回复
bode
LV.9
31
2013-08-03 08:05
@fzhlpp
你说的很对,不得不用的情况下才考虑用软件延时,只是刚开始学单片机的最好还是先学会用软件延时,而且刚学的人都还不知道什么叫“软件延时”哦,呵呵,等学过一段时间,自己也写出一点能运行的程序后就慢慢理解了,不能急于一时的要求像“摘云”网友提问的那样高精度延时,刚学的最好先像我上面那个LED灯一亮一灭的工作起来,然后自己试试修改那个延时里面的数字看看改变后的效果去理解软件延时,以后到需要精确延时的时候应该都懂了,软件延时在很多程序中都是必须的啊,没那么多定时器。这款芯片好像就2个定时器吧,我还没看到学到这里,马上我说的数码管显示也是软件延时的,这个数码管显示就是须要用软件延时了。定时器留给了后面的功能。
软件延时太浪费资源,用定时器中断最省事。
0
回复