湘潭大学单片机原理及应用实验讲义.docx
《湘潭大学单片机原理及应用实验讲义.docx》由会员分享,可在线阅读,更多相关《湘潭大学单片机原理及应用实验讲义.docx(49页珍藏版)》请在冰豆网上搜索。
湘潭大学单片机原理及应用实验讲义
单片机原理及应用实验讲义
目录
第一章51单片机仿真器使用说明1
§1.151单片机仿真器使用说明1
§1.2仿真器主要功能和特性2
§1.3仿真器的使用3
第二章STC系列单片机下载烧录使用说明14
第三章硬件基础接口应用实验17
实验一单片机I/O口应用实验_P3.3口输入P1口输出17
实验二定时器/计数器、继电器控制实验19
实验三电子音响实验21
实验四8031串行口应用实验_与PC机通信22
实验五A/D转换实验25
实验六D/A转换实验27
实验七并行I/O接口8255应用29
实验八串行键盘显示接口ZLG7290应用实验34
第一章51单片机仿真器使用说明
§1.151单片机仿真器使用说明
系统专配的仿真器是一个支持keilc51设计软件的软件断点仿真器。
该仿真器使用一片SST89C58单片机和一片ATMEG8515单片机来实现仿真功能(主CPU和用户CPU),两片CPU之间通过一根I/O引脚通讯,通讯速率在33兆晶振时约100KBPS,主CPU负责跟keilc51通讯,用户CPU只跟主CPU通讯,仿真器结构框图如下图1-1:
图1-1
§1.2仿真器主要功能和特性
1、支持串口的仿真功能
2、串口和中断用户都可以使用
3、不占用定时器2
4、完全仿真p0,p2口
5、占用用户堆栈2个字节
6、占用1条I/O:
P3.5
7、ISP在线编程,在线下载
8、仿真频率最高33兆
9、同时支持最多10个断点
10、支持单步,断点,全速运行
11、支持汇编和C语言混合编程调试
12、支持KEILC51的IDE开发仿真环境UV1UV2(V5.20V6.02V6.10V6.12V6.14)
13、单步执行时间(60毫秒)
14、程序代码载入(可以重复装载,无需预先擦除用户程序空间)
15、SFR读取速度(128个)200毫秒
16、跟踪记录(tracerecord)256条
17、可以仿真标准的89c51,89c52,89c58等51内核的单片机
§1.3仿真器的使用
§1.3.1随机携带的光盘主要内容介绍
1)子目录KEILC:
KEILC仿真调试软件的安装文件等
2)子目录USB_DRV:
KEILC51仿真器USB接口器件驱动程序
3)子目录串行口调试助手:
调试串行通信程序用的辅助软件
4)STC-ISP-V4.79_SETUP:
STC系列单片机下载烧录软件
5)子目录USB:
实验用USB接口器件CH372驱动程序
6)DVSIO:
PC机上串口发送程序
7)测试程序:
已调试通过的实验例程供用户参考
§1.3.2软件的安装
1)将随机光盘里的内容全部拷贝到电脑中自己建立的目录中
2)运行KEILC目录下的KEILC安装软件up51v623.exe,出现图1-2安装界面。
图1-2
3)点击Next按钮,出现图1-3界面。
图1-3
4)点击Next按钮,出现图1-4界面,使用本软件的协议。
图1-4
5)点击Yes按钮,出现图1-5界面,需要输入注册码。
图1-5
6)打开Keilc/addon/注册码/TXT文件,获取注册码,填入serialNamber框内,将11RI2Z填入FirstName和LastName框内,在E-mail框内随便填入一邮箱地址,最后点击Next按钮。
出现图1-6界面。
图1-6
7)点击Browse,寻找C51addon所在的目录,然后选中,出现图1-7界面。
图1-7
8)点击Next按钮,出现图1-8界面。
图1-8
9)点击Next按钮,出现图1-9界面。
图1-9
10)
点击Next按钮,出现图1-10界面,去掉“√”项,点击Next按钮,进入安装,等待安装完成。
桌面上会生成Keilc软件图标
图1-10
§1.3.3仿真机的连接
1)将随机配备的专用仿真器按标志字符向上的方向插到系统板51CPU仿真区的JFZ位置(40芯双排插针座);
2)用一根USB通信线一头(扁口)连电脑的USB接口,另一头连仿真器的USB接口;
3)打开电源;
4)运行USB_DRV.EXE程序,以安装USB驱动;
5)电脑显示找到新设备,让系统自己找驱动并且安装;
6)安装完成后,到控制面板->系统->硬件->设备管理器->端口里面确认一下USB转串口的COM端口号(建议将COM端口号设置在COM1或COM2上),以备在KEILC软件中做相应的设置。
§1.3.4KeilC软件的使用
1)运行桌面上KeiluVision2软件,出现图1-11界面。
图1-11
2)创建新的工程,点击上图菜单中的project,选择Newproject,自己定义一个工程名,如E:
/DVCC-1,弹出一CPU选择窗,如图1-12。
在左边窗口中先选你要用的器件制造公司,再选型号,假如是89C51,在右边窗口里会显示该芯片的基本参数,最后点击确定,返回主窗口,如图1-13。
图1-12
3)打开刚建的工程DVCC-1:
用鼠标点击菜单的project,选择openproject,在E盘根目录下找到刚建的工程DVCC-1,点框内的+号,显示如图1-14。
图1-13
图1-14
4)选中红框点右键DVCC-1,在弹出菜单里选Addfiletogroupsourcegroup以加载源
文件,弹出图1-15窗口。
如果加载的是汇编语言源文件,文件类型选*.A*,这里选的是MCUIO.ASM。
这个汇编语言源文件必需是已编辑好的。
如果是C语言源文件,文件类型选*.C*。
最后点击Add后关闭窗口返回。
图1-15
5)点图1-14红框内DVCC-1前的+号,显示如图1-16。
图1-16
6)设置KeilC51仿真机的工作参数,选择菜单的Project->OptionforTarget‘Simulator’,如图1-17。
点击OptionforTarget‘Simulator’,如图1-18所示。
图1-17
图1-18
7)在上图中选择debug栏,按图1-19设置。
(1)选UseKeilMonitor-51Driver(位置1),选择硬件仿真(根据实际的硬件仿真器设置)。
如果选UseSimulater,是软件仿真。
(2)LoadApplicationatStart(位置2):
选择这项之后,程序编译好后,keil才会自动装载你的程序代码。
(3)Gotillmain(位置3):
调试c语言程序时可以选择这一项,程序会自动运行到main程序处。
图1-19
8)点击图1-19的Settings(在上图位置4),打开新的窗口TargetSetep,如图1-20。
(1)在CommPortSetting里设置PORT:
设置你的串口号,在“§1.3.3仿真机的连接”中的第五点里确认的串口号。
(2)在CommPortSetting里设置Baudrate:
设置通信波特率为57600,仿真机固定用57600bps波特率跟keilC通讯。
(3)SerialInterrupt:
选中它,设为软件复位,这样对同一工程文件在运行后,发现问题要修改,重新编译运行,就不需要按硬件复位键退出程序的运行。
(4)CacheOptions:
可以选也可以不选,推荐选它,这样仿真机会运行的快一点。
(5)最后点击ok后确定,再关闭TargetSetep设置窗口后返回。
图1-20
9)设置输出文件格式:
选Output项,弹出新窗口,按图1-21设置,完成后按确定。
图1-21
10)返回到前级窗口如图1-22。
按确定退出仿真器参数等的设置。
返回主菜单。
图1-22
11)编译你的程序,选择Project->Rebuildalltargetfiles,进入编译,如图1-23。
如有错误,对源文件修改直到正确为止。
图1-23
12)编译完毕之后,选择Debug->Start/StopDebugSession,就装载程序,如图1-24。
图1-24
13)装载代码之后,在左下角显示如图1-25。
图1-25
如果你已连接仿真器,那左下角第一行应显示ConnectedtoMonitor-51V1.0表示连接到仿真机,仿真机的版本号为1.0,第二行显示Load“E:
\\DVCC-1”,表示代码装载成功。
14)现在可进入仿真调试了,仿真调试命令和其他仿真器类同,详细见光盘里/KeilC/《KeilSoftware–Cx51编译器用户手册中文完整版》(403页).pdf。
注意:
使用我们配置的硬件仿真器,其8X51单片机P3.5口的使用有限制,由于监控系统要使用P3.5来进行通讯,最好不要使用。
如果使用,可能会影响该引脚的状态。
对监控系统是没有影响的,可以用来做输出。
第二章STC系列单片机下载烧录使用说明
在使用USB仿真器调试完实验程序后,脱离仿真器运行自己的实验程序,方法如下:
1)关闭电源,取下仿真器,并将K_V开关拨在OFF位置;
2)在FZ1位置插上在线下载芯片STC89C51;
3)用专用通信线将主板上TX插座(RS232通信插座)和电脑的串口相连,并记住串口号。
以便在下载软件的串口设置中用到。
4)运行STC-ISP-V4.79-NOT-SETUP目录中的STC_ISP_V479.EXE程序,即进入在线下载烧录界面如下图:
5)在Step1/步骤1中选择单片机型号,如STC89C51RC。
6)在Step2/步骤2中选择要烧录的程序,即点击OpenFile/打开文件,显示如下图,左边上面红框里是下载程序的起始地址和校验和,右边程序窗口显示要下载的程序。
7)步骤3中选择串口号,你串口线插在电脑的哪个串口上就选那个号,注意不要和其它设备冲突,你可以到控制面板->系统->硬件->设备管理器->端口里面查看一下。
8)进入下载软件的Step5/步骤5,点击Download/下载,在烧录窗口里提示你加载芯片电源时,将系统板上开关K_V拨在ON位置。
下载完成后显示如下图所示,告诉你下载所用的时间等信息,并告诉你下载成功。
第三章硬件基础接口应用实验
实验一单片机I/O口应用实验_P3.3口输入P1口输出
一、实验目的
1、掌握单片机P3口、P1口简单使用。
2、学习延时程序的编写和使用。
二、实验内容(系统板和51核心板)
1、基本要求:
1)P3.3口做输入口,外接一脉冲,每输入一个脉冲,P1口按十六进制加一输出。
2)P1口做输出口,编写程序,使P1口接的8个发光二极管L0—L7按16进制加一的方式点亮发光二极管。
2、选做题要求:
1)使用P3.1口做输入口,外接一脉冲,每输入一个脉冲,P1口左移1位,使P1口接的8个发光二极管依序点亮。
2)分别用P3.1口、P3.2口控制向左和向右依次点亮P1口接的8个发光二极管L0—L7的控制信号,P3.1口开关接通时,L0—L7从左往右依次顺环点亮,P3.2口开关接通时,L0—L7从右往左依次顺环点亮。
(注意:
P3.1口和P3.2口不能同时接通!
)
三、实验说明
1、P1口是准双向口,它作为输出口时与一般的双向口使用方法相同,由准双向口结构可知:
当P1口作为输入口时,必须先对它置高电平,使内部MOS管截止,因内部上拉电阻是20KΩ—40KΩ,故不会对外部输入产生影响。
若不先对它置高,且原来是低电平,则MOS管导通,读入的数据不正确。
2、延时子程序的延时计算。
对于延时的程序
DELAY:
MOVR6,#00H
DELAY1:
MOVR7,#80H
DJNZR7,$
DJNZR6,DELAY1
查指令表可知MOV、DJNZ指令均需用两个机器周期,而一个机器周期时间长度为12/6.0MHZ,所以该段指令执行时间为:
(((128+1)×256)+1)×2×(12÷6000000)=132.1ms。
四、实验原理图
见使用说明51单片机核心模块和系统板部分。
5、实验程序框图
如图1-1所示
六、实验步骤
1、51系统板上J1接上底板上电源部分J1,P3.3用插针连至K1,P1.0~P1.7(P1)用8芯线连至JL(L0~L7)。
2、调试、运行程序(单片机I/O口应用实验1)。
3、开关K1每拨动一次,L0~L7发光二极管按16进制方式加一点亮。
实验二定时器/计数器、继电器控制实验
一、实验目的
掌握用继电器控制的基本方法和编程。
熟悉定时器/计数器的使用和编程。
二、实验内容(2号板)
1、基本要求:
利用P1口输出高低电平,控制继电器的开合,以实现对外部装置的控制。
2、选做要求:
1)利用定时计数器0定时0.5秒,在定时时间到时,通过P1.2控制继电器每隔0.5秒通断1次,以便控制LED灯的闪烁。
2)利用定时计数器1设置为计数模式,通过P3.5上所接的按钮开关给出计数脉冲,每检测到一个脉冲,控制继电器通断1次,以便切换连接在P1.2引脚的LED灯状态。
三、预备知识
现代自动化控制设备都存在一个电子与电气电路的互相联结问题,一方面要使电子电路的控制信号能够控制电气电路的执行元件(电动机、电磁铁、电灯等),另一方面又要为电子电路和电气电路提供良好的电隔离,以保护电子电路和人身的安全,电子继电器便能完成这一桥梁作用。
本实验采用HK4100F-DC5V型继电器,其线圈控制电压为直流5V。
继电器电路中一般要在继电器的线圈两头加一个二极管以吸收继电器线圈断电时产生的反电势,防止干扰。
由于,在继电器的控制输入端加了光耦隔离器,光耦输入端输入低电平时,继电器动作。
四、实验原理图
见使用说明2号模块
5、实验程序框图
六、实验步骤
1、2号板JIN插孔连系统板上P1.0用
2、2号板上的J0连到J1-J3任一插座上。
3、J4为继电器输出接头。
4、编制程序,使P1.0电平变化,低电平时继电器吸合,常闭开关断开,
5、调试运行程序(继电器控制实验)。
实验三电子音响实验
一、实验目的
了解用单片机来产生不同音调声音的编程方法。
二、实验内容(2号板)
1、基本要求
用定时器T0产生不同频率的方法,组成的乐谱由单片机进行信息处理,经过放大后用8031的P1.0口输出音乐。
其中,T0基本的定时时间为100ms。
2、选做题要求
(1)用定时器T1的工作方式0产生不同频率的方法,组成的乐谱由单片机进行信息处理,经过放大后用8031的P1.2口输出音乐。
其中,T1基本的定时时间为100ms。
试修改节拍数(在0x10-0x80间取值),听听效果,并说明节拍数的作用。
(2)用定时器T1的工作方式2产生不同频率的方法,组成的乐谱由单片机进行信息处理,经过放大后用8031的P1.4口输出音乐。
其中,T1基本的定时时间为50ms。
试修改节拍数(在0x10-0x80间取值),听听效果,并说明节拍数的作用。
三、预备知识
1、要产生音频脉冲,只要算出某一音频的周期(1/频率),然后将此周期除以2,即为半周期的时间,利用计时器计时(此半周期时间),计时到后即反向输出,重复此过程即得到此频率的脉冲。
2、让定时器工作在计数方式,改变计数值TH0及TL0,以产生不同的频率。
3、每个音符使用一个字节,字节的高四位代表音符的高低,低四位代表音符的节拍。
4、低音1至高音1所对应的频率(Hz)依次是:
131、147、165、175、196、220、247、262、294、330、349、392、440、494、523。
乘以二就提升该声音一个八度音阶,减半则降一个八度。
四、实验原理图
见使用说明2号模块
五、实验步骤
1、2号板SIN插孔连系统板上P1.0。
2、2号板J1`连系统板上JB1。
3、2号板上的J0连到J1-J3任一插座上。
4、调试、运行程序(电子音响实验),将播放音乐。
实验四8031串行口应用实验_与PC机通信
一、实验目的
1、掌握串行口工作方式的程序设计,掌握单片机通信程序编制方法。
2、了解实现串行通信的硬件环境,数据格式的协议,数据交换的协议。
3、了解PC机通信的基本要求。
二、实验内容(9-1号板)
1.基本要求
将8031串口设为工作方式1,发送时钟由计数器控制;计数器T1设为定时工作,工作方式2,即自动重装8位计数器;波特率取1200 bps;计算计数初值E8,将PC机上输入的字符(0—F)在实验仪的数码管上显示。
2.选做题要求
2.1. 将8031串口设为工作方式1,发送时钟由计数器控制;计数器T1设为定时工作,工作方式2,即自动重装8位计数器;波特率取2400 bps;将PC机上输入的字符(0—F)在实验仪的数码管上显示。
2.2.自发自收。
将代码段中定义的10个数据0~9,通过串口发送和接收,再在数码管上显示。
三、实验原理图
(具体见使用说明模块9-1号模块和51核心板)
四、实验程序框图
5、实验步骤
1、2号板和9-1号板上的J0连到系统板的J1-J3任一插座上。
2、9-1号板CS连到系统译码的Y0上。
3、9-1号板上/RD、/WR、C/D连到系统板的/RD、/WR、A0。
4、9-1号板上的JD连到系统板的JD1或JD2任一插座上。
5、系统板RS232座用3芯通信线连电脑串口,并记住串口号。
6、调试运行程序(8031串行口应用实验)。
7、在上位机上运行串口发送软件DVSIO,在窗口中参数设置选择BP1200(通信波特率),设置连接的串口号(就是刚才得用户通信线接入的串口)COM1或COM2,再打开串口,如图9-2所示。
图11-2
8、从上面软件窗口里的键盘上点击“0—F”数字按钮,相应的数字会显示在实验系统的数码管上。
9、也可以通过串口调试助手进行操作。
实验五A/D转换实验
一、实验目的
1、掌握A/D转换与单片机的接口方法。
2、了解A/D芯片0809转换性能及编程方法。
3、通过实验了解单片机如何进行数据采集。
二、实验内容(1号板)
1、基本要求
利用实验仪上的0809做A/D转换实验,实验仪上的电位器提供模拟量输入,并加在0809的0通道上。
编制程序,将模拟量转换成数字量,采用中断方式读取A/D转换结果,通过显示接口芯片8279在七段数码管上显示。
2、选做题要求
(1)电位器提供模拟量输入,并加在0809的第4通道上。
编制程序,将模拟量转换成数字量,采用查询方式读取A/D转换结果,通过显示接口芯片8279在七段数码管上显示。
(2)利用0809采集两路模拟信号,并分时显示在数码管上。
即,由电位器提供模拟量输入加在0809的第0通道上;并同时将系统的5V电源作为另外一个输入加在0809的第1通道上。
编制程序,将模拟量转换成数字量,采用中断方式读取A/D对上述两个通道的转换结果,通过显示接口芯片8279在七段数码管上分时显示。
即,前一时刻在数码管上显示0通道的转换结果,间隔一段时间后再数码管上显示1通道的转换结果。
三、实验说明
A/D转换器大致分有三类:
一是双积分A/D转换器,优点是精度高,抗干扰性好,价格便宜,但速度慢;二是逐次逼近式A/D转换器,精度、速度、价格适中;三是并行A/D转换器,速度快,价格也昂贵。
实验用ADC0809属第二类,是8位A/D转换器。
每采集一次一般需100μs。
由于ADC0809A/D转换器转换结束后会自动产生EOC信号(高电平有效),取反后将其与单片机的INT0相连,可以用中断方式读取A/D转换结果。
四、实验原理图
1、见使用说明模块1和系统板数码管显示部分
五、实验程序框图
如图5-1所示
六、实验步骤
1、1号模块上0809的0通道IN0用插针线接至主板模拟电压产生Vout插孔(0~5V)。
2、1号模块上0809的CLK插孔与固定脉冲输出端500KHz(T3)相连。
3、1号模块上0809的片选CS_0809连接至系统板译码输出Y0。
4、1号模块上/RD、/WR连到系统板的/RD、/WR。
5、1号板上的JD连到系统板的JD1-JD2任一插座上。
6、1号板J0连到底板电源J1-J3任一插座上,J00接底板电源J4。
7、系统板J0连到底板电源J1-J2任一插座上。
8、底板数码管显示JX连到系统板P1的任一插座,COM1和COM2接+5V。
9、调试、运行程序(A/D转换实验)。
10、在数码管上显示当前采集的电压值转换后的数字量,调节模拟电压的电位器,数码管显示将随着电压变化而相应变化,典型值为:
0V—00H,2.5V—80H,5V—FFH。
实验六D/A转换实验
一、实验目的
1、了解D/A转换与单片机的接口方法。
2、了解D/A转换芯片0832的性能及编程方法。
3、了解单片机系统中扩展D/A转换芯片的基本方法。
二、实验内容(1号板)
1、基本要求
利用0832输出一个从-5V开始逐渐升到0V再逐渐升至5V;然后从5V逐渐降至0V,再降至-5V的三角波电压。
2、选做题要求
(1)利用0832输出一个梯形波,从-5V开始逐渐升到0V再逐渐升至5V;持续保持1s的5V;然后从5V逐渐降至0V,再降至-5V。
(2)利用0832输出一个占空比为50%,频率为500ms的方波,高电平为5V,低电平为0V。
(3)利用0832输出一个占空比为30%,频率为1ms的方波,高电平为0V,低电平为-5V。
三、实验原理图和接线图
见使用说明1号模块
四、实验程序框图
五、实验步骤
1、1号板上0832片选CS_0832信号线接至译码输出插孔Y0。
2、1号板上的J0连到系统板J3插座上。
3、1号板上/WR连到系统板的/WR。
4、1号板上的JD连到系统板的JD1-JD2任一插座上。
5、如果1号板的GZ上的断路帽在左边,调节电位器,使0832的VREF(8)引脚为+5V。
如果1号板的GZ上的断路帽在右边,0832的VREF(8)引脚上的电压是VCC(接近5V)。
6、调试、运行程序(D/A转换实验)。
7、用万用表或示波器测0832D/A输出端DOUT,应能测出不断增大/减小的电压值。
实验七并行I/O接口8255应用
一、实验目的
1、掌握并行接口芯片8255A和单片机接口方法。
2、掌握并行接口芯片8255A的工作方式及其编程方法。
二、预备知识
1、8255A结构
8255A是可编程并行接口芯片,双列直插式封装,用+5V单电源供电,如图3-1是8255A的逻辑框图,内部有3个8位I/O端口:
A口、B口、C口;也可以分为各有12位的两组:
A和B组,A组包含A口8位和C口的高四位,B组包含B口8位和C口的低4位;A组