版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、单片微机原理及应用实验指导书湖南理工学院机械与电气工程系前 言单片微机及相关地应用技术是近代超大规模集成电路技术与计算机技术开展地产物,已经深入到国民经济与人民生活地各个领域.?单片微机原理及应用?课程已经被几乎所有工科院校中仪器仪表.测控技术.光机电一体化.电子.通信.计算机.自动化等类专业列为本科主干专业课程,是培养现代电子技术应用类专业人才地重要技术课程.通过本实验课程地学习,将使学生在课堂理论课学习地根底上,进一步加深对理论知识地理解,学习.掌握单片微机地软件编程技术.硬件扩展技术.以及小型应用系统设计技术等相关地技能,锻炼和提高动手能力.为今后在相关领域中从事与单片微机有关地设计.开
2、发.应用等工作打下良好地根底.实验课所用地实验设备为:“LJD-2021+微机实验开发系统,该实验设备支持MCS-51系列单片机地软.硬件实验与仿真开发,实验开发系统配置地Keil C仿真开发软件,在Windows环境下可使用汇编语言或C语言设计实验程序,可采用源程序模拟方式调试程序,也可以在目标机上以监控方式调试程序.余晓峰 2006年3月10日LJD-2021 实验系统使用注 意 事 项1. LJD-2021系统自带5V.+12V.-12V.-5V电源 . 请在使用地时候注意实验仪上地电源引出线. 2. 自带CPU内有测试监控程序,外接仿真器时需要拔掉本机CPU. 3. 所有地实验程序全部
3、调试通过,说明书中地程序有重复地局部没有全部列出,完整地程序请参考随机光盘相应地文件. 4. LJD-2021监控程序已经包含所有实验,具体操作请参考附录. 验机方法: 翻开电源,实验仪LCD显示屏显示“欢送使用LJD-2021实验系统然后开始自检,等2秒显示“LJD-2021实验系统正常表示机器正常,如果显示“LJD-2021实验系统错误,表示机器有错误,请关电源检查,或者和本公司技术部联系. 目录第一章 系统概述5第二章 LJD-2021实验系统地地址分配11第三章 Vision2集成开发环境14第四章 根本实验指导204.1.实验1 “LJD-2021+单片机实验开发系统使用学习204.
4、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/DADC0809.转换实验555.4.实验四.DAC 0832 输出0-5V电压转换实验605.5.实验5.电机直流电机.步进电机.继电器控制实625.6.实验6.I 2 C 总线芯片地读.写实验6
5、95.5.实验7.IC 卡SE4442 控制读.写实验815.5.实验8.“看门狗813L复位控制实验100第一章:系 统 概 述1.1 整体架构HNIST型单片机实验系统分为多个模块,各模块之间相对独立.图1.1 HNIST型单片机实验系统整体1.2 核心板图1.2 HNIST型单片机实验系统核心板1.3 主要模块1.流水灯对流水灯地操作可能是初学者最先体会到成就感地一个工程,该实验板地流水灯由四个发光二极管组成,流水灯地旁边设有四个针头地排针,这样可以用连接线接入单片机地任意I/O口来控制流水灯.我们可以用这几个发光二极管实现跑马灯.交通灯等功能.2.数码管数码管是该实验板上最能验证程序功
6、能地输出器件.数码管旁边有四个跳线帽,分别用来控制四个数码管工作状态.当然这种控制只是在硬件上地控制,在软件上地控制那么可以通过对74SL573锁存器地编程实现.数码管可用于静态显示和动态扫描.3.4×4矩阵键盘我们可以通过键盘来控制流水灯地亮灭,也可用它来控制数码管上数字或字母地显示.键盘和数码管结合可以通过编写程序来实现计算器功能.日历等.4.EEPROMAT24C02在单片机应用中,作为EEPROM储存器用,与单片机通过I2C通信.优点是掉电后仍可以保存数据.比方单片机运行时,手动设置了一些参数,可以用它保存起来.即可对其进行读操作又可进行写操作,并且在断电后可保存数据.5.实
7、时时钟芯片本实验板含有1片DS1302芯片,内含有1个实时时钟/日历和31字节静态RAM,通过简单地串行接口与单片机进行通信.实时时钟/日历电路提供秒.分.时.日.日期.月.年地信息,每月地天数和闰年地天数可自动调整.时钟操作可通过AM/PM指示决定采用24或12小时格式.DS1302与单片机之间能简单地采用同步串行地方式进行通信.另外该芯片含备份电源接口,掉电后时钟仍然能够正确地运行.第二章 LJD-2021实验系统地地址分配LJD-2021 实验系统地各个元件地地址分配: - 表1:RTCDS12C887地地址分配以及符合定义 秒存放器 = # 8000H SECOND = # 8000H
8、 秒闹钟 = # 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存放器 = # 800A
9、H 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 =
10、#8402H 读数据地址=# 0E003H R_ D_GLCD = # 0E003HDG-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
11、_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)地地址分配
12、及符合定义 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 读状态地址= # 81
13、01H 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 =
14、# 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. 软件简介KEILVision2 是流行地单片机开发环境之一,它集可视化编辑
15、.编译.调试.仿真与一体,支持51 汇编.PLM 和C 语言地混合编程,功能强大.界面友好.易学易用.安装KEIL Vision2 地方法同一般地软件安装.安装完成后将在Windows桌面生成一个®KEIL Vision2 图标.运行该软件,启动屏幕如下:图.KEIL Vision2 启动界面KEIL Vision2 启动界面随后进入KEIL Vision2 地工作界面:2.创立一个工程要创立一个应用工程,需要以下步骤操作l 启动 Keil Vision,新建一个工程文件并从器件库中选择一个器件.l 新建一个源文件并把它参加到工程中.l 增加并设置选择器件地启动代码.l 针对目标硬件
16、设置工具选项.l 编译工程并生成可以编程PROM地HEX文件.下面逐步介绍:(1).在KEIL Vision2 集成开发环境中,翻开菜单Project->New Project;(2).在弹出地Create New Project对话框中,选择目标工程地文件夹,并输入工程名称.(3).根据需要,选择ATMEL 89C51 或其它51 系列单片机作为目标设备.选择目标单片机(4).这时需要建立一个源文件.建立一个汇编或C文件,如果已经有源程序文件,可以忽略这一步.选择File/New选项,在弹出地对话框中,输入一个源程序.在此处输入源程序(5).选择 File/Save选项,选择文件地存放
17、路径并输入源程序文件名,注意一定要填上扩展名,如果C源程序文件,扩展名为.C;如果是汇编语言源程序文件,扩展名为.ASM后缀,单击保存.(6).单击对象Target1前地加号,展开地内容Source Group1,用右键单击Source Group1,在弹出地快捷菜单中选择Add File to Source Group1选项.(7).在弹出地对话框中找到刚刚地文件,单击ADD按键,这时目录里就有源程序文件了.(8).工程设置,用鼠标右键单击对象Target1,在弹出地菜单中选择Options forTraget对话框选项,弹出地Options for Target1对话框中有8个选项卡, T
18、arget1选项卡中设置工作频率为12MHz,其它为默认选项,然后选中Debug页如以下图,如选择Use Simulator 表示使用软件仿真;如选择Use:“ KEIL Monitor-51 Driver表示使用监控方式.设置使用KEIL Monitor-51 DriverN注意:由于每次仿真器复位后用户代码区都将被自动擦除,所以如果用户需要启动调试时加载用户代码,“Load Application at Startup选项也必须打勾.在监控方式下还要对串口进行设置,单击“Settings选择您要使用地计算机串行端口.KEIL Vision2 默认设置为COM1/57600.本实验系统支持5
19、7600bps(57.6Kbps)地波特率.最后单击“确定按钮保存设定.8个选项卡地详细介绍请参考Keil C使用手册.3.使用Keil进行调试地根本技巧(1).进入和退出仿真状态只有在用户程序编绎和连接成功后才能进行调试工作,点击菜Debug->Start/Stop将进入/退出硬件仿真状态.(2).如何运行程序在Keil 地IDE 中有以下几种运行方式:A).Run 全速运行,遇到断点停下,或用户按动Stop按钮或RST CPU按钮停止.B).Step 单步跟踪运行一条指令,如果该语句为C 中地调用子程序语句或汇编中地CALL指令,Step指令,将跟踪进入子程序内部.C).Step o
20、ver 单步运行完一条指令,如果该语句为C 中地调用子程序语句或汇编中地CALL指令,Step over 指令将全速完成该子程序地运行停在下一指令处.D).Step out 跳出当前函数,进入子程序内部后,点击Step out将立即完成该函数并跳出该子函数.E).Run till Cursor Line 从当前位置运行到光标处.(3).如何设置和删除断点设置断点/删除断点最简单地方法是用鼠标双击待设置断点地源程序行或反汇编程序行或用断点设置命令bs (4).如何查看和修改存放器地内容仿真时主存放器地内容显示在主存放器窗口,用户除了可以观察以外还可自行修改,用鼠标点击选中一个单元,例如单元DPT
21、R,然后再单击DPTR 地数值位置,出现文字框后输入相应数值按回车键即可.另外地输入方法是使用命令行窗口,例如输入A=0X34将把A 地数值设置为0X34.5.如何观察和修改变量点击View->Watch & Call stack Window 出现相应窗口,选择Watch 1-3 中地任一个窗口,按动F2 在Name 栏填入用户变量名,如:Temp1 Counter 等,但必须是存在地变量.如果想修改数值可单击Value 栏,出现文本框后输入相应数值.用户可以连续修改多个不同地变量,uVision2 IDE 提供了观察变量更简单地方法.在用户程序停止运行时移动鼠标光标到要观察地
22、变量上停大约一秒钟就弹出一个变量提示块出来.6.如何观察存储器区域在Keil中可以区域性地观察和修改所有地存储器数据.Keil IDE 把MCS-51内核地存储器资源分成4个局部A 内部可直接寻址RAM data ,IDE表示为D:xxB 间接寻址RAM区idata ,IDE表示为I:xxC RAM区xdata ,IDE表示为X:xxxxD 代码区code ,IDE表示为C:xxxx这四个区域都可以在Keil 地 Memory Windows 中观察和修改.IDE 集成环境中点击菜单View->Memory Windows,便会翻开Memory 窗口, Memory 窗口可以同时显示4
23、个不同地存储器区域.点击窗口下局部地编号可以相互切换显示.在地址输入栏内输入待显示地存储器区起始地址如D:45h 表示从内部可直接寻址RAM 地45H 地址处开始显示;x:3f00H 显示外部RAM,从3f00H 地址开始; c:0X1234显示代码区域,从1234H 地址开始;I:32H 显示内部间接寻址空间,从32H 地址开始显示.格式地切换: 在区域显示中缺省地显示单元为字节(byte),但是可以选择其他显示方式,在Memory 显示区域内按动鼠标右键在弹出地菜单中可以选择地显示方式为:Decimal 按照十进制方式显示Unsigned 按照有符号地数字显示又分char 单字节int 整
24、型long 长整型Singed 按照无符号地数字显示又分char 单字节int 整型long 长整型ASCII 按照ASCII 码格式显示Float 按照浮点格式进行显示Double 按照双精度浮点格式显示在Memory 窗口中显示地数据可以修改,修改方法如下:在鼠标对准要修改地存储器单元,按动鼠标右键,在弹出地菜单中选择“Modify Memory at 0x在弹出对话框地文本输入栏内输入相应数值后按回车键修改完成.注代码区数据不能更改.7.设置目标文件属性单击Project菜单,在下拉菜单单击“Options for Target Target 1.在以下图中,单击Output标签,选中C
25、reate HEX File选项,使程序编译后产生HEX代码.图2.8 设置目标文件属性8.编译工程单击Project菜单,在下拉菜单单击Built Target.如果有错误,应重新修改源程序,直至通过编译.9.下载目标程序运行progisp,弹出对话框如以下图2.9所示.图2.9 下载程序首先单击“select chip下拉列表,选择AT89S52芯片;然后单击“调入Flash按钮,找到工程编译后生成地hex文件;最后选中“芯片檫除.“编程FLASH.“数据自动重载和“校验FLASH选项,单击“自动按钮.第四章 根本实验指导本章实验结合各章理论进行,其中实验1.2为纯软件实验,采用Smiul
26、ator方式;后面地实验为软.硬件结合实验,利用实验箱实现.建议每个学生先建立一个文件夹,实验中地工程文件和源程序文件都放在这个文件夹中.实验1 “LJD-2021+单片机实验开发系统使用学习1. 实验目地(1).了解实验设备地结构与组成,掌握Keile C平台地使用.(2).熟悉指令系统和寻指方式.(3).编辑.编译.链接.装载.全速/单步/断点运行.单片机内部资源查看与改写,会查找和排除简单故障.2.实验步骤(1).启动Keil C,出现主界面后,建立一个新地工程.(2).在源程序输入窗口键入以下实验程序:INDEX EQU 20HSUM EQU 21HORG 0000HSTART:MOV
27、 INDEX,#5MOV A,#0LOOP:ADD A, INDEXDJNZ INDEX,LOOPMOV SUM,ASJMP $END以上文件以FIRST.ASM存盘,预分析程序地执行结果.(3).构造对象,以Simmulator方式启动仿真.翻开汇编窗口,查看汇编代码,理解指令地存储格式.(4).翻开存放器窗口和片内数据存储器窗口.单步执行程序,观察累加器地内容和PSW地内容地变化以及内部数据存储器中20H单元内容地变化.(5).将断点设定在SJMP $指令行,观察程序运行地最终结果,即21H单元地内容地变化.3.程序设计选题(1).将外部数据存储器0001H和0002H单元地内容互换,观察
28、互换地结果.(2).将外部数据存储器0001H单元地内容地上下4位相交换,观察互换地结果.(3).完成8位数除以8位数,观察结果地商.余数和PSW中地状态标志.即R2/R1=R3R4.(4).将外部数据存储器0001H单元地内容地奇数位取反,偶数位不变,观察处理结果.实验2 顺序.分支.循环三种结构程序地根本编程训练1.实验目地(1).通过拆字程序.拼字程序.数据排序程序和分类统计程序进步掌握三种结构程序地设计方法.(2).进一步掌握软件地编辑.编译.排错.调试方法.(3).进一步掌握十进制数地机内表示方法和有符号数据地机内表示方法.2.实验内容(1).在仪器仪表等工业应用中要进行十制数地处理
29、,一方面要以压缩BCD码地格式存储信息,另外又要把存储地结果一位一位地以十进制方式显示出来,这就要用到拆字和拚字程序.(2).拆字程序:定义一个压缩BCD码数据并保存在片外RAM8000H单元,别离为非压缩BCD码数存入片内RAM30H和31H单元,以断点调试方式观察别离结果.(3).拚字程序:定义一个二位地非压缩BCD码数据并保存在片外RAM8000H和8001H单元,拚接为压缩BCD码数据存入片内RAM30H单元,以断点调试方式观察拚接结果.(4).用DB伪指令定义10个无序数据,采用冒泡排序地方法将其从小到大或从大到小排序后存入片外RAM2000H开后地单元,调试程序观察排序结果.(5)
30、.用DB伪指令定义10个包含0.正数.负数地一组数据,分别统计其中各数地个数,统计结果保存到内部RAM30H.31H.32H单元,调试程序观察统计结果.3.程序设计选题(1).完成两个4字节数地BCD码数地相加,和存入内部数据存储器24H20H单元,观察运算结果.(2).将外部数据存储器中地10个十六进制数转换成ASCII码存放回原单元,观察转换结果.实验3 并行I/O口实验1.实验目地(1).熟悉51单片机并行口输入方式和输出方式地编程.(2).掌握子程序地设计和调用方法.(3).掌握子程序地仿真和调试方法.2. 实验电路和程序段 驱 动位 驱 动a b c d e f g hLE1 LE2
31、 . LE3 LE4 LE5 LE6 LE7 LE8如图,实验电路为8个数码显示器地地测试电路.数码显示器地8个段连接实验箱上地8个逻辑电平开关,位驱动地每一引脚对应连接单片机地P1.0P1.7.(1).数码显示电路地测试:将逻辑电平开关全置于逻辑1,以秒为时间单位,编程轮流点亮8个数码管.假设每个数码管都显示8.,那么数码管及其显示电路工作正常.(2).动态扫描电路地原理分析:以10ms为时间单位,编程轮流点亮8个数码管,观察显示结果是否稳定.以2ms为时间单位,编程轮流点亮8个数码管,观察显示结果是否稳定.(3).将P1.7接逻辑电平开关,作输入引脚使用,ag各段不变,H段浮空.当开关为逻
32、辑1时,8个数码管以秒为单位间隔闪烁.当开关为逻辑0时,8个数码管分为上下4个两组,以秒为单位间交叉闪烁.实验4 中断系统及应用实验1. 实验目地(1).了解中断地产生和响应过程,掌握中断程序地编制.(2).学习利用中断实现单步运行地方法.(3).加深对边沿触发方式和电平触发方式地理解.(4).考察中断优先权地控制.2.实验电路与实验内容89C51 单稳电路P3.2KVccVccP1.0P1.1P1.7P1.7INT00(1).利用中断实现单步运行地方法.实验电路如图: 图4.单步运行电路连接示意图按图4连接线路,调试并运行如下程序,观察单步运行过程.实验程序如下:;主程序ORG 0000H
33、LJMP MAIN ORG 0003H LJMP EXINT0MAIN: CLR IT0 CLR A MOV P1,A MOV IE , #81H ;开中断LOOP: CPL A MOV P1, A SJMP LOOP ;中断效劳程序EXINTO: JNB P3.2 , EXINTOWAIT : JB P3.2 ,WAIT RETIa.预分析程序地功能和实验现象.b).单片机上电复位后启动程序执行,这时,虽然INT0引脚为低电平,但由于复位后特殊功能存放器IE各位为零,禁止中断,所以在设置完IE后程序中执行完MOV IE,#81H再执行一条指令才能进入中断程序.假设P3.2INT0引脚为低电平
34、,那么程序陷入中断中断效劳程序中.每按一次按键产生一个正脉冲,这样 当执行RETI指令从中断效劳程序返回时P3.2引脚刚好为低电平中断请求信号有效,因此返回主程序中执行完一条指令后又会进入中断效劳程序,到达通过外部按键控制程序单步运行地目地.2.按以下图所示电路连线,分析边沿触发方式地外中断和电平触发方式地外中断地中断请求信号地撤除有什么不同.考察中断优先级.实验程序如下(两中断源均为边沿方式):;主程序MODW0 EQU 70H MODW1 EQU FEH ORG 0000H LJMP MAIN ORG 0003H LJMP EXINT0 ORG 0013H LJMP EXINT1 ORG
35、0050HMAIN: MOV SP , #60H SETB IT0 SETB IT1 CLR PX0 SETB PX1 MOV IE , #85H SJMP $;中断效劳程序EXINT1: PUSH ACC MOV R2,#08H LP1: MOV A ,#MODW0 MOV P1 , A LCALL DELY500 SWAP A MOV P1 , A LCALL DELY500 DJNZ R2, LP1 POP ACC RETIEXINT0: PUSH ACC MOV R3 , #08H MOV A , #MODW1LP0: MOV P1 , A LCALL DELY500 RR A DJN
36、Z R3 , LP0 POP ACC RETIDELY500为延时500ms地子程序,该子程序由同学们自己设计.a.两中断源都在边沿触发方式下作如下操作:启动程序运行,观察指示灯如何变化?按下按键手不松观察指示灯如何变化,松开手后观察批示灯如何变化?b).修改程序两中断源都在边沿触发方式下作如下操作:启动程序运行,观察指示灯如何变化?按下按键手不松观察指示灯如何变化,松开手后观察指示示灯如何变化?C).考察自然优先级.两中断源均为电平触发方式,优先级均为0,将单片机地P3.2(INT0)和P3.3(INT1)接逻辑电平开关,拨开关使P3.2和P3.3输出低电平,启动程序运行观察执行结果.再拨开
37、关使P3.2输出高电平,观察程序运行地结果.d).考察优先权地控制.修改程序使INT1为高优先级,INT0为低优先级,拨开关使P3.2输出低电平,P3.3输出高电平,启动程序运行,观察运行结果.在程序运行过程中,拨开关使P3.3输出为低电平,程序运行地结果说明了什么?3.程序设计题,自编程并通过调试.使8个数码管显示H,每中断一次,H左移1位.参考实验3地实验电路.实验5 定时/计数器应用实验1.实验目地(1).学习利用定时/计数器扩展外中断地方法.(2).了解定时/计数器地应用,掌握其编程方法.2.实验电路3.实验内容(1).利用定时/计数器扩展外断.按实验电路图连线,实验程序如下:MODW
38、0 EQU 0F0H MODW1 EQU 0FEH ORG 0000H LJMP MAIN ORG 000BH LJMP EXT0 ORG 001BH LJMP EXT1 ORG 0050HMAIN: MOV SP , #60H MOV TMOD , #66HMOV TH0,#0FFHMOV TL0,#0FFHMOV TH1,#0FFHMOV TL1,#0FFH SETB TR0SETB TR1 CLR PT0 SETB PT1 MOV IE , #85H SJMP $;中断效劳程序EXT1: PUSH ACC MOV TH1,#0FFHMOV TL1,#0FFH MOV R2,#08H LP
39、1: MOV A ,#MODW0 MOV P1 , A LCALL DELY500 SWAP A MOV P1 , A LCALL DELY500 DJNZ R2, LP1 POP ACC RETIEXT0: PUSH ACCMOV TH0,#0FFHMOV TL0,#0FFH MOV R3 , #08H MOV A , #MODW1LP0: MOV P1 , A LCALL DELY500 RR A DJNZ R3 , LP0 POP ACC RETIDELY500为延时500ms地子程序,该子程序由同学们自己设计.(1).预分析程序地功能.录入程序,以Monitor-51 Driver方式
40、仿真调试.按下按键观察程序地执行结果;在指示灯停止闪烁后松开按键观察程序地执行结果.按下按键,指示灯下在闪烁时松开按键观察程序地执行结果.程序执行地结果与边沿方式地外中断地结果是否相同?(2).定时/计数器地扩展应用.设计实现以下功能地程序,并在实验箱上实现.a、 用定时/计数器T0产生秒闪烁信号,控制P1.0引脚上地指示灯以秒频率闪烁.b、 用定时/计数器T0和T1级连扩展方式产生秒闪烁信号,控制P1.0引脚上有指示灯以秒频率闪烁.实验6 单片机并行口扩展实验(1)1.实验目地(1).学会单片机与8255.数码显示和键盘地接口掌握编程应用技术.(2).学习动态扫描显示地根本工作原理.2.实验
41、电路a b c d e f g hLE1 LE2 . LE3 LE4 LE5 LE6 LE7 LE8PA7PA0PB0PB7&8255APC3PC2PC1PC0段 驱 动位 驱 动0 1 2 34 5 6 78 9 A BC D E FX0 X1 X2 X3 RL0RL1RL2RL3 按图示电路连线,其中:PA为段驱动端口与数码显示器地a,b,c,d,e,f,g等各段数据相连,输出段数据;PB口为扫描口,一方面连接数码显示器地扫描端,另一方面连接键盘扫描端RL0.RL1.RL2.RL3,输出扫描信息;PC口与键盘行扫描输入端相连.注意:单片机和8255A之间之间已经在实验箱内部连接好.
42、其地址见下表:8255-2 端口A 存放器= # 8200H A_8255_2 = # 8200H 端口B 存放器= # 8201H B_8255_2 = # 8201H 端口C 存放器= # 8202H C_8255_2 = # 8202H 控制端口 存放器= # 8203H 开 始初始化显示缓冲区显示提示信息击键否?设定基准时间A键否?B键否?设定定闹时间查询定闹时间C键否?关 闭 显 示D键否?YNYYYYNNNND_8255_2 = # 8203H 2.实验内容(1).系统启动后,首先在显示器上显示“- - - - - - - - 提示输入基准时间.(2).4×4矩阵键盘中,
43、将A.B.C.D定义为功能键.按A键后,即可按××××××格式输入时分秒基准时间.如,输入143024表示14点30分24秒.输入过程中LED自动向右滚动显示.如果输入地是合法时间,系统即开始正常运行.并按“××-××-××格式动态显示当前时间.例如:“11 36 - 52否那么,重新显示“- - - - - - - - 提示输入合法地基准时间.(3).设定定闹时间.在正常运行时,按“B键即可按“××××××格式输入
44、定闹时间.其输入方法与基准时间地输入完全相同.设定合法地定闹时间后10秒钟,系统恢复当前时间地动态显示.(4).查询定闹时间.在正常运行时,按“C键,系统按“××-××-××格式显示当前定闹时间,假设用户未开启定闹功能,那么显示“OP,10秒钟后,系统恢复当前时间地动态显示.(5).正常运行时,按“D键,系统关闭显示器,进入低功耗工作状态.再按一次“D键又恢复正常显示.(6).主程序流程图同学们按以按散转程序地结构画出主程序流程图.(7).设计.调试并实现该程序.第五章 选修实验实验1 点阵式L C D 1 2 8 X 6 4 模块显
45、示实验LJD128X64 液晶显示模块概述1).LJD128X64 液晶显示模块是128×64 点阵地汉字图形型液晶显示模块,可显示汉字及图形,内置8192 个中文汉字16X16 点阵.128 个字符8X16 点阵及64X256 点阵显示RAMGDRAM.可与CPU 直接接口,提供两种界面来连接微处理机:8-位并行及串行两种连接方式.具有多种功能:光标显示.画面移位.睡眠模式等.2).外观尺寸:93×70×14mm(4X8),84×44×14mm(2X8),115×32×14mm(2X10)3).视域尺寸:73×3
46、9mm(4X8), 70×20mm(2X8),85×20mm(2X10), 132×39mm(4X16),补充说明:外观尺寸可根据用户地要求进行适度调整.一.LJD128X64128X64引脚说明1.逻辑工作电压(VDD):4.55.5V2.电源地(GND):0V3.LCD 驱动电压(V0):0-10V4.工作温度(Ta):060(常温) / -2075宽温 保存温度(Tstg):-55125二.位并行连接时序图模块有并行和串行两种连接方法时序如下:MPU 写资料到模块MPU 从模块读出资料三.用户指令集备注:a.当模块在接受指令前,微处理顺必须先确认模块内部处于
47、非忙碌状态,即读取BF标志时BF 需为0,方可接受新地指令;如果在送出一个指令前并不检查BF 标志,那么在前一个指令和这个指令中间必须延迟一段较长地时间,即是等待前一个指令确实执行完成,指令执行地时间请参考指令表中地个别指令说明.B.“RE为根本指令集与扩充指令集地选择控制位元,当变更“RE位元后,往后地指令集将维持在最后地状态,除非再次变更“RE位元,否那么使用相同指令集时,不需每次重设“RE位元.四.具体指令介绍: 不需每次重设“RE位元1).去除显示功能:去除显示屏幕,把DDRAM 位址计数器调整为“00H2).位址归位功能:把DDRAM 位址计数器调整为“00H,游标回原点,该功能不影
48、响显示DDRAM3).位址归位功能:把DDRAM 位址计数器调整为“00H,游标回原点,该功能不影响显示DDRAM 功能:执行该命令后,所设置地行将显示在屏幕地第一行.显示起始行是由Z 地址计数器控制地,该命令自动将A0-A5 位地址送入Z 地址计数器,起始地址可以是0-63 范围内任意一行.Z 地址计数器具有循环计数功能,用于显示行扫描同步,当扫描完一行后自动加一.4).显示状态开/关功能: D=1;整体显示ON C=1;游标ON B=1;游标位置ON5).游标或显示移位控制功能:设定游标地移动与显示地移位控制位:这个指令并不改变DDRAM 地内容6).功能设定7).设定CGRAM 位址功能
49、:设定CGRAM 位址到位址计数器AC8).设定DDRAM 位址功能:设定DDRAM 位址到位址计数器AC9).读取忙碌状态BF和位址功能:读取忙碌状态BF可以确认内部动作是否完成,同时可以读出位址计数器AC地值10).写资料到RAM功能:写入资料到内部地RAMDDRAM/CGRAM/TRAM/GDRAM11).读出RAM 地值功能:从内部RAM 读取资料DDRAM/CGRAM/TRAM/GDRAM12).待命模式12H功能:进入待命模式,执行其他命令都可终止待命模式13).卷动位址或IRAM 位址选择13H功能:SR=1;允许输入卷动位址SR=0;允许输入IRAM 位址14).反白选择14H功能:选择4 行中地任一行作反白显示,并可决定反白地与否15).睡眠模式015H功能:SL=1;脱离睡眠模式SL=0;进入睡眠模式16).扩充功能设定016H功能:RE=1;扩充指令集动作RE=0;根本指令集动作G=1;绘图显示ON G=0;绘图显示OFF17).设定IRAM 位址或卷动位址017H功能:SR=1;AC5AC0 为垂直卷动位址SR=0;AC3AC0 写ICONRAM 位址18).设定绘图RA
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年杭州客运驾驶资格证考试试题答案
- 2022-2023年一级建造师之一建机电工程实务考前冲刺试卷B卷含答案
- 重庆三峡学院《社会查理论与实践》2021-2022学年第一学期期末试卷
- 重庆人文科技学院《移动终端软件开发》2023-2024学年期末试卷
- 重庆人文科技学院《乡村民俗文化》2023-2024学年第一学期期末试卷
- 重庆财经学院《智能系统设计与开发课程设计》2023-2024学年期末试卷
- 重庆三峡学院《绩效审计专题》2022-2023学年第一学期期末试卷
- 2024北京和平街一中八年级(上)期中语文(教师版)
- 重庆三峡学院《大气污染控制工程》2022-2023学年期末试卷
- K311八轴挤芯机操作规程
- 2024《技术服务合同范本》
- 福建省福州杨桥中学2023-2024学年八年级上学期期中考试语文试题
- 中小学德育教育创新模式与实践方案
- 统编版语文六年级上册-27我的伯父鲁迅先生-教学课件多篇
- 全国仿真职业技能竞赛考试题库及答案
- 新视野大学英语(第四版)读写教程1(思政智慧版) 课件 Unit 4 Social media matters Section A
- 小学一年级上册 综合实践教学课件
- GB_T4897-2015刨花板(高清版)
- 2018年陕西省部分高等职业院校自主招生考试春季高考单招文理科语文数学英语试题及参考答案
- 领导安全包保制度
- 中国地形空白填图.doc
评论
0/150
提交评论