[工学]8、9、10第七章51单片机内部资源及编程.pptVIP

  • 44
  • 0
  • 约2.01万字
  • 约 71页
  • 2018-03-27 发布于浙江
  • 举报

[工学]8、9、10第七章51单片机内部资源及编程.ppt

[工学]8、9、10第七章51单片机内部资源及编程

第七章 51单片机内部资源及编程 C语言程序: #include reg51.h sbit P1_0=P1^0; void main ( ) { IT0=1; EA=1; EX0=1; for( ; ; ) { ; } } void int0 ( ) interrupt 0 { P1_0=~P1_0; } 【例7-9】 用C语言编程实现51单片机自发自收。在 实验箱上实现。 要求:编程通过串行口循环发送数据00H~FFH, 并自收回来在LED灯上显示出来。 Any question? Thanks! C语言程序: # include reg51.h //包含特殊功能寄存器库 sbit P1_1=P1^1; char i; void main( ) { TMOD=0x01; TH0=0xD8; TL0=0xf0; EA=1; ET0=1; i=0; TR0=1; while(1); } void time0_int( ) interrupt 1 //中断服务程序 { TH0=0xD8; TL0=0xf0; i++; if (i==50) { P1_1=~ P1_1; i=0; } } (2) 用定时/计数器T1计数实现 定时/计数器T1工作于计数方式时,计数脉冲通过T1(P3.5)输入, 设定时/计数器T0定时时间到对T1(P3.5)取反一次, 则T1(P3.5)每20ms产生一个计数脉冲, 那么定时500ms只须计数25次, 设定时/计数器T1工作于方式2, 初值X=256-25=231==E7H,TH1=TL1=E7H。 因为定时/计数器T0工作于方式1,定时, 则这时方式控制字(61H)。 定时/计数器T0和T1都采用中断方式工作。 汇编程序如下: ORG 0000H LJMP MAIN ORG 000BH MOV TH0,#0D8H MOV TL0,#0F0H CPL P3.5 RETI ORG 001BH CPL P1.1 RETI ORG 0100H MAIN: MOV TMOD,#61H MOV TH0,#0D8H MOV TL0,#0F0H MOV R2,#00H MOV TH1,#0E7H MOV TL1,#0E7H SETB EA SETB ET0 SETB ET1 SETB TR0 SETB TR1 SJMP $ END C语言程序如下: # include reg51.h //包含特殊功能寄存器库 sbit P1_1=P1^1; sbit P3_5=P3^5; void main( ) { TMOD=0x61; TH0=0xD8; TL0=0xF0; TH1=0xE7; TL1=0xE7; EA=1; ET0=1; ET1=1; TR0=1; TR1=1; while(1); } void time0_int( ) interrupt 1 //T0中断服务程序 { TH0=0xD8; TL0=0xF0; P3_5=~P3_5; } void time1_int( ) interrupt 3 //T1中断服务程序 { P1_1=~P1_1; } 7.4 串行口 7.4.1 通信的基本概念 一.并行通信和串行通信 计 算 机 0 1 0 0 1 0 0 1 计 算 机 0 1 0 0 1 0 0 1 (外设) D0 D1 D2 D3 D4 D5 D6 D7 控制或选通 状态 计 算 机 计 算 机 (外设) 计算机与外界的通信有两种基本方式:并行通信和串行通信。 根据信息传送的方向,串行通信可以分为单工、半双工和全双工3种。 (a) A B (b) (c) A B

文档评论(0)

1亿VIP精品文档

相关文档