单片机原理与实践第6章mcs-51单片机功能模块的原理及应用

上传人:j****9 文档编号:54665528 上传时间:2018-09-17 格式:PPT 页数:82 大小:2.13MB
返回 下载 相关 举报
单片机原理与实践第6章mcs-51单片机功能模块的原理及应用_第1页
第1页 / 共82页
单片机原理与实践第6章mcs-51单片机功能模块的原理及应用_第2页
第2页 / 共82页
单片机原理与实践第6章mcs-51单片机功能模块的原理及应用_第3页
第3页 / 共82页
单片机原理与实践第6章mcs-51单片机功能模块的原理及应用_第4页
第4页 / 共82页
单片机原理与实践第6章mcs-51单片机功能模块的原理及应用_第5页
第5页 / 共82页
点击查看更多>>
资源描述

《单片机原理与实践第6章mcs-51单片机功能模块的原理及应用》由会员分享,可在线阅读,更多相关《单片机原理与实践第6章mcs-51单片机功能模块的原理及应用(82页珍藏版)》请在金锄头文库上搜索。

1、6. MCS-51单片机功能模块的原理及应用,输出,6.1 MCS-51单片机的通用输入输出端口,6.1 MCS-51单片机的通用输入输出端口,输入,6.1 MCS-51单片机的通用输入输出端口,输出“1”,6.1 MCS-51单片机的通用输入输出端口,MOVX 或MOVC,6.1 MCS-51单片机的通用输入输出端口,6.1 MCS-51单片机的通用输入输出端口,6.1 MCS-51单片机的通用输入输出端口,MOVX 或MOVC,6.1 MCS-51单片机的通用输入输出端口,6.1.2 MCS-51单片机外部存储器的扩展,6.1.2 MCS-51单片机外部存储器的扩展,6.1.3 MCS-5

2、1单片机输入输出接口的扩展,扩展方式 总线扩展 非总线扩展 并行接口和串行接口 模拟接口和数字接口输入接口 键盘 模数转换器Analog-to-Digital converter,ADC、AD 或A to D 温度传感器,6.1.3 MCS-51单片机输入输出接口的扩展,输出接口 LED显示器 段单色 点阵单色、多色、彩色 LCD显示器 字符/点阵 单色、伪彩色(STN)、彩色(TFT) 数模转换器Digital-to-Analog converter,DAC、DA 或D to A 打印机,6.1.3 MCS-51单片机输入输出接口的扩展,Intel的可编程输入输出接口芯片,大都可与MCS-5

3、1单片机直接连接 并行输入输出接口芯片8255和8155 可编程串行通信接口芯片8250和8251 键盘显示接口8279 定时计数接口芯片8253常用的模拟接口有AD转换接口芯片0809、DA转换接口芯片0832等,6.1.3 MCS-51单片机输入输出接口的扩展,8 + 1 = 16,输入输出端口操作的读修改写特性,MCS-51两种读端口的操作 读引脚直接读取单片机引脚的逻辑电平 读端口寄存器 读修改写(read-modify-write) 读端口寄存器修改写端口寄存器 读修改写的主要特征 目的操作数为端口或端口的某个位,且操作结果与这些端口或端口的某个位的原数据有关,6.2 MCS-51单

4、片机的定时器计数器,计数:外部信号,定时:系统时钟,中断标志,自动重装允许,计数初值,软件重装,硬件自动重装,硬件自动重装,软件重装,计数初值 = 2n 计数长度,6.2.2 MCS-51单片机的定时器计数器的工作原理,定时器计数器0,1的模式0/1,MCS-51,模式1为8bits,C8051F,定时器计数器0,1的模式0/1,MCS-51无此SFR,固定为SYSCLK/12,定时器计数器0,1的模式2,定时器计数器0,1的模式3,计数器/定时器0有效,计数器/定时器1为停止运行,定时器计数器2,带捕捉功能的16位的定时器计数器 带重装功能的16位的定时器计数器 通用异步收发器的波特率发生器

5、,带捕捉功能的16位定时器计数器,带重装功能的16位定时器计数器,定时器计数器的应用,TMOD、TCON,定时器计数器0,1 T2CON,定时器计数器2,TMOD,TCON,T2CON,6.2.3 定时器计数器的应用编程,确定定时器的工作模式 计算定时器的初值 对于周期性的定时,一般应使用具有定时初值硬件自动重装的功能。 定时时间不能超出特定定时器的工作模式下的最长定时时间最长定时时间 = 系统时钟周期 12 2n,6.2.3 定时器计数器的应用编程,程序 65 250s定时 #include #define SYSCLK 12000000 #define c_tmr0 -(SYSCLK/12

6、)*250/1000000 / -(SYSCLK/12)/1000/4 sbit P1_0 = P10; void main (void) TMOD |= 2;TH0 = c_tmr0;TR0 = 1;ET0 = 1;EA = 1;while (1); void tmr0_ISR(void) interrupt 1 P1_0 =P1_0; ,6.2.3 定时器计数器的应用编程,程序 66 20ms定时 #include #define SYSCLK 12000000 #define c_tmr0 -(SYSCLK/12)*20/1000 void ini_tmr0_c (void); void

7、 main (void) TMOD |= 1;ini_tmr0_c ();ET0 = 1;EA = 1;while (1); void tmr0_ISR(void) interrupt 1 ini_tmr0_c (); void ini_tmr0_c (void) TR0 = 0;TL0 = c_tmr0;TH0 = c_tmr08;TR0 = 1; ,6.2.3 定时器计数器的应用编程,程序 69 1s定时 #include #define SYSCLK 12000000 #define c_tmr0 -(SYSCLK/12)*50/1000 unsigned char data sec_c

8、ount = 20; void ini_tmr0_c (void); void main (void) TMOD |= 1;ini_tmr0_c ();ET0 = 1;EA = 1;while (1); void tmr0_ISR(void) interrupt 1 EA = 0;ini_tmr0_c ();EA = 1;if (-sec_count = 0)sec_count = 20; void ini_tmr0_c (void) unsigned int i;TR0 = 0; i = c_tmr0 + TL0 + 11; TL0 = i; TH0 = i8; TR0 = 1; ,6.2.

9、3 定时器计数器的应用编程,程序 613 #include sbit P1_0 = P10; void main (void) TMOD |= 6;TH0 = 250;TL0 = 250;TR0 = 1;ET0 = 1;EA = 1;while (1); void tmr0_ISR(void) interrupt 1 P1_0 =P1_0; ,6.2.3 定时器计数器的应用编程,程序 614 define button “P3.4 PULSE“,“POUT ()“ /在“Toolbox”增加启动信号函数的按钮 signal void POUT (void) /信号函数 while (1)POR

10、T3 ,6.2.3 定时器计数器的应用编程,程序 615 12分频 #include sfr16 RCAP2 = 0xca; sfr16 TMR2 = 0xcc; sbit P2_0 = P20; void main (void) RCAP2 = -6; TMR2 = -6; C_T2 = 1; TR2 = 1; ET2 = 1; EA = 1; while (1); void tmr2_ISR(void) interrupt 5 TF2 = 0; P2_0 =P2_0; ,6.2.3 定时器计数器的应用编程,程序 616 define button “P1.0 PULSE“,“POUT ()

11、“ /在“Toolbox”增加启动信号函数的按钮 signal void POUT (void) /信号函数 while (1)PORT1 ,测量信号的频率 高频信号 最高频率=SYSCLK/4 最低频率=测量次数/测量精度,6.2.3 定时器计数器的应用编程,测量信号的周期 低频信号 最高频率=(SYSCLK/预分频系数)测量精度 最低频率没有限制 被测信号经过2分频 定时器的时钟为SYSCLK/预分频系数,6.2.3 定时器计数器的应用编程,6.3 MCS-51单片机的通用异步收发器UART,同步/异步传输的串行接口 同步方式为半双工方式 异步可以工作在全双工方式 用一个SFR(SBUF)

12、地址访问接/发寄存器 允许在未读取接收数据时开始新的接收 写发送寄存器即重新启动发送过程,6.3.1 MCS-51单片机的UART的工作原理,为兼容避免使用定时器2作为波特率发生器,UART的模式0:同步半双工方式,RX为漏极开路 清RI,启动接收 写SBUF,启动发送,UART的模式0的应用,UART的模式1/2/3:异步全双工方,模式1:8位波特率可变 模式2:9位波特率固定 模式3:9位波特率可变 第9位可用于校验(奇/偶校验)或多机通信,MCS-51单片机的UART的波特率发生器,模式0的波特率 固定为系统时钟频率的1/12 模式2的波特率 由电源控制寄存器(PCON)的SMOD位来决

13、定是否倍速 SMOD=0,固定为系统时钟频率的1/64 SMOD=1,固定为系统时钟频率的1/32波特率 = 系统时钟频率3221-SMOD,PCON,MCS-51单片机的UART的波特率发生器,模式1和模式3的波特率 单独使用定时器计数器1,或 单独使用定时器计数器2 ,或 两者都使用使接/发波特率不相等波特率 = (系统时钟频率K)定时器的计数长度,MCS-51单片机的UART的波特率发生器,K=216=32,K=1221-SMOD16 =19221-SMOD,MCS-51单片机的UART的波特率发生器,计数初值 = (系统时钟频率K)波特率使用定时器计数器2时,K = 32 使用定时器计

14、数器1时,K = 19221-SMOD,MCS-51单片机的UART的波特率发生器,程序 623:定时器计数器1作为波特率发生器的初始化 #include #define SYSCLK 11059200 #define BAUD 19200 #define c_tmr1 -(SYSCLK/192)/BAUD void BAUD_INI (void); void main (void) SCON = 0x50;BAUD_INI ();while (1); void BAUD_INI (void) PCON |= 0x80;TMOD |= 32;TH1 = c_tmr1;TL1 = c_tmr1;

15、TR1 = 1; ,MCS-51单片机的UART的波特率发生器,程序 624:定时器计数器2作为波特率发生器的初始化 #include #define SYSCLK 11059200 #define BAUD 19200 #define c_tmr2 -(SYSCLK/32)/BAUD sfr16 RCAP2 = 0xca;sfr16 TMR2 = 0xcc; void BAUD_INI (void); void main (void) SCON = 0x50;BAUD_INI ();while (1); void BAUD_INI (void) RCAP2 = c_tmr2;TMR2 = c_tmr2;RCLK = 1;TCLK = 1;TR2 = 1; ,MCS-51单片机的UART的控制方式,SCON,SM2,第9位处理方式的控制位 模式0没有第9位,SM2必须为0 其他模式 SM21,第9位必须为1 在模式1中检测停止位,必须接收到正确的停止位 在模式2和模式3中,第9位必须是1 SM20 ,第9位任意 SM2通常作为多机通信的控制位,用于区别地址帧或数据帧,SCON,

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 中学教育 > 初中教育

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