实验项目4Word文件下载.docx
《实验项目4Word文件下载.docx》由会员分享,可在线阅读,更多相关《实验项目4Word文件下载.docx(57页珍藏版)》请在冰豆网上搜索。
(3)连线若干根
(4)计算机1台
每个I/0端口都有两种读入,即读锁存器和读引脚,读引脚指令一般都是以I/0端口为源操作数的指令,如MOVC,P1.3,而读锁存器指令一般为“读-修改-写”指令,如ANLP1.3,C指令。
5.实验步骤:
P3.0孔用连线连至K0,P1.0-P1.7孔连至L0-L7,K0拨动一次,L0-L7发光二极管按16进制方式加一闪亮。
6.接线图案:
7.程序框图:
实验二数据排序实验(WINDOWS平台调试方法)
(1)学习WINDOWS平台下的编辑、编译、排错、调试方法。
(2)学习修改和观察变量的方法;
综合使用单步、断点调试的方法。
编写并调试一个排序子程序,其功能为用冒泡法将内部RAM中几个单字节无符号正整数,按从小到大的次序重新排列。
(1)G6W仿真器1台
(2)计算机1台(3)G2010+实验平台1台
4.实验步骤:
(1)参阅Page40《硬件安装》把实验平台、仿真器与PC机串行口连起来,打开电源。
(2)在PC机上用鼠标点击“Wave”图标,进入WINDOWS调试环境,而后进行初始化设置。
点击[仿真器\仿真器设置]出现“仿真器设置”窗,点击此窗中[仿真器],依次选择仿真器为G6W,选择仿真头为POD-51,选择CPU为8031,然后点击此窗中[仿真头设置],弹出“仿真设置”窗,程序存储器的设置和外部数据存储器设置的组合即四种工作模式。
这里设定程序存储器在仿真器上,数据存储器在用户板上。
(3)去除[使用伟福软件模拟器]之前“√”,而后点击[通信设置]选择串口后,点击[好]键,对仿真器初始化,如连接成功,则出现如图A;
如连接不成功,则出现如图B。
图A图B
(4)在连机成功的基础才可进行下一步操作。
用鼠标点一下[文件\新建文件]键,输入文件名NAME1.ASM,创造新文件,进入编辑窗口,在该窗口中输入程序,点击保存键存盘。
(5)用鼠标点[项目\全部编译]窗,对当前窗口的源文件进行编辑。
如果编译有错,信息窗口将自动弹出来,并表明出错的状态和地方,用鼠标双击信息窗口信息条,则自动定位源文件中出错的地方,你可修改存盘后再编译,直到编译通过为止。
(6)打开[窗口|数据窗口|DATA],在弹出的DATA窗口中50H开始的地址上输入不同的10个数。
(7)把打开的窗口进行并排,以单步运行(F7键),跟踪运行(F8键)运行程序,观察DATA窗口50H开始的单元内容的变化。
5.程序框图及其清单:
根据(R0)取数→A
(R0)+1送R0
置标志位,交换内容
清标志位
长度减1=0?
标志位=0?
结束
(A)<((R0))?
程序清单:
ORG0000H
MOVR3,#50H
LOOP0:
MOVA,R3
MOVR0,A;
指针送R0
MOVR7,#0AH;
长度送R7
CLR00H;
标志位为0
MOVA,@R0
LOOP1:
INCR0
MOVR2,A
CLRC
MOV22H,@R0
CJNEA,22H,LOOP2;
相等吗?
SETBC
LOOP2:
MOVA,R2
JCLOOP3;
小于或等于不交换
SETB00H
XCHA,@R0
DECR0
INCR0;
大于交换位置
LOOP3:
MOVA,@R0
DJNZR7,LOOP1
JB00H,LOOP0;
一次循环中有交换继续
LOOP:
SJMPLOOP;
无交换退出
6.思考问题:
编一程序把50H-5AH中内容按从大到小排列。
实验三计数器实验
1.实验要求:
8031内部定时计数器T0,按计数器模式和方式1工作,对P3.4(T0)引脚进行计数。
将其数值按二进制数在P1口驱动发光二极管显示出来。
2.实验目的:
1、学习8031内部定时/计数器使用方法。
3.实验器材:
(1)G2010+实验平台1台
(2)G6W仿真器1台(3)计算机1台
4.实验电路及连线:
P1.0—P1.3孔分别连“发光二极管组”的L0—L3孔,“脉冲源”的单脉冲输出孔用连线连至P3.4(T0)。
5.实验说明:
1、本实验中内部计数器起计数器的作用。
外部事件计数脉冲由P3.4引入定时器T0。
单片机在每个机器周期采样一次输入波形,因此单片机至少需要两个机器周期才能检测到一次跳变。
这就要求被采样电平至少维持一个完整的机器周期,以保证电平在变化之前即被采样。
同时这就决定了输入波形的频率不能超过机器周期频率。
6.实验框图
实验四外部中断实验
1.实验要求
用单次脉冲申请中断,在中断处理程序中对输出信号进行反转。
2.实验目的
(1)学习外部中断技术的基本使用方法。
(2)学习中断处理程序的编程方法。
4.实验电路及连线
把“总线插孔”框中的P1.0孔连“发光二极管组”的L0孔,“脉冲源”的单脉冲输出“
”孔连接INT0(P3.2)。
MCS-51单片机有5个中断源,其中两个是由/INT0、/INT1引脚输入的外部中断源;
另外三个是内部中断源即由T0、T1的溢出引起中断和串行口发送完一个字节或接收到一个字节数据引起中断。
触发外部中断有两种方式,即下降沿引起中断或低电平引起中断。
当编程TCON中的ITi为1时,则引起触发的方式为边沿触发方式,反之为低电平触发方式。
每个中断源的中断请求能否得到响应要受两级“开关”的控制,即一个总“开关”EA和五个分“开关”ES、ET1、EX1、ETO和EX0的控制,只有当EA为1,且对应的分“开关”也为1时,相应中断源的中断请求才能被响应。
5个中断源可编程为两个优先级,同一优先级内以/INT0的优先级最高,然后是TO中断、/INT1中断、T1中断和串行口中断。
5个中断源对应有个固定的中断服务程序入口地址。
CPU在每个机器周期顺序采样每个中断源,如查询到某个中断源的中断标志为1,中断系统通过硬件自动将相应的中断矢量装入PC,进入中断服务程序。
实验平台中的开关TR3为一带锁按钮(在实验仪“脉冲源”模块中),在按下和松开按钮时,“
”孔的电平将发生变化,由此产生下降沿。
中断服务程序的关键是:
1.保护进入中断时的状态,并在退出中断之前恢复进入时的状态。
2.必须在中断程序中设定是否允许中断重入,即设置EXO位。
本实验中使用了INTO中断,一般中断程序进入时应保护PSW,ACC以及中断程序使用但非其专用的寄存器。
本实验的中断程序保护了PSW,ACC等三个寄存器并且在退出前恢复了这三个寄存器。
另外中断程序中涉及到关键数据的设置时应关中断,即设置时不允许重入。
本实验中没有涉及这种情况。
6.实验步骤:
把“总线插孔”框中的P1.0孔连接“发光二极管组”的L0孔,“脉冲源”的单脉冲输出“
执行程序,按动TR3带锁按钮,观察信号反转。
7.实验框图
中断入口
保护现场
状态位取反
状态位输出
恢复现场
开始
设置初始状态
设置中断控制寄存器
中断允许
等待中断
中断返回
主程序框图
外部中断子程序框图
实验五八段数码管显示
1.实验目的:
(1)了解数码管动态显示的原理。
(2)了解74LS164扩展端口的方法。
2.实验要求:
利用实验仪提供的显示电路,动态显示一行数据.
3.实验线路:
这里只是显示草图,详细原理参见第一章的1.1.15“8155键显模块”
4.实验器材:
5.实验说明:
(1)本实验仪提供了8段码LED显示电路,学生只要按地址输出相应数据,就可以实现对显示器的控制。
显示共有6位,用动态方式显示。
8位段码是由8155的PB0、PB1经74LS164“串转并”后输出得到。
6位位码由8155的PA0口输出,经uA2003反向驱动后,选择相应显示位。
74LS164是串行输入并行输出转换电路,串行输入的数据位由8155的PB0控制,时钟位由8155的PB1控制输出。
写程序时,只要向数据位地址输出数据,然后向时钟位地址输出一高一低两个电平就可以将数据位置到74LS164中,并且实现移位。
向显示位选通地址输出高电平就可以点亮相应的显示位。
本实验仪中数据位输出地址为0e102H,时钟位输出地址为0e102H,位选通输出地址为0e101H。
本实验涉及到了8155I/0/RAM扩展芯片的工作原理以及74LS164器件的工作原理。
a
fb
g
ec
d
。
dp
(2)七段数码管的字型代码表如下表:
显示字形
g
f
e
d
c
b
a
段码
1
3fh
06h
2
5bh
3
4fh
4
66h
5
6dh
6
7dh
7
07h
8
7fh
9
6fh
A
77h
7ch
C
39h
5eh
E
79h
F
71h
6.程序框图:
否
位选通信号移位
取显示数据
关所有位显示
指向下一个显示数据
数据移位输出到164
输出时钟脉冲到164
8段码完成
返回
输出位选通信号
初始化显示参数
延时
6位完成
是
实验六键盘扫描显示实验
(1)掌握键盘和显示器的接口方法和编程方法。
(2)掌握键盘扫描和LED八段码显示器的工作原理。
在上一个实验的基础上,利用实验仪提供的键盘扫描电路和显示电路,做一个扫描键盘和数码显示实验,把按键输入的键码0—F在六位数码管上显示出来。
实验程序可分成三个模块。
①键输入模块:
扫描键盘、读取一次键盘并将键值存入键值缓冲单元。
②显示模块:
将显示单元的内容在显示器上动态显示。
③主程序:
调用键输入模块和显示模块。
(3)计算机1台
4.实验电路:
这里只是键盘草图,详细原理参见第一章的1.1.15“8155键显模块”
列码
(0e101H)
行码
(0e103H)
本实验仪提供了一个6×
4的小键盘,向列扫描码地址(0e101H)逐列输出低电平,然后从行码地址(0e103H)读回.如果有键按下,则相应行的值应为低,如果无键按下,由于上拉的作用,行码为高.这样就可以通过输出的列码和读取的行码来判断按下的是什么键.在判断有键按下后,要有一定的延时,防止键盘抖动.
列扫描码还可以分时用作LED的位选通信号.
6.实验框图:
主程序框图
键值转换为显示数据
读取键值
LED显示
显示缓冲区初始化
有键输入?
读键输入子程序框图
等待键盘释放
S待按键释放
查表得键码
按照行列计算键值
初始化地址参数
6列扫描完?
读入行信号
该列有键输入?
列扫描信号移位
输出列扫描信号
显示程序框图见上个实验
实验七A/D0809转换实验
掌握A/D转换与单片机接口的方法;
了解A/D芯片0809转换性能及编程方法;
2.实验内容:
利用实验平台上的0809做A/D转换器,实验平台上的电位器提供模拟量输入,编制程序,将模拟量转换成数字量,通过8155键显区数码管显示出来。
3.实验器材:
(1)G2010+实验平台1台
(2)G6W仿真器1台
(3)连线若干根(4)计算机1台
A/D转换器的功能主要是将输入的模拟信号转换成数字信号,如电压、电流、温度测量等都属于这种转换。
本实验中采用的转换器为ADC0809,它是一个8位逐次逼近型A/D转换器,可以对8个模拟量进行转换,转换时间为100μS。
其工作过程如下:
首先由地址锁存信号ALE的上升沿将引脚ADDA、ADDB和ADDC上的信号锁存到地址寄存器内,用以选择模拟量输入通道;
START信号的下降沿启动A/D转换器开始工作;
当转换结束时,AD0809使EOC引脚由低电平变成高电平,程序可以通过查询的方式读取转换结果,也可以通过中断方式读取结果。
CLOCK为转换时钟输入端,频率为100KHz-1.2MHz,推荐值为640KHz。
5.程序框图:
显示
0809初始化
0809.0通道采样
(1)设定工作模式为模式2,即程序空间在仿真器上,数据空间在用户板上。
把AD0809的零通道INO孔用连线接至模拟信号发生器的Vin0孔,AD0809的片选信号CS4孔接“译码器”YC2(0A000-0AFFFH)孔,“脉冲源”中的0.5MHZ孔连AD0809的CLOCK孔。
(2)硬件诊断:
调整实验平台上模拟信号发生器的电位器,使输入到此AD0809的IN0上电压为一定值。
(2.0)G2010+G6W连PC机,在WINDOWS调试环境下点击外部数据窗口图标(
),在打开的XDATA窗口中的0A000H地址上写入00H(即选择AD0809的0通道),以启动AD0809对IN0上输入电压进行A/D转换,然后点击刷新图标(
),读出AD转换结果。
(2.1)G2010+G6W连PC机,在DOS调试环境下,把光标移入XDATA窗中,按Alt+G,在打开的“GotoAddress”窗口中输入“0A000H”,再按“回车”键,在0A000H地址上打入“00H”以启动AD0809对IN0上输入电压进行A/D转换,然后屏幕
上显示的值即是读出的AD转换结果。
(3)编写程序,并编译通过。
本程序使用查询的方式读取转换结果。
在读取转换结果的指令后设置断点,运行程序,在断点处检查并读出A/D转换结果,数据是否与Vin0相对应。
修改程序中错误,使显示值随Vin0变化而变化。
7.接线图案:
8.思考问题:
(1)试编写循环采集8路模拟量输入AD转换程序;
(2)以十进制方式显示。
实验八D/A0832转换实验
了解D/A转换与单片机的接口方法;
了解D/A转换芯片DA0832的性能及编程方法。
利用0832输出一个从0V开始逐渐升至5V再降至0V的三角波电压,数码管显示数字量值。
(1)G2010+实验平台1台
(2)G6W仿真器1台(3)连线若干根(4)计算机1台
4.接线图案:
转换显示减1
转换显示加1
输入是否到FF?
显示
0832初始化
输入是否到00?
6.实验原理:
D/A转换器的功能主要是将输入的数字量转换成模拟量输出,在语音合成等方面得到了广泛的应用。
本实验中采用的转换器为DAC0832,该芯片为电流输出型8位D/A转换器,输入设有两级缓冲锁存器,因此可同时输出多路模拟量。
本实验中采用单级缓冲连接方式,用0832来产生三角波,具体线路如上图所示。
Vref引脚的电压极性和大小决定了输出电压的极性与幅度,G2010+实验平台上的DA0832的第8引脚(Vref)的电压已接为-5V,所以输出电压值的幅度为0-5V。
(1)设定工作模式为模式2,即程序空间在仿真器上,数据空间在用户板上。
把DA0832的片选CS3孔连接至0B000H-0BFFFH孔。
G2010+G6W连PC机,在WINDOWS调试环境下点击外部数据窗口图标(
),在打开的XDATA窗口中的0B000H地址(即DA0832的片选空间)上写入FFH,则Aout孔输出应为5V,将00H写入,则Aout孔输出应为0V。
(3)编写程序、编译程序,用单步、断点、连续方式调试程序,排除软件错误。
运行程序,8155键显区数码管上显示不断加大或减小的数字量,用万用表测量D/A输出孔AOUT,应能测出不断加大或减少的电压值。
修改程序,使能产生锯齿波。
9.软件清单:
(MCS51\A17.ASM)
实验九电子时钟(定时/计数器定时实验)
进一步掌握定时器、中断处理程序的编程方法;
进一步掌握数码显示电路的驱动方法。
2.实验框图:
置定时器模式及常数
10000次计数值减1
设置初始常数
调用显示子程序
转换成显示数据
显示数据送缓冲
读取秒值
读取分钟值
读取小时值
启动定时器
到24小时
到60分钟
计数值为0
到60秒
小时值清0
分值清0,小时加1
秒值清0,分钟加1
秒值加1
设置下次10000次计数值
100us定时中断服务子程序
3.实验内容:
利用CPU的定时器和实验仪上提供的数码显示电路,设计一个电子时钟。
4.实验说明:
MCS-51单片机有两个16位的定时计数器T0和T1,当工作在定时方式时,计数脉冲来自单片机的内部,振荡器信号12分频后作计数脉冲,每个机器周期的时间使计数器加1,由于计数脉冲的频率是固定的(即每个脉冲为1个机器周期的时间),故可通过设定计数值来实现定时功能。
如要实现定时100μS,当晶振为6M时,每个机器周期为2μS,让T0计50个数后溢出,产生中断告诉CPU定时,100μS时间到。
本实验定时器每100us中断一次,在中断服务程序中,对中断次数进行计数,100us计数10000次就是1秒。
然后再对秒计数得到分和小时值,并送入显示缓冲区。
5.实验器材:
(1)G2010+实验平台1台;
(2)G6W仿真器1台;
(3)计算机1台
6.实验电路:
见第一章的1.1.15“8155键显模块”
7.调试方法:
本实验为实时I/O实验,因此软件调试一般用全速断点方式运行。
将断点分别设在定时器中断入口地址上、中断处理程序结束处、主程序中。
分别以全速断点运行方式开始运行,若都能碰到断点,则说明程序的总体结构是正确的。
实验十最小系统组成实验
1.实验目的:
通过最小系统组成实验,掌握单片机系统的时钟电路、复位电路工作原理。
2.实验器材:
(1)G2010+实验平台1台
(2)G6W仿真器1台
(3)连线若干根(4)编程器1台
(5)AT89C51芯片1片(6)万用表1块
(7)示波器1台(8)POD51仿真头
3.实验原理:
(1)MCS—51单片机内部有一个用于构成振荡器的高增益反向放大器,引脚XTAL1和XTAL2分别是此放大器的输入和输出端,其时钟可由内部和外部两种方式产生。
由于采用内部方式时,电路简单,实际使用中常采用这种方式,如图中所示,外接晶体以及电容C1和C2构成并联谐振电路,接在放大器的反馈回路中(XTAL1和XTAL2),晶体振荡器在2-12M之间,C1、C2的值为20P左右。
G2010+实验平台上已把晶体与电容连接好,并以插孔方式引出。
(总线插孔区)
(2)复位的目的是初始化单片机内