单片微机原理实验指导书学生用Word格式文档下载.docx
- 文档编号:16208004
- 上传时间:2022-11-21
- 格式:DOCX
- 页数:101
- 大小:1.81MB
单片微机原理实验指导书学生用Word格式文档下载.docx
《单片微机原理实验指导书学生用Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《单片微机原理实验指导书学生用Word格式文档下载.docx(101页珍藏版)》请在冰豆网上搜索。
5.2、实验二、三色16X16矩阵LED应用实验…………………52
5.3、实验三、A/D(ADC0809、)转换实验………………………55
5.4、实验四、DAC0832输出0-5V电压转换实验…………………60
5.5、实验5、电机(直流电机、步进电机、继电器)控制实………62
5.6、实验6、I2C总线芯片的读、写实验………………………69
5.5、实验7、IC卡(SE4442控制)读、写实验…………………81
5.5、实验8、“看门狗”(813L)复位控制实验…………………100
第一章:
系统概述
1.1整体架构
HNIST型单片机实验系统分为多个模块,各模块之间相对独立。
图1.1HNIST型单片机实验系统整体
1.2核心板
图1.2HNIST型单片机实验系统核心板
1.3主要模块
1、流水灯
对流水灯的操作可能是初学者最先体会到成就感的一个项目,该实验板的流水灯由四个发光二极管组成,流水灯的旁边设有四个针头的排针,这样可以用连接线接入单片机的任意I/O口来控制流水灯。
我们可以用这几个发光二极管实现跑马灯、交通灯等功能。
2、数码管
数码管是该实验板上最能验证程序功能的输出器件。
数码管旁边有四个跳线帽,分别用来控制四个数码管工作状态。
当然这种控制只是在硬件上的控制,在软件上的控制则可以通过对74SL573锁存器的编程实现。
数码管可用于静态显示和动态扫描。
3、4×
4矩阵键盘
我们可以通过键盘来控制流水灯的亮灭,也可用它来控制数码管上数字或字母的显示。
键盘和数码管结合可以通过编写程序来实现计算器功能、日历等。
4、EEPROM
AT24C02在单片机应用中,作为EEPROM储存器用,与单片机通过I2C通信。
优点是掉电后仍可以保存数据。
比如单片机运行时,手动设置了一些参数,可以用它保存起来。
即可对其进行读操作又可进行写操作,并且在断电后可保存数据。
5、实时时钟芯片
本实验板含有1片DS1302芯片,内含有1个实时时钟/日历和31字节静态RAM,通过简单的串行接口与单片机进行通信。
实时时钟/日历电路提供秒、分、时、日、日期、月、年的信息,每月的天数和闰年的天数可自动调整。
时钟操作可通过AM/PM指示决定采用24或12小时格式。
DS1302与单片机之间能简单地采用同步串行的方式进行通信。
另外该芯片含备份电源接口,掉电后时钟仍然能够正确的运行。
第二章LJD-2008实验系统的地址分配
LJD-2008实验系统的各个元件的地址分配:
----------------------------------------------------------------------------------------------------------------------
表
(1):
RTC(DS12C887)的地址分配以及符合定义
秒寄存器=#8000H
SECOND=#8000H
秒闹钟=#8001H
SECOND_ALARM=#8001H
分寄存器=#8002H
MINUTE=#8002H
分闹钟=#8003H
MINUTE_ALARM=#8003H
时寄存器=#8004H
HOUR=#8004H
时闹钟=#8005H
HOUR_ALARM=#8005H
星期寄存器=#8006H
WEEK=#8006H
日寄存器=#8007H
DATE=#8007H
月寄存器=#8008H
MONTH=#8008H
年寄存器=#8009H
YEAR=#8009H
A寄存器=#800AH
REG_A=#800AH
B寄存器=#800BH
REG_B=#800BH
C寄存器=#800CH
REG_C=#800CH
D寄存器=#800DH
REG_D=#800DH
世纪寄存器=#8032H
CENTURY=#8032H
一般的RAM=#800EH—#807FH(8032除外)
表
(2):
LCD(字符、图形)的地址分配以及符合定义
LCD写命令地址=#0E000H
W_C_GLCD=#0E000H
写数据地址=#0E001H
W_D_GLCD=#0E001H
读状态地址=#0E002H
R_B_GLCD=#8402H
读数据地址=#0E003H
R_D_GLCD=#0E003H
(DG-128x64带2级国标汉字库)
表(3):
可以自定义扩展控制(8255)的地址分配及符合定义
8255-2端口A寄存器=#8200H
A_8255_2=#8200H
端口B寄存器=#8201H
B_8255_2=#8201H
端口C寄存器=#8202H
C_8255_2=#8202H
控制端口寄存器=#8203H
D_8255_2=#8203H
表(4):
可编程定时/计数扩展控制(82C53)的地址分配及符合定义
82C53写计数器0=#8400H
W_0_82C53=#8400H
写计数器1=#8401H
W_1_82C53=#8401H
写计数器2=#8402H
W_2_82C53=#8402H
写命令控制寄存器=#8403H
W_D_82C53=#8403H
读计数器0=#8400H
R_0_82C53=#8400H
读计数器1=#8401H
R_1_82C53=#8401H
读计数器2=#8402H
R_2_82C53=#8402H
读命令控制寄存器=#8403H
R_D_82C53=#8403H
表(5):
可编程串行口扩展控制(82C51)的地址分配及符合定义
82C51写数据地址=#8300H
W_D_82C51=#8300H
写命令地址=#8301H
W_C_82C51=#8301H
读数据地址=#8300H
R_D_82C51=#8300H
读状态地址=#8301H
R_B_82C51=#8301H
表(6):
可编程键盘/显示扩展控制(82C79)的地址分配及符合定义
82C79写数据地址=#8100H
W_D_82C79=#8100H
写命令地址=#8101H
W_C_82C79=#8101H
读数据地址=#8100H
R_D_82C79=#8100H
读状态地址=#8101H
R_B_82C79=#8101H
表(7):
扩展简单I/O(74HC244,74HC273)的地址分配及符合定义
74HC244读入地址=#8600H
R_D_244=#8600H
74HC273输出地址=#8700H
W_D_273=#8700H
表(8):
A/D扩展(ADC0809、MC7135,AD574)的地址分配及符合定义
A/D芯片的分配
符号定义
通道号
0809的读(写)地址=#0A000H
W_D_0809=#0A000H
0-7通道对应00H–07H
AD574的启动地址=#0D200H
W_C_574=#0D200H
读高8位结果地址=#0D201H
R_DH_574=#0D201H
读低4位结果地址=#0D202H
R_DL_574=#0D202H
MC7135通道地址=#0D000H
W_C_7135=#0D000H
0–7通道对应10H–17H
结果读出地址=#0D100H
R_D_7135=#0D100H
表(9):
D/A扩展(DAC0832)的地址分配及符合定义
D/A转换的地址=#0C000H
W_D_0832=#0C000H
第三章μVision2集成开发环境
1、软件简介
KEILμVision2是流行的单片机开发环境之一,它集可视化编辑、编译、调试、仿真与一体,支持51汇编、PLM和C语言的混合编程,功能强大、界面友好、易学易用。
安装KEILμVision2的方法同一般的软件安装。
安装完成后将在Windows桌面生成一个®
KEILμVision2图标。
运行该软件,启动屏幕如下:
图、KEILμVision2启动界面
KEILμVision2启动界面
随后进入KEILμVision2的工作界面:
2、创建一个项目
要创建一个应用项目,需要下列步骤操作
●启动KeilηVision,新建一个项目文件并从器件库中选择一个器件。
●新建一个源文件并把它加入到项目中。
●增加并设置选择器件的启动代码。
●针对目标硬件设置工具选项。
●编译项目并生成可以编程PROM的HEX文件。
下面逐步介绍:
(1)、在KEILμVision2集成开发环境中,打开菜单Project->
NewProject;
(2)、在弹出的CreateNewProject对话框中,选择目标项目的文件夹,并输入项目名称。
(3)、根据需要,选择ATMEL89C51或其它51系列单片机作为目标设备。
选择目标单片机
(4)、这时需要建立一个源文件。
建立一个汇编或C文件,如果已经有源程序文件,可以忽略这一步。
选择File/New选项,在弹出的对话框中,输入一个源程序。
(5)、选择File/Save选项,选择文件的存放路径并输入源程序文件名,注意一定要填上扩展名,如果C源程序文件,扩展名为.C;
如果是汇编语言源程序文件,扩展名为.ASM后缀,单击保存。
(6)、单击对象Target1前的加号,展开的内容SourceGroup1,用右键单击SourceGroup1,在弹出的快捷菜单中选择AddFiletoSourceGroup1选项。
(7)、在弹出的对话框中找到刚才的文件,单击ADD按键,这时目录里就有源程序文件了。
(8)、项目设置,用鼠标右键单击对象Target1,在弹出的菜单中选择Optionsfor’Traget’对话框选项,弹出的OptionsforTarget1对话框中有8个选项卡,Target1选项卡中设置工作频率为12MHz,其它为默认选项,然后选中Debug页如下图,如选择UseSimulator表示使用软件仿真;
如选择Use:
“KEILMonitor-51Driver”表示使用监控方式。
设置使用KEILMonitor-51Driver
注意:
由于每次仿真器复位后用户代码区都将被自动擦除,所以如果用户需要启动调试时加载用户代码,“LoadApplicationatStartup”选项也必须打勾。
在监控方式下还要对串口进行设置,单击“Settings”选择您要使用的计算机串行端口。
KEILμVision2默认设置为COM1/57600。
本实验系统支持57600bps(57.6Kbps)的波特率。
最后单击“确定”按钮保存设定。
8个选项卡的详细介绍请参考KeilC使用手册。
3、使用Keil进行调试的基本技巧
(1)、进入和退出仿真状态
只有在用户程序编绎和连接成功后才能进行调试工作,点击菜Debug->
Start/Stop将进入/退出硬件仿真状态。
(2)、如何运行程序
在Keil的IDE中有以下几种运行方式:
A)、Run全速运行,遇到断点停下,或用户按动Stop按钮或RSTCPU按钮停止.
B)、Step单步跟踪运行一条指令,如果该语句为C中的调用子程序语句
或汇编中的CALL指令,Step指令,将跟踪进入子程序内部。
C)、Stepover单步运行完一条指令,如果该语句为C中的调用子程序语句或汇编中的CALL指令,Stepover指令将全速完成该子程序的运行停在下一指令处。
D)、Stepout跳出当前函数,进入子程序内部后,点击Stepout将立即完成该函数并跳出该子函数。
E)、RuntillCursorLine从当前位置运行到光标处。
(3)、如何设置和删除断点
设置断点/删除断点最简单的方法是用鼠标双击待设置断点的源程序行或反汇编程序行或用断点设置命令bs……
(4)、如何查看和修改寄存器的内容
仿真时主寄存器的内容显示在主寄存器窗口,用户除了可以观察以外还可自行修改,用鼠标点击选中一个单元,例如单元DPTR,然后再单击DPTR的数值位置,出现文字框后输入相应数值按回车键即可。
另外的输入方法是使用命令行窗口,例如输入A=0X34将把A的数值设置为0X34。
5、如何观察和修改变量
点击View->
Watch&
CallstackWindow出现相应窗口,选择Watch1-3中的任
一个窗口,按动F2在Name栏填入用户变量名,如:
Temp1Counter等,但必须是存在的变量。
如果想修改数值可单击Value栏,出现文本框后输入相应数值。
用户可以连续修改多个不同的变量,uVision2IDE提供了观察变量更简单的方法。
在用户程序停止运行时移动鼠标光标到要观察的变量上停大约一秒钟就弹出一个变量提示块出来。
6、如何观察存储器区域
在Keil中可以区域性的观察和修改所有的存储器数据。
KeilIDE把MCS-51内核的存储器资源分成4个部分
A内部可直接寻址RAMdata,IDE表示为D:
xx
B间接寻址RAM区idata,IDE表示为I:
CRAM区xdata,IDE表示为X:
xxxx
D代码区code,IDE表示为C:
这四个区域都可以在Keil的MemoryWindows中观察和修改。
IDE集成环境中点击菜单View->
MemoryWindows,便会打开Memory窗口,Memory窗口可以同时显示4个不同的存储器区域。
点击窗口下部分的编号可以相互切换显示。
在地址输入栏内输入待显示的存储器区起始地址如D:
45h表示从内部可直接寻址RAM的45H地址处开始显示;
x:
3f00H显示外部RAM,从3f00H地址开始;
c:
0X1234显示代码区域,从1234H地址开始;
I:
32H显示内部间接寻址空间,从32H地址开始显示。
格式的切换:
在区域显示中缺省的显示单元为字节(byte),但是可以选择其他显示方式,在Memory显示区域内按动鼠标右键在弹出的菜单中可以选择的显示方式为:
Decimal按照十进制方式显示
Unsigned按照有符号的数字显示又分char单字节int整型long长整型
Singed按照无符号的数字显示又分char单字节int整型long长整型
ASCII按照ASCII码格式显示
Float按照浮点格式进行显示
Double按照双精度浮点格式显示
在Memory窗口中显示的数据可以修改,修改方法如下:
在鼠标对准要修改的存储器单元,按动鼠标右键,在弹出的菜单中选择“ModifyMemoryat0x…”在弹出对话框的文本输入栏内输入相应数值后按回车键修改完成。
注代码区数据不能更改。
7、设置目标文件属性
单击Project菜单,在下拉菜单单击“OptionsforTarget‘Target1’”。
在下图中,单击Output标签,选中CreateHEXFile选项,使程序编译后产生HEX代码。
图2.8设置目标文件属性
8、编译工程
单击Project菜单,在下拉菜单单击BuiltTarget。
如果有错误,应重新修改源程序,直至通过编译。
9、下载目标程序
运行progisp,弹出对话框如下图2.9所示。
图2.9下载程序
首先单击“selectchip”下拉列表,选择AT89S52芯片;
然后单击“调入Flash”按钮,找到工程编译后生成的hex文件;
最后选中“芯片檫除”、“编程FLASH”、“数据自动重载”和“校验FLASH”选项,单击“自动”按钮。
第四章基本实验指导
本章实验结合各章理论进行,其中实验1、2为纯软件实验,采用Smiulator方式;
后面的实验为软、硬件结合实验,利用实验箱实现。
建议每个学生先建立一个文件夹,实验中的项目文件和源程序文件都放在这个文件夹中。
实验1“LJD-2008+单片机实验开发系统”使用学习
1.实验目的
(1)、了解实验设备的结构与组成,掌握KeileC平台的使用。
(2)、熟悉指令系统和寻指方式。
(3)、编辑、编译、链接、装载、全速/单步/断点运行、单片机内部资源查看与改写,会查找和排除简单故障。
2.实验步骤
(1)、启动KeilC,出现主界面后,建立一个新的工程。
(2)、在源程序输入窗口键入以下实验程序:
INDEXEQU20H
SUMEQU21H
ORG0000H
START:
MOVINDEX,#5
MOVA,#0
LOOP:
ADDA,INDEX
DJNZINDEX,LOOP
MOVSUM,A
SJMP$
END
以上文件以FIRST.ASM存盘,预分析程序的执行结果。
(3)、构造对象,以Simmulator方式启动仿真。
打开汇编窗口,查看汇编代码,理解指令的存储格式。
(4)、打开寄存器窗口和片内数据存储器窗口。
单步执行程序,观察累加器的内容和PSW的内容的变化以及内部数据存储器中20H单元内容的变化。
(5)、将断点设定在SJMP$指令行,观察程序运行的最终结果,即21H单元的内容的变化。
3.程序设计选题
(1)、将外部数据存储器0001H和0002H单元的内容互换,观察互换的结果。
(2)、将外部数据存储器0001H单元的内容的高低4位相交换,观察互换的结果。
(3)、完成8位数除以8位数,观察结果的商、余数和PSW中的状态标志。
即R2/R1=R3…R4。
(4)、将外部数据存储器0001H单元的内容的奇数位取反,偶数位不变,观察处理结果。
实验2顺序、分支、循环三种结构程序的基本编程训练
1.实验目的
(1)、通过拆字程序、拼字程序、数据排序程序和分类统计程序进步掌握三种结构程序的设计方法。
(2)、进一步掌握软件的编辑、编译、排错、调试方法。
(3)、进一步掌握十进制数的机内表示方法和有符号数据的机内表示方法。
2.实验内容
(1)、在仪器仪表等工业应用中要进行十制数的处理,一方面要以压缩BCD码的格式存储信息,另外又要把存储的结果一位一位的以十进制方式显示出来,这就要用到拆字和拚字程序。
(2)、拆字程序:
定义一个压缩BCD码数据并保存在片外RAM8000H单元,分离为非压缩BCD码数存入片内RAM30H和31H单元,以断点调试方式观察分离结果。
(3)、拚字程序:
定义一个二位的非压缩BCD码数据并保存在片外RAM8000H和8001H单元,拚接为压缩BCD码数据存入片内RAM30H单元,以断点调试方式观察拚接结果。
(4)、用DB伪指令定义10个无序数据,采用冒泡排序的方法将其从小到大或从大到小排序后存入片外RAM2000H开后的单元,调试程序观察排序结果。
(5)、用DB伪指令定义10个包含0、正数、负数的一组数据,分别统计其中各数的个数,统计结果保存到内部RAM30H、31H、32H单元,调试程序观察统计结果。
(1)、完成两个4字节数的BCD码数的相加,和存入内部数据存储器24H~20H单元,观察运算结果。
(2)、将外部数据存储器中的10个十六进制数转换成ASCII码存放回原单元,观察转换结果。
实验3并行I/O口实验
(1)、熟悉51单片机并行口输入方式和输出方式的编程。
(2)、掌握子程序的设计和调用方法。
(3)、掌握子程序的仿真和调
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片 微机 原理 实验 指导书 学生