资源描述
第27章 单片机实现密码锁 一、题目要求编写程序,接收键盘输入的字符串,将其中大写字母转化为小写字母,并显示转化后的字符串。键盘输入的字符串存于STRBUF缓冲区中,最多输入30个字符。二、实现原理字符串是由若干个字符构成,而字符在计算机中以ASCII码形式存储,因此字符串是一个ASCII码序列。小写字符az的ASCII是61H7AH,大写字符AZ的ASCII是41H5AH,因此将大写字母转化为小写字母的方法是:大写字母ASCII加上20H。三、实验程序及流程图程序首先调用0A号功能,等待用户输入字符串,并存入STRBUF中。然后对输入字符逐个检测,若为大写字符,则将其转化为小写字符,否则不变。最后采用循环结构,使用02号调用,逐个显示字符串中的字符。流程图如图4.11所示。图4.11 程序流程图程序代码如下。DATA SEGMENTSTRBUF DB 30,?,31 DUP (?);定义键盘接收缓冲区DATA ENDSCODE SEGMENT ASSUME CS:CODE,DS:DATASTART:MOV AX,DATAMOV DS,AXLEA DX,STRBUFMOV AH,0AHINT 21H;0A号调用,等待用户输入字符串MOV CL,STRBUF+1CMP CL,00JZ EXITPMOV CH,00HMOV SI,2XX1:MOV AL,STRBUFSI;读取一个字符CMP AL,AJB NEXTCMP AL,ZJA NEXT;判断是否是大写字符,ASCII在41H5AH之间ADD STRBUFSI,a-A;大写字母ASCII值加20HNEXT:INC SILOOP XX1MOV DL,0AHMOV AH,02HINT 21H;控制换行MOV CH,00MOV CL,STRBUF+1MOV SI,2XX2:MOV DL,STRBUFSIMOV AH,02HINT 21HINC SILOOP XX2;显示字符串EXITP:MOV AH,4CHINT 21HCODE ENDSEND START3
展开阅读全文