dvbbs
收藏本页
联系我们
论坛帮助
dvbbs

睿志音响技术论坛睿志音响论坛睿志音响论坛 → PIC单片机在音响中应用学习(6-20三楼讲解例程2)


  共有3251人关注过本帖树形打印

主题:PIC单片机在音响中应用学习(6-20三楼讲解例程2)

帅哥,在线噢!
audio-gd
  16楼 个性首页 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 贴子:25029 积分:133193 威望:0 精华:49 注册:3/26/2005 8:25:45 PM
  发贴心情 Post By:5/24/2017 2:50:48 PM

二楼提供下载的例程,一个版本是带注释及说明,另外一个版本将大部分说明删除了方便直接看。

各位需要做练习并贴上来方可进行下一个例程的说明。



http://www.audio-gd.com

Blog:   http://kingwa.blog.163.com/

支持(0中立(0反对(0回到顶部
帅哥,在线噢!
rjx
  17楼 个性首页 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 贴子:4540 积分:42745 威望:0 精华:43 注册:4/27/2005 10:50:08 AM
  发贴心情 Post By:5/24/2017 3:38:36 PM

为了大家尽快入门,鄙人想就单片机的一些基础知识写一些短文,初步想有这些:数制,数据类型,MCU的端口及配置,宏定义,PIC单片机的配置。。。。等等,希望对大家有帮助,也减轻一些何生的负担 (请用微软的IE,用360等浏览器会使行错位,影响阅读)

 

                                单片机基础知识浅说之一: 单片机中的数制

 

                                                
    我们从孩童开始学数数,接触的就是十进制,从小学就懂得“逢十进一,借一当十”这个最基本的运算规律。

然而在单片机中常用的数制除了有十进制外、还有二进制、十六进制和压缩BCD码等,它们的基本运算规律却与十进制大大的不同。

一、十进制

十进制是我们非常熟悉的计数制,其特点是有十个计数符号,即0、1、2、3、4、5、6、7、8、9.
由这十个符号可以组成无数个数字,其计算规律是“逢十进一,借一当十”,这个大家很熟悉了,就不多啰嗦。

二、二进制

只有两个计数符号:0和1,计算规律是“借一当二,逢二进一”,看下面加法的例子:
      
               0        相当十进制数 
          +   1
         --------
              1              1
        +    1
         --------
             10             2
        +    1
         --------
             11             3       
        +    1                     (注意进位)
         --------
            100            4

 

 

看明白了吗?因为只有两个计数符号,也就是说不能出现2、3、4.。。。。这样的数字,所以,逢二就要进位了啊!

再看减法:                          


          (二进制减法)                       (十进制减法)

        10 (借位,借1当二)                 2         
            -  1                                              - 1
           ------     --------------->               -------      
               1                                                1

看到吗?左边的二进制减法,由于0-1不够减,向前面借1,借1当2啊!减1还剩下1.

 


支持(0中立(0反对(0回到顶部
帅哥,在线噢!
rjx
  18楼 个性首页 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 贴子:4540 积分:42745 威望:0 精华:43 注册:4/27/2005 10:50:08 AM
  发贴心情 Post By:5/24/2017 3:46:22 PM

三,十六进制

   在单片机中常把四位二进制数放在一起,构成压缩的BCD码。

     
     BCD码    十六进制码       十进制

  0000          0                 0
      0001          1                 1
      0010          2                 2
      0011          3                 3
      0100          4                 4
      0101          5                 5
      0110          6                 6
      0111          7                 7
      1000          8                 8
      1001          9                 9
      1010         A                10
      1011         B                11
      1100         C                12
      1101         D                13
      1110         E                14
      1111         F                15

 

注意16进制中数的表示方法,它只有16个符号,除了0--9外,还有A,B,C,D,E,F。用A表示10,用B表示11,用C表示12等等。

二进制在计算机中用0b表示如:0b00101001。

十六进制数用0x或0X 表示,如:0x03,0x5e,0X68DF,大小写不限,注意0X前面的是零不是O.
         


支持(0中立(0反对(0回到顶部
帅哥,在线噢!
rjx
  19楼 个性首页 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 贴子:4540 积分:42745 威望:0 精华:43 注册:4/27/2005 10:50:08 AM
  发贴心情 Post By:5/25/2017 8:36:34 AM

如果真想学好,建议大家买几本书看看。我曾看过十几本关于PIC的书,感觉下面两本较好:

买书要在淘宝上买,不要在新华书店买,淘宝上的新书都是打6-7折的。

一、《PIC单片机快速入门》北京航空航天大学出版社,徐玮等著。本书结合PIC有较详细的C语言知识。

二、《PIC系列单片机C程序设计及PROTEUS仿真》北京航空航天大学出版社,江和著,本书介绍了很多软硬件方面的实例,非常有用。特别是详细介绍了用软件PROTEUS仿真,不用做电路板就能实现你编写的程序。就像自己拥有一个高级的试验台一样方便。但这本书好像脱销了。可在淘宝二手书里搜搜看。


支持(0中立(0反对(0回到顶部
帅哥,在线噢!
fanfan8888
  20楼 个性首页 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:青蜂侠 贴子:696 积分:6794 威望:0 精华:1 注册:7/5/2012 10:31:03 PM
  发贴心情 Post By:5/25/2017 9:09:59 PM

谢谢何老板,提供实物供我们练习!谢谢何老师,任老师授课!好多时间没有接触软件了,学习有些转不过弯,慢慢理解!刚把软件装好!
图片点击可在新窗口打开查看此主题相关图片如下:img_20170525_205842.jpg
图片点击可在新窗口打开查看

支持(0中立(0反对(0回到顶部
帅哥,在线噢!
audio-gd
  21楼 个性首页 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 贴子:25029 积分:133193 威望:0 精华:49 注册:3/26/2005 8:25:45 PM
  发贴心情 Post By:5/25/2017 10:04:21 PM

我觉得目前各位不需要买书,先培养学习兴趣,能进行一些操作,再买书补回一些基础知识。

很多自学的人半途而废是因为买了书却枯燥无味,看不懂记不住而放弃的。

要学习到入门最重要的是实践,投入,专注。



http://www.audio-gd.com

Blog:   http://kingwa.blog.163.com/

支持(0中立(0反对(0回到顶部
帅哥,在线噢!
rjx
  22楼 个性首页 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 贴子:4540 积分:42745 威望:0 精华:43 注册:4/27/2005 10:50:08 AM
  发贴心情 Post By:5/26/2017 10:44:28 AM

                           单片机基础知识浅说之二:  单片机的引脚(端口)

 

一、单片机端口简介

     常见的的单片机除了有电源(VDD)、地(VSS,复位(MCLR,晶振(OSC1,OSC2),等引脚外,其余的就是通用输出输入端口,即GPIO,或简称为I/O口,这些端口对于不同的单片机来说,少则有七八个,多则有几十个。

输出输入端口又可分为A组,B组,C组,D组,E组等。在PIC单片机中称为PORTAPORTBPORTCPORTDPORTE

我们现在学习的单片机是8位总线的单片机,所以,它的每组端口里含有8个输出输入口。如PORTA这一组,就含有RA0RA1RA2,。。。。。RA78I/O口。

由于单片机的内部存储器的大小不同,用途不同,其引脚有从8个到144个不等,所以每种单片机的引脚的组别不一定都有A,B,C,D,E这么多,每组里的引脚数可能也没有8个。

我们这次学习用的单片机型号为PIC16F873A,它是一片由Microchip Technology Inc(美国微芯科技公司)生产的28脚的8位单片机。它只有PORTAPORTBPORTC这三组I/O口,且PORTA里只有RA0RA1RA2RA3RA4RA55个口。

通用I/O口的主要作用顾名思义就是输出高电平(1)、输出低电平(0),或接受高电平(1),低电平(0)。

当然这些I/O口除了它的主要功能(也称第一功能)外,也都具有复用功能(即第二功能和第三功能),如串行通讯、ADC转换、输出PWM波等等,要实现其第二功能,可通过配置各个端口的寄存器来实现。我们目前的首要任务是弄懂端口的第一功能。 

    


图片点击可在新窗口打开查看此主题相关图片如下:pic16f873a.jpg
图片点击可在新窗口打开查看

支持(0中立(0反对(0回到顶部
帅哥,在线噢!
rjx
  23楼 个性首页 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 贴子:4540 积分:42745 威望:0 精华:43 注册:4/27/2005 10:50:08 AM
  发贴心情 Post By:5/26/2017 10:47:48 AM

二、I/O端口的配置

   PIC单片机的 I/O口既然可以做输出,也可以做输入,所以它是一个标准的双向端口。作为输出时,可以提供很强的带负载能力,高电平输出时的电流和低电平时的灌入电流都可以达到25MA,可以轻松驱动LED灯或数码管(要加限流电阻)。作为输入时呈现极高的阻抗,

    端口作为输入时一般要上拉,即该端口必须接一个电阻到电源的正极。现在很多单片机(如AVRSTM8STM32等)在其内部就安排了这个电阻,通过软件就可以实现上拉与否,但PIC单片机只有B端口有弱上拉功能,其他端口都没有,我认为这是PIC单片机的缺点之一。

每个端口的输入或输入状态,完全由用户设定,各个端口互不影响。单片机在使用时的第一件事就是要明确每个端口的是输入还是输出。

如何来确定具体的端口是输出还是输出呢?其实很简单,就是通过一个端口方向寄存器来实现的,看下面的例子:

TRISB=0X00001111;

上面这条语句是 用来确定B组里每个端口方向的。TRISBB口的方向寄存器。

等号右边的那个二进制数就表示了8个端口的方向。0表示输出,1表示输入。这个好记,0相当OUTPUT1相当于INPUT

上面的语句就是说B端口的高4位,即RB7--RB4为输出;低四位RB3--RB0为输入.

要注意的是这个8位二进制数表示的端口是高位在前,低位在后。即左边第一位是RB7,是输出,右边最后一位是RB0,是输入。

C语句一定要以写英文分号结束,这个千万不能忘了!!!


支持(0中立(0反对(0回到顶部
帅哥,在线噢!
cya103
  24楼 个性首页 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:职业侠客 贴子:229 积分:2564 威望:0 精华:0 注册:2/22/2009 12:07:43 PM
  发贴心情 Post By:5/26/2017 12:58:52 PM

求救!我的学习板与8.92软件链接后,按上面的步骤设置显示HL100,为了熟悉软件在不同的菜单里乱点,导致学习板不能显示,请老师和坛中高手能否远程修复一下,谢谢!

我的QQ:386131934


支持(0中立(0反对(0回到顶部
帅哥,在线噢!
rjx
  25楼 个性首页 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 贴子:4540 积分:42745 威望:0 精华:43 注册:4/27/2005 10:50:08 AM
  发贴心情 Post By:5/27/2017 10:06:56 AM

                                单片机基础知识浅说之三     数据类型

 

    C语言中的数据类型概念还比较复杂,规定也很严格。我们刚开始学习,再加上音响中使用的数据类型相对也比较简单,所以入门时不要给自己增加负担,想什么都弄懂,这是不现实的,我们可以采取“稀里糊涂”,“各取所需”的学习方式。

为了使表述更为通俗,我下面的讲解可能不太严谨,但也不会有歧义。

一、常量和变量

    1、常量:在MCU运行的全程中始终不变的量,如:100-240X8E等等。

    2、变量:在MCU运行中可以随时改变的量。

    每个变量必须有一个变量名,变量名可以用英文字符表示,如:XYvalue,等,大小写不限。

    变量又分局部变量和全局变量之分,这个以后再说。

    变量必须先定义再使用,这点很重要,如何定义下面再说。

二、数据类型

   先说几种常用的:

数据类型

bit

Byte

取值范围

unsigned char

8

1

0--255

char

8

1

-128~+127

unsigned int

16

2

0~65535

int

16

2

-32768~+32767


支持(0中立(0反对(0回到顶部
帅哥,在线噢!
rjx
  26楼 个性首页 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 贴子:4540 积分:42745 威望:0 精华:43 注册:4/27/2005 10:50:08 AM
  发贴心情 Post By:5/27/2017 10:11:33 AM

三、变量的定义

所有的变量使用前必须先定义,也就是告诉MCU,你使用的变量时何种类型的。

按下面的方法定义:

unsigned char  X;  //定义X为无符号位的字符型变量

char value;           //定义value 为字符型变量

int  num;              //定义num  为整形变量


注意:// 这个符号是表示其后面的内容是注释,注释是不参加编译的。


四、宏定义 

你是否感觉到unsibed char 写起来很麻烦啊?能否写简单点呢?可以啊!

 

#define  unsigned char  uchar

 

这样,我们就用uchar 代替了unsigned char了。

 

上面的变量定义就可以改写成:

 

uchar X;


是不是很方便啊?! 

 #define 就是C语言中宏定义的关键字。

 

注意:宏定义语句后面是不允许带分号的!!!


支持(0中立(0反对(0回到顶部
帅哥,在线噢!
rjx
  27楼 个性首页 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 贴子:4540 积分:42745 威望:0 精华:43 注册:4/27/2005 10:50:08 AM
  发贴心情 Post By:5/27/2017 10:35:26 AM

连发了三个小短文,不知对大家是否有帮助?请提出意见,为下面再写有所改进。

学单片机一定要做到:多看,多想,多问,多实践。否则会一事无成的。

何生已发了第一个学习例程,你是否试着在学习板上焊上几个LED和电阻,下载程序到学习板,LED点亮了吗?

是否结合我发的短文大概看懂了何生发的例程了呢?

学习单片机开始是艰苦的,刚入门是很懵懂的,慢慢会好起来的,一定要有信心。

别不好意思问,谁都一样,不会就是不会,你有决心,学会了就是你的胜利。这是不能代替的。

不要说自己基础差,不懂C,不懂英文,这都不是理由,网上看到有个叫李想的山东人,初中毕业,农村的孩子、开始连QQ是啥都搞不清,现在居然会AVR,PIC,STM32等单片机,还开了自己的公司,帮别人做项目,还录制了很多单片机的的教学视频,很受欢迎。


支持(0中立(0反对(0回到顶部
帅哥,在线噢!
audio-gd
  28楼 个性首页 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 贴子:25029 积分:133193 威望:0 精华:49 注册:3/26/2005 8:25:45 PM
  发贴心情 Post By:5/28/2017 2:00:21 PM

没显示的请看看这个开关是不是关了。

 

 


图片点击可在新窗口打开查看此主题相关图片如下:无标题.png
图片点击可在新窗口打开查看


http://www.audio-gd.com

Blog:   http://kingwa.blog.163.com/

支持(0中立(0反对(0回到顶部
帅哥哟,离线,有人找我吗?
adf
  29楼 个性首页 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:职业侠客 贴子:236 积分:2593 威望:0 精华:0 注册:1/19/2008 2:04:08 AM
  发贴心情 Post By:5/28/2017 2:10:19 PM

焊上几个LED和电阻,指示灯都亮,

支持(0中立(0反对(0回到顶部
帅哥,在线噢!
cya103
  30楼 个性首页 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:职业侠客 贴子:229 积分:2564 威望:0 精华:0 注册:2/22/2009 12:07:43 PM
  发贴心情 Post By:5/28/2017 2:58:08 PM

这个开关的开启的

支持(0中立(0反对(0回到顶部
总数 72 上一页 1 2 3 4 5 下一页