十进制转十六进制设计
进制数转换二进制八进制十进制十六进制之间转换方法课件

在电子工程中的应用
数字电路设计
电子工程中,数字电路的设计和分析经常需 要使用进制数转换。例如,逻辑电路中的二 进制表示,以及十六进制在寄存器传输级( RTL)描述中的应用。
通过以上的解析与计 算实例,我们可以更 好地理解和掌握混合 进制数的转换与计算 方法。
05 进制数转换的应用
在计算机科学中的应用
计算机内部数据处理
计算机内部使用二进制表示数据,进制数转换是计算机进行算术和逻辑运算的基础。通过掌握进制数 转换方法,可以更好地理解计算机内部数据的表示和处理方式。
编程中的数值表示
将十六进制数"3F"转换为二进制数,结果为"0011 1111"。
十六进制与十进制的转换
转换方法
将十六进制数转换为十进制数时,需要 按权展开,从右往左每位十六进制数的 权值为16的n次方(n从0开始),将每 位十六进制数与其对应的权值相乘并求 和即可得到相应的十进制数。例如,十 六进制数"3F"转换为十进制数的计算过 程为:(3 x 16^1) + (15 x 16^0) = 63 。
解析:首先,将十进 制数23转换为二进制 数10111,然后,二 进制数1010与10111 相加得到100011,最 后,将结果100011转 换回十进制数为35。
实例二:将十六进制 数3F减去八进制数77 。
解析:首先,将十六 进制数3F转换为二进 制数00111111,将 八进制数77转换为二 进制数01110111, 然后进行二进制减法 运算,得到结果 00000100,最后将 结果转换为十进制数 为4。
二进制十进制和十六进制及其相互转换的公式

二进制十进制和十六进制及其相互转换的公式二进制、十进制和十六进制是计算机科学中常用的数制。
在计算机中,数据以二进制的形式表示,但是对于人类来说,二进制形式并不直观,因此使用十进制和十六进制进行数据展示和计算更为常见。
本文将介绍二进制、十进制和十六进制之间的转换公式。
一、二进制转十进制二进制是由0和1两个数字组成的数制。
每一位二进制位所代表的数值是2的n次方,其中n为该二进制位的位置,从右向左逐渐增加。
例如,二进制数1101,可以表示为:(1*2^3)+(1*2^2)+(0*2^1)+(1*2^0)=8+4+0+1=13所以二进制数1101等于十进制数13二、十进制转二进制十进制数是由0-9这十个数字组成的数制。
将十进制数转换成二进制数的方法是不断地对十进制数进行除以2的整除运算,直到商为0,然后将每次的余数倒序排列。
例如,将十进制数53转换成二进制数:53÷2=26余126÷2=13余013÷2=6余16÷2=3余03÷2=1余11÷2=0余1三、十六进制和二进制、十进制的转换十六进制数是由0-9这十个数字和A-F这六个字母组成的数制,其中A代表10,B代表11,依此类推,F代表15、十六进制数可以很方便地将二进制数字转换成较短的字符表示,同时也更加直观。
1.二进制转十六进制:将二进制数每四位一组,从右向左进行分组,并将每个分组转换成对应的十六进制字符。
0110(6)1101(D)0101(5)1011(B)转换结果为6D5B。
2.十六进制转二进制:将十六进制数中的每个字符逐个转换成对应的四位二进制数。
例如,将十六进制数3A转换成二进制数:3->0011A->10103.十六进制转十进制:将十六进制数中的每个字符逐个转换成对应的十进制数,然后将这些十进制数相加即可得到结果。
例如,将十六进制数1F转换成十进制数:1*16^1+F*16^0=16+15=31所以十六进制数1F等于十进制数314.十进制转十六进制:将十进制数不断地进行除以16的整除运算,直到商为0,然后将每次的余数倒序排列,并将每个余数转换成对应的十六进制字符。
十六进制和十进制的转换方法

十六进制和十进制的转换方法嘿,咱今儿就来讲讲十六进制和十进制的转换方法,这可有意思啦!你想想,十进制咱平时用得多熟啊,那就是十个数字 0 到 9 嘛,掰着手指头都能数过来。
可十六进制呢,就多了些新朋友,除了 0 到 9这几个老相识,还多了 A、B、C、D、E、F 这几个家伙。
那怎么从十进制变成十六进制呢?这就好比你要把一堆苹果分成不同的小组。
比如说十进制的 15 吧,先看看 15 里面有几个 16,哎呀,一个都没有呢,那就在十六进制里先写上 0。
然后剩下 15 个,这 15 个正好对应十六进制的 F 呀,所以 15 转换过去就是 F。
再比如十进制的 256,256 除以 16 等于 16 呀,那十六进制里先写上 10(也就是 A),然后没有余数了,那就是 A0 啦。
反过来,从十六进制转十进制呢,那就像给每个小组的苹果数数一样。
比如十六进制的 1A,A 就是 10 嘛,那就是 16 乘以 1 加上 10 等于 26 呀。
就像你搭积木,十进制是一种搭法,十六进制又是一种搭法,虽然样子不一样,但本质都是那些积木呀!你说这神奇不神奇?其实也不难理解,对吧?只要你多琢磨琢磨,多练习练习,就跟你学会骑自行车一样,一开始可能歪歪扭扭的,但熟练了就顺溜啦!十六进制在计算机里可常用啦,那些程序呀、代码呀,都离不开它。
就像我们生活里的水和电一样,虽然平时你可能不太注意,但没了可不行呀!所以呀,学会十六进制和十进制的转换,就像你多了一把钥匙,可以打开计算机世界的一扇门。
你不想进去看看里面的奇妙景象吗?别犹豫啦,赶紧拿起笔来算算,说不定你一下子就搞懂啦!你还在等什么呢?加油呀!相信你肯定能行的!。
二进制八进制十进制十六进制之间的转换算法

二进制八进制十进制十六进制之间的转换算法二进制、八进制、十进制和十六进制是计算机中常用的数字系统。
它们之间的转换可以通过一些简单的算法实现。
下面我将分别介绍二进制到八进制、十进制和十六进制的转换算法,八进制到二进制、十进制和十六进制的转换算法,十进制到二进制、八进制和十六进制的转换算法,以及十六进制到二进制、八进制和十进制的转换算法。
1.二进制转八进制、十进制和十六进制的转换算法:-二进制转八进制:首先将二进制数按照从右向左每三位分组,不足三位的在左边补零,然后将每组转换为对应的八进制数即可。
(1)将二进制数按照从右向左每三位分组得到001011,不足三位的在左边补零;-二进制转十进制:二进制数的每一位乘以2的幂,然后将结果求和即可。
-二进制转十六进制:首先将二进制数按照从右向左每四位分组,不足四位的在左边补零,然后将每组转换为对应的十六进制数即可。
(1)将二进制数按照从右向左每四位分组得到00010110,不足四位的在左边补零;2.八进制转二进制、十进制和十六进制的转换算法:-八进制转二进制:将八进制数的每一位转换为对应的三位二进制数即可。
例如,将八进制数13转换为二进制数:-八进制转十进制:将八进制数的每一位乘以8的幂,然后将结果求和即可。
例如,将八进制数13转换为十进制数:1×8^1+3×8^0=11,所以13的十进制表示为11-八进制转十六进制:首先将八进制数转换为二进制数,然后将二进制数按照从右向左每四位分组,不足四位的在左边补零,最后将每组转换为对应的十六进制数即可。
例如,将八进制数13转换为十六进制数:(2)将二进制数按照从右向左每四位分组得到00000101,不足四位的在左边补零;(3)将每组转换为对应的十六进制数得到05,所以13的十六进制表示为053.十进制转二进制、八进制和十六进制的转换算法:-十进制转二进制:将十进制数不断除以2,直到商为0,将每一步的余数从最后一步开始依次排列即可。
java 10进制转16进制,不足补0方法

java 10进制转16进制,不足补0方法(实用版2篇)目录(篇1)1.Java 中进制转换的方法2.十进制转十六进制的方法3.不足补 0 的方法4.示例代码正文(篇1)在 Java 编程语言中,进制转换是一种常见的操作。
当我们需要将一个十进制数转换为十六进制数时,可以采用以下方法。
同时,如果转换后的结果位数不足,可以通过补 0 的方式进行填充。
首先,我们来了解 Java 中进制转换的方法。
在 Java 中,可以使用`Integer.toUpperCase()`和`Integer.toLowerCase()`方法进行进制转换。
这两个方法分别用于将整数转换为大写和小写的十六进制字符串。
例如:```javaint decimal = 123;String hex = Integer.toUpperCase(decimal); // 结果为 "123"```接下来,我们来探讨十进制转十六进制的方法。
可以先使用`Integer.toUpperCase()`方法将整数转换为十六进制字符串,然后检查结果是否为"0"。
如果是,说明该整数的十六进制表示为 0,这时我们需要在后面补 0。
例如:```javaint decimal = 123;String hex = Integer.toUpperCase(decimal); // 结果为 "123"if (hex.equals("0")) {hex = "0" + hex;}```然后,我们来学习不足补 0 的方法。
这里可以使用字符串的`padStart()`方法在字符串开头补 0,直到字符串长度达到要求的位数。
目录(篇2)1.Java 中进制转换的方法2.十进制转十六进制的原理3.实现十进制转十六进制的代码示例4.不足补 0 的方法正文(篇2)在 Java 编程语言中,进制转换是一种常见的操作。
ascii转十六进制算法

ascii转十六进制算法ASCII码是一种常见的字符编码方式,它将字符映射为数字,便于计算机进行处理和存储。
而十六进制是一种数制,使用0-9和A-F 共16个字符来表示数值。
本文将介绍ASCII转十六进制的算法。
在ASCII码中,每个字符都对应着一个唯一的数字。
例如,字母A 对应的ASCII码是65,字母B对应的ASCII码是66,以此类推。
而十六进制则是将数值以16为基数来表示,使用0-9和A-F代表0-15这16个数。
将ASCII码转换为十六进制的算法如下:1. 输入一个ASCII字符。
2. 将ASCII字符转换为对应的十进制数值。
3. 将十进制数值转换为十六进制数值。
4. 输出十六进制数值。
下面,我将通过实例来详细介绍ASCII转十六进制的算法。
假设我们要将字符'A'转换为十六进制。
首先,我们需要查找字符'A'对应的ASCII码。
根据ASCII码表,我们可以找到字母'A'的ASCII码是65。
接下来,我们将65转换为十六进制。
将65除以16,商为4,余数为1。
再将商继续除以16,商为0,余数为4。
因此,65的十六进制表示为41。
所以,字符'A'的十六进制表示为41。
同样的方法,我们可以将其他字符转换为十六进制。
例如,字符'B'的ASCII码为66,将66转换为十六进制,得到的结果是42。
字符'C'的ASCII码为67,将67转换为十六进制,得到的结果是43。
除了单个字符,我们还可以将字符串转换为十六进制。
例如,将字符串"Hello"转换为十六进制。
我们需要将字符串中的每个字符转换为对应的ASCII码。
字符串"Hello"的ASCII码分别是72、101、108、108、111。
接下来,我们将每个ASCII码转换为十六进制。
72的十六进制表示为48,101的十六进制表示为65,108的十六进制表示为6C,111的十六进制表示为6F。
一篇教程教你学会Python进制转换(十进制转二进制、八进制、十六进制)
⼀篇教程教你学会Python进制转换(⼗进制转⼆进制、⼋进制、⼗六进制)⼀、导⾔导语:在计算机进⾏数据交换时,常常会有⼀个进制转换的过程,我们知道计算机只认0 和 1.在内存系统中,基本基于⼆进制进⾏运算的,但是有时候数据过于庞⼤,为了⽅便存储管理,计算机会使⽤⼗六进制存储数据,但是怎么实现数据转换呢?我们⼈类由⼗根⼿指头,所以⾃然就使⽤⼗进制啦,每当我们数数字到10之后,于是就重0 开始继续数,所以逢⼗进⼀就这么来了。
对于其它进制呢,也是同样的,⽐如最常见的⼆进制,也就是逢⼆进⼀,慢慢来,依次类推,所以数学的世界是多么的奇妙呀!今天给⼤家带来的是使⽤ Python 实现进制转换,内容包括如下:dec(⼗进制)—> bin(⼆进制)dec(⼗进制)—> oct(⼋进制)dec(⼗进制)—> hex(⼗六进制)⼆、各种进制介绍在转换之前,我们先了解以下各种进制⼗进制(Decimal)我们所熟知的⼗进制,其实是从 0 开始,数到 9 之后,就跳到 10,这样就变成了 10,数数⼤家总会把⼆进制(Binary)⼆进制同理,从 0 开始也就是 00(前⾯的⼀个0可以省去,但是为了更好的描述,所以保留),到 01,也变成了 10【对应⼗进制中的 3】,然后是 11【对应⼗进制中的 4】,100【⼗进制中的5】。
以此类推因为⼆进制的英⽂单词是 binary,所以在计算机运算的过程中,使⽤⼆进制会⽤如下⽅法,0b11(4),0b1101(13)等等⼋进制(Octal)理解了⼆进制,在理解⼋进制就很容易了,⼋进制是逢⼋进⼀,范围是 0~7,对⽐⼀下⼆进制,就很好理解啦!!⼗六进制(Hexadecimal)⼗六进制就可能会相对复杂⼀点点,⼗六进制是⽤数字 0~9 和英⽂字母 A - F(⼤⼩写随意) 表⽰,因此 A代表 10, F代表15。
为什么在计算机领域中,⼗六进制⽤途会如此⼴泛呢?给⼤家看⼀个对⽐:当数据⽐较⼤的时候,⼆进制显然不再那么使⽤,再看使⽤⼗六进制,就简短很多。
二进制_八进制_十进制_十六 进制之间的相互转换
二进制,八进制,十进制,十六进制之间的相互转换和相关概念二进制:计算机只认识0或1,也就是高电平和低电平.所以所有的数据格式最终会转化为2进制形式,计算机硬件才能识别。
二进制逢二进一,八进制逢八进一,十进制逢十进一,十六进制逢十六进一。
下边是各进制之间的转换公式.二进制转十进制0110 0100(2) 换算成十进制第0位 0 * 2^0 = 0第1位 0 * 2^1 = 0第2位 1 * 2^2 = 4第3位 0 * 2^3 = 0第4位 0 * 2^4 = 0第5位 1 * 2^5 = 32第6位 1 * 2^6 = 64第7位 0 * 2^7 = 0 +---------------------------100二进制转八进制可采用8421法1010011(2)首先每三位分割即: 001,010,011不足三位采用0补位.然后采用8421法: 001=1010=2011=3所以转换成8进制是123二进制转十六进制1101011010100(2)首先每四位分割即: 0001,1010,1101,0100不足四位采用0补位.然后采用8421法: 0001:11010:A1101:D0100:4所以转换成十六进制是1AD4十六进制当数字超过9后将采用A代替10,B代替11,C代替12,D代替13,E 代替14,F代替15;下边是十进制的各种转换:十进制转二进制6(10)10进制数转换成二进制数,这是一个连续除2的过程:把要转换的数,除以2,得到商和余数,将商继续除以2,直到商为0。
最后将所有余数倒序排列,得到数就是转换结果。
商余数6/2 3 03/2 1 11/2 0 1最后把余数从下向上排列写出110即是转换后的二进制.十进制转换八进制10进制数转换成八进制数,这是一个连续除8的过程:把要转换的数,除以8,得到商和余数,将商继续除以8,直到商为0。
最后将所有余数倒序排列,得到数就是转换结果。
120(10)商余数120/8 15 015/8 1 71/8 0 1最后把余数从下向上排列写出170即是转换后的八进制.十进制转换十六进制10进制数转换成十六进制数,这是一个连续除16的过程:把要转换的数,除以16,得到商和余数,将商继续除以16,直到商为0。
python进制转换程序设计
python进制转换程序设计Python进制转换程序设计一、引言进制转换是计算机科学中的基本操作之一,而Python作为一门强大的编程语言,也提供了丰富的函数和方法来进行进制转换。
本文将介绍如何使用Python编写一个简单的进制转换程序,以及一些常用的进制转换方法。
二、程序设计1. 十进制转二进制要将十进制数转换为二进制数,可以使用Python内置函数bin()。
该函数将十进制数转换为以"0b"开头的二进制字符串。
例如,将十进制数10转换为二进制数,可以使用以下代码:```decimal_num = 10binary_num = bin(decimal_num)print(binary_num) # 输出:0b1010```2. 十进制转八进制要将十进制数转换为八进制数,可以使用Python内置函数oct()。
该函数将十进制数转换为以"0o"开头的八进制字符串。
例如,将十进制数15转换为八进制数,可以使用以下代码:```decimal_num = 15octal_num = oct(decimal_num)print(octal_num) # 输出:0o17```3. 十进制转十六进制要将十进制数转换为十六进制数,可以使用Python内置函数hex()。
该函数将十进制数转换为以"0x"开头的十六进制字符串。
例如,将十进制数255转换为十六进制数,可以使用以下代码:```decimal_num = 255hex_num = hex(decimal_num)print(hex_num) # 输出:0xff```4. 二进制转十进制要将二进制数转换为十进制数,可以使用Python内置函数int()。
该函数将字符串表示的二进制数转换为十进制数。
例如,将二进制数"1010"转换为十进制数,可以使用以下代码:```binary_num = "1010"decimal_num = int(binary_num, 2)print(decimal_num) # 输出:10```5. 八进制转十进制要将八进制数转换为十进制数,可以使用Python内置函数int()。
excel 10进制转换16进制公式 2位
Excel是一款功能强大的电子表格软件,它可以进行各种数据的计算和处理。
在Excel中,经常需要将10进制数转换成16进制数,以便进行进制转换和数据显示。
通过合适的公式,我们可以轻松地在Excel 中进行10进制数到16进制数的转换。
要在Excel中将10进制数转换成16进制数,可以使用以下公式:1. 需要确认要转换的10进制数所在的单元格。
假设要转换的10进制数为A1。
2. 在另一个单元格(假设为B1)中输入以下公式:`=DEC2HEX(A1,2)`3. 通过以上公式,Excel会将A1中的10进制数转换成2位的16进制数,并显示在B1中。
4. 如果需要转换成其他位数的16进制数,可以在公式中修改第二个参数。
要转换成4位的16进制数,可以输入以下公式:`=DEC2HEX(A1,4)`通过以上公式,我们可以在Excel中实现10进制数到16进制数的转换。
需要注意的是,以上公式中的DEC2HEX函数是Excel中的内置函数,用于将10进制数转换成16进制数。
第一个参数是要转换的10进制数,第二个参数是指定转换后的16进制数的位数。
通过合理使用这个函数,我们可以方便地在Excel中进行10进制数到16进制数的转换。
这里以一个实际例子来演示以上公式的使用。
假设A1单元格中输入了一个10进制数10,我们希望将其转换成2位的16进制数。
在B1单元格中输入公式`=DEC2HEX(A1,2)`后,B1单元格会自动显示出对应的16进制数"A"。
通过以上介绍的公式,我们可以在Excel中轻松地实现10进制数到16进制数的转换。
这对于进行进制转换和数据显示非常有用。
希望本文的介绍能够帮助大家更好地应用Excel进行数据处理和计算。
不完整的转换公式可能是由于对DEC2HEX函数的原理和参数理解不够深入。
下面我们来详细解释一下DEC2HEX函数的使用方法和原理。
DEC2HEX函数是Excel中用于将十进制数转换成十六进制数的函数。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
综合实验报告实验名称:51单片机实现十进制转十六进制设计学院:机械与汽车工程学院专业:测控技术与仪器班级:测控121班姓名:徐永学号:3120103143时间指导教师:姚宏志目录一、摘要 (3)二、实验任务 (3)三、总体设计 (3)四、详细设计 (4)1、单片机最小系统设计 (4)2、数码管驱动电路 (5)3、电路原理图 (8)4、PCB图 (9)5、程序框图 (10)6、程序设计 (11)五、调试与运行结果 (15)六、参考资料及参考文献 (15)七、心得体会 (15)一、摘要进制转换是人们利用符号来计数的方法,包含很多种数字转换。
进制转换由一组数码符号和两个基本因素(“基”与“权”)构成。
常用进制有十进制、二进制、八进制、十六进制等,各进制数之间可以通过一定方法进行转换。
实验用到89C51单片机,89C51是一种带4K字节闪烁可编程可擦除只读存储器(FPEROM—Falsh Programmable and Erasable Read Only Memory)的低电压、高性能CMOS8位微处理器,俗称单片机。
单片机的可擦除只读存储器可以反复擦除100次。
该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。
由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的89C51是一种高效微控制器,89C2051是它的一种精简版本。
89C单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。
二、实验任务实验内容:应用89C51单片机设计出一种十进制—十六进制转换器,转换器要求如下:1)由三个按键实现十进制数的输入及转换确认2)在转换过程中由三位一体数码管实时显示数据三、总体思路主控芯片选用AT89C51,并用其P0端口控制数码管段选,P2端口控制数码管位选。
在数码管显示时由74LS07进行驱动。
转换器总体框图如下:图一:设计总体框图四、详细设计1、单片机最小系统设计单片机工作的最基本电路的构成为:单片机、电源、时钟电路、复位电路。
图一:单片机最小系统1.1、时钟电路时钟电路就是振荡电路,向单片机提供一个正弦波信号作为基准,决定单片机的执行速度。
AT89S51单片机时钟频率范围:0 — 33MHz。
电路如下:图二:时钟电路1.2、复位电路复位电路产生复位信号,使单片机从固定的起始状态开始工作,完成单片机的“启机”过程。
AT89S51单片机复位信号是高电平有效,通过RST/VPD(9脚)输入。
电路如下:2、数码管驱动电路2.1、数码管结构数码管内部由七个条形发光二极管和一个小圆点发光二极管组成,根据各管的亮暗组合成字符。
常见数码管有10根管脚。
管脚排列如下图所示。
其中COM 为公共端,根据内部发光二极管的接线形式可分为共阴极和共阳极两种。
实验使用的为共阴极数码管,共阴极数码管公共端接地。
每段发光二极管需5~10mA的驱动电流才能正常发光,一般需加限流电阻控制电流的大小。
2.2、数码管显示原理LED数码管的a~g七个发光二极管。
加正电压的发光,加零电压的不能发光,不同亮暗的组合就能形成不同的字型,这种组合称为字型码。
共阳极和共阴极的字型码是不同的。
把一个共阳极的数码管接到STC89C52RC单片机的P0口上,举例,让此数码管显示数字0分析:共阳极的数码管,COM端为高电平,数据段为低电平时,对应的段亮。
则p0.7 p0.6 p0.5 p0.4 p0.3 p0.2 p0.1 p0.0接dp g f e d c b a对应电平为1 1 0 0 0 0 0 02.3、数码管驱动电路设计P0口:是一组8位漏极开路双向I/O口,也即地址/数据总线复用口。
作为输出口用时,每位驱动8个TTL逻辑门电路,对端口写“I”可作为高阻抗输入端用。
在访问外部数据存储器或程序存储器时,这组口线分时转换地址(低8位)和数据总线复用,在访问期间激活内部上拉电阻。
在Flash编程时,P0口接受指令字节,而在程序校验时,输出指令字节,校验时,要求外接上拉电阻。
P0口输出电流不到1ma,无法使数码管发光,所以在单片机与数码管见接74ls07,以驱动数码管。
电路如图所示:P0端口值段选74ls07 位选74ls07显示输入输出输入输出高电平低电平高电平低电平高电平低电平高电平低电平0x7f 1.67v 0v 2.2v 0.23v 4.7v 0v 1.1v 0.31v 9 0x07 1.63v 0v 2.2v 0.26v 4.7v 0v 1.3v 0.34v 8 0x7d 1.62v 0v 2.3v 0.19v 4.7v 0v 0.99v 0.33v 7 0x6d 1.68v 0v 2.0v 0.2v 4.7v 0v 1.1v 0.33v 63、电路原理图4、PCB图(用于雕刻pcb板)5、程序框图7、程序#include<reg52.h>#define uint unsigned int#define uchar unsigned charuchar code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71} ;//uint addr[0xfe,0xfb,0xf7];sbit duan=P2^6;sbit wela=P2^7;sbit key1=P3^4;sbit key2=P3^5;sbit key3=P3^6;sbit key4=P3^7;uint nume=000;uint flag1,temp1,temp2,temp3,temp4,addr,tt,bai,shi,ge; void key() ;void show_data();void delay(uint z);void main(){ while(1){ key();show_data();}}//-----------------------//------------------------void show_data(){wela=1;P0=0xfe;wela=0;P0=0xff;duan=1;P0=table[bai];duan=0;delay(5);P0=0xff;// ------wela=1;P0=0xfd;wela=0;P0=0xff;duan=1;P0=table[shi];duan=0;delay(5);P0=0xff;// ---------------wela=1;P0=0xfb;wela=0;P0=0xff;duan=1;P0=table[ge];duan=0;delay(5);P0=0xff;// ------------switch(flag1){case 1:tt ++;if(tt==2)tt=0;bai=nume/100;shi =nume%100/10;ge= nume%10;// flag1=0;break;case 2 :nume++;bai=nume/100;shi =nume%100/10;ge= nume%10;// flag1=0;break;case 3:nume--;bai=nume/100;shi =nume%100/10;ge= nume%10;// flag1=0;break;case 4:bai=nume/256;shi =nume%256/16;ge= nume%16 ;break;// default:}flag1=0;}//---------------------void key(){if(temp1==0){ delay(10);temp1=key1;if(temp1==0){while(!key1);flag1=1;}}//----------------------------------------- temp2=key2;if(temp2==0){ delay(10);temp2=key2;if(temp2==0){while(!key2);flag1=2;}}// --------------------temp3=key3;if(temp3==0){ delay(10);temp3=key3;if(temp3==0){while(!key3);flag1=3;}}//-----------------temp4=key4;if(temp4==0){ delay(10);temp4=key4 ;if(temp4==0){while(!key4);flag1=4;}}}void delay(uint z){ uint i,j;for(i=z;i>0;i--)for(j=110;j>0;j--);}六、设计资料及参考文献1.张毅刚,单片机原理及应用,高等教育出版社2.胡汉才.单片机原理及其接口技术.清华大学出版社,20043.吴飞青等.单片机原理与应用实践指导.机械工业出版社 2009.2七、心得体会通过两个星期的综合实验,使我对大学所学的课程有了更深刻的认识。
通过进制转换器的制作,我学会了使用89C51单片机组建简单的系统,这个实验是个综合性的实验,首先是单片机的使用,然后是数字电路模拟电路的知识,还要用C语言对单片机进行编程,进而实现仿真。
在制作实物的过程中,我用到了EDA的知识,用protel绘制原理图,然后绘制pcb,最后雕刻出pcb板,最终用数码管显示出转换的结果。
在制作实物的过程中,我遇到了很多问题,通过和搭档的合作以及与姚老师的交流,让我解决了这一个个的问题,这次实验对我的帮助很大,主要是实践能力的提升,使我获益匪浅。