第五个试验:跟我学作单片机运算加减乘除法----51单片机汇编语言试验教程
2006-11-23 16:26
232 查看
看到这个题目,呵呵, 可能好多人要打石头哥的板子;7+5等于几啊?这还用你教? 但是单片机里,数字是用
二进制来表示的:这个就有一点拗口啦/
虽然我们的教材到这里你可能还没有学会一个指令。 但是我的意思是首先作几个试验,提高大家对单片机的兴趣。
具体的指令太多了, 不过还好,一般我们只需要记住常用的10-20条就够了。
OK,现在开始动手。
我们写入以下两条指令
MOV P1,#23H
END
这个程序大家想必看得懂, 就是把23H这个16进制数送往P1口(即P1.0--P1.7)
汇编得到HEX烧写后
然后把芯片插入实验卡座; 可以看到P1.0-1.7的状态为;
P1.0 灭
P1.1 灭
P1.2 亮
P1.3 亮
P1.4 亮
P1.5 灭
P1.6 亮
P1.7 亮
(倚天开发套件运行照片)
为什么会这样呢?
注意,因为我们的P1口的8个灯,都是一端接正5V,一端接端口的, 那么呢端口为低电平0。发光管亮。高电平不亮。
从高往低排列(从1.7---1.0)
那么就是00100011。这个数字就是23H啦。什么? 你不信?
好了,请您接着看!00100011二进制呢就是100011, 按照数学的原则前面的0不算数。
跟我打开电脑的程序/附件/计算器 ,然后把计算器设置为科学型。然后点击二进制, 输入100011
然后点击一下十六进制可以看到数字变成了23。这就是我们输入的23H了,
练习:25H+36H?
程序如下:
MOV R0,#25H;将立即数25送寄存器R0
MOV A,#36H;将立即数36送累加器A
ADD A,R0;将R0与A的内容相加,结果在A
NOP;空操作
POV P1,A;将累加器A的值送P1口。
END;结束
将程序编译以后烧入片子运行;可以看到灯的状态为
P1.0 灭
P1.1 灭
P1.2 亮
P1.3 灭
P1.4 灭
P1.5 亮
P1.6 灭
P1.7 亮
就是二进制数01011011。我们还是用上面的计算器来看看结果对不对:先将计算器设置为16进制,输入
25+36= 结果为5E
然后呢再点击二进制结果为1011110,可见结果完全正确〉
大家接着可以自行练习
减法指令SUBB
乘法指令 MUL
除法指令 DIV
的用法, 相信经过这一节的学习, 大家对这几个指令的印象会非常深刻了。同时让我们对于计算机的数字有了一个
深刻的认识。
二进制来表示的:这个就有一点拗口啦/
虽然我们的教材到这里你可能还没有学会一个指令。 但是我的意思是首先作几个试验,提高大家对单片机的兴趣。
具体的指令太多了, 不过还好,一般我们只需要记住常用的10-20条就够了。
OK,现在开始动手。
我们写入以下两条指令
MOV P1,#23H
END
这个程序大家想必看得懂, 就是把23H这个16进制数送往P1口(即P1.0--P1.7)
汇编得到HEX烧写后
然后把芯片插入实验卡座; 可以看到P1.0-1.7的状态为;
P1.0 灭
P1.1 灭
P1.2 亮
P1.3 亮
P1.4 亮
P1.5 灭
P1.6 亮
P1.7 亮
(倚天开发套件运行照片)
为什么会这样呢?
注意,因为我们的P1口的8个灯,都是一端接正5V,一端接端口的, 那么呢端口为低电平0。发光管亮。高电平不亮。
从高往低排列(从1.7---1.0)
那么就是00100011。这个数字就是23H啦。什么? 你不信?
好了,请您接着看!00100011二进制呢就是100011, 按照数学的原则前面的0不算数。
跟我打开电脑的程序/附件/计算器 ,然后把计算器设置为科学型。然后点击二进制, 输入100011
然后点击一下十六进制可以看到数字变成了23。这就是我们输入的23H了,
练习:25H+36H?
程序如下:
MOV R0,#25H;将立即数25送寄存器R0
MOV A,#36H;将立即数36送累加器A
ADD A,R0;将R0与A的内容相加,结果在A
NOP;空操作
POV P1,A;将累加器A的值送P1口。
END;结束
将程序编译以后烧入片子运行;可以看到灯的状态为
P1.0 灭
P1.1 灭
P1.2 亮
P1.3 灭
P1.4 灭
P1.5 亮
P1.6 灭
P1.7 亮
就是二进制数01011011。我们还是用上面的计算器来看看结果对不对:先将计算器设置为16进制,输入
25+36= 结果为5E
然后呢再点击二进制结果为1011110,可见结果完全正确〉
大家接着可以自行练习
减法指令SUBB
乘法指令 MUL
除法指令 DIV
的用法, 相信经过这一节的学习, 大家对这几个指令的印象会非常深刻了。同时让我们对于计算机的数字有了一个
深刻的认识。
相关文章推荐
- 第二个试验:用单片机点亮一个闪烁的发光管-----51单片机汇编语言试验教程
- 第三个试验:认识单片机发音程序-----51单片机汇编语言试验教程
- 第八个试验:小键盘控制的数字显示----51单片机汇编语言试验教程
- 第01课 了解单片机的原理控制一个LED灯的亮和灭-----51单片机C语言试验教程
- 第一个试验:点亮一个发光管-----51单片机汇编语言试验教程
- 第六个试验:认识数码管扫描程序----51单片机汇编语言试验教程
- 第四个试验:小喇叭发出救护车的声音----51单片机汇编语言试验教程
- 第七个试验:流水灯数字显示综合练习----51单片机汇编语言试验教程
- 《划时代-51单片机C语言全新教程》-第十四章 单片机补遗 概览
- 30章C51学习教程介绍-----51单片机C语言试验教程
- C51的一些常用资料-----51单片机C语言试验教程
- Win10能运行单片机吗?Win10系统不识别51单片机的教程
- 51单片机教程单片机视频教程单片机自学学习入门C语言郭天祥单片机编程入门AD/DA工作原理运放电路
- 什么是单片机?51单片机学前预备知识
- [转]【OpenCV入门教程之十一】 形态学图像处理(二):开运算、闭运算、形态学梯度、顶帽、黑帽合辑
- 加减乘除运算
- 使用“位运算”实现“四则运算”之加减乘除
- 不使用 +-×÷ 运算符来实现 加减乘除 四项运算
- Proguard使用最新,最全教程,亲自试验
- 《划时代-51单片机C语言全新教程》-前言