附录一基本实验.docx
《附录一基本实验.docx》由会员分享,可在线阅读,更多相关《附录一基本实验.docx(16页珍藏版)》请在冰豆网上搜索。
![附录一基本实验.docx](https://file1.bdocx.com/fileroot1/2023-2/22/248a7aca-e0dd-43d8-8e77-e93d97df39da/248a7aca-e0dd-43d8-8e77-e93d97df39da1.gif)
附录一基本实验
附录一基本实验
(一)闪烁的发光管
1.实验目的:
熟悉mcs-51单片机的内部结构,掌握mcs-51单片机各组成部分的功能和特点。
2.实验设备及条件:
IBMPC机一台,DP-51PRO单片机综合仿真实验仪一台,频率计一台.
3.实验内容
单片机上电工作时,8个灯闪烁(由亮变为灭,或由灭变为亮)。
4.硬件电路与工作原理
从图上可以看出,当P1.0~P1.7中某个引脚输出低电平时,则发光二极管上有电流流过,发光二极管发光,否则,当对应引脚为高电平时,发光二极管上无电流流过,发光二极管熄灭。
5.实验参考程序
Org0000h
LOOP:
SETBP1.0 ;(1)
LCALLDELAY ;(2)
CLRP1.0 ;(3)
LCALLDELAY ;(4)
AJMPLOOP ;(5)
;以下子程序
DELAY:
MOVR7,#250 ;(6)
D1:
MOVR6,#250 ;(7)
D2:
DJNZR6,D2 ;(8)
DJNZR7,D1 ;(9)
RET ;(10)
END ;(11)
(二)P1口外接8只发光二极管模拟彩灯
1、实验目的:
掌握MCS-51单片机的数据传送指令的功能及MCS-51单片机的寻址方式。
2、实验设备及其条件:
IBMPC机一台,DP-51PRO单片机综合仿真实验仪一台,频率计一台。
3、实验内容:
利用P1口外接的8只LED发光二极管模拟彩灯。
常见的彩灯模式有:
流水式彩灯、追逐式彩灯、累积式彩灯、开幕式与闭幕式彩灯以及将上述模式组合而成的复合式彩灯。
大多数的彩灯都是采用单片机控制的,简单的彩灯单片机的控制程序也较为简单,复杂的彩灯单片机控制程序也较为复杂。
4、实验电路和工作原理
当P1.0~P1.7中的某端口为低电平时,对应的发光二极管亮,为高电平灭。
我们只要控制P1口各位的电平状态,就可以控制8只LED的亮与灭。
例如使(P1)=01010101B=55H,D7、D5、D3、D14只LED亮,D6、D4、D2、D04只LED灭,从效果上看亮与灭是相间隔的;反之,使(P1)=10101010B=AAH,则另外4只LED亮,若反复以一定时间间隔不断从P1口轮流输出55H和AAH,则P1口上8只LED会呈现流水彩灯的效果。
5、实验程序
1)将立即数送P1口的程序
ORG0000H;定义程序从程序存贮器0000H单元开始存放
LOOP:
MOVP1,#55H;立即数55H送P1口,4只LED亮
SJMPLOOP;原地踏步
END;程序结束
2)通过累加器A控制P1口的程序
ORG0000H
LOOP:
MOVA,#0AAH;将立即数AAH送累加器A
MOVP1,A;累加器A中的数送P1端口
SJMPLOOP;转移到LOOP
END
3)流水式彩灯程序
ORG0000H
LOOP:
MOVP1,#55H
;将立即数55H送P1端口
LCALLTIME;调延时子程序TIME
MOVP1,#0AAH
;将立即数AAH送P1端口
LCALLTIME;调延时子程序TIME
SJMPLOOP;转移到LOOP
TIME:
MOVR6,#200;延时子程序TIME
TIME1:
MOVR7,#200
TIME2:
NOP
NOP
NOP
DJNZR7,TIME2
DJNZR6,TIME1
RET
END
4)开幕式与闭幕式彩灯程序
ORG0000H
LJMPMAIN;跳转到主程序
ORG0030H
MAIN:
MOVR0,#8;R0送循环次数8
MOVDPTR,#TAB;给数据指针赋值
LOOP:
MOVA,#00H;
MOVCA,@A+DPTR
MOVP1,A
LCALLTIME
INCDPL
DJNZR0,LOOP
SJMPMAIN
TIME:
MOVR6,#200
TIME1:
MOVR7,#200
TIME2:
NOP
NOP
NOP
DJNZR7,TIME2
DJNZR6,TIME1
RET
TAB:
DB81H,0C3H,0E7H,0FFH,18H,3CH,7EH,0FFH
END
(三)电子琴实验
1、实验目的
利用实验仪上提供的K1-K7作为电子琴按键,控制蜂鸣器发声,使用户了解计算机的发声原理,熟悉定时器和键盘扫描电路的工作原理和编程方法。
2、实验设备及条件
IBMPC机一台,DP-51PRO单片机综合仿真实验仪一台,频率计一台.
3、实验内容
1)编写一段程序,用p3.3口控制(输出7种音阶标称频率的方波),使D4区的蜂鸣器发出不同的音调.程序检测按键的状态,当某一键按下时蜂鸣器发出对应的音调.
2)按照歌曲的音调,使用D1区的按键K1-K7,弹奏一首简单的音乐.
4、实验步骤
1)用导线将A2区J58接口P3.3口(INT1)和D4区的J8接口相连,然后将D1区的J53接口和A2区的J61接口一一对应相连.
2)编写按键的动态键盘扫描程序,根据不同音阶的频率编写蜂鸣器的音调控制程序,然后完成电子琴的主程序设计.
3)调试编写好的程序,使用频率计校准音阶的频率,然后使用键盘演奏一段好听的音乐.
5、实验参考程序
BUZZEQUP3.3;端口定义
ORG8000H
LJMPMAIN
ORG800BH
LJMPINT_T0
ORG8100H
MAIN:
MOVSP,#60H;初始化堆栈指针
MOVP1,#0FFH;设置P1口为输入模式
MOVTMOD,#01H;设置定时器0为工作模式
SETBET0;开定时器0中断
SETBEA;开总中断
CLRTR0;关闭定时器
START:
MOVR0,P1
CJNER0,#0FFH,KEY1;键盘扫描
CLRTR0
SJMPSTART
KEY1:
CJNER0,#0FEH,KEY2;K1键按下
MOV30H,#0FBH;设置音阶1
MOV31H,#0E9H
LJMPSET_TIMER
KEY2:
CJNER0,#0FDH,KEY3;K2键按下
MOV30H,#0FCH;设置音阶2
MOV31H,#5CH
LJMPSET_TIMER
KEY3:
CJNER0,#0FBH,KEY4;K3键按下
MOV30H,#0FCH;设置音阶3
MOV31H,#0C1H
LJMPSET_TIMER
KEY4:
CJNER0,#0F7H,KEY5;K4键按下
MOV30H,#0FCH;设置音阶4
MOV31H,#0EFH
LJMPSET_TIMER
KEY5:
CJNER0,#0EFH,KEY6;K5键按下
MOV30H,#0FDH;设置音阶5
MOV31H,#045FH
LJMPSET_TIMER
KEY6:
CJNER0,#0DFH,KEY7;K6键按下
MOV30H,#0FDH;设置音阶6
MOV31H,#092H
LJMPSET_TIMER
KEY7:
CJNER0,#0BFH,NOKEY;K1键按下
MOV30H,#0FDH;设置音阶1
MOV31H,#0D6H
SET_TIMER:
SETBTR0;发声
SJMPSTART
NOKEY:
CLRTR0;无键按下
SJMPSTART
INT_T0:
MOVTH0,30H;定时器赋初值
MOVTL0,31H
CPLBUZZ;输出方波
RETI
;
END
(四)串转并的I/O实验
1、实验目的
熟悉并掌握串转并的I/O扩展方法.
2、实验设备及器件
IBMPC机一台,DP-51PRO单片机综合仿真实验仪一台
3、实验内容
1)编写程序,通过单片机的P1口控制74HC164的串口实现串并转换.
2)验证串转并转换数据的正确性.
4、实验要求
熟悉串转并转换芯片的工作原理,学会使用串转并转换芯片扩展单片机的I/O口资源.
5、实验步骤
1)短接C5区JP10接口,将C5区J43接口与A2区J61接口的P10-P13对应相连,.
2)运行编写好的软件程序,完成一次串并转换.
3)使用C2区的逻辑笔或D1区的J52接口(LED)指示灯测试并行输出数据Q0-Q7数据的正确性.
6、实验预习要求
认真阅读本实验内容,提前作好准备工作。
7.实验参考程序
CLKEQUP1.0
DINAEQUP1.1
DINBEQUP1.2
CLR164EQUP1.3
ORG8000H
LJMPMAIN
ORG8100H
MAIN:
MOVSP,#60H;设置堆栈指针
NOP;设置以下端口的初始状态
CLRCLK;CLK=0
SETBDINB;DINB=1
CLRCLR164;CLR=0输出端口清零
SETBCLR164;CLR=1
MOVA,#0AAH;用户数据初始化
MOVR4,#08H
SLCHG:
RLCA
MOVDINA,C;串行输出一位数据
SETBCLK;置位时钟
NOP
CLRCLK
NOP
DJNZR4,SLCHG
SJMP$;程序结束完成一次串并转换
;
END
(五)8
8LED扫描输出实验
1、实目的
学会利用单片机的I/O口进行LED点阵的扫描显示,掌握综合应用程序的设计与分析方法,掌握运用开发系统调试应用程序的基本方法。
2、实验设备
IBMPC机一台、DP-51PRO单片机综合仿真实验仪一台。
3、实验原理
1)8×8LED点阵简介
8×8LED点阵的外观及引脚图如图1所示,其等效电路图如图2所示。
图2中只要各LED处于正偏(Y方向为1,X方向为0),则对应的LED发光。
如Y7(0)=1,X7(H)=0时,则其对应的右下角的LED会发光。
各LED还需接上限流电阻,实际应用时,限流电阻即可接在X轴,也可接在Y轴。
8x8点阵的外观及引脚
8X8点阵的硬件电路
2).实验内容
编写一段程序,用p1口控制扫描,用C5区的74HC164控制显示输出,使C区的8X8LED显示一个“
”。
4、实验要求
学会使用单片机对LED点阵进行扫描显示。
5、实验步骤
1)使用导线把A2区的J61接口与C3区的J46接口从P10-P17到LD-1~LD-8对应相连。
2)使用导线把C5区的J97接口与C3区的J47接口从Q0~Q7到LD-A~LD-H对应相连。
3)使用导线把A2区的J58接口与C5区的J43接口从INT0到CLK,从INT1到DINA,从T0到DINB,从T1到CLR对应相连,另外再短接C5区JP10和C3区JP2。
4)参考实验7编写一段从74HC164输出8位数据的程序。
5)再编写一个完整的LED点阵扫描程序,显示“
”。
6、实验预习要求。
理解硬件结构,先编写好程序,然后在KeilC51环境下进行软件仿真。
7、实验参考程序
CLKEQUP3.2
DINAEQUP3.3
DINBEQUP3.4
CLEAREQUP3.5
ORG8000H
AJMPMAIN
ORG8100H
MAIN:
MOVSP,#70H;设置堆栈指针
MOV50H,#07EH;设置发送的列数据
MOV51H,#0BDH
MOV52H,#0DBH
MOV53H,#0E7H
MOV54H,#0E7H
MOV55H,#0DBH
MOV56H,#0BDH
MOV57H,#07EH
CLRCLEAR;初始化I/O口
SETBCLK
SETBDINA
SETBDINB
SETBCLEAR
MAINLOOP:
MOVR6,#8H;设置扫描次数
MOVDPTR,#09000H;读取扫描端口数据
MOVR1,#50H;指定列数据指针
FLASHCY:
MOVA,@R1;读取列数据
MOVR0,A
INCR1;列数据指针加1
CLRA
MOVCA,@A+DPTR;读取扫描端口数据
MOVP1,0FFH
LCALLSENDTO;发送列数据
MOVP1,A
INCDPTR
LCALLDELAY
DJNZR6,FLASHCY
SJMPMAINLOOP
SENDTO:
;发送数据程序
PUSHACC
CLRCLK
SENDTIME:
MOVR7,#08H
MOVA,R0
CLRC
SENDCY:
RRCA
MOVDINA,C
SETBCLK
CLRCLK
DJNZR7,SENDCY
POPACC
RET
DELAY:
MOVR7,#01
DELAY0:
MOVR4,#17
DELAY1:
MOVR3,#28
DJNZR3,$
DJNZR4,DELAY1
DJNZR7,DELAY0
RET
ORG09000H
DB0FEH,OFDH,OFBH,0F7H,0EFH,0DFH,0BFH,07FH
;
END
8、根据参考例程,编写循环显示“广东轻工业职业技术学院”的程序。