单片机基础知识讲解及用法

上传人:kms****20 文档编号:45955837 上传时间:2018-06-20 格式:PDF 页数:33 大小:403.60KB
返回 下载 相关 举报
单片机基础知识讲解及用法_第1页
第1页 / 共33页
单片机基础知识讲解及用法_第2页
第2页 / 共33页
单片机基础知识讲解及用法_第3页
第3页 / 共33页
单片机基础知识讲解及用法_第4页
第4页 / 共33页
单片机基础知识讲解及用法_第5页
第5页 / 共33页
点击查看更多>>
资源描述

《单片机基础知识讲解及用法》由会员分享,可在线阅读,更多相关《单片机基础知识讲解及用法(33页珍藏版)》请在金锄头文库上搜索。

1、 讲座专家:讲座专家:EEWORLD 专家老练专家老练 工作单位:南京华岳电子(工作单位:南京华岳电子() 更多讲座内容,详见(更多讲座内容,详见(http:/ ) 第一讲第一讲 单片机单片机 IO 口的使用口的使用 单片机的 IO 口控制是单片机初学者最为关心的问题,如何快速学会使用 IO 是初学者 最为困难的地方。 众多的教科书上面介绍了很多 IO 的原理, 这些长篇大论让很多初学者看起来难以理解, 同时也会止步于单片机门外。我们现在所要学习的使用 IO 就是很简单的使用就可以了,IO 无非就是 4 种状态,输出为高、输出为低、输入为高、输入为低。 我们只要把握这四个方面就可以了,先看看

2、我们的单片机接口,单片机共有 32 个 io。 分别为 P0、P1、P2、P3 口,P0 口如果当作 IO 来使用时,必须要使用上拉电阻,因为 51 单片机内部没有上拉这一功能。 在这个学习板上面,大家可以看到 40 个 io 对应的位置,并且在数码管下面就增加了上 拉电阻,使得 io 可以实现。 现在我们以 P1 口接的 led 指示灯来说明输出高低电平的功能,当我们使用汇编程序: ORG 0000H LJMP MAIN ORG 0100H MAIN: MOV P1,#00H JMP MAIN END 这样,P1 口的 led 就会变亮,因为 P1 口赋值#00h 以后,就是将 led 的所

3、有 io 都设置为 低电平了。 如果将 MOV P1,#00H 改成 MOV P1,#0FFH,那么 io 就设置成了高电平,led 就会被熄 灭。当然 C51 中也比较简单。 #include Main() P1=#00H; While(1) ; 这个同样的道理,如果 P1=#0FFH,就是熄灭 led。 当我们对键盘的程序如下图解释: 这个就是我们板子上面的键盘的接线图,当我们单独使用键盘的时候,我们要将 P3.4 置低电平,此时,我们也是根据前面 led 设置 io 的方式进行设置。 如下程序: ORG 0000H JMP MAIN ORG 0100H MAIN: CLR P3.4 M

4、OV P1,#0FFH JNB P2.7, MAIN MOV P1,#00H JMP MAIN END C51 中: #include Main() P34=0; While(1) P1=0x0FF; while(P27=0) P1=0x00; 从这 2 个程序都可以看出 io 为低电平和高电平的效果。 第二讲第二讲 单片机外部中断使用单片机外部中断使用 很多人都知道 51 单片机中中断的重要性,但是书中的长篇累牍让我们一下子理解有点 很不适应。所以我们尽可能简化 51 单片机的中断,目前我们是要学会单片机中断的使用就 可以了,而不是从原理基本说起。 在 51 单片机中有 2 个外部中断,这

5、两个外部中断口处于低电平的时候开始触发中断信 号,使得程序可以进入中断处理中断部分的程序。 我们还是老规矩,先看看硬件电路: 在图上的单片机原理图中,S0,S1 分别接的是单片机的外部中断 1 和外部中断 2,我们特意 将两个发光二极管放在上面进行指示, 以便我们可以看到中断运行的情况, 此时我们可以设 置中断程序的要求: 1、 指示灯平时没有中断按下的时候不进行工作,保持原有状态; 2、 当外部中断 0 响应的时候, 我们就点亮 D0, 让外部中断 0 响应的条件就是按下 S0 按键。 下面就是汇编程序: ORG 0000H LJMP MAIN ;主程序 ORG 0003H LJMP W_I

6、NT0 ;进入中断子程序 ORG 0100H MAIN:MOV SP, #50H ;设置堆栈指针 SETB EA ;CPU 所有中断开(IE 最高位 MSB) SETB EX0 ;INT0 中断开 CLR IT0 ;INT0 低电平触发(为 1 则为下降沿触发) MOV P1, #0FFH JMP $ W_INT0:CLR P1.0 RETI END 如下是 c51 的程序: /- #include /- /重定义 I/0 引脚名称 sbit led1=P10; /- /固定函数声明 void int_0(); /外部中断 0 /- void main() P1=0X0FF; EA=1; /

7、 CPU 所有中断开(IE 最高位 MSB) EX0=1; / INT0 中断开 IT0=0; / INT0 低电平触发(为 1 则为下降沿触发) while(1) ; /- /INT0 中断 由 P3.2 引脚产生 void int_0() interrupt 0 using 0 led0=0; 在上面的程序中,我们可以看出外部中断使用的方法,现在我们学会了使用中断 0,那么我 们现在开始学使用外部中断 1 吧。 首先我们来设置程序的要求: 1、 外部中断 0 点亮 D0,关闭 D1 2、 外部中断 1 点亮 D1,关闭 D0 我们先看看汇编语言的程序: ;- LED0 EQU P1.0 L

8、ED1 EQU P1.1 ORG 0000H LJMP main ORG 0003H LJMP W_INT0 ORG 00013H LJMP W_INT1 ORG 0100H main: SETB EA ;CPU 所有中断开(IE 最高位 MSB) SETB EX0 ;INT0 中断开 CLR IT0 ;INT0 低电平触发(为 1 则为下降沿触发) SETB EX1 ;INT1 中断开 CLR IT1 ;INT1 低电平触发(为 1 则为下降沿触发) MOV P1, #0FFH JMP $ W_INT0: SETB LED1 ;关闭 LED1 CLR LED0 ;点亮 LED0 RETI

9、W_INT0: CLR LED1 ;点亮 LED1 SETB LED0 ;关闭 LED0 RETI END 这是 c51 的程序: /- #include /- /重定义 I/0 引脚名称 sbit LED0=P10; sbit LED1=P11; /- /固定函数声明 void int_0(); /外部中断 0 void int_1(); /外部中断 1 /- void main() EA=1; / CPU 所有中断开(IE 最高位 MSB) EX0=1; / INT0 中断开 IT0=0; / INT0 低电平触发(为 1 则为下降沿触发) EX1=1; / INT1 中断开 IT1=0;

10、 / INT1 低电平触发(为 1 则为下降沿触发) while(1) ; /- void initial() EA=1; / CPU 所有中断开(IE 最高位 MSB) EX0=1; / INT0 中断开 IT0=0; / INT0 低电平触发(为 1 则为下降沿触发) EX1=1; / INT1 中断开 IT1=0; / INT1 低电平触发(为 1 则为下降沿触发) return; /- /INT0 中断 由 P3.2 引脚产生 void int_0() interrupt 0 using 0 Led1=1; /关闭 D1 LED0=0; /点亮 D0 /- /INT1 中断 由 P3

11、.3 引脚产生 void int_1() interrupt 2 using 1 LED0=1; /关闭 D0 LED1=0; /点亮 D1 这样,通过程序和实践,我们就可以很轻易学会了外部中断的使用方法。 第三讲第三讲 定时器的使用定时器的使用 关于定时器中断, 我们简单介绍一下原理就可以了, 因为具体介绍已经有很多资料都已经提 供了。 80C51 单片机内部设有两个 16 位的可编程定时器/计数器。可编程的意思是指其功能 (如工作方式、定时时间、量程、启动方式等)均可由指令来确定和改变。在定时器/计数 器中除了有两个 16 位的计数器之外, 还有两个特殊功能寄存器 (控制寄存器和方式寄存器) 。 我们可以看出,16 位的定时/计数器分别由两个 8 位专用寄存器组成,即:T0 由 TH0 和 TL0 构成;T1 由 TH1 和 TL

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 科普知识

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号