




已阅读5页,还剩26页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
信息工程学院接口技术课程设计论文 (20082009学年第 2 学期)论文题目:公交车语音报站 姓 名:_周 启 超 专 业:_计算机科学与技术 年级班级: 06级 2班 指导教师: 李 长 悦 完成日期:_ 2009年7月9日 成 绩: 目 录引言31系统概述41.1. 设计目的41.2设计要求41.3. 设计环境42设计要求42.1 总体设计42.1.1液晶屏幕显示部分42.1.2语音模块录放音部分53硬件设计53.1实验设备和器材53.2各部分硬件电路53.2.1并行接口8255控制部分53.2.2 12864液晶显示模块电路73.2.3语音模块ISD1420电路83.3硬件设计具体方案94软件设计94.1软件控制方案94.2控制逻辑流程图94.3参考程序125系统测试126设计中遇到的问题137课程设计总结138参考文献149附录14- 23 -摘要摘要 本论文主要介绍的是语音报站控制系统。硬件部分主要使用实验箱中的语音模块、8255、12864液晶显示等连接组成的基本电路。软件部分采用了汇编语言编写程序代码,通过判断、延时、跳转、循环等基本技术实现语音与显示同步键控,显示屏的正确显示,语音模块的正常录放音,以人为键控实现报站、屏幕显示等功能。该系统具有工作稳定,操作简单等优点。 关键词:语音报站控制,语音模块,12864液晶显示,并行8255AbstractThis paper mainly introduces the voice stops control system is. The hardware part of speech using experimental box, 8255 module, 12864, liquid crystal display (LCD) the basic circuit connected components etc. Software part adopts the assembler language writing code, through the judgment, delay, jump, circulation and display technology to achieve the basic phonetic synchronous keying, screen display, the correct pronunciation of the module, adhere to the sound recording normal realization keying stops, screen etc. Function. This system has stable operation, simple operation, etc.Keywords: voice stops control, 12864 LCD module, speech, 8255引言 近年来,随着经济的持续发展,对公交运输也提出更高的要求。随着我国各大城市公交公司的人员精减,目前各公交公司都在每辆公交车上只配备了一个司机,进行无人售票,同时司机负责报站。为了公交系统的方便快捷,则很需要语音报站系统来实现。 本次设计的语音报站系统,使用有开动的公交车上,代替售票员进行报站工作。该系统通过键盘控制实现语音报站,同时在液晶屏上显示站名。该系统设计程序,可以实现人声录音进行报站和预报站,到站状态显示,站名语言信息录入,录音、放音以及站名选择控制。该设计方便快捷,很适合公交车司机使用,且成本低廉,值得推广。1系统概述1.1. 设计目的 通过在微机及STAR ES598PCI实验仪上完成语音报站系统设计。在微机及STAR ES598PCI实验仪上通过语音模块实现录放音,通过液晶屏显示文字。同时对相关课程内容加以消化,加深理解。通过自己动手操作,容易掌握微机的基本组成、接口各个部件的结构和彼此之间的联系。1.2设计要求 利用键控方式实现人声录音进行报站和预报站,到站状态显示,站名语言信息录入,录音、放音以及站名选择控制。通过在微机及STAR ES598PCI实验仪上实现语音报站的控制,加深对接口各基本芯片的功能以及原理的了解。1.3. 设计环境PC机一台、星研集成模拟软件、STAR ES598PCI实验仪2设计要求2.1 总体设计 站名语言信息录入,使其在液晶屏上显示,利用语音模块录、放站名信息,通过按键控制实现。按键时液晶屏幕上显示站名,同时语音播报站名。设计要求2.1.1液晶屏幕显示部分 图形点阵液晶显示器可显示84个(1616点阵)汉字。根据星研电子提供的ZIMO软件可以查找相关汉字的点阵,通过排列,在液晶屏上显示出来。2.1.2语音模块录放音部分 可实现20秒录放音长度,具有不掉电存储功能,可分1160段录放音片段。在该课题设计过程中,仅用3段录放音。录放音时采用MCU控制方式,通过G6区8个按键控制录、放音:14号键录音各5秒;然后通过58号键放音,放音内容顺序对应14号键的录音内容。3硬件设计3.1实验设备和器材 本系统使用硬件设备主要有PC机,STAR ES598PCI实验仪,STAR ES598PCI实验仪结构包括:G6区(发光管、按键、开关)、B4区8255电路、A3区(CPU总线、片选区)、B1区ISD1420语音模块、总线插孔、A1区12864J液晶显示器等。3.2各部分硬件电路3.2.1并行接口8255控制部分CS: 片选信号,低电平有效;A0、A1:地址信号。JP52: PC口;JP53: PB口;JP56: PA口。图3.1 8255控制电路 该部分控制输入输出,写入控制字,PA口为输入,与按键电路相连。PC口为输出,将PC7与蜂鸣器电路控制端口相连。CS片选信号与片选区CS1相连,地址范围在0F000H0FFFFH之间。地址信号A0,A1分别与CPU总线、片选区的地址线A0,A1相连。硬件设计3.2.2 12864液晶显示模块电路图3.2 12864液晶显示模块电路CS:片选信号,低有效。CS1/2:左右半屏使能选择,H:左半屏,L:右半屏。RS:选择读写的是指令或数据,L:指令,H:为数据。RW:读写控制端,L:写操作,H:读操作。3.2.3语音模块ISD1420电路图3.3语音模块ISD1420电路JP13、JP14、JP15:设置操作模式,MCU:CPU控制方式;MANUAL:手动(REC、PLAYL、PLAYE)控制方式。REC: 录音按键,低电平有效;PLAYE: 电平放音按键,低电平有效,直到放音内容结束停止放音硬件设计PLAYL: 边沿放音按键,下降沿有效,并在下一个上升沿停止放音3.3硬件设计具体方案 主要连线说明:连线A区连线B区A1区:CS、RW、RS、CS1/2A3区:CS1、A0、A1、A2B1区:RECB4区:PC0(8255) 录音控制B1区:PLAYEB3区:PC1(8255) 电平放音控制B1区:PLAYLB3区:PC2(8255) 触发放音控制,下降沿触发B1区:CPA3区:CS1B4区:CS(8255)、A0、A1A3区:CS2、A0、A1B4区:JP56(8255的PA口)G6区:JP74表3.1连线说明4软件设计4.1软件控制方案首先对8255芯片进行初始设置,对控制端口写入方式控制字,A口工作方式为方式一,即基本输入输出方式;A口作为输入,B口不使用,都写0,C口高四位和低四位都设为输出。 为了实现语音与液晶屏显示同步,在程序段中加入按键选择程序,无按键按下,屏幕无显示,不播放语音;有键按下时,跳到相应处理程序。如按下5键,则调用语音子程序中的第一段录音地址,同时调用液晶显示程序中的第一页屏显内容。4.2控制逻辑流程图开始初始化ISD1420(语音模块初始化,关闭录放音功能,允许手动录放音)调用键盘扫描子程序有键按下标志=1调用按键处理子程序有新的按键按下NNYY图4.1语音模块流程图N P1口=0FFH 将P1口的值转化为键值1 延时40ms P1口=0FFH 将P1口的值转化为键值键值1=键值键值=键值1 P1口=0FFH1-有键按下标志0-有键按下标志YYNNYNY开始返回图4.2键扫描子程序取号键录音首地址取号键录音首地址取号键录音首地址取号键录音首地址取号键放音首地址取号键放音首地址取号键放音首地址取号键放音首地址YYYYYYYY开始返回键值=1键值=2键值=3键值=4键值=5键值=6键值=7键值=8图4.3按键处理子程序4.3参考程序(见附录)致谢5系统测试 通过硬件和软件的结合调试,使该系统符合设计的基本要求,并保证可靠稳定地运行。在此基础上使系统能够更加全面地对语音报站进行控制,正确反映语音报站的工作原理,给用户提供一个可操作观察的界面,以更方便容易操作和检查。首先将硬件电路进行连接,在连接之前,要先检查各个部件是否损坏,如果正常方可连接,否则将会影响实验进行。再连接好线路之后配合软件程序进行调试。按1、2、3键录音,之后按4、5、6键放音,在放音同时,看液晶显示屏上的站名信息是否与语音对应。如果没有,则修改、调试程序,知道达到基本要求,符合计划结果为止。6设计中遇到的问题在软硬件调试过程中主要遇到以下几个问题:1、起初在录音时只能实现录两段,即按键1、2有效。后来通过与同学研究找到问题所在:代码中存放录音的地址需要修改。2、在代码段中用到jz之类的短跳转,在其间代码过多时会出现跳转不到的问题。这是因为中间隔得代码太多,要采用双重跳才可跳到指定位置。3、当液晶屏显示下一页站名时出现花屏现象。解决方法:在代码段中应加上清屏代码,否则当现实下一页时,第一页的站名将会仍留在屏幕上。4、在把语音程序和液晶显示程序合并后出现一些问题(1)分别按1、2、3键录音后,按5键,放出1、2、3段所有录音(正常只放出第1段录音);按6键,放出2、3段录音(6键对应播放第2段录音);按7键只放出第3段录音。解决方法:将代码段存放录音的地址改大一些并且将每段录音时间缩短便可实现。(2)按键后不能实现语音与液晶显示屏上站名信息同步,或是屏上只显示站名而没声音,或是有声音而屏幕上没反应。解决方法:在程序中通过判断按键来实现同步。有键按下时,跳到相应处理程序。7设计总结两周的课程设计过去了,这两周感觉自己收获颇丰,通过实践学习将以前掌握不是很扎实的基础知识加以巩固。真正做到理论与实践相结合。同时也深深体会到做项目的不易,有时侯自己做起来感觉很困难,经常在程序运行时出现错误,在实验仪的液晶显示屏上看不到自己想得到的结果。但是通过和老师、同学不断的交流。最终在自己的努力和大家的帮助下还是顺利的完成了任务。本次课程设计使我对硬件知识有了进一步的认识,尤其是对8255、液晶显示模块、语音模块有了更深的了解。在做课程设计过程中,总是遇到点问题就去翻书,有些需要掌握的知识不了解而去翻书查找是很浪费时间的。所以,这次实习使我认识到掌握基础知识的重要性。致 谢 在整个开发与设计实习中,我从开始学习星研集成模拟软件、电路设计、程序编写到最后的提交论文,自始至终都受到指导教师李长悦老师,张建锋老师、田晶老师的以及所有指导老师的悉心指导。对此,表示忠心的感谢!同时也感谢给过我帮助和鼓励的同学,没有他们的帮助与鼓励,我是不可能这么快完成系统开发任务的。借此机会,我再一次感谢给我们代汇编语言的李长悦老师和微机原理与接口课程的田晶老师,以及所有指导老师和我的同学。8参考文献1田晶编著 接口技术实验指导书西北农林科技大学信息工程学院2刘肃,张军,耿恒山著微机原理与接口 中国水利水电出版社 20063沈美明,温冬婵编著 IBM-PC汇编语言程序设计 清华大学出版社 20074STAR PCI使用说明 星研公司附录9附录系统所用的汇编程序如下:.MODELTINY.STACK100;堆栈段WR_COM_AD_LEQU0d004H;写左半屏指令地址WR_COM_AD_REQU0d000H;写右半屏指令地址WR_DATA_AD_LEQU0D006H;写左半屏数据地址WR_DATA_AD_REQU0D002H;写右半屏数据地址RD_BUSY_ADEQU0D001H;查忙地址RD_DATA_ADEQU0D003H;读数据地址XEQU0B8H;起始显示行基址YEQU040H;起始显示列基址FirstLineEQU0C0H;起始显示行ISD1420_AD1EQU00H;1号键录放音起始地址,每次录音5sISD1420_AD2EQU20H;2号键录放音起始地址ISD1420_AD3EQU40H;3号键录放音起始地址ISD1420_AD4EQU 60H;4号键录放音起始地址ISDCOMMEQU0F000H ;录放音地址/操作模式输入地址,0D000H接CS3 I8255_CtrEQU0E003H;8255控制端口地址I8255_PAEQU0E000H;键盘数据输入口I8255_PCEQU0E002H;ISD1420控制输出口.DATAbNewKeyDB0 ;有键按下标志位,清0-无键按下KEYnoDB0KeyTabDW KEY1,KEY2,KEY3,KEY4,KEY5,KEY6,KEY7,KEY8 ;放音键子程序入口;- 文字: 水 -Line0_1DB 00H,10H,10H,10H,90H,70H,00H,0FFH,20H,60H,90H,08H,04H,00H,00H,00H DB 10H,10H,08H,06H,01H,40H,80H,7FH,00H,00H,01H,06H,0CH,18H,08H,00H;- 文字: 运 -Line0_2DB 40H,41H,0CEH,04H,00H,20H,22H,0A2H,62H,22H,0A2H,22H,22H,22H,20H,00HDB 40H,20H,1FH,20H,28H,4CH,4AH,49H,48H,4CH,44H,45H,5EH,4CH,40H,00H ;- 文字: 下 -Line4_1 DB 00H,02H,02H,02H,02H,02H,02H,0FEH,22H,62H,0C2H,82H,02H,03H,02H,00H DB 00H,00H,00H,00H,00H,00H,00H,7FH,00H,00H,01H,00H,00H,00H,00H,00H;- 文字: 一 -Line4_2 DB 00H,80H,80H,80H,80H,80H,80H,80H,80H,80H,80H,80H,80H,0C0H,80H,00HDB 00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H;- 文字: 站 -Line4_3 DB 10H,50H,92H,1CH,10H,0F0H,10H,00H,00H,00H,0FFH,10H,10H,10H,10H,00HDB 10H,10H,0BH,0CH,0BH,08H,00H,7FH,21H,21H,21H,21H,21H,7FH,00H,00H ;- 文字: 西 -Line2_1 DB 02H,0F2H,12H,12H,12H,0FEH,12H,12H,12H,0FEH,12H,12H,12H,0F2H,02H,00H DB 00H,7FH,28H,24H,22H,21H,20H,20H,20H,21H,22H,22H,22H,7FH,00H,00H;- 文字: 农 -Line2_2 DB 00H,20H,18H,08H,88H,0E8H,1FH,6AH,88H,08H,88H,0C8H,0A8H,1CH,08H,00HDB 08H,04H,02H,41H,0FFH,40H,20H,10H,01H,02H,0DH,18H,70H,20H,20H,00H;- 文字: 南 -Line2_3 DB 04H,04H,0E4H,24H,24H,64H,0B4H,2FH,24H,0A4H,64H,24H,24H,0E6H,04H,00HDB 00H,00H,7FH,04H,05H,05H,05H,7FH,05H,05H,05H,25H,44H,3FH,00H,00H;- 文字: 校 -Line2_4 DB 08H,88H,68H,0FFH,28H,48H,00H,88H,68H,09H,0EH,08H,0A8H,48H,88H,00HDB 02H,01H,00H,0FFH,00H,40H,42H,21H,26H,18H,18H,26H,61H,0C0H,40H,00H;- 文字 火 - Line1_1 DB 00H,00H,00H,0F0H,00H,00H,00H,0FFH,02H,40H,20H,18H,10H,00H,00H,00HDB 00H,80H,41H,20H,10H,0CH,03H,00H,03H,04H,18H,30H,60H,20H,00H,00H;- 文字: 车 -Line1_2 DB 00H,04H,84H,0C4H,0A4H,9CH,87H,84H,0F4H,84H,84H,84H,84H,84H,00H,00HDB 04H,04H,04H,04H,04H,04H,04H,04H,0FFH,04H,04H,04H,04H,04H,04H,00H;- 文字: 站 -Line1_3 DB 10H,50H,92H,1CH,10H,0F0H,10H,00H,00H,00H,0FFH,10H,10H,10H,10H,00HDB 10H,10H,0BH,0CH,0BH,08H,00H,7FH,21H,21H,21H,21H,21H,7FH,00H,00H;- 文字: 北 -Line3_3 DB 00H,20H,20H,20H,20H,0FFH,00H,00H,00H,0FFH,40H,20H,30H,18H,10H,00HDB 10H,30H,18H,08H,04H,7FH,00H,00H,00H,3FH,40H,40H,40H,40H,78H,00H;- 文字: 校 -Line3_4 DB 08H,88H,68H,0FFH,28H,48H,00H,88H,68H,09H,0EH,08H,0A8H,48H,88H,00HDB 02H,01H,00H,0FFH,00H,40H,42H,21H,26H,18H,18H,26H,61H,0C0H,40H,00H.CODE;程序段START:MOVAX,DATAMOVDS,AXNOPCALLMainInit;主程序初始化Main:CALLScanKey;扫描按键 JNB MainMain1: CALLKeyRun CMP KEYno,4 JZ DISPL1 CMP KEYno,5 JZ DISPL2 CMP KEYno,6 JZ DISPL3 JMP MAINDISPL1 PROC NEAR CALLLCD_INIT;液晶初始化CALLDelayTimeCALLDisLine01;第1行显示”水运“CALLDelayTimeCALLDisLine00;第2行显示”下一站“CALLDelayTimeCALLDisLine13;第3行显示“西农南校CALLDelayTime;CALL Timedelay1RETDISPL1 ENDP ;液晶屏显示火车站-下一站-西农南校DISPL2 PROC NEAR CALLLCD_INIT;液晶初始化CALLDelayTimeCALLDisLine11;第1行显示“火车站CALLDelayTimeCALLDisLine00;第2行显示”下一站“CALLDelayTimeCALLDisLine23;第3行显示西农南校CALLDelayTime;CALL Timedelay1RETDISPL2 ENDP ;液晶屏显示西农南校-下一站-西农北校DISPL3 PROC NEAR CALLLCD_INIT;液晶初始化CALLDelayTimeCALLDisLine21;第1行显示西农南校CALLDelayTimeCALLDisLine00;第2行显示”下一站“CALLDelayTimeCALLDisLine33;第3行显示”西农北校CALLDelayTime;CALL Timedelay1RETDISPL3 ENDP;主程序初始化MainInitPROCNEARMOVbNewKey,0;有键按下标志位,清0-无键按下MOVDX,I8255_Ctr;8255初始化MOVAL,90H;PA为输入,PC的低四位为输出OUTDX,ALCALLISD_INITRETMainInitENDP;第1行显示水运DisLine01PROCNEARLEASI,Line0_1MOVAL,0;A-起始显示行地址,第2行MOVAH,40;B-起始显示列地址,第40列,以下同CALLWordDISL;左半屏,显示一个字子程序LEASI,Line0_2MOVAL,0MOVAH,8CALLWordDISRRETDisLine01ENDP;第3行显示水运DisLine03PROCNEARLEASI,Line0_1MOVAL,6;A-起始显示行地址,第2行MOVAH,40;B-起始显示列地址,第40列,以下同CALLWordDISL;左半屏,显示一个字子程序LEASI,Line0_2MOVAL,6MOVAH,8CALLWordDISRRETDisLine03ENDP;第2行显示下一站DisLine00PROCNEARLEASI,Line4_1MOVAL,3;A-起始显示行地址,第6行MOVAH,32;B-起始显示列地址,第32列,以下同CALLWordDISL;左半屏,显示一个字子程序LEASI,Line4_2MOVAL,3MOVAH,49CALLWordDISLLEASI,Line4_3MOVAL,3MOVAH,16CALLWordDISR;右半屏,显示一个字子程序RETDisLine00ENDP;第3行显示火车站DisLine23PROCNEAR LEASI,Line1_1MOVAL,5;A-起始显示行地址,第6行MOVAH,32;B-起始显示列地址,第32列,以下同CALLWordDISL;左半屏,显示一个字子程序LEASI,Line1_2MOVAL,5MOVAH,49CALLWordDISLLEASI,Line1_3MOVAL,5MOVAH,16CALLWordDISR;右半屏,显示一个字子程序RETDisLine23ENDP;第1行显示火车站DisLine21PROCNEARLEASI,Line1_1MOVAL,0;A-起始显示行地址,第2行MOVAH,32;B-起始显示列地址,第40列,以下同CALLWordDISL;左半屏,显示一个字子程序LEASI,Line1_2MOVAL,0MOVAH,0CALLWordDISRLEASI,Line1_3MOVAL,0MOVAH,16CALLWordDISRRETDisLine21ENDP;第3行显示“西农南校”DisLine13PROCNEARLEASI,Line2_1MOVAL,6;A-起始显示行地址,第6行MOVAH,32;B-起始显示列地址,第32列,以下同CALLWordDISL;左半屏,显示一个字子程序LEASI,Line2_2MOVAL,6MOVAH,48CALLWordDISLLEASI,Line2_3MOVAL,6MOVAH,0CALLWordDISR;右半屏,显示一个字子程序LEASI,Line2_4MOVAL,6MOVAH,16CALLWordDISRRETDisLine13ENDP;第1行显示西农南校DisLine11PROCNEARLEASI,Line2_1MOVAL,0;A-起始显示行地址,第2行MOVAH,32;B-起始显示列地址,第40列,以下同CALL WordDISL;左半屏,显示一个字子程序LEASI,Line2_2MOVAL,0MOVAH,48CALLWordDISLLEASI,Line2_3MOVAL,0MOVAH,0CALLWordDISR LEASI,Line2_4MOVAL,0MOVAH,16CALLWordDISRRETDisLine11ENDP;第3行显示西农北校DisLine33PROCNEARLEASI,Line2_1MOVAL,6;A-起始显示行地址,第6行MOVAH,32;B-起始显示列地址,第32列,以下同CALLWordDISL;左半屏,显示一个字子程序LEASI,Line2_2MOVAL,6MOVAH,48CALLWordDISLLEASI,Line3_3MOVAL,6MOVAH,0CALLWordDISR LEASI,Line3_4MOVAL,6MOVAH,16CALLWordDISR;右半屏,显示一个字子程序RETDisLine33ENDP;第1行显示西农北校DisLine31PROCNEARLEASI,Line2_1MOVAL,0;A-起始显示行地址,第6行MOVAH,32;B-起始显示列地址,第32列,以下同CALLWordDISL;左半屏,显示一个字子程序LEASI,Line2_2MOVAL,0MOVAH,48CALLWordDISLLEASI,Line3_3MOVAL,0MOVAH,0CALLWordDISR LEASI,Line3_4MOVAL,0MOVAH,16CALLWordDISR;右半屏,显示一个字子程序RETDisLine31ENDP;液晶初始化LCD_INITPROCNEARMOVAL,3EH;初始化左半屏,关显示CALLWRComL;写指令子程序MOVAL,FirstLine;设置起始显示行,第0行CALLWRComLMOVAL,3EH;初始化右半屏,关显示CALLWRComR;写指令子程序MOVAL,FirstLine;设置起始显示行,第0行CALLWRComRCALLLCDClear;清屏MOVAL,3FH;开显示CALLWRComLMOVAL,3FH;开显示CALLWRComRRETLCD_INITENDP;清屏LCDClearPROCNEAR;清左半屏MOVAL,0;起始行,第0行MOVAH,0;起始列,第0列LCDClearL1:PUSHAXMOVCX,64CALLSETXYL;设置起始显示行列地址LCDClearL2:MOVAL,0CALLWRDATALLOOPLCDClearL2POPAXINCAXCMPAL,8;共8行JNZLCDClearL1;清右半屏MOVAL,0;起始行,第0行MOVAH,0;起始列,第0列LCDClearR1:PUSHAXMOVCX,64CALLSETXYR;设置起始显示行列地址LCDClearR2:XORAL,ALCALLWRDATARLOOPLCDClearR2POPAXINCALCMPAL,8;共8行JNZLCDClearR1RETLCDClearENDP;显示字体,显示一个数据要占用X行两行位置;左半屏显示一个字节/字:AL-起始显示行序数X(0-7);AH-起始显示列序数Y(0-63);SI-显示字数据首地址ByteDisLPROCNEARMOVCX,8 ;显示8个字节数据,用于显示一个英文/符号CALLDispLRETByteDisLENDPWordDisLPROCNEARMOVCX,16;显示16字节数据,用于显示一个汉字CALLDispLRETWordDisLENDPDispLPROCNEARPUSHAXPUSHCXCALLSETXYL;设置起始显示行列地址CALLDisplayL;显示上半行数据POPCXPOPAXINCALCALLSETXYL;设置起始显示行列地址CALLDisplayL;显示下半行数据RETDispLENDP;右半屏显示一个字节/字:AL-起始显示行序数X(0-7);AH-起始显示列序数Y(0-63);SI-显示字数据首地址ByteDisRPROCENARMOVCX,8 ;显示8个字节数据,用于显示一个英文/符号CALLDispRRETByteDisRENDPWordDisRPROCNEARMOVCX,16;显示16字节数据,用于显示一个汉字CALLDispRRETWordDisRENDPDispRPROCNEARPUSHAXPUSHCXCALLSETXYR;设置起始显示行列地址CALLDisplayR;显示上半行数据POPCXPOPAXINCALCALLSETXYR;设置起始显示行列地址CALLDisplayR;显示下半行数据RETDispRENDP;显示图形;显示左半屏一行图形,AL-X起始行序数(0-7),AH-Y起始列地址序数(0-63)LineDisLPROCNEARMOVCX,64CALLSETXYL;设置起始显示行列CALLDisplayL;显示数据RET LineDisLENDP;显示右半屏一行图形,AL-X起始行地址序数(0-7),AH-Y起始列地址序数(0-63)LineDisRPROCNEARMOVCX,64CALLSETXYR;设置起始显示行列CALLDisplayR;显示数据RETLineDisRENDP;基本控制;显示左半屏数据,R7-显示数据个数DisplayLPROCNEARLODSBCALLWRDataL;写左半屏数据LOOPDisplayLRETDisplayLENDP;显示右半屏数据,R7-显示数据个数DisplayRPROCNEARLODSBCALLWRDataR;写左半屏数据LOOPDisplayRRETDisplayRENDP;设置左半屏起始显示行列地址,AL-X起始行序数(0-7),AH-Y起始列序数(0-63)SETXYLPROCNEARORAL,X;行地址=行序数+行基址CALLWRComLMOVAL,AHORAL,Y;列地址=列序数+列基址CALLWRComLRETSETXYLENDP;设置右半屏起始显示行列地址,AL-X起始行序数(0-7),AH-Y起始列序数(0-63)SETXYRPROCNEARORAL,X;行地址=行序数+行基址CALLWRComRMOVAL,AHORAL,Y;列地址=列序数+列基址CALLWRComRRETSETXYRENDP;写左半屏控制指令,A-写入指令WRComLPROCNEARMOVDX,WR_COM_AD_LOUTDX,ALWRComL1:MOVDX,RD_BUSY_ADINAL,DXTESTAL,80H;检查液晶显示是否处于忙状态JNZWRComL1RETWRComLENDP;写右半屏控制指令,A-写入指令WRComRPROCNEARMOVDX,WR_COM_AD_ROUTDX,ALWRComR1:MOVDX,RD_BUSY_ADINAL,DXTESTAL,80H;检查液晶显示是否处于忙状态JNZWRComR1RETWRComRENDP;写左半屏数据,A-写入数据WRDataLPROCNEARMOVDX,WR_DATA_AD_LOUTDX,ALWRDataL1:MOVDX,RD_BUSY_ADINAL,DXTESTAL,80H;检查液晶显示是否处于忙状态JNZWRDataL1RETWRDataLENDP;写右半屏数据,A-写入数据WRDataRPROCNEARMOVDX,WR_DATA_AD_ROUTDX,ALWRDataR1:MOVDX,RD_BUSY_ADINAL,DXTESTAL,80H;检查液晶显示是否处于忙状态JNZWRDataR1RETWRDataRENDPTimedelay PROC NEARPUSH CXMOV CX,0FFFFHLOOP$POPCXRETTimedelay ENDPTimedelay1 PROC NEARPUSH CXMOV CX,000FHZ111:CALL TimedelayloopZ111POPCXRETTimedelay1 ENDP;录音子程序略#KEY_PLAY1:CALLDelay_025S;用于进度显示的时间参照CMPbNewKey,0JNZKEY_PLAY2;检测按键是否有键按下LOOPKEY_PLAY1KEY_PLAY2:RETKEY_PLAYENDPKeyRunPROCNEARLEABX,KeyTab;有键按下,跳到相应处理程序MOVAL,KEYno;KEYno-按键值SHLAL,1;2倍XORAH,AHADDBX,AXCALLBX;BX=对应按键子程序入口地址RETKeyRunENDP;按键扫描ScanKeyPROCNEARMOVDX,I8255_PA;8255.PA-检测按键输入INAL,DX;键扫描CMPAL,0FFHJNZScanKey1ScanKey4:CLC;无按键按下RETScanKey1:CALLScanKey2;有按键,取抖动处理JNBScanKey4ScanKey3:MOVBL,KEYnoCALLDelay20ms;消抖动CALLDelay20msCALLScanKey2JNBScanKey4CMPBL,KEYnoJNZScanKey3ScanKey5:MOVDX,I8255_PAScanKey6:INAL,DXCMPAL,0FFHJNZScanKey6STCRETScanKeyENDP;按下的键(18)转化为对应的键值(07),便于多分支程序处理ScanKey2PR
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 甘肃省2025年城市规划师考试城市规划实务:工程管线综合布置原则考试试卷
- 常规病情观察与护理规范
- 韦尼克脑病护理
- 作业治疗活动设计
- 健康上网行为规范指南
- 高血压健康评估要点解析
- 上睑下垂手术前护理常规
- 班级常规培养分享
- 糖尿病对老年人健康影响
- 2025年月饼项目立项申请报告
- 砂石料供应、运输、售后服务方案
- 2023年安徽省公务员《申论》试题及答案解析(C卷)
- 血糖监测小讲课ppt
- 《科研论文的写作》课件
- 直流屏培训课件
- 2024届江苏省南京市燕子矶中学化学高一第二学期期末联考试题含解析
- 医养结合康复中心项目可行性研究报告
- 员工身心健康情况排查表
- 金融科技相关项目实施方案
- 危险化学品安全管理课件
- 23秋国家开放大学《液压气动技术》形考任务1-3参考答案
评论
0/150
提交评论