实验指导用书- 《 智能仪器设计》实验指导书.doc_第1页
实验指导用书- 《 智能仪器设计》实验指导书.doc_第2页
实验指导用书- 《 智能仪器设计》实验指导书.doc_第3页
实验指导用书- 《 智能仪器设计》实验指导书.doc_第4页
实验指导用书- 《 智能仪器设计》实验指导书.doc_第5页
免费预览已结束,剩余22页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

智能仪器设计实验指导书目 录目 录- 1 -AEDK-EAT598系统配置和软件调试- 2 -一 爱迪克AEDK-EAT598实验系统工作在51串口实验方式- 2 -二、LAC51软件运行及调试- 2 -LAC51软件运行- 2 -LAC51软件调试- 3 -实验一 A/D转换实验- 5 -一、实验目的- 5 -二、实验内容及要求- 5 -三、实验原理及方法- 5 -四、实验仪器设备- 6 -五、实验思考题- 6 -六、实验报告要求- 6 -七、实验程序框图及程序- 7 -实验二 A/D、D/A综合运用实验- 9 -一、实验目的- 9 -二、实验内容及要求- 9 -三、实验原理及方法- 9 -四、实验仪器设备- 10 -五、实验思考题- 10 -六、实验报告要求- 10 -七、实验程序框图及程序- 11 -实验三 8279显示实验- 14 -一、实验目的- 14 -二、实验内容- 14 -三、实验原理及方法- 14 -四、实验仪器设备- 15 -五、实验思考题- 15 -六、实验报告要求- 16 -七、实验程序框图及程序- 16 -实验四 单片机串行口与PC机通讯实验- 19 -一、实验目的- 19 -二、实验内容- 19 -三、实验原理及方法- 19 -四、实验仪器设备- 19 -五、实验思考题- 19 -六、实验报告要求- 20 -七、实验流程图及其程序- 20 -实验五 并行打印机实验- 24 -一、实验目的- 24 -二、实验内容- 24 -三、实验原理与方法- 24 -四、实验仪器设备- 25 -五、实验思考题- 25 -六、实验报告要求- 25 -七、实验流程图及其程序- 25 - AEDK-EAT598系统配置和软件调试一 爱迪克AEDK-EAT598实验系统工作在51串口实验方式(1) 用户根据实验要求,进行MCS-51单片机实验时,若选配EAT598-5188板,则将EAT598-5188板正面朝上插到EAT598实验机的仿真头和实验CPU的四个插座上,板上的两位拨动开关SB1打到51端。若选配的是AT598-31板,则将AT598-31板与EAT598-31板用40芯连接电缆连接起来。(2) 用实验机配套的串行通讯电缆,将9芯电缆的一端与AEDK-EAT598实验机上9芯仿真机通讯口插座相连,另一端与PC机的串行口相连。(3) 打开电源,在PC机上打开LAC51软件,运行实验程序。二、LAC51软件运行及调试LAC51软件运行1、 启动运行环境正确连接实验系统,确认各个开关处于正确位置,打开实验机电源。用户双击桌面上的LCA51软件的图标,运行LCA51软件,第一次启动LCA51软件,用户需要设置通讯端口。选择“设置-通讯口”菜单项,在弹出的对话框中,选择相应的通讯串口和通讯率。做单片机串口实验时,波特率应设置为9600。点击测试串口按钮,检查通讯口是否可用,退出LCA51时,会自动保存用户最后一次的设置。2、 选取实验项目并编译 选取所要做的实验项目的文件(*asm),选择“编译-编译当前文件”菜单项,将编译当前活动窗口中的源文件,编译结果的信息显示在输出窗口中。用户可以根据输出窗口中错误信息直接定位到源文件的相应为止。 编译器将生成源文件的目标代码,对于单汇编文件,汇编产生的目标代码可以直接加载调试,对于高级语言的源文件,编译结束还要选择才能产生可加载的目标代码。3、 调试打开调试窗口并将目标码加载到实验机。然后用户就可以运用本系统提供的各种工具和方法进行调试。主要是观察程序的运行是否正常、各主要参数中间值是否与设计吻合。4、进行实验 根据实验指导,完成连线(最好先关闭实验机电源,再进行)。通过调试,软件加载、运行程序,观察实验有关现象,若现象与设计不符,则返回第三步,重新进行。LAC51软件调试调试是编程的重要部分。调试的目的是找到程序的逻辑错误。当程序不能按希望运行时,就需要对程序进行调试,直到找到原因为止。1、 调试界面在编辑状态时,界面右下角的当前状态显示为“编辑”,在调试状态下,仿真机没有运行程序时,界面右下角的当前状态显示为“停止”, 仿真机运行程序时,界面右下角的当前状态显示为“运行”。许多菜单命令只有在调试状态下才有效,选择“调试-加载调试”菜单项后,将加载当前的工程文件或源文件的目标代码,加载完毕,就进入调试状态,如果想退出调试状态,选择“调试-退出”菜单项。在调试状态下,最下方的状态行显示当前PC指针等常用的寄存器的值。仿真机运行时左上角的图标会不停变动,右上角的当前状态显示为“运行“。当前PC指针运行的背景颜色为绿色,有效断点行背景颜色为红色,无效断点行背景颜色为棕色,PC指针行和断点行相同时,背景颜色为粉红色。 观察窗口中显示长期观察的值在不同时候的取值情况。 用户可以在对话窗口中直接通过监控命令和仿真机对话。 数据窗口中显示整块数据区的内容。快速观察窗口显示当前光标处变量的取值。2、 调试主要方法和技巧通常一个调试程序应该具备至少四种性能:跟踪,断点,查看变量,更改数值(1) 跟踪调试 调试应用程序所提供的重要性能也就是跟踪应用程序。跟踪应用程序使用户能够在运行应用程序是,看到PC指针在应用源代码程序中的确切位置,LCA51提供以下方法对程序的执行进行跟踪。跟踪型单步(F7)通过型单步(F8) 跟踪型单步仅执行一条源语句程序。但是,如果调用一函数,如进入函数,在执行函数的第一条源语句前停止 通过型单步仅执行一条源语句程序,然后又停止。如果是调用一函数,运行完整个函数并停止在函数返回处。(2) 断点调试如果已知程序中某块代码实际运行正常的情况下,仍用跟踪调试方法,将大大浪费时间,而且很枯燥,因此调试中第二个重要工具是在源代码中预定处设置断点,大多数调试程序通过使用断点中止程序执行。LCA51软件提供以下方法来设置断点达到中止程序执行目的:设置或取消断点(CTRL+F8)执行到光标所在行(F4) 在代码中放置断点方法是事先将光标移动到用户需要放置断点的文本行位置时,按CTRL+F8或点击相应的工具栏图标就可设置断点。LCA51调试软件还提供一次性断点:执行到光标所在行。如果用户按F4,调试程序继续执行程序代码,直到它到达光标行所在处或调试程序遇到另一个断点。(3) 查看变量通过一系列指令查看应用程序,了解某一种错误的执行也是一种非常有效的方法。LCA51软件提供几种方法对变量进行查看。 观察窗口 数据窗口 程序空间窗口 内部数据窗口 外部数据窗口 通过添加观察项菜单可以将用户希望观察的变量添加到观察窗口中,长期进行观察,用户程序在单步或断点听下时,将更新变量的取值。 用户可以直接移动鼠标到相应的变量名上,点击鼠标右键,将出现一个窗口,显示这个变量的当前值。 用户还可以打开程序空间窗口、内部数据窗口、外部数据窗口进行数据块观察。(4) 更改数值如果用户在调试过程中了解到变量的内容(超值,未定义等)会对程序性能产生影响或异常时,立即更改变量的内容是很有效的方法,以确保该值在正确范围内不会产生错误,LCA51软件提供一系列更改变量数值的方法,以便用户能检查程序对整个变量值范围的反应,而无需为设置每个值而重新加载调试。在更改对话框中用户输入要更改的取值,点击确定按钮。用户可以在输入框中输入十六进制或十进制数据。实验一 A/D转换实验一、实验目的1、掌握A/D转换与单片机的接口方法。2、了解A/D芯片ADC0809转换性能及编程。3、通过实验了解单片机如何进行数据采集。4、熟练掌握爱迪克教学实验开发系统的使用。二、实验内容及要求1、 本实验利用实验仪上的直流电压经模块电位器分压后作为模拟信号加到ADC0809的模拟量输入通道。2、本实验例程将分别采用中断处理和查询方式来读取A/D转换的结果。1)用中断方式编写并调试出一个程序,将转换结果用八位单色灯显示。 2 用查询方式编写并调试出一个程序,将转换结果存于片内RAM的50H单元。三、实验原理及方法1、 实验说明A/D转换就是将一个模拟量转换成数字量的过程,它是数据采集的重要组成部分。利用实验板上的ADC0809 A/D转换器,以及实验板上的电位器W1提供模拟量输入,编制程序,将模拟量转换成二进制数字量,用发光二极管显示。ADC 0809是常用的将八路模拟电压转换成数字信号的集成芯片。由A1,A2,A3三腿可译码成000111八路输入模拟信号IN0IN7,当选中一路,且在该路输入05V连续变化的模拟电压时,可得到00FF的数字信号,也就是说模拟电压在05V变化时,数字信号在00 FF之间变化。AD转换结束时,EOC端出现高电平,经反向后与/INT1相连,CPU用中断方式读取A/D转换结果。当EOC经反向后与P1.5或其它脚相连时,CPU 可用查询方式读取A/D转换结果。2、 实验连线1)中断方式连线ADC0809的片选CS0809接至译码地址F230H。(1)使用专用实验连线将模块电位器W1的V-OUT点接至ADC0809的IN0(通道0)。(2)ADC0809的EOC(已经经过一级74LS14反向)接至单片机的P3.3。(3)将单片机的P1.0P1.7分别接至八位单色灯L0 L7。2)查询方式 在查询方式中将W1的V-OUT点仍接至ADC0809的IN0,EOC改接至P1.5,编制程序将AD转换结果存在50H处。(学会观察指定单元内数据的变化)四、实验仪器设备爱迪克教学实验开发系统中的模块电位器,模块A/D转换器0809,单色灯,8031。五、实验思考题1、若将片选CS0809改接至其他地址,程序应做如何的小改动?2、修改程序,要求采用查询方式对同一输入量连续采样3次,并将转换结果依次存于30H32H内存单元。六、实验报告要求1、说明实验目的和原理。2、按照实验要求及程序框图编程,实现A/D转换。3、编译、下载、调试程序。4、记录实验数据。记录A/D转换输入输出的对应关系,依次将转换结果记录在下表中。5、对实验数据进行分析。实验数据记录输入电压与数码(单色灯状态)的关系输入电压(V)转换结果(8位二进制数)输入电压(V)转换结果(8位二进制数)0.0003.0000.5003.5001.0004.0001.5004.5002.0005.0002.500(注:亮为“1“,灭为”0“)七、实验程序框图及程序1、中断方式: 实验程序流程图见下:2)查询方式程序1)中断方式 ORG 0000H LJMP START ORG 0013H LJMP INT_1 ORG 0040HSTART: MOV SP, #60H MOV R7, #0FFH SETB IT1 SETB EA SETB EX1 A_D: MOV DPTR, #0F230H MOVX DPTR, A CJNE R7,#00H,$ CPL A MOV P1, A MOV R7, #0FFH SJMP A_DINT_1: MOVX A,DPTR MOV R7, #00H RETI END2)查询方式 ORG 0000H AJMP MAIN ORG 0040HMAIN: MOV DPTR, #0F230H MOVX DPTR, A SETB P1.5LOOP: JB P1.5, LOOP MOV DPTR, #0F230H MOVX A, DPTR MOV 50H, A END实验二 A/D、D/A综合运用实验一、实验目的1、综合运用DAC0832芯片和ADC0809芯片的功能,分别使用中断和查询方式编写程序来完成实验。2、熟练掌握爱迪克教学实用开发系统的使用。二、实验内容及要求在实验一中我们已经实现了A/D转换,实验二则是在实验一的基础上,通过DAC0832输出的模拟量作为0809的输入量(而不是使用模块电位器W来直接给予模拟输入量),进而实现D/AA/D实验。三、实验原理及方法1、实验说明1)在实验一中已经介绍过ADC0809的性能。在本实验中我们还需要用到D/A转换模块DAC0832,它是8位分辨率的带有内部双缓数据缓冲器的D/A转换集成芯片,功能是将数字量转化成模拟量。2) DAC0832是电流型输出,使用运算放大器 将电流输出线性地转换为电压输出。 当数字量输入在00FF范围变化时,电压的输出量有两种形式;一种是单极性输出,电压的输出量为0XV或0-XV,另一种是双极性输出, 电压的输出量为XV,本实验只用单极性。2、实验连线DAC0832的连线图上图为0832的连线,ADC0809通道0和DAC0832的VOUT连接。中断方式连线:1)DAC0832的片选端CS0832接至F220H,ADC0809的片选CS0809接至译码地址F230H。2)DAC 0832模块中的VOUT孔接至ADC0809的IN0(通道0)。3)ADC0809的EOC(已经经一级74LS14反向)接至单片机的P3.3(INT1)。查询方式连线:(1)(2)步连线同上,(3)步将ADC0809的EOC接至单片机的P1.5。四、实验仪器设备爱迪克教学实验开发系统中的模块ADC0809,模块DA0832,8031。五、实验思考题1、若单独使用DAC0832使其模拟量输出呈不同波形(例如三角波,矩形波等)应如何编制程序?2、在程序中为了配合AD0809对模拟量的要求,我们控制DAC0832的输出在05V,但若超过此范围会出现什么现象呢?3、考虑如何将结果在数码管上显示?(提示:可以分两位数码管)六、实验报告要求1、说明实验目的和原理2、掌握实验方法,理解实验思路,画出程序框图,编程实现D/AA/D转换。3、分别按中断、查询方式调试程序,记录实验数据。(1)中断程序要求在内部数据窗口观察21H单元到2BH单元的值;(2)查询程序要求依据所给程序画出流程图,并通过软件单步执行程序,填写下表NO.D/A输入电压(V)A/D转换结果(8位二进制)12345678910114、对实验数据进行分析。七、实验程序框图及程序 中断程序流程图 程序1)中断方式 ORG 0000H LJMP START ORG 0013H LJMP INT_1 ORG 0040HSTART: MOV SP,#60H SETB IT1 SETB EA SETB EX1 ;INT1 允许MOV R7,#0FFH MOV R0, #20H MOV R2, #0BHCLR_2: CLR ACLR_1: MOV R0,A ;清零所用片内RAM INC R0 ;RAM地址加1 DJNZ R2,CLR_1 ;如未清零完则继续清零 MOV R0, #21H ;R0指向转换结果存储区首址D_A: MOV DPTR,#0F220H ;DPTR指向DAC0832 MOV A,20H ;D/A转换数字量 MOVX DPTR,A ;启动D/A转换,获取所需电压 MOV R0, A ADD A, #19H MOV 20H, A INC R0 CJNE R0, #2CH, D_AA_D: MOV DPTR,#0F230H MOV R0,#21H MOV A,R0 MOVX DPTR,A ;启动 A_D CJNE R7,#00H,$ ;等待 A_D 转换结束 MOV R7,#0FFH INC R0 CJNE R0,#2CH, A_D LCALL CLR_2INT_1: MOVX A,DPTR ;读 A_D 数据 MOV R7,#00H ;置读数标志 RETI END2) 查询方式 ORG 0000H LJMP START ORG 0040HSTART: MOV SP,#60H MOV R0,#20H MOV R2,#02HCLR_2: CLR ACLR_1: MOV R0, A INC R0 DJNZ R2, CLR_1 D_A: MOV DPTR, #0F220H MOV A, 20H MOVX DPTR, A A_D: MOV DPTR, #0F230H MOVX DPTR, A SETB P1.5LOOP: JB P1.5, LOOP MOV DPTR, #0F230H MOVX A, DPTR MOV 21H, A MOV A, 20H ADD A, #19H MOV 20H, A CJNE R0, #2CH , D_A END 实验三 8279显示实验一、实验目的1、掌握在8031系统中扩展8279键盘显示接口的方法2、掌握8279工作原理和编程方法。3、熟练掌握爱迪克教学实用开发系统的使用。二、实验内容编制程序,利用8279及键盘显示接口电路,编程实现按键的读取,并将按键值显示在数码管上。三、实验原理及方法1、实验所用芯片应用特性介绍8279是专用键盘、显示控制芯片,能对显示器自动扫描;能识别键盘上按下的键号,可充分提高CPU工作效率,8279与8031的接口方便,由它构成的标准键盘、显示接口在工业控制中得到广泛的应用。1) 关于8279无编码器键盘常常采用软件方法,逐行逐列地检查键盘状态,当发现按下的键后,用计算或查表等方法来找到该键的键编码。而8279的键盘、显示接口芯片是一种扫描式键盘编码器芯片.8279是一种通用可编程键盘显示接口芯片,它能完成键盘输入和显示控制两种功能。键盘部分提供一种扫描方式,可与64个按键的矩阵键盘连接,能对键盘不断扫描,自动消抖,自动识别按下的键并给出编码,能对双键或n 键同时按下实行保护。显示部分为发光二极管、荧光管及其它显示器提供了按扫描方式工作的显示接口,它为显示器提供多路复用信号,可显示多达16个字符或数字。2)实验板8279键盘、显示电路介绍:8279采用外部译码操作方式,74LS138输出8位显示器的位控制信号和键盘的行扫描信号。8279的8位输出线A0-A3和B0-B3与数码管的8个段相对应,经74LS240缓冲后,去驱动各数码管的8个段。74LS138输出的8根线由74LS240反相后,再经大电流驱动器ULN2003A驱动,成为各数码管的位选择信号,当位选信号有效时(呈0电平),相应数码管被选通,而显示内容则取决于它的各个显示段的电平。2、实验说明利用8279可实现对键盘/显示器的自动扫描,以减轻CPU的负担,并具有显示稳定程序简单,不会发生误动作等特点。本实验系统中8279的状态/命令口地址F239H,数据口地址位F238H。示例程序运行将显示“8279 -”,(也可表明程序运行正常)并等待按键输入,将键值显示在数码管上(响应0F按键)。3、实验连线8279片选端已固定接至F238,30模块中的短路套都套在8279侧。(因此在本实验中不需要额外的添加连线)。图中LED-SA,LED-SB,LED-SC是74LS138(3-8译码器的输入信号),CL0,CL1分别为74LS138的输出Y0和Y1。四、实验仪器设备爱迪克教学实验开发系统中的模块8279,8031。五、实验思考题1、 若要将8279的工作方式设置为8个字符显示,左端输入,写显示RAM从0开始,地址自动改变,应如何设置?2、 应如何改进程序使读取的键符依次显示在实验板的8位数码管上,8位满后再重新开始读取?(有别于实验要求的键符都显示于最右端数码管)六、实验报告要求1、说明实验目的和原理2、熟练掌握8279的工作方式及编程方法。3、编写一个8279显示控制程序,将读取到的键值编码换成键符的显示段码并把键符显示在LED上。1)工作方式设定为8个字符显示,右端输入,编码扫描键盘,双键锁定;2)置扫描频率24分频;3)写显示RAM地址从0开始,地址不自动改变4)将显示RAM全部置1并置空FIFO存储器。七、实验程序框图及程序程序:Z8279 EQU 0F239H ;8279 状态/命令口地址D8279 EQU 0F238H ;8279 数据口地LEDMOD EQU 10H ;右端输入 八位字符显示 ;外部译码键扫描方式,双键互锁LEDFEQ EQU 38H ;扫描速率,24分频LEDCLS EQU 0DFH ;清除LEDWR0 EQU 80H ;设定的将要写入的显示RAM地址 ORG 0000H AJMP START ORG 0040HSTART: MOV SP,#60H LCALL INIT8279 ;初始化8279WAIT: MOV DPTR,#Z8279 MOVX A,DPTR ;读8279状态字 ANL A,#0FH JZ WAIT LCALL DELAY MOV A,#40H ;设置读FIFO命令 MOVX DPTR,A ;命令送8279 MOV DPTR,#D8279 MOVX A,DPTR ANL A,#3FH MOV R4,#00H ;置显示位置 MOV R5,A ;送显示值 LCALL DISLED SJMP WAITINIT8279: ;8279初始化子程序 PUSH DPH ;保存现场 PUSH DPL PUSH ACC LCALL DELAY ;延时 MOV DPTR,#Z8279 MOV A,#LEDMOD ;置8279工作方式 MOVX DPTR,A MOV A,#LEDFEQ ;置键盘扫描速率 MOVX DPTR,A MOV A,#LEDCLS ;清除 LED 显示 MOVX DPTR,A LCALL DELAY ;延时 MOV DPTR,#Z8279 MOV A,#90H MOV DPTR,#D8279 MOV A,#40H MOVX DPTR,A MOV A,#40H MOVX DPTR,A MOV A,#0H MOVX DPTR,A MOV A,#0H MOVX DPTR,A MOV A,#0EFH MOVX DPTR,A MOV A,#27H MOVX DPTR,A MOV A,#5BH MOVX DPTR,A MOV A,#7FH MOVX DPTR,A POP ACC POP DPL POP DPH RET;显示字符子程序;输入: R4,位置 R5,值DISLED: PUSH DPH ;保存现场 PUSH DPL PUSH ACC MOV A,#LEDWR0 ;置显示起始地址 ADD A,R4 ;加位置偏移量 MOV DPTR,#Z8279 MOVX DPTR,A ;设定显示位置 MOV DPTR,#LEDSEG ;置显示常数表起始位置 MOV A,R5 MOVC A,A+DPTR ;查表 MOV DPTR,#D8279 MOVX DPTR,A ;显示数据 POP ACC ;恢复现场 POP DPL POP DPH RETDELAY: ;延时子程序 PUSH R0 ;保存现场 PUSH R1 MOV R0,#10HDELAY1: MOV R1,#0H DJNZ R1,$ DJNZ R0,DELAY1 POP R1 ;恢复现场 POP R0 RETLEDSEG: DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H ;0,1,2,3,4,5,6,7 DB 7FH,6FH,77H,7CH,39H,5EH,79H,71H ;8,9,A,B,C,D,E,F END实验四 单片机串行口与PC机通讯实验一、实验目的1、 掌握串行口工作方式的程序设计,掌握单片机通讯的编制。2、 了解实现串行口通讯的硬环境,数据格式的协议,数据交换的协议。3、 了解PC机通讯的基本要求。二、实验内容利用8031单片机串行口,实现与PC机通讯。本实验实现以下功能,将从实验机键盘上键入的数字,字母显示到PC机显示器上,将PC机键盘键入的字符0F(必须为大写字母)显示到实验机的数码管上。本实验在一定程度上是对前面实验的综合运用。三、实验原理及方法1、实验说明1)初始化8279(在实验三中已有介绍),设置串行口工作在方式1(8位UART),由定时器1作波特率发生器(9600b/s),由软件置位串行控制寄存器(SCON)的REN后才能启动串行接收。当串口RI为1时说明接收到数据,接收数据判断数据是否在范围之内,若在范围之内则将结果显示在数码管上;若RI未置1则读键盘,是否有键按下,若有键按下,则串行输出。(在串行通信时,发送或接收完一帧后产生的发送/结束中断标志TI/RI必须用指令清除,否则无法进行帧的发送/接收)2)当用GR命令执行程序时,实验机内部会将8031串行口电路切换与PC机通讯,无须连线。程序执行前,进入LCA51,加载程序后,才进入调试菜单工具中的对话窗口,然后执行GR,就可以实行单片机串行口与PC机通信实验。2、实验连线实验电路已在仿真机监控电路上构成。CS8279已固定接至F238,模块中的所有短路都套在8279侧。8279状态口地址为F239。8279数据口地址为F238。四、实验仪器设备爱迪克教学实验开发系统中的模块8279,8031。五、实验思考题1、由于本实验不需要连线,请思考是怎样实现与单片机串行口与PC机的通讯?2、结合实验一内容,试编制程序将AD转换结果在PC机上显示。3、考虑利用MAX232芯片和DB9接插件,将单片机系统和PC机通过RS232协议相联。实现计算机和单片机相互通信。(1)利用软件(串口调试软件)给单片机发个数据(例如发个”A”),再读这个数据。(2)观察结果)六、实验报告要求1、说明实验目的和原理2、了解整个实验过程,通过编写程序实现实验所要求的串口与PC机的通信。七、实验流程图及其程序 INT8279子程序框图附带程序:Z8279 EQU 0F239H ;8279 状态/命令口地址D8279 EQU 0F238H ;8279 数据口地址LEDMOD EQU 00H ;左边输入 八位字符显示 ;外部译码键扫描方式,双键互锁LEDFEQ EQU 2FH ;扫描速率LEDCLS EQU 0C1H ;清除显示 RAMLEDWR0 EQU 80H ;设定的将要写入的显示RAM地址READKB EQU 40H ;读 FIFO RAM 地址 0 的命令字ORG 0000H AJMP START ORG 0040HSTART: MOV SP,#60H LCALL INIT8279 ;初始化8279 MOV SCON,#50H ;串口 方式 1 MOV TMOD,#20H ;T1 方式 1 MOV TL1,#0FDH ;波特率 9600 的常数 MOV TH1,#0FDH SETB TR1 ;开中断 SETB ET1 SETB EAWAIT: JBC RI,DIS_REC ;是否接收到数据 LCALL GETKEY ;读键盘 CJNE A,#0FFH,WAIT ;是否有键输入 MOV SBUF,B ;串口输出键盘输入的值 NOPSS: JBC TI,WAIT ;是否发送完毕 SJMP SSDIS_REC: MOV A,SBUF ;读串口接收到的数据 CLR C SUBB A,#30H ;以下判定输入是否在0-F JC ERROR SUBB A,#0AH JNC DIS_REC1 ADD A,#0AH SJMP DIS_REC2DIS_REC1: SUBB A,#7H JC ERROR SUBB A,#6H JNC ERROR ADD A,#10HDIS_REC2: MOV R4,#00H MOV R5,A LCALL DISLED ;显示输入的数字(0-F)ERROR: AJMP WAITINIT8279: ;8279初始化子程序 PUSH DPH ;保存现场 PUSH DPL PUSH ACC LCALL DELAY ;延时 MOV DPTR ,#Z8279 MOV A,#LEDMOD ;置8279工作方式 MOVX DPTR,A MOV A,#LEDFEQ ;置键盘扫描速率 MOVX DPTR,A MOV A,#LEDCLS ;清除 LED 显示 MOVX DPTR,A POP ACC ;恢复现场 POP DPL POP DPH RET;读取键盘子程序;输入: 无 ; 输出: B: 读到的键码 A: 按键的标志GETKEY: PUSH DPH ;保存现场 PUSH DPL PUSH PSW MOV DPTR,#Z8279 MOVX A,DPTR ;读8279状态 ANL A,#07H ;屏蔽D7-D3 JNZ GETVAL ;判断是否有键输入 MOV A,#0H ;置标志(无键输入) SJMP NKBHITGETVAL: MOV A,#READKB ;读 FIFO RAM 命令 MOVX DPTR,A MOV DPTR,#D8279 MOVX A,DPTR ;读键 ANL A,#0FH ;屏蔽 SHIFT 和 CTRL 键 MOV DPTR,#KEYCODE ;键码表起始地址 MOVC A,A+DPTR ;查表 MOV B,A ;置返回键值 MOV A,#0FFH ;置标志(有键输入)NKBHIT: POP PSW ;恢复现场 POP DPL POP DPH RET;显示字符子程序;输入: R4,位置 R5,值DISLED: PUSH DPH ;保存现场 PUSH DPL PUSH ACC MOV A,#LEDWR0

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论