单片机实验指导书简化版.docx
《单片机实验指导书简化版.docx》由会员分享,可在线阅读,更多相关《单片机实验指导书简化版.docx(33页珍藏版)》请在冰豆网上搜索。
![单片机实验指导书简化版.docx](https://file1.bdocx.com/fileroot1/2023-1/26/947647df-a735-496e-8b31-c5fe9cf18f13/947647df-a735-496e-8b31-c5fe9cf18f131.gif)
单片机实验指导书简化版
单片机实验指导书(简化版)
实验一清零实验(基础实验)
一、实验目的
1.掌握存储器读写方法。
2.了解存储器的块操作方法。
二、实验内容
1.指定内部RAM中某块的起始地址和长度,要求能将其内容清零。
2.指定外部RAM中某块的起始地址和长度,要求能将其内容清零。
3.指定外部RAM中某块的起始地址和长度,要求能将其内容置为某固定值(如0FFH)。
三、实验说明
通过本实验,学生可以了解单片机的存储器结构及读写存储器的方法,同时也可以了解单片机编程、调试方法。
四、实验仪器和设备
PC机、WAVE软件。
五、参考程序框图
否
是
存储器块清零参考程序框图
六、参考程序(略)
实验二 拆字程序(基础实验)
一、实验目的
掌握汇编语言设计和调试方法。
二、实验内容
把7000H的内容拆开,高位送7001H低位,低位送7002H低位。
7001H、7002H高位清零,一般本程序用于把数据送显示缓冲区时用。
三、实验说明
通过本实验,屏蔽半字节及拆字的方法,同时也可以了解单片机编程、调试方法。
四、主要仪器设备及耗材
PC机、WAVE软件
五、参考程序框图
六、参考程序(略)
实验三 拼字程序(基础实验)
一、实验目的
掌握汇编语言设计和调试方法。
二、实验内容
把7000H的低四位BCD数和7001H的低四位BCD数,拼成压缩BCD码的形式存放在7002H。
三、实验说明
通过本实验,掌握拼字的编程方法,同时也可以了解单片机编程、调试方法。
四、主要仪器设备及耗材
PC机、WAVE软件
五、参考程序框图
六、参考程序(略)
实验四数据块移动(基础实验)
一、实验目的
1.了解内存的移动方法。
2.加深对存储器读写的认识。
二、实验内容
将指定源地址和长度的存储块移到指定目标位置。
三、实验说明
块移动是计算机常用操作之一,多用于大量的数据复制和图象操作。
本程序是给出起始地址,用地址加一方法移动块,请思考给出块结束地址,用地址减一方法移动块的算法。
另外,若源块地址和目标块地址有重叠,该如何避免?
四、实验仪器和设备
PC机、WAVE软件。
五、参考程序框图
否
是
是
存储块移动参考程序框图
六、参考程序(略)
实验五数据排序(基础实验)
一、实验目的
1.了解数据排序的简单算法。
2.了解数列的有序和无序概念。
二、实验内容
给出一组随机数,将此组数据排序,使之成为有序数列。
三、实验说明
有序的数列更有利于查找。
本程序用的是“冒泡排序”法,算法是将一个数与后面的数相比较,如果比后面的数大,则交换,如此将所有的数比较一遍后,最大的数就会在数列的最后面。
再进行下一轮比较,找出第二大数据,直到全部数据有序。
四、实验仪器和设备
PC机、WAVE软件。
五、
参考程序框图
否是
否
是
否
是
数据排序参考程序框图
六、参考程序(略)
实验六 P3.3口输入,P1口输出(基础实验)
一、实验目的
1、掌握P3口、P1口简单使用。
2、学习延时程序的编写和使用。
二、实验内容
1、P3.3口做输入口,外接一脉冲,每输入一个脉冲,P1口按十六进制加一。
2、P1口做输出口,编写程序,使P1口接的8个发光二极管D1—D8按16进制加一方式点亮发光二极管。
三、实验说明
1、P1口是准双向口,它作为输出口时与一般的双向口使用方法相同,由准双向口结构可知:
当P1口作为输入口时,必须先对它置高电平,使内部MOS管截止,因内部上拉电阻是20KΩ—40KΩ,故不会对外部输入产生影响。
若不先对它置高,且原来是低电平,则MOS管导通,读入的数据是不正确的。
2、延时子程序的延时计算问题。
对于延时程序
DELAY:
MOVR6,#00H
DELAY1:
MOVR7,#80H
DJNZR7,$
DJNZR6,DELAY1
查指令表可知MOV、DJNZ指令均需用两个机器周期,而一个机器周期时间长度为12/6.0MHZ,所以该段指令执行时间为:
((80+1)×256+1)×2×(12÷6000000)=132.1ms
四、实验程序框图
五、实验线路图
六、实验步骤
①用伟福软件编写程序,并编译通过
②用STC软件下装程序到TX-1C单片机实验板
③每按一次S3按钮,D1—D8发光二极管按16进制方式加一点亮。
七、参考程序
ORG0540h
HA1S:
MOVA,#00H
HA1S1:
JBP3.3,HA1S1
MOVR2,#20H
LCALLDELAY
JBP3.3,HA1S1
HA1S2:
JNBP3.3,HA1S2
MOVR2,#20H
LCALLDELAY
JNBP3.3,HA1S2
INCA
PUSHACC
CPLA
MOVP1,A
CLRP2.5
SETBP2.5
POPACC
AJMPHA1S1
DELAY:
PUSH02H
DELAY1:
PUSH02H
DELAY2:
PUSH02H
DELAY3:
DJNZR2,DELAY3
POP02H
DJNZR2,DELAY2
POP02H
DJNZR2,DELAY1
POP02H
DJNZR2,DELAY
RET
END
实验七P0口输出控制继电器实验(基础实验)
一、实验目的
掌握用继电器控制的基本方法和编程,学习驱动电路的设计。
二、实验内容
利用P1口输出高低电平,控制继电器的开合,以实现对外部装置的控制。
三、预备知识
现代自动化控制设备都存在一个电子与电气电路的互相联结问题,一方面要使电子电路的控制信号能够控制电气电路的执行元件(电动机、电磁铁、电灯等),另一方面又要为电子电路和电气电路提供良好的电隔离,以保护电子电路和人身的安全,电子继电器便能完成这一桥梁作用。
本实验采用HK4100F—DC5V—SHG型继电器,其控制电压为5V。
继电器电路中一般要在继电器的线圈两头加一个二极管以吸收继电器线圈断电时产生的反电势,防止干扰。
四、实验线路图
五、实验程序框图
六、实验步骤
1、在J24接口上接上实验室提供的外围控制对象。
2、用伟福软件编写、调试并编译程序。
3、用STC软件下装程序到TX-1C单片机实验板。
4、观察继电器对外围对象的控制效果。
七、参考程序
ORG0030H
START:
SETBP0.6
LCALLDELAY
CLRP0.6
LCALLDELAY
SJMPSTART
DELAY:
MOVR7,#0FFH
DELAY1:
MOVR6,#0FFH
DELAY2:
DJNZR6,DELAY2
DJNZR7,DELAY1
RET
END
实验八蜂鸣器定时发声实验(综合性实验)
一、实验目的
掌握定时器中断方式的使用,蜂鸣器的使用
二、实验内容
利用p2.3口发出低电平让蜂鸣器发声,发出高电平蜂鸣器停止发声。
通过定时器设置p2.3口,最终达到蜂鸣器能够响1s停1s的效果。
通过按键增大和减小蜂鸣器的发声间隔。
要求用定时器中断方式。
三、实验基本原理
实验接线图:
四、程序框图
五、主要仪器设备及耗材
微机原理与接口技术、PC机、usb线,串口线
六、实验步骤
1)将实验板上的串口线与电脑串口相连(下载程序用)
2)将实验板上的usb线与电脑机箱上usb口相连(提供电源)
3)打开“伟福”确认其仿真器设置为H51/L里的89C51RX,并且语言那项里编译器选择“伟福编译器”。
4)把程序在伟福中编译生成*.HEX文件
5)打开STC软件用以把*.HEX文件写入单片机的ROM中运行(注意选单片机型号为89s52)
6)在试验板左上中部,数码管的下方是电源开关,请确定此时试验板处于关电状态。
7)在STC软件中点击“打开文件”按钮选择事先准备好的*.HEX文件。
8)点击“download”,随后快速的使得试验板上的电源处于开的状态,则显示开始下载程序到单片机中,如果失败,则需要先点“stop”后重新将试验板电源按到关的状态,然后再点击“download”再开试验板上电源,直到下载成功为止。
9)收听试验效果。
七、思考题
将响声改为一长两短的警报
八、参考程序
ORG00H
LJMPSTART
ORG0BH
LJMPTIM0
ORG30H
START:
CLRP3.0
SETBP3.4
SETBP3.5
MOVR0,#20
MOVIE,#10000010B
MOVTMOD,#01H
MOVTH0,#4CH
MOVTL0,#00H
SETBTR0
SM:
JBP3.4,NEXT
JNB30H,NEXTN
CALLdelay
JBP3.4,NEXT
CLR30H
MOVA,41H
SUBBA,#01H
MOV41H,A
LJMPNEXTN
NEXT:
SETB30H
NEXTN:
JBP3.5,NEXT1
JNB31H,NEXTN1
CALLdelay
JBP3.5,NEXT1
CLR31H
MOVA,41H
ADDA,#01H
MOV41H,A
LJMPNEXTN1
NEXT1:
SETB31H
NEXTN1:
LJMPSM
ORG300H
TIM0:
MOVTH0,41H
MOVTL0,#00H
DJNZR0,OUT
CPLP2.3
MOVR0,#20
OUT:
RETI
delay:
mov55h,#20;50h,51h,52h用于延时50h为参数x延时1*xms
NOP
NOP
djnz52H,delay
MOV52H,#20
ret;延时返回
END
实验九步进电机试验(综合性实验)
一、实验目的
掌握定时器中断方式的使用,步进电机的使用,通过两按键调节步进电机的转速,和转向。
二、实验内容
利用定时器定时,达到每1s钟间隔通过P0.2,P0.3,P0.4,P0.5向步进电机的A,B,C,D端发出对应的高低电平信号,使得电机可以始终朝一个方向一格一格的转动。
要求用定时器中断方式。
三、实验基本原理
实验接线图:
电路原理图
ABCD信号顺序图
四、程序框图
五、主要仪器设备及耗材
微机原理与接口技术、PC机、usb线,串口线
六、实验步骤
1)将实验板上的串口线与电脑串口相连(下载程序用)
2)将实验板上的usb线与电脑机箱上usb口相连(提供电源)
3)将试验板上单片机右下旁J16跳线上的P02,P03,P04,P05接上跳线帽。
4)打开“伟福”确认其仿真器设置为H51/L里的89C51RX,并且语言那项里编译器选择“伟福编译器”。
5)把程序在伟福中编译生成*.HEX文件
6)打开STC软件用以把*.HEX文件写入单片机的ROM中运行(注意选单片机型号为89s52)
7)在试验板左上中部,数码管的下方是电源开关,请确定此时试验板处于关电状态。
8)在STC软件中点击“打开文件”按钮选择事先准备好的*.HEX文件。
9)点击“download”,随后快速的使得试验板上的电源处于开的状态,则显示开始下载程序到单片机中,如果失败,则需要先点“stop”后重新将试验板电源按到关的状态,然后再点击“download”再开试验板上电源,只到下载成功为止。
9)观看试验效果。
七、思考题
将转动的速度调快点,并且反向旋转。
八、参考程序
ORG00H
LJMPSTART
ORG0BH
LJMPTIM0
ORG30H
START:
CLRP3.0
SETBP3.4
SETBP3.5
SETBP3.6
SETB20H;正反转标志位
MOV41H,#4CH;TH0
MOVR0,#20
MOVR1,#4
MOVR2,#4
MOVIE,#10000010B
MOVTMOD,#01H
MOVTH0,41H
MOVTL0,#00H
SETBTR0
SM:
JBP3.4,NEXT
JNB30H,NEXTN
CALLdelay
JBP3.4,NEXT
CLR30H
CPL20H
LJMPNEXTN
NEXT:
SETB30H
NEXTN:
JBP3.5,NEXT1
JNB31H,NEXTN1
CALLdelay
JBP3.5,NEXT1
CLR31H
MOVA,41H
ADDA,#01H
MOV41H,A
LJMPNEXTN1
NEXT1:
SETB31H
NEXTN1:
JBP3.6,NEXT2
JNB32H,NEXTN2
CALLdelay
JBP3.6,NEXT2
CLR32H
MOVA,41H
SUBBA,#01H
MOV41H,A
LJMPNEXTN2
NEXT2:
SETB32H
NEXTN2:
LJMPSM
ORG300H
TIM0:
MOVTH0,41H
MOVTL0,#00H
DJNZR0,OUT
MOVR0,#20
JB20H,REVERSE
MOVA,R1
SUBBA,#1
MOVR1,A
CJNEA,#3,SECOND
MOVP0,#0010100B
AJMPOUT
SECOND:
CJNEA,#2,THIRD
MOVP0,#0011000B
AJMPOUT
THIRD:
CJNEA,#1,FORTH
MOVP0,#0101000B
AJMPOUT
FORTH:
CJNEA,#0,OUT
MOVP0,#0100100B
ADDA,#4
MOVR1,A
AJMPOUT
REVERSE:
MOVA,R2
SUBBA,#1
MOVR2,A
CJNEA,#3,SECOND1
MOVP0,#0100100B
AJMPOUT
SECOND1:
CJNEA,#2,THIRD1
MOVP0,#0101000B
AJMPOUT
THIRD1:
CJNEA,#1,FORTH1
MOVP0,#0011000B
AJMPOUT
FORTH1:
CJNEA,#0,OUT
MOVP0,#0010100B
ADDA,#4
MOVR2,A
AJMPOUT
OUT:
RETI
delay:
mov55h,#20;50h,51h,52h用于延时50h为参数x延时1*xms
NOP
NOP
djnz52H,delay
MOV52H,#20
ret;延时返回
END
实验十24小时时钟带调时实验(设计性实验)
一、实验目的
1)了解时钟中断的使用方法。
2)了解七段数码管的使用方法。
3)了解动态显示的使用方法。
4)按键扫描的使用方法。
二、实验内容
试验板上六个七段数码管,分为三组,每组两位。
第一组显示秒,第二组显示分,第三组显示小时。
可以完成从0到24小时计时,完成后自动清零从头开始计时。
设置三个按键分别用来调整秒,分,时的数值,完成对时功能。
三、实验基本原理
实验接线图
数码接口
键盘接口
四.实验程序框图
五、主要仪器设备及耗材
微机原理与接口技术实验板、PC机、导线、步进电机
六、实验步骤
1)将实验板上的串口线与电脑串口相连(下载程序用)
2)将实验板上的usb线与电脑机箱上usb口相连(提供电源)
3)将试验板上单片机右下旁J16跳线上的P02,P03,P04,P05接上跳线帽。
4)打开“伟福”确认其仿真器设置为H51/L里的89C51RX,并且语言那项里编译器选择“伟福编译器”。
5)把程序在伟福中编译生成*.HEX文件
6)打开STC软件用以把*.HEX文件写入单片机的ROM中运行(注意选单片机型号为89s52)
7)在试验板左上中部,数码管的下方是电源开关,请确定此时试验板处于关电状态。
8)在STC软件中点击“打开文件”按钮选择事先准备好的*.HEX文件。
9)点击“download”,随后快速的使得试验板上的电源处于开的状态,则显示开始下载程序到单片机中,如果失败,则需要先点“stop”后重新将试验板电源按到关的状态,然后再点击“download”再开试验板上电源,只到下载成功为止。
9)观看试验效果。
七、实验数据及处理结果
从键盘上实现调试,当时间显示为23点59分59秒时,下一秒会变为全零。
八、思考讨论题或体会或对改进实验的建议
也可以改为跑表,按下开始计时,再按下停。
九.参考程序:
ORG00H
LJMPSTART
ORG0BH
LJMPTIM0
ORG30H
START:
SETBP3.4
SETBP3.5
SETBP3.6
CLRP3.0
MOV50H,#01H
MOVSP,#30H
MOVR0,#20
MOVR1,#4
MOVR2,#0
MOV40H,#0;秒个位
MOV41H,#0;秒十位
MOV42H,#9;分个位
MOV43H,#5;分十位
MOV44H,#3;时个位
MOV45H,#2;时十位
MOVIE,#10000010B
MOVTMOD,#01H
MOVTH0,#4CH
MOVTL0,#00H
SETBTR0
DISPLAY:
CLRP2.7
SETBP2.6
MOVDPTR,#TAB
MOVA,40H
MOVCA,@A+DPTR
MOVP0,A
CLRP2.6
SETBP2.7
MOVP0,#0FFH
CLRP0.5
CLRP2.7
CALLdelayxms
JBP3.4,NEXT
JNB30H,NEXTN
CALLdelay
JBP3.4,NEXT
CLR30H
MOVA,40H
ADDA,#1
MOV40H,A
CJNEA,#10,NEXTN
MOV40H,#00H
MOVA,41H
ADDA,#01H
MOV41H,A
CJNEA,#06H,NEXTN
MOV41H,#00H
LJMPNEXTN
NEXT:
SETB30H
NEXTN:
CLRP2.7
SETBP2.6
MOVDPTR,#TAB
MOVA,41H
MOVCA,@A+DPTR
MOVP0,A
CLRP2.6
SETBP2.7
MOVP0,#0FFH
CLRP0.4
CLRP2.7
CALLdelayxms
JBP3.5,NEXT1
JNB31H,NEXTN1
CALLdelay
JBP3.5,NEXT1
CLR31H
MOVA,42H
ADDA,#1
MOV42H,A
CJNEA,#10,NEXTN1
MOV42H,#00H
MOVA,43H
ADDA,#01H
MOV43H,A
CJNEA,#06H,NEXTN1
MOV43H,#00H
LJMPNEXTN1
NEXT1:
SETB31H
NEXTN1:
CLRP2.7
SETBP2.6
MOVDPTR,#TAB
MOVA,42H
MOVCA,@A+DPTR
ORLA,#80H
MOVP0,A
CLRP2.6
SETBP2.7
MOVP0,#0FFH
CLRP0.3
CLRP2.7
CALLdelayxms
CLRP2.7
SETBP2.6
MOVDPTR,#TAB
MOVA,43H
MOVCA,@A+DPTR
MOVP0,A
CLRP2.6
SETBP2.7
MOVP0,#0FFH
CLRP0.2
CLRP2.7
CALLdelayxms
CLRP2.7
SETBP2.6
MOVDPTR,#TAB
MOVA,44H
MOVCA,@A+DPTR
ORLA,#80H
MOVP0,A
CLRP2.6
SETBP2.7
MOVP0,#0FFH
CLRP0.1
CLRP2.7
CALLdelayxms
JBP3.6,NEXT2
JNB32H,NEXTN2
CALLdelay
JBP3.6,NEXT2
CLR32H
MOVA,45H
CJNEA,#2,HH
MOVA,44H
ADDA,#1
MOV44H,A
CJNEA,#4,HL
MOV44H,#0
MOV45H,#0
HL:
LJMPNEXTN2
HH:
MOVA,44H
ADDA,#1
MOV44H,A
CJNEA,#10,NEXTN2
MOV44H,#00H
MOVA,45H
ADDA,#01H
MOV45H,A
CJNEA,#06H,NEXTN2
MOV45H,#00H
LJMPNEXTN2
NEXT2:
SETB32H
NEXTN2:
CLRP2.7
SETBP2.6
MOVDPTR,#TAB
MOVA,45H
MOVCA,@A+DPTR
MOVP0,A
CLRP2.6
SETBP2.7
MOVP0,#0FFH
CLRP0.0
CLRP2.7
CALLdelayxms
LJMPDISPLAY
ORG300H
TIM0:
MOVTH0,#4CH
MOVTL0,#00H
DJNZR0,OUT
MOVR0,#20
MOVA,40H
ADDA,#1
CJNEA,#10,SECL
MOV40H,#00H
MOVA,41H
ADDA,#1
CJNEA,#6,SECH
MOV41H,#00H
MOVA,42H
ADDA,#1
CJNEA,#10,MINL
MOV42H,#00H
MOVA,43H
ADDA,#1