并行I/O接口实验一、实验目的熟悉掌握单片机并行I/O接口输入和输出的应用方法。
二、实验设备及器件个人计算机1台,装载了Keil C51集成开发环境软件。
单片机仿真器、编程器、实验仪三合一综合开发平台1台。
三、实验内容(1)P1口做输出口,接八只发光二极管,编写程序,使发光二极管延时(0.5-1秒)循环点亮。
实验原理图如图3.2-1所示。
图3.2-1单片机并行输出原理图实验程序及仿真ORG 0000HLJMP STARTORG 0100HSTART:MOV R2,#8MOV A,#0FEHLOOP:MOV P1,ALCALL DELAYRL ADJNZ R2,LOOPLJMP STARTDELAY:MOV R5,#20D1:MOV R6,#20D2:MOV R7,#248D3:DJNZ R7,D3DJNZ R6,D2DJNZ R5,D1RETEND中断实验一、实验目的熟悉并掌握单片机中断系统的使用方法,包括初始化方法和中断服务程序的编写方法。
二、实验设备及器件个人计算机1台,装载了Keil C51集成开发环境软件。
单片机仿真器、编程器、实验仪三合一综合开发平台1台。
三、实验内容(2)用P1口输出控制8个发光二极管LED1~LED8,实现未中断前8个LED闪烁,响应中断时循环点亮。
实验程序及仿真ORG 0000HLJMP MAINORG 0003HLJMP INT00ORG 0010HMAIN:A1:MOV A,#00HMOV P1,AMOV A,#0FFHMOV P1,ASETB EX0JB P3.2,B1SETB IT0SJMP C1B1:CLR IT0C1:SETB EANOPSJMP A1INT00:PUSH AccPUSH PSWMOV R2,#8MOV A,#0FEHLOOP: MOV P1,ALCALL DELAYRL ADJNZ R2,LOOPPOP PSWPOP AccRETIDELAY:MOV R5,#100D1:MOV R6,#20D2:MOV R7,#250D3:DJNZ R7,D3DJNZ R6,D2DJNZ R5,D1RETEND3.6 定时/计数器实验一、实验目的掌握单片机定时/计数器的使用方法,包括初始化方法和中断服务程序的编写方法。
二、实验设备及器件个人计算机1台,装载了Keil C51集成开发环境软件。
单片机仿真器、编程器、实验仪三合一综合开发平台1台。
三、实验内容(2)用CPU内部定时器中断方式计时,实现每1秒钟控制P1.0输出状态发生一次反转,P1.0接发光二极管。
实验程序及仿真ORG 0000HLJMP MAINORG 000BHLJMP TOSUBORG 0030HMAIN:MOV SP,#70HSETB EASETB ET0MOV TMOD,#01HMOV TL0,#0B0HMOV TH0,#3CHSETB TR0MOV R2,#00HLJMP $TOSUB: MOV TL0,#0B0HMOV TH0,#3CHINC R2CJNE R2,#20,T01CPL P1.0MOV R2,#00HRETIT01: RETI串行通信实验一、实验目的掌握单片机串行接口的使用方法。
二、实验设备及器件个人计算机1台,装载了Keil C51集成开发环境软件。
单片机仿真器、编程器、实验仪三合一综合开发平台1台。
三、实验内容利用8031单片机串行口,实现两个实验台之间的串行通讯。
其中一个实验台作为发送方,另一侧为接收方。
数据块传送。
将甲单片机RAM中30H-37H单元的数通过串行接口传送到乙单片机去,程序只发送、接收一次。
实验原理MCS-51系列单片机上有一个通用异步接收/发送器UART,通过引脚RXD[P3.O]和TXD[P3.1]可与外部电路进行全双工的串行异步通信,发送数据时由TXD端送出,接收时数据由RXD端输入。
DC0808引脚功能:芯片有28条引脚,采用双列直插式封装,各引脚功能如下:1~5和26~28(IN0~IN7):8路模拟量输入端。
8、14、15和17~21:8位数字量输出端。
22(ALE):地址锁存允许信号,输入,高电平有效。
6(START): A/D转换启动脉冲输入端,输入一个正脉冲(至少100ns宽)使其启动(脉冲上升沿使0808复位,下降沿启动A/D转换)。
7(EOC): A/D转换结束信号,输出,当A/D转换结束时,此端输出一个高电平(转换期间一直为低电平)。
9(OE):数据输出允许信号,输入,高电平有效。
当A/D转换结束时,此端输入一个高电平,才能打开输出三态门,输出数字量。
10(CLK):时钟脉冲输入端。
要求时钟频率不高于640KHZ。
12(VREF(+))和16(VREF(-)):参考电压输入端11(Vcc):主电源输入端。
13(GND):地。
23~25(ADDA、ADDB、ADDC):3位地址输入线,用于选通8路模拟输入中的一路工作过程:①在IN0-IN7上可分别接上要测量转换的8路模拟量信号。
②将ADDA-ADDC端给上代表选择测量通道的代码。
如000(B)则代表通道0;001(B)代表通道1;111则代表通道7。
③将ALE由低电平置为高电平,从而将ADDA-ADDC送进的通道代码锁存,经译码后被选中的通道的模拟量送给内部转换单元。
④给START一个正脉冲。
当上升沿时,所有内部寄存器清零。
下降沿时,开始进行A/D转换;在转换期间,START保持低电平。
⑤EOC为转换结束信号。
在上述的A/D转换期间,可以对EOC进行不断测量,当EOC为高电平时,表明转换工作结束。
否则,表明正在进行A/D转换。
⑥当A/D转换结束后,将OE设置为1,这时D0-D7的数据便可以读取了。
OE=0,D0-D7输出端为高阻态,OE=1,D0-D7端输出转换的数据。
说明:ADC0809的转换工作是在时钟脉冲的条件下完成的,因此首先要在CLOCK端给它一个时钟信号,说明书上给出了可以接入的脉冲信号频率是在10KHz-1280KHz,典型值是640KHz。
这一点得注意,因为当START脉冲刚结束进入转换工作时,EOC还没有立即变为低电平而是过了8个时钟周期后才进入低电平的,所以再给出START脉冲后最好延时一会再进行EOC的检测。
一个通道的转换时间一般为64个时钟周期,如时钟频率为640KHz时,时钟周期为1.5625微秒,一个通道的转换时间则为1.5625×64=100微秒,那么1秒种就可以转换1000000÷100=10000次。
ORG 0000HLJMP MAINORG 0013HLJMP PINTIORG 0100HMAIN:SETB IT1SETB EASETB EX1MOV DPTR,#7FF8HMOV A,#00HMOVX @DPTR,APINTI:MOV DPTR,#7FF8HMOVX A,@DPTRMOV P1,ARETIEND3.9 D/A转换实验一、实验目的掌握单片机扩展DAC的方法及其控制数据输出程序的设计方法。
二、实验设备及器件个人计算机1台,装载了Keil C51集成开发环境软件。
单片机仿真器、编程器、实验仪三合一综合开发平台1台,示波器1台。
三、实验内容(1)利用DAC0808,编制程序产生锯齿波、三角波、正弦波。
三种波轮流显示,用示波器观看。
频率由学生自己确定,范围(10Hz~1KHz)。
实验原理图见图3.9-1。
DAC0808工作在单缓冲方式。
实验程序及仿真ORG 0000HLJMP STARTORG 0100HSTART:MOV R0,#0FEH MOV A,#00HJNB P1.0,LOOP1JNB P1.1,LOOP2JNB P1.2,LOOP3 LOOP1:MOVX @R0,AINC ASJMP LOOP1LOOP2: MOV R0,#0FEH UP: MOVX @R0,ALCALL DELAY1INC AJNZ UPDOWN: MOVX @R0,A LCALL DELAY1DEC AJNZ DOWNSJMP UPLOOP3:MOV R0,#0FEH MOV A,#11001101BMOVX @R0,ALCALL DELAY1MOV A,#00110011BMOVX @R0,ALCALL DELAY1LJMP LOOP3 DELAY1:MOV R5,#1D1:MOV R6,#20D2:MOV R7,#10D3:DJNZ R7,D3DJNZ R6,D2DJNZ R5,D1RETEND。