单片机应用技术实验报告指导教师:王宏波姓名:小组成员:1.延时实验一、实验题目(1)设fosc=6MHz,通过多级嵌套循环实现0.5S延时。
(2)通过调整晶振频率fosc,在上述延时程序的基础上实现延时0.25S循环点亮Pl.0口的LED。
二、实验目的(1)掌握8051汇编指令格式。
(2)掌握延时时间的计算方法。
(3)掌握Keil软件中延时时间的观察方法。
(4)掌握循环结构程序的设计方法。
(5)掌握汇编起始指令ORG、汇编结束指令END、位操作指令的使用方法。
(6)掌握8051驱动LED的方法。
(7)掌握示波器、直流电流表、直流电压表的使用方法。
三、实验元件(1)AT89C51。
(2)AT89C51、POT-HG、LED、DC AMMETER、DC VOLTMETER、OSCILLOSCOPE。
四、硬件设计六、汇编程序(1)0.5S 延时程序ORG0000H ;指令起始地址0000H;延时子程序,延时机器周期数1+10+500+500+(248*50*10+500+10+1)*2=250033DELAY: MOV R4,#10 ;1TmsLP1: MOV R5,#50 ;10TmsLP2: MOV R6,#248 ;50*10TmsNOP;50*10TmsLP3: DJNZR6,LP3 ;248*50*10TmsDJNZR5,LP2 ;50*10TmsDJNZR4,LP1 ;10TmsRET;1TmsEND(2)延时0.25S循环点亮Pl.0 口的LED;fosc=12 MHzORG 0000HLOOP: CLR P1.0LCALL DELAYSETB P1.0LCALL DELAYLJMP LOOPDELAY: MOV R4,#10LP1: MOV R5,#50LP2: MOV R6,#248NOPLP3: DJNZ R6,LP3DJNZ R5,LP2DJNZ R4,LP1RETEND;七、实验中遇到的问题及解决方法八、实验总结2 外部中断实验一、实验题目(1)外部中断1通过上拉电阻接按钮控制P0口的输出。
无中断发生时,P0.0口绿色LED常亮,P0.1口红色LED常灭。
按钮按下,外部中断1发生,熄灭绿色LED,点亮红色LED,经延时后恢复绿色LED常亮、红色LED常灭状态。
(2)外部中断0和外部中断1分别通过上拉电阻接按钮BUTTON1和BUTTON2控制P1.0口LED的状态,按钮BUTTON1按下,点亮LED,按钮BUTTON2按下,熄灭LED。
二、实验目的(1)掌握中断系统的工作原理。
(2)掌握中断向量的概念。
(3)学习外部中断的基本使用方法。
(4)学习中断处理程序的编写方法。
(5)掌握规范的程序设计方法。
三、实验元件(1):AT89C51、LED-RED、RED-GREEN、BUTTON、RES。
(2):AT89C51、LED-RED、BUTTON1、BUTTON2、RES。
四、硬件设计1.实验(1)2.实验(2)五、程序流程图(1)INT1 中断控制LEDORG 0000HMAIN: SETB EASETB EX1CLR IT0 GREEN: CLR P0.0LJMP GREENORG 0013HEXT1_RED: SETB P0.0CLR P0.1DLY2: MOV R3,#5D1: MOV R4,#255D2: MOV R5,#255DJNZ R5,$DJNZ R4,D2DJNZ R3,D1SETB P0.1RETIEND(2)INT0、INT1 中断控制LEDORG 0000HLJMP MAINORG 0003HLJMP INT_0ORG 0013HLJMP INT_1ORG 0030HMAIN: SETB EASETB EX0SETB EX1SETB IT0SETB IT1SJMP $INT_0: CLR P1.0RETIINT_1: SETB P1.0RETIEND七、实验中遇到的问题及解决方法八、实验总结3.定时器/计数器实验一、实验题目(1)T0方式0、定时,以查询方式输出周期为2ms的方波,fosc=6MHz。
(2)定时器/计数器T0工作于方式0,以中断方式在P1.0口输出周期为2ms 的方波,晶振频率fosc=6MHz。
(3)T0方式3、定时,以中断方式使P1.0输出周期为400us、P1.1输出周期为800us的方波,fosc=6MHz。
(4)T0方式3、定时,以查询方式输出周期为300us、占空比为1/3的方波,fosc=12MHz。
(5)T1方式2、计数P3.5引脚输入脉冲,每计数10次,对P1.0取反。
二、实验目的(1)学习51单片机定时/计数器的使用方法。
(2)掌握查询方式下的程序的编写方法。
(3)进一步掌握中断处理程序的编写方法。
(4)进一步掌握示波器的使用方法。
三、实验元件80C51。
四、硬件设计1.实验(1)、(2)、(4)硬件设计2.实验(3)3.实验(5)六、汇编程序(1)T0 方式 0 定时 2ms 方波查询方式ORG 0000HLJMP MAINORG 0050HMAIN: MOV TH0,#0F0HMOV TL0,#0CHMOV TMOD,#00HSETB TR0LP1: JBC TF0,LP2SJMP LP1LP2: MOV TH0,#0F0HMOV TL0,#0CHCPL P1.0SJMP LP1END(2)T0 方式0 定时2ms 方波中断方式ORG 0000HLJMP MAINORG 000BHLJMP T0INTORG 0030HMOV TL0,#0CHMOV TMOD,#00HSETB TR0SETB ET0SETB EASJMP $T0INT: MOV TH0,#0F0HMOV TL0,#0CHCPL P1.0RETIEND(3)T0 方式 3、定时,中断方式,P1.0 输出周期为 400us、P1.1 输出周期为800us 的方波ORG 0000HLJMP MAINORG 000BHLJMP PINT0ORG 001BHLJMP PINT1ORG 0030HMAIN: MOV TMOD,#03HMOV TH0,#38HMOV TL0,#9CHMOV TCON,#50HMOV IE,#9AHAJMP $PINT0: MOV TL0,#9CHCPL P1.0RETICPL P1.1RETIEND(4)T0 方式 3 定时 300us 输出占空比 1/3 矩形波查询方式ORG 0000HLJMP MAINORG 0030HMAIN: MOV TMOD,#03HLOAD: MOV TH0,#38HMOV TL0,#9CHSETB P1.0LCALL TL_DLYCLR P1.0LCALL TH_DLYJMP LOADTL_DLY: SETB TR0TL_CHK: JNB TF0,TL_CHKCLR TR0CLR TF0RETTH_DLY:SETB TR1TH_CHK:JNB TF1,TH_CHKCLR TR1CLR TF1RETEND(5)T1 方式 2、计数 P3.5 引脚输入脉冲,每计数 10 次,对 P1.0 取反。
ORG 0000HLJMP MAINORG 0030HMAIN: MOV TMOD,#60HMOV TH1,#0F5HMOV TL1,#0F5HSETB TR1LOOP: JBC TF1,REPSJMP LOOPREP: CPL P1.0SJMP LOOPEND七、实验中遇到的问题及解决方法八、实验总结4.双机通信实验一、实验题目(1)利用串行口进行双机通信,完成汇编程序设计,实现排队呼叫器功能,要求:(a)串行口工作方式1,波特率2400bps,T1工作方式2,SMOD=0,fosc = 11.0592MHz。
(b)单片机U2首先向单片机U1发起通信请求,发送呼叫号99H。
(c)单片机U1接收到呼叫号后,在P1口显示并确认,然后向单片机U2回送应答号01H。
(d)单片机U2接收到应答号后,在P1口显示并确认。
(e)通信未建立,单片机U1数码管不显示按键数据。
(f)通信建立,单片机U2向单片机U1传输按键数据,单片机U1用数码管显示接收到的按键数据。
二、实验目的(1)掌握双机通信的方法。
(2)掌握波特率的计算方法。
(3)掌握T1作为波特率发生器时相关寄存器的使用技巧。
三、实验元件(1)80C51、74LS47、LED-YELLOW、LED-BLUE、DIPSWC_8、RESPACK_8、RES、7SEG-COM-AN-GRN。
四、硬件设计五、程序流程图(1)主机U1六、汇编程序(1)双机通信排队呼叫器ORG 0000HLJMP MAINORG 0030HMAIN: MOV SCON,#70HMOV TMOD,#20HMOV TL1,#0F4HMOV TH1,#0F4HSETB TR1WAIT_DLAL:JBC RI,CHECK_99JMP WAIT_DLALCHECK_99: MOV A,SBUFMOV P1,ACJNE A,#99H,WAIT_DLALSEND_RESPONSE:MOV SBUF,#01HCHECK_01: JBC TI,RCIV_NUMJMP CHECK_01RCIV_NUM:JBC RI,DISPLAYJMP RCIV_NUMDISPLAY: MOV A,SBUFMOV P0,ACALL DELAYJMP RCIV_NUM DELAY: MOV R3,#5LP1: MOV R4,#2LP2: MOV R5,#248DJNZ R5,$DJNZ R4,LP2DJNZ R3,LP1RETEND(2)从机U2:ORG 0000HLJMP MAINORG 0030H MAIN: MOV SCON,#70HMOV TMOD,#20HMOV TL1,#0F4HMOV TH1,#0F4HSETB TR1DLAL: MOV SBUF,#99H CHECK_99:JBC TI,WAIT_RSPSJMP CHECK_99 WAIT_RSPS:JBC RI,CHECK_01JMP WAIT_RSPS CHECK_01: MOV A,SBUFMOV P1,ACJNE A,#01H,DLAL SEND_NUM:MOV A,P2MOV SBUF,ACHECK_SEND:JBC TI,FINISHJMP CHECK_SENDFINISH: JMP SEND_NUMEND七、实验中遇到的问题及解决方法八、实验总结5.单片机-计算机串口通信实验一、实验题目(1)利用串口调试助手和虚拟串口工具完成单片机和计算机之间的收发通信实验。
要求串口调试助手发送数据至单片机,单片机接收数据并送P1口显示。