




下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、1单片微机原理及应用实验指导书湖南理工学院机械与电气工程系单片微机及相关的应用技术是近代超大规模集成电路技术与计算机技术发 展的产物,已经深入到国民经济与人民生活的各个领域。 单片微机原理及应用 课程已经被几乎所有工科院校中仪器仪表、测控技术、光机电一体化、电子、通 信、计算机、自动化等类专业列为本科主干专业课程, 是培养现代电子技术应用 类专业人才的重要技术课程。 通过本实验课程的学习, 将使学生在课堂理论课学 习的基础上,进一步加深对理论知识的理解,学习、掌握单片微机的软件编程技 术、硬件扩展技术、 以及小型应用系统设计技术等相关的技能, 锻炼和提高动手 能力。为今后在相关领域中从事与单片
2、微机有关的设计、开发、 应用等工作打下 良好的基础。实验课所用的实验设备为:“ LJD2008+微机实验开发系统”,该实验设备支持MCS-51系列单片机的软、硬件实验与仿真开发,实验开发系统配置的 KeilC仿真开发软件,在 Windows环境下可使用汇编语言或 C语言设计实验程序,可采用源程序模拟方式调试程序,也可以在目标机上以监控方式调试程序。余晓峰2006年 3 月 10 日3LJD-2008实验系统使用注意事项1、LJD-2008 系统自带 5V、+12V、-12V、-5V 电源。请在使用的时候注意实验仪上的电源引出线。2、自带CPU内有测试监控程序,外接仿真器时需要拔掉本机CPU3、
3、所有的实验程序全部调试通过,说明书中的程序有重复的部分没有全部列出,完整的程序请参考随机光盘相应的文件。4、LJD-2008监控程序已经包含所有实验,具体操作请参考附录。验机方法:打开电源,实验仪 LCD显示屏显示"欢迎使用 LJD-2008实验系统”然后开始自检,等2秒显示“ LJD-2008实验系统正常”表示机器正常,如果显示“ LJD -2008实验系统错误”,表示机器有错误,请关电源检查,或者和本公司技术部联系。1114第一章系统概述第二章第三章第四章目录LJD-2008 实验系统的地址分配a Vision2集成开发环境基本实验指导204、1、实验1“LJD-2008+单片机
4、实验开发系统”使用学习204.2 、实验2 顺序、分支、循环三种结构程序的基本编程训练214.3、实验3并行I/O 口实验224.4 、实验4 中断系统及应用实验224.5、实验5定时/计数器应用实验254.6 、实验6 单片机并行口扩展实验 (1)27第五章 选修实验295.1 、实验一、点阵式 L C D ( 1 2 8 X 6 4) 模块显示实验295.2、实验二、 三色16X 16矩阵L E D应用实验525.3、实验三、A/D( ADC0809 )转换实验555.4 、实验四、DAC 0832输出0-5V电压转换实验605.5、实验5、电机(直流电机、步进电机、继电器)控制实625.
5、6、实验6、I 2C 总线芯片的读、写实验695.5、实验7、IC 卡( SE4442 控制)读、写实验815.5、实验8、“看门狗” (813L)复位控制实验1005第一章:系统概述1.1整体架构HNIST型单片机实验系统分为多个模块,各模块之间相对独立。WiB oil:血? rpf “丄r .r-IU 上 -ya-s3 -;F直耀7*匚*;弋h|工二-戶二卡F 駅WiWSWS 會貝© 2 适*翻ffi阎 皆O卿杆Ez_U.4 ”码«4 *»*««!=i J JBHBB HBBBBBHB BBHB图1.1 HNIST型单片机实验系统整体1.2
6、核心板CPner?三:厂 憬 r cri' 殆二FjL- 1evl k皿2亠pbb*<»SM3切P 创 1 LEDM 三;)矗 "乂二i匕心刊自 CT严ftTiCC 'jtMiA099=昼;:PAI 尸 'pg. 3T'一 喝進, 性£3邀璽椁 kCTkLxaly*BIB.H.J.4ji7-tSL573M I u8S52 歸士土"电子ft工实Sfe*学中心B3S52 S庐t瞪M13图 1.2 HNIST 型单片机实验系统核心板1.3 主要模块1、流水灯 对流水灯的操作可能是初学者最先体会到成就感的一个项目,该实验板的
7、 流水灯由四个发光二极管组成,流水灯的旁边设有四个针头的排针,这样可以 用连接线接入单片机的任意 I/O 口来控制流水灯。我们可以用这几个发光二极管 实现跑马灯、交通灯等功能。2、数码管 数码管是该实验板上最能验证程序功能的输出器件。数码管旁边有四个跳 线帽,分别用来控制四个数码管工作状态。当然这种控制只是在硬件上的控 制,在软件上的控制则可以通过对 74SL573 锁存器的编程实现。数码管可用于 静态显示和动态扫描。3、4X 4矩阵键盘 我们可以通过键盘来控制流水灯的亮灭,也可用它来控制数码管上数字或 字母的显示。键盘和数码管结合可以通过编写程序来实现计算器功能、日历 等。4、EEPROMA
8、T24C02 在单片机应用中,作为 EEPROM 储存器用,与单片机通过 I2C 通信。数,可保存数据。优点是掉电后仍可以保存数据。比如单片机运行时,手动设置了一些参可以用它保存起来。即可对其进行读操作又可进行写操作,并且在断电后5、实时时钟芯片本实验板含有1片DS1302芯片,内含有1个实时时钟/日历和31字节静态 RAM,通过简单的串行接口与单片机进行通信。实时时钟/日历电路提供秒、分、时、日、日期、月、年的信息,每月的天数和闰年的天数可自动调整。时 钟操作可通过AM/PM指示决定采用24或12小时格式。DS1302与单片机之间 能简单地采用同步串行的方式进行通信。另外该芯片含备份电源接口
9、,掉电后 时钟仍然能够正确的运行。第二章 LJD-2008 实验系统的地址分配LJD-2008 实 验统的各个 元 件 的 地 址 分 配秒寄存器 = # 8000HSECOND = # 8000H秒闹钟 = # 8001HSECOND_ALARM = # 8001H分寄存器 = # 8002HMINUTE = # 8002H分闹钟 = # 8003HMINUTE_ALARM = # 8003H时寄存器 = # 8004HHOUR = #8004H时闹钟 = # 8005HHOUR_ALARM = #8005H星期寄存器 = # 8006HWEEK = #8006H日寄存器 = # 8007H
10、DATE = #8007H月寄存器 = # 8008HMONTH = #8008H年寄存器 = # 8009HYEAR = #8009HA寄存器 =# 800AHREG_A = #800AHB寄存器=# 800BHREG_B = #800BHC寄存器 =# 800CHREG_C = #800CHD 寄存器 = # 800DHREG_D = #800DH世纪寄存器 = # 8032HCENTURY = #8032H一般的 RAM = # 800EH #807FH (8032 除外 )LCD(字符、图形)的地址分配以及符合定义LCD 写命令地址 = # 0E000H W_C_GLCD = # 0E
11、000H写数据地址 = # 0E001HW_D_GLCD = # 0E001H读状态地址 =# 0E002HR_ B_GLCD = #8402H读数据地址 =# 0E003HR_ D_GLCD = # 0E003H( DG-1 28x64 带 2级国标汉字库)表(1): RTC( DS12C887的地址分配以及符合定义表( 2):表( 3):可以自定义扩展控制 (8255) 的地址分配及符合定义8255-2 端口 A 寄存器 = # 8200H A_8255_2 = # 8200H端口 B 寄存器 = # 8201HB_8255_2 = # 8201H端口 C 寄存器 = # 8202HC_8
12、255_2 = # 8202H控制端口 寄存器 = # 8203HD_8255_2 = # 8203H表( 4): 可编程定时 / 计数扩展控制 (82C53) 的地址分配及符合定义82C53 写计数器 0= # 8400HW_0_82C53 = # 8400H写计数器 1 = # 8401HW_1_82C53 = # 8401H写计数器 2 = # 8402HW_2_82C53 = # 8402H写命令控制寄存器 = # 8403HW_D_82C53 =# 8403H读计数器0 = # 8400HR_0_82C53 = # 8400H读计数器1 = # 8401HR_1_82C53 = #
13、8401H读计数器2 = # 8402HR_2_82C53 = # 8402H读命令控制寄存器 = # 8403HR_D_82C53 = #8403H表( 5):可编程串行口扩展控制 (82C51) 的地址分配及符合定义82C51 写数据地址 = # 8300HW_D_82C51= #8300H写命令地址= # 8301HW_C_82C51= #8301H读数据地址= # 8300HR_ D_82C51= #8300H读状态地址= # 8301HR_ B_82C51= #8301H表( 6):可编程键盘 / 显示扩展控制 ( 82C79 )的地址分配及符合定义82C79 写数据地址 = # 8
14、100HW_D_82C79= # 8100H写命令地址 = # 8101HW_C_82C79= # 8101H读数据地址 = # 8100HR_ D_82C79= # 8100H读状态地址 = # 8101HR_ B_82C79= # 8101H的地址分配及符合定义表( 7):扩展简单 I / O (74HC244, 74HC273)74HC244 读入地址 = # 8600HR_D_244 = # 8600H74HC273 输出地址 = # 8700HW_D_273= # 8700H表(8):A/D 扩展(ADC0809 MC7135, AD574)的地址分配及符合定义A/D 芯片的分配符号
15、定义通道号0809 的 读 ( 写 ) 地 址 =# W_D_08090-7 通道 对应 00H0A000H0A000H07HAD574的启动地址=#0D200HW_C_574 = # 0D200H读高 8 位结果地址=#0D201HR_DH_574 = # 0D201H读低 4 位结果地址=#0D202HR_DL_574 = # 0D202HMC7135 通 道 地 址 = W_C7135#0 - 7通道对应10H#0D000H0D000H17H结果读出地址 =#0D100HR_D_7135 = #0D100H表(9): D/A扩展(DAC0832)的地址分配及符合定义D/A 转换的地址=#
16、 OCOOOH W_D_0832 = # OCOOOH1、软件简介KEIL 卩 Vision2第三章卩Vision2集成开发环境是流行的单片机开发环境之一,它集可视化编辑、编译、调试、仿真与一体,支持51汇编、PLM和C语言的混合编程,功能强大、界面友好、易学易用。安装KEIL卩Visi on2的方法同一般的软件安装。安装完成后将在Win dows桌面生成一个?KEIL卩Vision2 图标。运行该软件,启动屏幕如下:图、KEIL卩Vision2 启动界面Y 三 Ll_SOFTWAREIntegrationIDE forMicrocontrollerThis Program is protec
17、ted by U.S. and intematiuna copyright laws.KEIL卩Vision2 启动界面随后进入KEIL卩Vision2 的工作界面:-jj J x|1)11 曰 B吕巨Jit iJew ETQlecx abjq 1=1 菲Ti Perpherals loot 址心 ndow tJ日IprjcnnurfoT-聞 J W闻I治1智前Ia II歹訐为处母毎,!: Qa I耳IH口 国1韭您刪 紳L±J 1£11 cfS I無貂浮13皿冋卑 Stondr-d白"曰 Source nfes:: 匚 _ra 口 L 匚:扭 C_hjril-.
18、l.c a匚_b*i卜卫占 cJiflTihn.c Lbi bant.abi 0 Doc-uiiia iLatiun Hjitsd:匕盘f InoXLidc 弋0匕13_0 lri> #include <Eetf51-ri>CKtCEtl "V 口 id EtUlcO(T7Dzd) f r-xtirrn vn-i r1 Fn-nrl (irnirl) Toid niQiti (iroLd) <M-r项HT件区:丄 DJJZTHJlL 工 ZE aJLHXJkL 3C口nr-ok5e ?/*TTirin=rrvn r严'iCuw=iJKoy ?/Anil
19、 -ijKhS ?/舟IJU-iTLKJACfi: a匚口KT 丿 TTiriri 丿 J LUW hf iiJ±Z4IUU ISAUZi eiZJlHLi */pritll-I "MAIU PKUGRjJi CALI:? AIlH 111曰 U rPoL匚 眉I LLbzjil订.匚|331唱11 卜 11 代 Du Lid K Uarnrn7 扎 Lnd n LiI.hIH|I kLW W W M F阿曲输出窗口2、创建一个项目要创建一个应用项目,需要下列步骤操作启动Keil n Vision,新建一个项目文件并从器件库中选择一个器件。新建一个源文件并把它加入到项目中。
20、增加并设置选择器件的启动代码。针对目标硬件设置工具选项。编译项目并生成可以编程 PROM勺HEX文件。F面逐步介绍:(1)、在KEIL 3 Vision2 集成开发环境中,打开菜单Project->New Project(2) 、在弹出的Create New Project对话框中,选择目标项目的文件夹,并输入项目名称。ATflTFSlAra?KIRCATB7 r9TP1ATAARimi PPATS9ra(J5J ATS9CW5JAT69C75131 kT69C5132 iT69C5lc3ATS9C51(3)、根据需要,选择 ATMEL 89C51 或其它51系列单片机作为目标设备。Dt
21、soripti on:取消选择目标单片机Select Device For 1 -Brqct 'T-arcievender' Atmtl:ATS9C51F一M匚5-51baseI UseL-i江盏51;o£ BL3IEnt L - =mb3.c3- xiEtc<id -5 =吕吕吕已-3HSlbaaud 尸皿1 Static 匚MP呂 石wtrmll亡r with亡 132 I/O linrtip S Timcrs/Coun.t.*ir& Interrupts sources 4 K Fl-a.=K M砂”126On-chip RAM取沼2J D色fzl
22、t.匚(4)、这时需要建立一个源文件。建立一个汇编或C文件,如果已经有源程序文件,可以忽略这一步。选择File/New选项,在弹出的对话框中,输入一个源程序。(5)、选择File/Save 选项,选择文件的存放路径并输入源程序文件名,注意一定要填上扩.ASM后 缀,展名,如果C源程序文件,扩展名为.C;如果是汇编语言源程序文件,扩展名为 单击保存。、单击对象Targetl前的加号,展开的内容 Source Group1,用右键单击 Source Group1.选项。在弹出的快捷菜单中选择Add File to Source Grou p1(7)、在弹出的对话框中找到刚才的文件,单击ADD按键,
23、这时目录里就有源程序文件了。bivi c-a I Ta呂*t D-utpu-t | Li =1| CSI | A51厂 Hlpt SimiiTq+*T-1 I1 I I I ITdMinti- at 3" W %*i11 nni-n(Ini k 4 口 4 f *+ I B*nBLSt Lncata f BLSr M i mc Dtbiu | IUlili ti»= 5111 i-i ris IF ,齐 dHi p At 1 ori at 皋 +Cc tilltlTrij '*进巧 Keil Nloiiitor-51 JJrrk-er H工 | Lofld AiH&
24、#39;licarioii al :Suu Rip(8)、项目设置,用鼠标右键单击对象Target1,在弹出的菜单中选择 Options for' Traget '对话框选项,弹出的 Options for Target1对话框中有8个选项卡,Target1选项卡中设置工作频率为12MHz其它为默认选项,然后选中Debug页如下图,如选择Use Simulator 表示使”表示使用监控方式。用软件仿真;如选择 Use: “ KEIL Monitor-51 Driver-Kubto-r w iJuLutf Shx.1 ojl Sh t LiiLif. ftjdsxor'-
25、a jqde assion nLLine-sB-P-*p T4a1 乜t-hm p T A-lasc(7 Vr h ctip-ai Bill & Fl1N 4 1 C1 1 hl K*Bi p-1 ftyHr I w 11LJ-ISBtEI DLLCPU BL|_:P»rs-t :|SS051 CLLIE) 、Run till Cursor Line从当前位置运行到光标处。设置使用 KEIL Monitor-51 Driver注意:由于每次仿真器复位后用户代码区都将被自动擦除,所以如果用户需要启动调试时加载用户代码,“ Load Application at Startup”
26、选项也必须打勾。在监控方式下还要对串口进行设置,单击“Settings ”选择您要使用的计算机串行端口。KEIL卩Vision2 默认设置为COM1/57600。本实验系统支持57600bps(57.6Kbps) 的波特率。最后单击“确定”按钮保存设定。KTS. |aETK |aC九亡卜L亡iRti OEHI rtrTbC n ftT ft iMPTi 1I 二 r口hT HPftTrt3 t c V Eh 口-u L i eih.I 吕 i i-i1 T-n t KHFFiQ" fW !_ J_-L± 丄 GT =?_! 1 X lL £ J lLi. L k.
27、 IJ -U. L J. 51 LHTi -tLOL' i rto cc t r d 8个选项卡的详细介绍请参考Keil C使用手册。3、使用Keil进行调试的基本技巧(1)、进入和退出仿真状态只有在用户程序编绎和连接成功后才能进行调试工作,点击菜Debug->Start/Stop 将进入 / 退出硬件仿真状态。(2)、如何运行程序在Keil的IDE中有以下几种运行方式:A)、Run全速运行,遇到断点停下,或用户按动Stop按钮或RST CPI按钮停止.B)、SteP单步跟踪运行一条指令,如果该语句为C中的调用子程序语句或汇编中的CALL指令,Step指令,将跟踪进入子程序内部。
28、C)、SteP over单步运行完一条指令,如果该语句为C中的调用子程序语句或汇编中的CALL指令,SteP over指令将全速完成该子程序的运行停在下一指令处。17D)、Step out跳出当前函数,进入子程序内部后,点击SteP out将立即完成该函数并跳出该子函数。(3) 、如何设置和删除断点设置断点 / 删除断点最简单的方法是用鼠标双击待设置断点的源程序行或反汇编程序行或 用断点设置命令 bs(4) 、如何查看和修改寄存器的内容 仿真时主寄存器的内容显示在主寄存器窗口 , 用户除了可以观察以外还可自行修改 , 用鼠标 点击选中一个单元,例如单元DPTR然后再单击DPTR的数值位置,出现
29、文字框后输入相应数例如输入A=0X34各把A的数值设置为值按回车键即可。 另外的输入方法是使用命令行窗口,0X34。5、如何观察和修改变量点击 View->Watch & Call stack Window出现相应窗口,选择 Watch 1-3 中的任一个窗口,按动F2在Name栏填入用户变量名,如:Temp1Counter等,但必须是存在的变量。 如果想修改数值可单击 Value 栏,出现文本框后输入相应数值。 用户可以连续修改多个 不同的变量, uVision2 IDE 提供了观察变量更简单的方法。在用户程序停止运行时移动鼠 标光标到要观察的变量上停大约一秒钟就弹出一个变量提
30、示块出来。6、如何观察存储器区域Keil IDE 把MCS-51内核的存储器资在Keil中可以区域性的观察和修改所有的存储器数据。源分成 4个部分A 内部可直接寻址 RAM data ,IDE 表示为 D:xxB间接寻址RA岖idata ,IDE 表示为I:xxC RAMExdata ,IDE 表示为 X:xxxxD 代码区 code ,IDE 表示为 C:xxxx这四个区域都可以在 Keil 的 Memory Windows 中观察和修改。 IDE 集成环境中点击菜单View->Memory Windows, 便会打开 Memory 窗口 , Memory 窗口可以同时显示 4 个不同
31、的存储 器区域。 点击窗口下部分的编号可以相互切换显示。 在地址输入栏内输入待显示的存储器区 起始地址如D:45h表示从内部可直接寻址 RAM的45H地址处开始显示;x:3f00H显示外部RAM从3f00H地址开始;c:0X1234显示代码区域,从1234H地址开始;l:32H显示内部间接寻址空间,从 32H 地址开始显示。格式的切换 : 在区域显示中缺省的显示单元为字节(byte) ,但是可以选择其他显示方式,在 Memory 显示区域内按动鼠标右键在弹出的菜单中 可以选择的显示方式为:Decimal 按照十进制方式显示Unsigned 按照有符号的数字显示又分 char 单字节 int 整
32、型 long 长整型Singed 按照无符号的数字显示又分 char 单字节 int 整型 long 长整型ASCII 按照 ASCII 码格式显示Float 按照浮点格式进行显示Double 按照双精度浮点格式显示 在 Memory 窗口中显示的数据可以修改,修改方法如下:Modify Memory at注代码区数据不能在鼠标对准要修改的存储器单元,按动鼠标右键,在弹出的菜单中选择“Ox”在弹出对话框的文本输入栏内输入相应数值后按回车键修改完成。更改。23第四章基本实验指导本章实验结合各章理论进行,其中实验1、 2为纯软件实验,采用 Smiulator 方式;后面的实验为软、硬件结合实验,利
33、用实验箱实现。建议每个学生先建立一个文件夹,实验中的项目文件和源程序文件都放在这个文件夹中。实验 1 “LJD-2008+ 单片机实验开发系统”使用学习1. 实验目的(1) 、了解实验设备的结构与组成 ,掌握 Keile C 平台的使用。(2) 、熟悉指令系统和寻指方式。(3) 、编辑、编译、链接、装载、全速 / 单步/ 断点运行、单片机内部资源查看与改写,会查 找和排除简单故障。2. 实验步骤(1) 、启动 Keil C ,出现主界面后,建立一个新的工程。(2) 、在源程序输入窗口键入以下实验程序:INDEX EQU 20HSUM EQU 21HORG 0000HSTART:MOV INDE
34、X,#5MOV A, #0LOOP: ADD A, INDEXDJNZ INDEX, LOOPMOV SUM, ASJMP $END以上文件以FIRST.ASM存盘,预分析程序的执行结果。(3) 、构造对象,以 Simmulator 方式启动仿真。打开汇编窗口,查看汇编代码,理解指令的存储格式。(4)、打开寄存器窗口和片内数据存储器窗口。单步执行程序,观察累加器的内容和 PSM的内容的变化以及内部数据存储器中20H单元内容的变化。、将断点设定在SJMP $指令行,观察程序运行的最终结果,即21H单元的内容的变化。3. 程序设计选题(1) 、将外部数据存储器0001H和0002H单元的内容互换,
35、观察互换的结果。(2) 、将外部数据存储器0001H单元的内容的高低4位相交换,观察互换的结果。(3) 、完成8位数除以8位数,观察结果的商、余数和PSV中的状态标志。即 R2/R仁R3R4。(4) 、将外部数据存储器0001H单元的内容的奇数位取反,偶数位不变,观察处理结果。实验 2 顺序、分支、循环三种结构程序的基本编程训练1. 实验目的(1) 、通过拆字程序、拼字程序、数据排序程序和分类统计程序进步掌握三种结构程序的设计方法。(2) 、进一步掌握软件的编辑、编译、排错、调试方法。(3) 、进一步掌握十进制数的机内表示方法和有符号数据的机内表示方法。2. 实验内容(1)、在仪器仪表等工业应
36、用中要进行十制数的处理,一方面要以压缩BCD的格式存储信息,另外又要把存储的结果一位一位的以十进制方式显示出来,这就要用到拆字和拚字程序。(2)、拆字程序:定义一个压缩 BC画数据并保存在片外 RAM8000单元,分离为非压缩 BC码数存入片内RAM30和31H单元,以断点调试方式观察分离结果。(3)、拚字程序:定义一个二位的非压缩BCD码数据并保存在片外 RAM8000和 8001H单元,拚接为压缩BCD码数据存入片内RAM30单元,以断点调试方式观察拚接结果。(4)、用DB指令定义10个无序数据,采用冒泡排序的方法将其从小到大或从大到小排序后存入片外RAM2000开后的单元,调试程序观察排
37、序结果。(5)、用DB伪指令定义10个包含0、正数、负数的一组数据,分别统计其中各数的个数,统计结果保存到内部 RAM30H 31H 32H单元,调试程序观察统计结果。3. 程序设计选题(1)、完成两个4字节数的BC码数的相加,和存入内部数据存储器 24H20H单元,观察运算结果。(2) 、将外部数据存储器中的10个十六进制数转换成 ASCII码存放回原单元,观察转换结果。实验3并行I/O 口实验1.实验目的 (1)、熟悉51单片机并行口输入方式和输出方式的编程。(2)、掌握子程序的设计和调用方法。(3) 、掌握子程序的仿真和调试方法。2. 实验电路和程序如图,实验电路为8个数码显示器的的测试
38、电路。数码显示器的8个段连接实验箱上的8个逻辑电平开关,位驱动的每一引脚对应连接单片机的P1.0P 1.7。段 驱 动aaflaLE1 LE2 . LE3 LE4 LE5 LE6 LE7 LE8位 驱 动fl a(1)、数码显示电路的测试:将逻辑电平开关全置于逻辑1 ',以秒为时间单位,编程轮流点亮8个数码管。若每个数码管都显示8.,则数码管及其显示电路工作正常。(2)、动态扫描电路的原理分析:以 10ms为时间单位,编程轮流点亮 8个数码管,观察显示结果是否稳定。以2ms为时间单位,编程轮流点亮 8个数码管,观察显示结果是否稳定。(3) 、将P1.7接逻辑电平开关,作输入引脚使用,a
39、g各段不变,H段浮空。当开关为逻辑1'时,8个数码管以秒为单位间隔闪烁。当开关为逻辑0 '时,8个数码管分为高低4个两组,以秒为单位间交叉闪烁。实验4中断系统及应用实验1.实验目的了解中断的产生和响应过程,掌握中断程序的编制。、学习利用中断实现单步运行的方法。、加深对边沿触发方式和电平触发方式的理解。、考察中断优先权的控制。2、实验电路与实验内容利用中断实现单步运行的方法。实验电路如图:按图VccKI单稳电路P 3.289C51INTO图4.单步运行电路连接示意图P1.7Vcc4连接线路,调试并运行如下程序,观察单步运行过程。实验程序如下:ORGLJMPORG0000HMAIN
40、0003HMAIN:LJMP EXINT0CLR IT0CLR ALOOP:MOV P 1,AMOV IE , #81H ;开中断CPL AMOV P1, ASJMP LOOP;中断服务程序EXINTO:WAIT :RETIJNB P 3.2 , EXINTOJB P 3.2 ,WAIT a)、预分析程序的功能和实验现象。b)、单片机上电复位后启动程序执行,这时,虽然INTO引脚为低电平,但由于复位后特殊功能寄存器IE各位为零,禁止中断,所以在设置完IE后(程序中执行完 MOV IE,#81H)再执行一条指令才能进入中断程序。若P3.2( INT0)引脚为低电平,则程序陷入中断中断服务程序中。
41、每按一次按键产生一个正脉冲,这样 当执行RETI指令从中断服务程序返回时P3.2引脚刚好为低电平中断请求信号有效,因此返回主程序中执行完一条指令后又会进入中断服务程序,达到通过外部按键控制程序单步运行的目的。(2)、按下图所示电路连线, 分析边沿触发方式的外中断和电平触发方式的外中断的中断请to-求信号的撤除有什么不同。考察中断优先级。i叫;严 QC汗z于Q严A几八A A Ag立F1.I F1.1 Pl J Pl.4 FIJI pijrf Fl-):89C52 (CPIT)实验程序如下(两中断源均为边沿方式MODWOEQU 70HM0DW1EQU FEHORG0000HLJMPMAINORG0
42、003HLJMPEXINT0ORG0013HLJMPEXINT1ORG0050HMAIN:MOVSP , #60HSETBIT0SETBIT1CLRPX0SETBPX1MOVIE ,#85HSJMP $EXINT1:PUSHACCMOVR2, #08HLP1 :MOVA ,#MODW0MOVP1 , ALCALLDELY500SWAPAMOVP1 , ALCALLDELY500DJNZR2,LP125EXINTO:LPO:DELY500POPACCRETIPUSHACCMOVR3 ,#08HMOVA , #MODW1MOVP1 , ALCALLDELY500RRADJNZR3 , LP0POP
43、ACCRETI为延时500ms的子程序,该子程序由同学们自己设计。a)、两中断源都在边沿触发方式下作如下操作:启动程序运行,观察指示灯如何变化?按下按键手不松观察指示灯如何变化,松开手后观察批示灯如何变化?b)、修改程序两中断源都在边沿触发方式下作如下操作:启动程序运行,观察指示灯如何变化?按下按键手不松观察指示灯如何变化,松开手后观察指示示灯如何变化?C)、考察自然优先级。两中断源均为电平触发方式,优先级均为0,将单片机的 P3.2(INT0)和P3.3(INT1)接逻辑电平开关,拨开关使P3.2和P3.3输出低电平,启动程序运行观察执行结果。再拨开关使 P3.2输出高电平,观察程序运行的结
44、果。d)、考察优先权的控制。修改程序使INT1为高优先级,INT0为低优先级,拨开关使 P3.2输出低电平,P3.3输出高电平,启动程序运行,观察运行结果。在程序运行过程中,拨开关使P3.3输出为低电平,程序运行的结果说明了什么?3.程序设计题,自编程并通过调试。使8个数码管显示 H,每中断一次, H'左移1位。参考实验3的实验电路。实验5定时/计数器应用实验1.实验目的(1)、学习利用定时/计数器扩展外中断的方法。(2)、了解定时/计数器的应用,掌握其编程方法。2.实验电路臣I S 11畀3C>3C.3C.3C.±.3C.3C.3C> .4 A A A A A
45、A itfflTnnA PIJ P上 PIJ PLI Fl,£ pl.-lVIA 1*1789C52 i(CPQ7*273. 实验内容按实验电路图连线,实验程序如下:MODW0EQU 0F0HMODW1EQU 0FEHORG0000HLJMPMAINORG000BHLJMPEXT0ORG001BHLJMPEXT1ORG0050HIN: MOVSP , #60HMOVTMOD ,MOVTH0 , #0FFHMOVTL0 , #0FFHMOVTH1 , #0FFHMOVTL1 , #0FFHSETBTR0SETBTR1CLRPT0SETBPT1MOVIE , #85H(1) 、利用定时
46、/ 计数器扩展外断。#66H#EXT1:LP1:EXT0:PUSHACCMOVTH1 ,#0FFHMOVTL1 , #0FFHMOVR2 ,#08HMOVA ,#MODW0MOVP1 , ALCALLDELY500SWAPAMOVP1 , ALCALLDELY500DJNZR2 , LP1POPACCRETIPUSHACCMOVTH0 , #0FFHMOVTL0 , #0FFHMOVR3 , #08HSJMP $LPO:MOVA , #MODW1MOVP1 , ALCALLDELY500RRADJNZR3 , LP0POPACCRETIDELY500为延时500ms的子程序,该子程序由同学们自
47、己设计。(1)、预分析程序的功能。录入程序,以Monitor-51 Driver方式仿真调试。按下按键观察程序的执行结果;在指示灯停止闪烁后松开按键观察程序的执行结果。按下按键,指示灯下在闪烁时松开按键观察程序的执行结果。程序执行的结果与边沿方式的外中断的结果是否相同?、定时/计数器的扩展应用。设计实现下列功能的程序,并在实验箱上实现。a、用定时/计数器TO产生秒闪烁信号,控制 P1.0引脚上的指示灯以秒频率闪烁。b、用定时/计数器T0和T1级连扩展方式产生秒闪烁信号,控制P1.0引脚上有指示灯以秒频率闪烁。实验6单片机并行口扩展实验(1)1、(1)实验目的、学会单片机与8255、数码显示和键
48、盘的接口掌握编程应用技术。、学习动态扫描显示的基本工作原理。2、实验电路按图示电路连线,其中:PA为段驱动端口与数码显示器的a,b,c,d,e,f,g等各段数据相连,输出段数据;PB 口为扫描口,一方面连接数码显示器的扫描端,另一方面连接键盘扫描端RL0、RL1、RL2、RL3,输出扫描信息;PC口与键盘行扫描输入端相连。注意:单片机和8255A之间之间已经在实验箱内部连接好。其地址见下表:8255-2 端口 A 寄存器=# 8200HA_8255_2 = # 8200H端口 B寄存器=# 8201HB_8255_2 = # 8201H端口 C寄存器=# 8202HC_8255_2 = # 8
49、202H控制端口 寄存器=# 8203HD_8255_2 = # 8203H2、实验内容(1)、系统启动后,首先在显示器上显示”提示输入基准时间。、4 X 4矩阵键盘中,将A、B、C、D定义为功能键。按A键后,即可按XXXXXX格式输入时分秒基准时间。如,输入143024表示14点30分24秒。输入过程中LED自动向右滚动显示。如果输入的是合法时间,系统即开始正常运行。并按“XX- XX - XX”格式动态显示当前时间。例如:“11 - 36 - 52”否则,重新显示“”提示输入合法的基准时间。、设定定闹时间。在正常运行时,按“B”键即可按“XXXXXX”格式输入定闹时间。其输入方法与基准时间
50、的输入完全相同。设定合法的定闹时间后10秒钟,系统恢复当前时间的动态显示。(4)、查询定闹时间。在正常运行时,按“C”键,系统按“XX - XX - XX”格式显示当前定闹时间,若用户未开启定闹功能,则显示“OP', 10秒钟后,系统恢复当前时间的动态显示。31、正常运行时,按“ D”键,系统关闭显示器,进入低功耗工作状态。再按一次“D”键又恢复正常显示。(6)、主程序流程图同学们按以按散转程序的结构画出主程序流程图。(7)、设计、调试并实现该程序。第五章选修实验实验1点阵式L C D ( 1 2 8 X 6 4)模块显示实验LJD128X64液晶显示模块概述可显示汉字及图1)、LJD128X64液晶显示模块是128X 64点阵的汉字
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 厂子设备搬迁合同(标准版)
- 婚后借贷合同(标准版)
- 2025年江苏警员面试真题及答案
- 2025年特种设备安全试题及答案
- 2025年车辆钳工综合素质测评题目及答案
- 内蒙古自治区巴彦淖尔市全科医生转岗培训考试(理论考核)做题及答案(2025年)
- 2025年铁路指导考试题库及答案
- 脾脏出血应急预案
- 2025年高二物理上学期波的衍射现象发生条件判断题
- 宾馆各项应急预案
- 【初中语文】第1课《消息二则》课件++2025-2026学年统编版语文八年级上册
- 电力消防安全知识考试题库含答案2025
- 2025年国学与传统文化考试试题及答案
- 仪表参数调校规程
- 2025 精神障碍患者暴力行为干预资源利用护理课件
- 2024年10月自考00144企业管理概论真题及答案
- 子宫颈炎症护理课件
- 石油化工课件
- 非小细胞肺癌课件
- 6.1正视发展挑战 课件 2025-2026学年度道德与法治九年级上册 统编版
- 涉密人员岗前知识培训课件
评论
0/150
提交评论