小键盘数字录入练习

小键盘数字录入练习
小键盘数字录入练习

4乘4矩阵键盘输入数码管显示四位数

综合课程设计三相步进电机控制器电路的设计 学生姓名__________

指导教师_________ 课程设计任务书 一、设计说明 步进电机是工业过程控制及仪表控制中的主控元件之一,作为执行元件其特点为能够快速起启停、精度高且能直接接收数字量,由于这些特点使其在定位场合得到了广泛的应用。 设计一个三相步进电机控制器,使其能够控制步进电机的工作状态,如步进电机正、反转,步进电机的工作方式等。 用键盘设定步进电机的工作频率,工作方式,并用数码管显示设定值,可以通过按键来更换显示内容。用示波器观测三相的输出波形,并用数码管显示电路的工作状态。 二、技术指标 步进电机的工作频率为:<10kHz 三、设计要求 1.进行方案论证,提出一个合理的设计方案并进行理论设计; 2.对所设计的方案部分进行调试; 3.在选择器件时,应考虑成本。 4.设计测量调试电路。 四、实验要求 1.根据技术指标制定实验方案;验证所设计的电路。 2.进行实验数据处理和分析。 五、推荐参考资料 1?谢自美?电子线路设计?实验?测试.[M]武汉:华中理工大学出版社,2000 年 2. 阎石. 数字电子技术基础. [M] 北京:高等教育出版社,2006年 3. 童诗白、华成英.模拟电子技术基础. [M] 北京:高等教育出版社,2006年 4..付家才. 电子实验与实践. [M] 北京:高等教育出版社,2004年 5.沙占友、李学芝著.中外数字万用表电路原理与维修技术. [M] 北京:人民 邮电出版社,1993年

六、按照要求撰写课程设计报告成绩评定表

一、概述 本次毕设的题目是:三相步进电机控制电路的设计。本次毕设使用80C51单片机作为主控芯片,利用ULN2003A集成电路作为三相步进电机的驱动电路,采用单极性驱动方式,使三相步进电机能在(1)三相单三拍,(2)三相双三拍, (3)三相六拍三种工作方式下正常工作;能实现的功能有:启动/停止控制、方向控制;速度控制;用LED数码管显示工作方式。键盘输入工作频率。本次课程设计采用80C51单片机作为主控芯片,程序采用C语言来编写,驱动电路采用ULN2003A集成电路,显示采用 7SEG-MPX4-CC卩四位共阴数码管,P0接段码,并用8只1K欧左右电阻上拉。P2的4位10 口接位选码。正转,数码管显示1。反转,数码管显示2.不转,数码管显示0.采用Proteus软件进行仿真。在Keil uVsuon3编程环境下编程和编译生成HEX文件,导入到 80C51单片机,实现对各个模块的控制,实现我们所需要的功能。 本次课程是对毕业设计的基础设计,即实现4x4键盘输入,数码管显示输入数字的设计。 二、方案论证 1步进电机驱动方案选择 方案1 :使用功率三极管等电子器件搭建成功率驱动电路来驱动电机的运行。这种方案的驱动电路的优点是使用电子器件联接,电路比较简单,但容易受 干扰,信号不够稳定,缺点是器件较大而不便电路的集成,使用时很不方便,联接时容易出错误。 方案2:使用专门的电机驱动芯片ULN2003A来驱动电机运行。驱动芯片的优点是便于电路的集成,且驱动电路简单,驱动信号很稳定,不易受外界环境的干扰,因而设计的三相步进电机控制系统性能更好。 通过对两种方案的比较,我选择方案2使用ULN2003A S机驱动芯片来作为驱动。 2数码管显示方案选择 方案1:把所需要显示的数据通过专用的七段显示译码器(例如7448)的转换输出给LED显示屏。优点是输出比较简单,可以简化程序,但增加了芯片的费用,电路也比较复杂。 方案2:通过程序把所要的数据转化为七段显示的数据,直接通过单片机接 口来显示,其优点是简化了电路,但增加了软件编写的负担。 通过对两种方案进行比较,我选择通过软件编写来输出显示信号,即单片机直接和显示器相连。 3控制状态的读取 方案1:把按键接到单片机的中断口,若有按键按下,单片机接收到中断信 号,再通过软件编写的中断程序来执行中断,优点是接线简单,简化了电路,但软件编写较为复杂,不易掌握。

4乘4矩阵键盘输入数码管显示四位数

沈阳航空航天大学 综合课程设计三相步进电机控制器电路的设计 班级 94020101 学号 2009040201023 学生姓名 XXXXXXXXX 指导教师常丽东

课程设计任务书 一、设计说明 步进电机是工业过程控制及仪表控制中的主控元件之一,作为执行元件其特点为能够快速起启停、精度高且能直接接收数字量,由于这些特点使其在定位场合得到了广泛的应用。 设计一个三相步进电机控制器,使其能够控制步进电机的工作状态,如步进电机正、反转,步进电机的工作方式等。 用键盘设定步进电机的工作频率,工作方式,并用数码管显示设定值,可以通过按键来更换显示内容。用示波器观测三相的输出波形,并用数码管显示电路的工作状态。 二、技术指标 步进电机的工作频率为:<10kHz 三、设计要求 1.进行方案论证,提出一个合理的设计方案并进行理论设计; 2.对所设计的方案部分进行调试; 3.在选择器件时,应考虑成本。 4.设计测量调试电路。 四、实验要求 1.根据技术指标制定实验方案;验证所设计的电路。 2.进行实验数据处理和分析。 五、推荐参考资料 1.谢自美. 电子线路设计·实验·测试. [M]武汉:华中理工大学出版社,2000年 2.阎石. 数字电子技术基础. [M]北京:高等教育出版社,2006年 3.童诗白、华成英.模拟电子技术基础. [M]北京:高等教育出版社,2006年 4..付家才. 电子实验与实践. [M]北京:高等教育出版社,2004年 5.沙占友、李学芝著.中外数字万用表电路原理与维修技术. [M]北京:人民邮电出版社,1993年

六、按照要求撰写课程设计报告成绩评定表

单片机键盘输入编程(C语言)

学习过单片机技术的人都知道,单片机的按键输入一般可分为简单的独立式按键输入及行列式键盘输入两种。图1为简单的独立式键盘输入示意图,独立式键盘输入适合于按键输入不多的情况(<5个按键),具有占用口线较少、软件编写简单容易等特点。 图2为行列式键盘输入示意图,列线接P1.0~P1.3,行线接P1.4~P1.7。行列式键盘输入适合于按键输入多的情况,如有16个按键输入,用简单按键输入用要占用2个输入口(共16位),而使用行列式键盘输入只需占用一个输入口(8位)。但行列式键盘输入软件编写较复杂,对初学者而言有一定的难度。

以上略谈了一下按键输入的情况。在很多状态下,按键输入的值要同时要在LED数码管上显示出来。如一个按键设计为输入递增(加法)键,可以设计成每点按一下,数值递增加1,同时在LED数码管上显示出来;也可设计成持续按下时,数值以一定时间间隔(如0.3秒)累加。但是当欲输入值较大时(如三位LED数码管作输入显示时的输入值最大为999),则可能按下键的时间太长(最长达300秒),看来这种方式只适用于一位或至多两位数值(最大99)的输入。当然你也可多设几个键,每个键只负责一位数值的输入,但这样会占用较多的口线,浪费宝贵的硬件资源。 大家可能见到过,一些进口的温度控制器(如日本RKC INSTRUMENT INC. 生产的REX_C700温控器)的面板设计为:温度测量值用4位LED数码管显示,输入设定值显示也用4位

LED数码管,输入按键只有4个,一个为“模式设定键”,一个为“左移键”,另两个为“加法键”、“减法键”。欲输入设定值(温控值)时,按一下“模式设定键”,程序进入设定状态,此时输入设定值显示的4位LED数码管中,个位显示最亮(稳定显示),而十、百、千位显示较暗(有闪烁感),说明可对个位进行输入。按下“加法键”或“减法键”,即可输入个位数的值;点按一下“左移键”,变为十位显示最亮,而个、百、千位显示较暗,说明可对十位进行输入。按下“加法键”或“减法键”,即可输入十位数的值;……这样可完成4位数的输入。完成输入后,再按一下“模式设定键”,程序即退出设定状态,进入工作运行。用这种输入方法,不仅输入4位数用4个键即可,再多位(5位至24位)的输入也用这4个键就够了。 大家了解了这种新颖的按键输入方式后,一定很感兴趣,也想掌握设计方法。为了便于大家理解,这里结合笔者设计的一款“节能时控器”,详细进行讲解。“节能时控器”用于定时控制大功率电器工作,因现采用分时计费方法,可起到节约开支的作用,对工业生产成效显著。 图3为“节能时控器”硬件构成原理图。“节能时控器”共有4个输入按键:set--模式设定键,left--左移键,up—加法键,on/off--定时1、2启动/关闭键。单片机IC1(AT89C2051)只有15条I/O线,由于受I/O线数量限制,因此P1口中的 P1.0~P1.3既作为驱动4位LED数码管的数据输出一部分,同

【免费下载】从键盘输入一个四位数按如下规则加密后输出

作业31、从键盘输入一个四位数,按如下规则加密后输出。加密规则:每位数字都加上7,然后用和除以10的余数取代该数字,再把第一位与第三位交换,第二位与第四位交换。clear x=ones(1,4);x(1)=input('输入第一位:');x(2)=input('输入第二位:');x(3)=input('输入第三位:');x(4)=input('输入第四位:');x=rem(7+x,10);y=1000.*x(3)+100.*x(4)+10.*x(1)+x(2)2、分别用if 语句和switch 语句实现以下计算,其中a ,b ,c 的值从键盘输入。?????????≤≤+≤≤+≤≤++=5.55.3,ln 5.35.1,sin 5.15.0,2x x c b x x b a x c bx ax y c a=input('请输入a:');b=input('请输入b:');c=input('请输入c:');if(x>=0.5&&x<=1.5) y=a.*x^2+b.*x+c elseif(x>=1.5&&x<=3.5) y=a.*(sin(b))^c+x elseif(x>=3.5&&x<=5.5) y=log(abs(b+c./x))end a=input('请输入a:');b=input('请输入b:');c=input('请输入c:');switch x case (x>=0.5&&x<=1.5) y=a.*x^2+b.*x+c case (x>=1.5&&x<=3.5) y=a.*(sin(b))^c+x case (x>=3.5&&x<=5.5) y=log(abs(b+c./x))end 3、已知 63322......2221+++++=s

c语言编程 题目及答案

**********************************考试形式:上机考试(60分钟) 考试题型说明:10个单选题+2个编程题 下面是编程题目的复习题型,期末考试的编程题型及难易程度与此相近,请大家认真复习,强化练习,打下坚实基础,顺利通过考试。 ********************************** 1、编写一计算阶乘的函数fac,在主函数中从键盘输入一个正整数,调用阶乘函数fac计算阶乘并输出计算结果。 2、编写一个求x的y次幂的函数pw,在main函数中从键盘输入a、b的值,然后调用pw函数求a的b次幂,并输出结果。 3、写一函数max,计算三个数中最大数。在主函数中输入三个数,调用该函数求出其中最大数并输出。(要求:三个数为实数) 4、写一个函数计算两个正整数的最大公约数,在主函数中用scanf输入m, n两个正整数,调用函数后,打印函数返回值(即这两个正整数的最大公约数)。 5、编写一个函数,该函数的功能是判断一个整数是不是素数,在main函数中 调用该函数,输出200以内所有的素数。 6、请编一个自定义函数,功能:将给定的字符串中的所有字母改为小写字母。字符串在主函数中从键盘任意输入(容许包含空格) 7、编写一个函数,该函数的功能是判断一个整数是不是素数,在main函数

中输入一个整数,调用该函数,判断该数是不是素数,若是则输出“yes”, 否则输出“no” 8、将1--1000中所有21的倍数存到一个一维数组中,再按每行5个数据输出到屏幕上。 9、在屏幕上打印以下图案:(要求打印N行,N用符号常量定义为7) * ** *** **** ***** ****** ******* 10、输出所有在正整数200和300之间能被6整除、但不能被4整除的数,并统计这样的数有多少个。 11、求S=1/1+1/2+1/3+……+1/100(精确到小数点后三位)。 12、编程计算1到20的平方和,并输出结果。(要求用for循环) 13、编写一个程序从键盘任意个整数,求均值及低于均值的个数,输出到屏幕。 14、编写一个程序从键盘输入10个学生的成绩到数组score中,将最高分、最低分输出,要求将该程序以文件名test1.c保存到K盘根目录。 15、在main()函数中输入一个人的年龄和性别,女士55岁退休,男士60岁退休。编写一个函数根据年龄和性别判断一个人士工作还是退休,若工作,则输出“Working!”,退休则输出“Retired!” 161、编写一个程序从键盘输入10个学生的成绩到数组score中,将最高分、最低分输出。 17、编写一个函数求一个实数的绝对值。然后在main函数中用scanf输入 任意个实数,调用该函数求它的绝对值并输出。 18、编写一个求1——n内的偶数和的函数,在main()函数中输入n,然后 调用该函数求1——n的偶数和并输出。 19、编写一个求1——n内的奇数和的函数,在main()函数中输入n,然后

微机原理实验六 从键盘输入数据并显示

实验六从键盘输入数据并显示 1要求: 编写程序,将键盘接收到的四位十六进制数转换为等值的二进制数,并显示在屏幕上。若输入的不是0—F间的数字,则显示出错 信息,并要求重新输入。 2目的: 掌握接收键盘数据的方法,并了解将键盘数据显示时须转换为ASCII码的原理。

实验程序 CRLF MACRO MOV AH,02H MOV DL,0DH INT 21H MOV AH,02H MOV DL,0AH INT 21H ENDM DATA SEGMENT MARK DB? MESS DB'please input the number(H),press inter,ture into number(B).press space end.',0DH,0AH,'$'

ERROR DB 0DH,0AH, 'input error',0DH,0AH,'$' DATA ENDS STACK SEGMENT STA DW32 DUP(?) TOP DW? STACK ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA,ES:DATA,SS:STACK START: MOV AX,DATA MOV DS,AX MOV ES,AX MOV SP,TOP HEAD: CRLF MOV MARK,0 MOV AH,09H LEA DX,MESS INT 21H ;显示提示输入的信息 CALL GETNUM ;接收键入数值送DX CMP MARK,01H JE HEAD MOV CX,0010H ;16位 MOV BX,DX

TTT: ROL BX,1 ;循环左移1位 MOV DL,BL AND DL,01H ;屏蔽掉高7位 ADD DL,30H MOV AH,02H INT 21H ;显示二进制位对应的ASCII字符 LOOP TTT JMP HEAD FINI: MOV AX,4C00H INT 21H ;返回DOS GETNUM PROC NEAR ;子程序,接收键入数值送DX PUSH CX XOR DX,DX GGG: MOV AH,01H INT 21H CMP AL,0DH ;输入为回车,则进行转换 JE PPP CMP AL,20H ;输入为空格,则退回DOS JE FINI CMP AL,30H JB KKK SUB AL,30H

从键盘输入一个四位数,按如下规则加密后输出

作业3 1、 从键盘输入一个四位数,按如下规则加密后输出。加密规则:每位数字都加上7,然后用和除以10的余数取代该数字,再把第一位与第三位交换,第二位与第四位交换。 clear x=ones(1,4); x(1)=input('输入第一位:'); x(2)=input('输入第二位:'); x(3)=input('输入第三位:'); x(4)=input('输入第四位:'); x=rem(7+x,10); y=1000.*x(3)+100.*x(4)+10.*x(1)+x(2) 2、 分别用if 语句和switch 语句实现以下计算,其中a ,b ,c 的值从键盘输入。 ???? ?????≤≤+≤≤+≤≤++=5.55.3,ln 5.35.1,sin 5.15.0,2x x c b x x b a x c bx ax y c a=input('请输入a:'); b=input('请输入b:'); c=input('请输入c:'); if(x>=&&x<= y=a.*x^2+b.*x+c elseif(x>=&&x<= y=a.*(sin(b))^c+x elseif(x>=&&x<= y=log(abs(b+c./x)) end

a=input('请输入a:'); b=input('请输入b:'); c=input('请输入c:'); switch x case (x>=&&x<= y=a.*x^2+b.*x+c case (x>=&&x<= y=a.*(sin(b))^c+x case (x>=&&x<= y=log(abs(b+c./x)) end 3、已知 3 22 63 + + = s + 2 ...... + 2 2 1+ 分别用循环结构和调用MATLAB的sum函数求s的值。clear a=2;s=0; for n=0:63 s=a.^n+s; end s s = +019 n=0:63; s=sum(2.^n)

VB程序设计练习——输入一个4位整数并将其逆序

1、输入一个4位整数,将其逆序输出。 如果输入的数不是4位,则报错, 如下图: 提示:判断文本框中的数是否为四位数的代码参考如下:

逆序 Public Class Form1 Private Sub TextBox1_LostFocus(ByVal sender As Object, ByVal e As System.EventArgs) Handles TextBox1.LostFocus If Len(TextBox1.Text) <> 4 And TextBox1.Text <> ""Then MsgBox("请输入一个四位数") TextBox1.Text = "" TextBox1.Focus() End If End Sub Private Sub TextBox1_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox1.TextChanged End Sub Private Sub TextBox2_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox2.TextChanged End Sub Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Dim x, y As Integer x = TextBox1.Text y = (x Mod 10) * 1000 + ((x Mod 100) \ 10) * 100 + ((x Mod 1000) \ 100) * 10 + x \ 1000 TextBox2.Text = y End Sub End Class

4.从键盘上输入0~9之间的任意一个数字

4.从键盘上输入0~9之间的任意一个数字 1.编写十六进制数的乘法程序。要求从键盘上输入两个一位十六进制数据,乘积存入SUM单元。2.编写程序,求表达式5XY的值,要求:X、Y值从键盘输入,X、Y均为一位十六进制数据,将计算结果存入SUM单元。3.编写程序,求表达式YAX2BXC的值,已知A、B、C的值分别存放在DATAA、DATAB和DATAC字节单元中,X的值存放在DATAX字节单元中,计算结果存入DATAY字单元。要求在DEBUG 下多次修改X的值,观察计算结果。4.从键盘上输入0~9之间的任意一个数字,利用查表的方法,计算其平方值,并将结果以十进制形式在屏幕上显示出来。5.利用查表的方法,计算X2Y2的值(0≤X≤15, 0≤Y≤15),X、Y分别存放在DAX和DAY单元中,计算结果存入SUM单元。4DATA SEGMENT USE16TAB DB 0 1 4 9162536496481RETURN DB 1310DATA ENDSCODE SEGMENT USE16ASSUME CS:CODEDS:DATABEG: MOV EAXDATAMOV DSEAXMOV AH1 输入一个字符INT 21HMOV BLAL 转移输入到BXMOV AH9MOV DXOFFSET RETURN 显示一个回车INT 21HCMP BX9 是数字?JA EXITCMP BX0JB EXITAND BX0FH 字符换数字

MOV DXOFFSET TAB 查表ADD DXBXADD DXBXADD DXBXMOV AH9 显示最终结果INT 21HMOV AH9MOV DXOFFSET RETURN 显示一个回车INT 21HEXIT:MOV AH4CH 退出INT 21HCODE ENDSEND BEG 第1 页

4乘4矩阵键盘输入数码管显示四位数

XX航空航天大学 综合课程设计三相步进电机控制器电路的设计 班级94020101 学号23 学生姓名XXXXXXXXX

指导教师常丽东 课程设计任务书 一、设计说明 步进电机是工业过程控制及仪表控制中的主控元件之一,作为执行元件其特点为能够快速起启停、精度高且能直接接收数字量,由于这些特点使其在定位场合得到了广泛的应用。 设计一个三相步进电机控制器,使其能够控制步进电机的工作状态,如步进电机正、反转,步进电机的工作方式等。 用键盘设定步进电机的工作频率,工作方式,并用数码管显示设定值,可以通过按键来更换显示内容。用示波器观测三相的输出波形,并用数码管显示电路的工作状态。 二、技术指标 步进电机的工作频率为:<10kHz 三、设计要求 1.进行方案论证,提出一个合理的设计方案并进行理论设计; 2.对所设计的方案部分进行调试; 3.在选择器件时,应考虑成本。 4.设计测量调试电路。 四、实验要求 1.根据技术指标制定实验方案;验证所设计的电路。

2.进行实验数据处理和分析。 五、推荐参考资料 1.谢自美.电子线路设计·实验·测试. [M]XX:华中理工大学,2000年 2.阎石.数字电子技术基础.[M]:高等教育,2006年 3.童诗白、华成英.模拟电子技术基础.[M]:高等教育,2006年 4..付家才.电子实验与实践.[M]:高等教育,2004年 5.沙占友、李学芝著.中外数字万用表电路原理与维修技术. [M]:人民邮电,1993年 六、按照要求撰写课程设计报告

成绩评定表

一、概述 本次毕设的题目是:三相步进电机控制电路的设计。本次毕设使用80C51单片机作为主控芯片,利用ULN2003A集成电路作为三相步进电机的驱动电路,采用单极性驱动方式,使三相步进电机能在(1)三相单三拍,(2)三相双三拍,(3)三相六拍三种工作方式下正常工作;能实现的功能有:启动/停止控制、方向控制;速度控制;用LED数码管显示工作方式。键盘输入工作频率。本次课程设计采用80C51单片机作为主控芯片,程序采用C语言来编写,驱动电路采用ULN2003A 集成电路,显示采用7SEG-MPX4-CC,即四位共阴数码管,P0接段码,并用8 只1K欧左右电阻上拉。P2的4 位IO口接位选码。正转,数码管显示1。反转,数码管显示2.不转,数码管显示0.采用Proteus软件进行仿真。在Keil uVsuon3编程环境下编程和编译生成HEX文件,导入到80C51单片机,实现对各个模块的控制,实现我们所需要的功能。 本次课程是对毕业设计的基础设计,即实现4x4键盘输入,数码管显示输入数字的设计。 二、方案论证 1 步进电机驱动方案选择 方案1:使用功率三极管等电子器件搭建成功率驱动电路来驱动电机的运行。这种方案的驱动电路的优点是使用电子器件联接,电路比较简单,但容易受干扰,信号不够稳定,缺点是器件较大而不便电路的集成,使用时很不方便,联接时容易出错误。 方案2:使用专门的电机驱动芯片ULN2003A来驱动电机运行。驱动芯片的优点是便于电路的集成,且驱动电路简单,驱动信号很稳定,不易受外界环境的

实验三 从键盘输入数据并显示

实验2 从键盘输入数据并显示 编写程序,将键盘接收到的4位16进制数转换为等值的二进制数,再显示在荧光屏上。 分析:整个程序分为3个部分:键盘输入、转换、显示,可以分别用子程序来完成。 1. 输入。输入可以利用字符串输入。这时需要在主程序中先开辟一段输入缓冲区。 先复习一下字符串输入的知识。 字符串输入 ( 0AH 功能 ) 入口参数 DS : DX = 缓冲区的首地址 ( DS :DX ) = 限制最多输入的字符数 功能号 AH = 0AH 类型号 21H 出口参数 ( DS : DX+1 ) = 实际键入的字符(不含回车符) 从( DS : DX+2 )开始顺序存放键入的字符串, 回车符0DH为串尾最后一字符。 实现功能等待从键盘输入字符串,并存入设定的缓冲区内, 同时回显字符串,光标随着移动, 回车符使光标回到行 首。 注意事项:应按要求先定义缓冲区,再调用。 数据缓冲区的设置如下: data SEGMENT ;定义缓冲区 stri DB ‘PLEASE INPUT’ ,0AH,0DH, ’$’ ;输入提示 max DB 4 ;定义限制最多输入个数 lenth DB ? ;用于存放实际输入个数 stri DB 5 DUP(?) ;用于存放输入的字符串 data ENDS 从键盘输入‘ABCD’, 回车,内存的存放结果: 子程序如下: INPUT PROC LEA DX, stri MOV AH, 09H ;调显示功能

INT 21H LEA DX , max MOV AH , 0AH INT 21H ; 调0A输入功能 RET INPUT ENDP 2. 转换。由于在缓冲区中存放的是输入字符的ASCII码,比如 1→31H,A→41H ,a→61H,所以首先需要将它们转换成对应的数字的大小。如1→0000,0001B,A和a→1010。 如何转换? 数字和字母的ASCII码是一个有序序列 数字0~9 : 30H ~ 39H 大写字母A~Z : 41H ~ 5AH 小写字母a~z : 61H ~ 7AH 对于每个字符,先减去30H,数字0~9就转换完了;如果判断是否大于09H,是则减去07H,大写字母A~F转换完毕,如果是小写字母a~f,还要减去20H。 假设用SI间指数据缓冲区,程序段如下: MOV AL, [SI] ;应用输入字符 SUB AL,30H CMP AL, 09H ;大于09H, 则为字符 JLE LOOP1 ;为字母A~F的ASCII SUB AL, 07H LOOP1: CMP AL, 20H JLE NEXT1 ;为字母a~f的ASCII SUB AL, 20H NEXT1: …… ;后续处理 利用一个循环就可以将4个字符转换成相应的二进制数。 现在,在数据缓冲区中存放的是输入的16进制数每一位的值,占用了4个字节,每个字节只用到低四位。 如:输入为ABCD,则缓冲区中存放的是:0AH,0BH,0CH,0DH。 实验要求将输入的4位16进制数转换成等值的二进制数,也就是一个字,所以还要将这4个字节进行组合。 组合方法如下: 取出最高的两位,如0AH,0BH,放入寄存器AX中,(注意:AH=0BH,AL=0AH),将AL左移4位,变成A0H,和AH相“或”,得到AL=ABH,存入BH寄存器;同理将后两个字节组合成一个字节,存入BL寄存器。

从键盘上输入4个16进制数

;从键盘上输入4个16进制数,转换成10进制数并输出。(区分大小写,只认数字和字符);550408.asm DA TA SEGMENT STR1 DB 'INPUT A HEX NUM: $' HEX DB 5 ;计划输入的字符个数(含回车符) NNN DB 0 ;存放实际输入的字符个数 DB 5 DUP(?) BIN DW ? ;输入数字的二进制形式的存放单元 ERR DB 0AH, 0DH, ' ERROR !' DB 0AH, 0DH, ' I HA VE NO TIME TO PLAY WITH YOU ! $' STR2 DB 13, 10, 'BINARY IS: $' DA TA ENDS ;-------------------------------------------- STACK SEGMENT PARA STACK 'STACK' DB 100 DUP(?) STACK ENDS ;-------------------------------------------- CODE SEGMENT ASSUME CS:CODE, SS:STACK, DS:DA TA START: MOV AX, DA TA MOV DS, AX MOV AX, STACK MOV SS, AX LEA DX, STR1 ;'INPUT A HEX NUM' MOV AH, 9 ;显示字符串 INT 21H LEA DX, HEX MOV AH, 10 ;等着输入四位HEX数 INT 21H ;--------------------------------------- ;下面进行转换 MOV BIN, 0 ;先把二进制数字单元清零 LEA SI, HEX + 2;取输入字符串的首地址 MOV CH, NNN ;取输入字符的个数,用来控制循环处理的次数 CONV: MOV BL, [SI] ;取来一个字符 CMP BL, 0DH ;和回车符进行比较

键盘输入两位小数,4位八段LED显示

天津工业大学 理学院 《EDA课程设计》报告书 姓名: 班级: 学号: 时间:成绩:分 原理图文件名 PCB图文件名 指导教师评语 关于设计方案 关于原理图设计 关于PCB图设计 指导教师: 2012年月日

同组者姓名同组者班级相关软件和程序Protel DXP 2004 设计题目键盘输入2位整数2位小数4位八段LED显示设计指标运用AT89C52单片机设计电路达到预期效果 设计过程1. 确定“设计方案”的过程: 通过运用以AT89C52单片机为数据运算核心;外部电源电路提供电源是整个硬件系统正常工作;外部连接矩阵键盘提供数据输入和功能键;使用LED 实现输入数据和运算结果的显示。 LED显示器具有以下特点:低压微功耗;平板型结构;被动显示型;显示信息量大且易于彩色化,无电磁辐射,长寿命等。 AT89C52单片机与LED液晶显示屏显示电路是整个电路的核心他们实现系统的功能要求。 2. 上机设计原理图的过程(另页附原理图): 3. 上机设计原理图的过程(另页附PCB图): 参考资料1.华成英, 童诗白. 模拟电子技术基础, 高等教育出版社, P185—P205,集 成电路相关内容, P259——P271.负反馈电路。2008年 2.阎石. 数字电子技术基础, 高等教育出版社, P262—P326,关于逻辑电路 设计内容,2008年 3.龙马工作室,Protel2004完全自学手册,人民邮电出版社,2005年学 习一些关于基本原理图的制作和PCB图的设计。 收获和体会 此次课程设计涉及到了很多方面的知识,在设计中,也学到了很多以前没有见到的元器件的性能参数和功能,也是对单片机的实际应用,把平时所学的知识应用于实践,理论联系实践的结合,我们对单片机知识的学习更加熟悉,并且有了更深刻的认识。设计最大的收获就是熟悉了整个设计的流程以及系统的工作原理,以后需要多进行此类设计训练,一进一步提高自身的实践能力,那样也可以学到很多平时接触不到但又很重要的知识。

从键盘输入一个四位数,按如下规则加密后输出

作业3 1、从键盘输入一个四位数,按如下规则加密后输出。加密规则:每位数字都加上用和 除以10的余数取代该数字,再把第一位与第三位交换,第二位与第四位交换。 clear x=on es(1,4); x(1)=input('输入第一位:’); x(2)=input('输入第二位:’); x(3)=input('输入第三位:’); x(4)=input('输入第四位:’); x=rem(7+x,10); y=1000.*x (3)+100.*x (4)+10.*x(1)+x(2) 2、分别用if语句和switch语句实现以下计算,其中 2 ax bx c,0.5 x 1.5 c y asin b x,1.5 x 3.5 In b c,3.5 x 5.5 x a=input('请输入a:'); b=input('请输入b:'); c=input('请输入c:'); if(x>=0.5&& x<=1.5) y=a.*x A2+b.*x+c elseif(x>=1.5&& x<=3.5) y=a.*(si n(b))A c+x elseif(x>=3.5&& x<=5.5) y=log(abs(b+c./x)) end a=input('请输入a:'); b=input('请输入b:'); c=input('请输入c:'); switch x case (x>=0.5&&x<=1.5) y=a.*xA2+b.*x+c case (x>=1.5&&x<=3.5) y=a.*(si n(b))A c+x case (x>=3.5&&x<=5.5) y=log(abs(b+c./x)) end 3、已知 s 1 2 22237,然后 a, b, c的值从键盘输入。 63

C语言作业1

实验一:顺序结构程序设计(实验内容) 1:已知华氏温度与摄氏温度之间的计算公式如下: c=5*(f-32)/9 其中:c表示摄氏温度,f表示华氏温度。 要求,键盘输入摄氏温度,计算对应的华氏温度。请编程实现。 2:通过键盘输入两个实数x,y,请编程计算并输出z=x+|y|。 3:假设键盘输入一个合法的四位数n,请编程计算并输出n的个位d1、十位d2、百位d3、千位d4的立方和(即输出d13+d23+d33+d43)。 #include int main( void ) { float c , f; printf("请输入一个摄氏温度:\n"); scanf("%f", &c); f=9*c/5+32; printf("摄氏温度:%.2f 对应的华氏温度为%.2f\n",c,f); return 0 ; } #include int main(void) { int f,e,d1,d2,d3,d4; scanf("%d",&f); d1=f/1000; d2=(f%1000)/100; d3=((f%1000)%100)/10;

d4=((f%1000)%100)%10; e=d1*d1*d1+d2*d2*d2+d3*d3*d3+d4*d4*d4; printf("%d",e); return 0; } #include #include int main( void ) { int x,y,z; scanf("%d,%d",&x,&y); z=x+abs(y); printf("%d",z); return 0; }

相关文档
最新文档