51测试网从 0 开始学单片机入门
教程
人力资源管理pdf成真迷上我教程下载西门子数控教程protel99se入门教程fi6130z安装使用教程
www.51c51.com 版权所有
更详细的信息请登陆 www.8951.com www.51c51.com 51测试网跟我来学单片机第 1 页 共 1 页
深圳 51测试网 www.51c51.com 石学军
2004/6/30 整理编撰
前言 单片机是一门实践性非常强的学科,为此我们突破传统思路,全面围绕单片机试验,从简单的流水灯开
始, 逐步的带领大家从这些简单的几行或者 10几行的程序,来熟悉和理解单片机的指令.
返回 51测试网 网站主页 返回 51测试网 自学单片机
返回 51测试网 系列单片机例子程序 我要参加讨论 如何购买本站产品
目录
第 1篇 倚天版编程试验套件的硬件说明
第 2篇 关于 dais开发环境的操作方法, 初学者可用他来编译文件, 软件仿真
第 3篇 倚天版实验部分原理图硬件链接
第 4篇 入门程序
1 把所有端口的同时置高置低,不断闪烁
2 p1口 3路流水灯理解 2进制数与端口的关系
3 单片机的加法:把 52h+0fch 结果送 p1口
4 单片机的乘法:把 ff*03h 结果送 p1
5 单片机的二进制加法
6 单片机的两位计数器
7 学习单片机的逻辑运算
8 进一步学习单片机的逻辑运算
9 循环移位指令的流水灯
10 理解熟悉散转结构的程序
11 位操作指令的学习
12 比较指令的学习与 cy位
13 该程序的功能是小喇叭 1khz信号
14 按 p3.5 10次 p1口 led按照 2进制加 1
15 使用定时器实现长时间的延时.
16 中断的响应,p3.3的小喇叭 1khz输出
17 p3.2的键盘数码管显示 0
18 中断的响应,两级中断嵌套
19 顺序程序的结构
20 p1口的 led闪烁 10次后停止子程序的嵌套
倚天版编程试验一体化自学 8051单片机开发套件
倚天版编程试验一体化开发套件,适合于零基础,或者初中级单片机爱好者使用,并适合于单片机程
序员的前期试验.他由一个多功能的 51烧写器和一个具有扩展功能的多功能试验板组成.同时标配2片试验
用 AT89S51,串行试验电缆,遥控器,1602液晶屏.您不需要另外购买其他任何材料即可完成 51单片机的流水
51测试网从 0 开始学单片机入门教程 www.51c51.com 版权所有
更详细的信息请登陆 www.8951.com www.51c51.com 51测试网跟我来学单片机第 2 页 共 2 页
灯,小键盘,数码管动态显示,数码管静态显示,计数器,小喇叭报警器,唱歌.串口通信试验, 24c04 扩展,外
中断,红外遥控,液晶显示等试验.
烧写器部分采用并口编程,烧写速度飞快,实际烧写一个 4K的程序仅需要 4秒的时间.经过我们上千
套的测试,证明其具有烧写的可靠性高,品质稳定的特点.该套件的可以直接烧写的芯片包括
AT89C51,AT89C52,AT89C55,AT89S51,AT89S52,AT
89S53,AT89C51RC,AT89C55WD,AT89S8252,AT89C1
051U,AT89C2051,AT89C4051,D87C51,D87C52 .
套件的试验部分包括了以下的硬件资源
8个Led指示灯 P1口 . 4个小键盘 P3.2, P.3.3 ,
P3.4, P3.5 . 1个小喇叭P3.3 .1个硬件中断
P3.2 .1个硬件复位.
3个双八位的动态扫描数码管 位选
P2.1,P2.2,P2.3,P2.4,P2.5,P2.6 段位
P0.0 P0.7可作 6位显示器, 6位时钟, 计数器
等 , 1个标准 232通信接口.
1个标准的 1602液晶显示器.1个红外线遥控接收头, 1个扩展储存器 24C02. 同时为了便于用户实验的扩
展, 我们还特别设计了 32个可独立扩展的 IO口.可以通过板上的跳线选择将芯片资源外接,这样即可通过
扩展实现不同的功能.
芯片试验也采用零插拔力卡座,轻松插拔,不易损坏芯片.
由于液晶显示技术在工业和民用产品中有重要的作用,也是最重要的人机接口设备.为此我们特别为
这个开发套件设计了一片标准的 1602(2行 16位字符型,HD44780兼容芯片)液晶显示屏,一屏可以显示 2行
16 个字的英文字母,与主板采用排针连接,我们可以利用这个来学习单片机控制液晶显示的原理与方法,掌
握了这个以后, 再学习其他的汉字型或者更大屏幕的液晶显示也不是难事.
与套件配套的标准 ht6221超薄型红外线遥控器,一共 28个有效键位, 用户可根据光盘中 6221.asm文
件 按遥控器 123456789,倚天版显示 123456789, 来分析遥控器解码 ,当然您可以根据这个程序和遥控
器来开发更多有意义的具有遥控功能的单片机程序,这样也就避免了在开发过程中走弯路的情况.
安装使用
软件全面兼容 WINDOWS98, WINDOWSME, WINDOWS2000/XP,全中文操作界面,易学易用.配送的软件光
盘包括了大量的自学单片机教程,程序实例,KEIL正式版, UVW51E中文版,单片机的 C语言入门教程,单片机
以及数字电路的超星格式图书等.
直接点击光盘的驱动程序目录\倚天版驱动\setup.exe,按照提示点下一步直到完成安装.此时在桌面
生成为倚天版驱动.exe 和倚天版 win2000/xp.bat的快捷方式,如果是 98系统直接双击倚天版驱动.exe即
可, 如果是 win2000/winxp系统双击 倚天版 win2000/xp.bat即可. 也可直接将整个倚天版驱动的目录复
制到硬盘, 并去掉所有文件的只读属性, 否则会出现关闭不了软件的情况, 然后,如是win98/me,直接点击
倚天版驱动.exe如果是 win2000/winxp系统双击 倚天版 win2000/xp.bat
编译软件,建议安装开发工具中的 dais 开发环境即可.易学易用,同时光盘中开发工具配有
keil,uvw51e,madwin软件, 大家可根据需要安装.在开发工具目录有这些软件的使用说明的 pdf文档.可以
用 pdf阅读器打开.
将随机的并口线插入电脑的打印口.然后电源插入开发版的电源插孔,打开电源开关,运行软件.程序的主界
面如下
51测试网从 0 开始学单片机入门教程 www.51c51.com 版权所有
更详细的信息请登陆 www.8951.com www.51c51.com 51测试网跟我来学单片机第 3 页 共 3 页
我们以烧写配用的 AT89S51 为例说明使用方法.假定要写入的文件是 test.hex .首先,连接编程器
到计算机并口,然后连接电源.编程器指示灯亮,将 89S51插入 ZIF插座,锁紧手柄.然后启动软件,鼠标单击
在右边的 芯片 下拉框,选择好芯片类型,这里选 89S51 .在 文件 菜单选择 打开 Hex 文件 ,找
到 test.hex 文件,单击 打开 .窗口中显示文件内容,右下角显示校验和.单击 写芯片 按钮,编程器
烧写指示灯亮,烧写完毕报告结果,写入之前会自动擦除芯片内容,写入完毕会自动校验.如果是需要加密,
可以选择加密级别.如烧写 2051,4051 等芯片, 则芯片插入中间较小的烧写卡座.
结构说明
1 并行通信口, 用于连接电缆到电脑打印口下载烧写数据
2 40 脚单片机的烧写卡座,用于 AT89C51/S51 等单片机的烧写. 注意所有卡座插芯片均为芯片
缺口向上 否则会烧毁芯片.下同
51测试网从 0 开始学单片机入门教程 www.51c51.com 版权所有
更详细的信息请登陆 www.8951.com www.51c51.com 51测试网跟我来学单片机第 4 页 共 4 页
3 20脚单片机的烧写卡座,用于 AT89C2051/4051等单片机的烧写
4 试验部分晶体,12mhz
5 实验卡座 用于 C51/S51等兼容 40脚单片机试验
6 8个指示灯接在 P1.0-P1.7, 低电平点亮
7 1602液晶插座.
8 烧写指示灯, 在烧写芯片时他会闪烁, 表示烧写中. 否则通信异常, 请检查并口设置.
9 六位数码管可作计数器,时钟等
10 红外线接收头,端口位置为 P3.7,用于接收红外线遥控信号
11 34pin 排针,从上至下为 P0.0---P3.7,+5V,GND 当取下相邻跳线时端口资源由排针外接,可由
此作外接扩展试验
12 32位跳线,分别为 P0.0---P3.7的选择跳线,插上为板上试验,取下为端口外接
13 24C02储存器,插座安装,用户可自行升级
14 小键盘 P3.2一端接端口一端接地, 按下端口位低电平
15 小键盘 P3.3一端接端口一端接地, 按下端口位低电平
16 小键盘 P3.4一端接端口一端接地, 按下端口位低电平
17 小键盘 P3.5一端接端口一端接地, 按下端口位低电平
18 复位键 作实验时按此键,则试验部分复位运行,用于重启程序.
19 INT跳线,默认向下, 需要时跳于向上可将 INT指示灯的信号引入 P3.5
20 PEN跳线,默认向下,需要时跳于向上可将单片机 29脚接地 请参阅 89C51芯片资料
21 标准 232通信口, 可以做上位机和单片机通信等试验.参照试验程序
22 Int指示灯,开机即会不停闪烁,兼电源指示.配合 int跳线可作中断试验
23 电源开关.注意打开后指示灯会更亮一些.如异常可短路电源开关.
24 电源插座. 插入随机专用 13.8V150MA电源
25 小喇叭,作唱歌或者报警试验用, 端口为 P3.3
注意事项
1 芯片不需要擦除即可直接写入, 此时会自动首先擦除原来的内容.如果需要擦除芯片, 可以用 清空缓
冲区 此时窗口显示全部为 ff, 再执行写入操作即可.
2 开发版对于电源要求较高, 如出现错误, 请检查当地电源电压是否过低.
3 开发版对电脑并口没有特殊要求,一般默认值即可,对于某些笔记本电脑,可能需要把并口设置为并口 1,
地址为 0378-037f,如异常请尝试更改并口模式. 对于 WINDOWS XP 系统可能需要更改控制面板\硬件\端口
\lpt并口属性为 使用任何中断 ,请注意 在点击写入时,中间小卡座下方的 write指示灯应当闪烁. 否
则就是电脑与开发板没有正确的联机,此时应当尝试更改并口地址设置与中断.
5 作液晶显示器实验时须将 P3.0的跳线线取下. 因为液晶用到了 P3.0口 按上图方向插入液晶.液晶功
51测试网从 0 开始学单片机入门教程 www.51c51.com 版权所有
更详细的信息请登陆 www.8951.com www.51c51.com 51测试网跟我来学单片机第 5 页 共 5 页
较大烧写程序时须取下液晶.
6 烧写完成程序请断开电源开关,将烧好的芯片放入右边试验卡座,卡好芯片, 打开电源, 按下 REST 键,
程序即可运行.
配套的 HT6221遥控器的遥控键值如下
键值 丝印 键值 丝印 键值 丝印 键值 丝印
01011111 POWER 01010000 MODE 01011101 STOP 01000100 >||
01000001 MIC 00001010 VOL+ 01000010 LANG 01000110 BAND
01000111 << 01001001 SET 00000101 >> 00000110 L/R
00000111 |<< 00001001 VOL- 01000101 >>| 00000011 OSD
01011100 1 00011110 2 01011110 3 00000010 PBC
01011000 4 00011010 5 01011011 6 00000001 PGM
00011011 7 01011001 8 01011010 9 00011000 GOTO
悬空 0 悬空 10+
配套硬件包括 倚天版开发套件主板一块,精美红色PCB 已经调试好,板载24C02储存器,LM386功放,声音洪
亮 ,并行电缆一根, 试验用串行电缆一根, 1602液晶一个, 超薄HT6221红外线遥控器一个, 配套
13.8V150MA专用电源电源一个,软件光盘一张 含大量的自学单片机教程,程序实例,KEIL正式版, UVW51E
中文版,单片机的C语言入门教程,单片机以及数字电路的超星格式图书等.
使用说明书一份,试验用芯片 AT89S51两片.关于该套件的更多信息和最新源程序请
点击 www.8951.com www.51c51.com
另外我们准备了部分试验例程,这些程序都是在该套件调试通过的,并配有详细的注释说明,用户可根
据这些例程来学习试验其编程方法和思路, 从而快速的掌握单片机编程.在以后我们也将陆续登出一些有
代表性的例子程序的讲解.由于篇幅所限, 更多的示例程序程序在配套的光盘中.
8led.asm 八个左右跑马灯 1602-A.asm为驱动 1602液晶显示一个字母 A
keyshuzi.asm 四个小键盘控制的数字显示 1600logo.asm 1602液晶的 51测试网 logo
keyled.asm 四个小键盘控制的花样彩灯 16020-9.asm 为 1602液晶的全屏显示 0-9
2-8led.asm p1口八个灯作二进制加法 key1602.asm 小键盘控制 1602液晶显示器.
3-8LED.asm P1口八个灯做 3路跑动显示 keyled.asm 小键盘控制的数字显示与彩灯
dida.asm 小喇叭的警报器. 6221.asm遥控显示数字的程序.
music.asm 小喇叭唱歌祝你平安 999999.asm 为 0-999999的计数器
clock.asm 六位数码管时钟程序. led895152.asm显示 895152同时 8个小灯跑动
单片机学习的免费午餐---dais集成开发环境与软件仿真 石学军
学习单片机之初最先遇到的问题就是不知道怎样把程序生成 hex文件.常用的 keil demo版使用起来
设置比较复杂,并且有2k代码的限制,为此向大家介绍一款dais开发环境软件.该软件全中文界面,可以实现编
译 , 硬件仿真 , 软件仿真一体化 . 并且程序支持汇编 /C 混合调试 , 中文注释 ,全兼容于
WINDOWS98/2000/XP操作体统.
经过本人一段时间的使用,深感使用简易,值得向广大初学单片机的朋友推荐.DAIS 的软件仿真功能
强大,初学者利用他来进行编译软件生成 hex文件学习和软件仿真,修改一些小程序很实用.
以下以 DAIS-8052M 仿真器的配套软件为例,介绍该软件的编译方法和软件仿真使用方法.点击安装
目录下的 SETUP, 一路回车, 即可安装成功,在桌面上生成图标
51测试网从 0 开始学单片机入门教程 www.51c51.com 版权所有
更详细的信息请登陆 www.8951.com www.51c51.com 51测试网跟我来学单片机第 6 页 共 6 页
双击运行,出现连接对话框,此时如已连接仿真器,点确定即可.该仿真器默认的波特率为 9600,串口号
则根据计算机的实际情况选择.一般情况下是串口 1.
在这里需要注意的是没有仿真器的情况下,点取消,我们可以利用该软编译生成 HEX文件,并进行软
件仿真.在本篇中,主要介绍它的软件仿真和编译功能,如果您采用的 DAIS-8052M仿真器,则进入设置仿真
模式对其进行如下设置,否则可能造成仿真器工作异常.
进入后,点新建文件,在窗口中输入源程序,然后把他另存为 ASM,假定我们把他存为
E:\PROG\999.ASM 具体方法为点文件\另存为即可,如果在 E盘没有 PROG目录, 应当首先建立一个, 当然
并不是一定要取这个名字,只是举例说明而已,你也可以把他存在C盘或者 D盘.汇编是底层操作, 需要注意
的是不要使用中文的文件夹, 更不能把文件名取为中文名字.例如你把文件存在 D:\程序\流水灯.ASM就不
行.同时文件的名称不要超过 8个英文字符. 没
办法
鲁班奖评选办法下载鲁班奖评选办法下载鲁班奖评选办法下载企业年金办法下载企业年金办法下载
, 谁叫咱比老外落后呢 另外也不要把系统的盘符设
置为 系统盘 , 软件盘 , 游戏盘 之类的中文盘符.
点 保存 后,再点菜单的工程 新建 在这里, 我们仍然把工程的名称取为 999 这时将弹出工程的
对话框,此时它是一个新的工程,我们需要为它增加一个项目文件, 即刚刚保存的999.ASM 点 增加 然后
点 确定
51测试网从 0 开始学单片机入门教程 www.51c51.com 版权所有
更详细的信息请登陆 www.8951.com www.51c51.com 51测试网跟我来学单片机第 7 页 共 7 页
好了, 准备工作完成了,点击菜单/编译/文件编译,连接,装载 或者下图图标的红色感叹号
如没有异常将出现成功的对话框.这里需要补充一点,汇编语言对语法要求比较严格,如果编译不成功
请仔细的检查程序本身有没有语法错误.当然这种情况下,dais会提示您的第几行出现错误.
此时在我们的 E:\PROG目录下即生成了以上的八个文件,其中的 999.ASM是汇编的源程序, 999.HEX就是我
们所需要的目标代码.我们可以用编程器将这个文件写进单片机中,程序就可以运行了.如果以上操作中已
经连接了 DAIS-8052M仿真器,把仿真头插入目标板,直接点图标栏目的绿色小箭头,即可连续运行.其他单
步运行, 复位,寄存器窗口, 储存器窗口等大家自己体会一下.
现在我们介绍利用他的软件仿真功能.即便没有仿真器, 我们也可以利用这个软件完成 51单片机的
大部分仿真工作.对于初学者来说, 用他来熟悉 8051单片机的指令系统非常的直观,如我们用他来学习单
片机的加减法.
以下面的一个简单的小例子来说明 25h+36h等于多少
我们可以首先输入下面的程序
51测试网从 0 开始学单片机入门教程 www.51c51.com 版权所有
更详细的信息请登陆 www.8951.com www.51c51.com 51测试网跟我来学单片机第 8 页 共 8 页
MOV R0,#25H;将立即数 25送寄存器 R0
MOV A,#36H;将立即数 36送累加器 A
ADD A,R0;a与 r0相加
NOP;空操作
MOV P1,A;将累加器 A的值送 P1口
END;结束
然后把程序按照上面的方法编译,打开视图\寄存器窗口并单步运行,
可以直观的看到 ACC,P1,R0三个寄存器在执行每一步之后的变化,最后的结果如下图
我们可以看到 ACC的值为 5BH,这个就是 25H+36H的结果了.P1口的值也是 5BH,这是 MOV P1,A 把 A送
往 P1口 的结果. 同时我们也可以观察到 R0的值是 25H,这个是由于程序中我们把 R0送入 25H 的结果.
同样的我们来实验单片机的减法指令,例子如下 计算 36H-25H的值,把上面的程序第 3行改为
SUBB A,R0其余的部分相同,编译后打开寄存器窗口并单步运行,我们可以观察到 P1口和 ACC的值都变成了
11H ,这就是 36-25h 的值了.
51测试网从 0 开始学单片机入门教程 www.51c51.com 版权所有
更详细的信息请登陆 www.8951.com www.51c51.com 51测试网跟我来学单片机第 9 页 共 9 页
参照以上方法我们可以利用这个软件来熟悉 8051单片机的其他指令, 体会各个寄存器之间的变化,
对于初学单片机的朋友很有帮助.
当然,dais仿真器本身还有很多非常实用的功能, 限于篇幅,我们仅仅介绍这一个部分. 可以看到它使
用很简单, 并且具有全中文的操作界面,真正是一款易学易用的开发软件.
对 DAIS软件感兴趣的朋友可以到本刊的配套光盘中找到该软件或者到作者主页 www.8951.com下载.
倚天版开发套件试验部分原理图
p1.0-1.7为 8 个发光管 p3.3 小喇叭 p3.2,p3.3 p3.4 p3.5 小键盘 p2.1p2.2p2.3p2.4p2.5p2.6 数码管
位选,p0 数码管段位
28h,7eh,0a2h,62h,74h,61h,21h,7ah,20h,60h
;0 1 2 3 4 5 6 7 8 9 数码管的代码表
增加了红外线端口,p3.7
增加了 1602液晶接口 1gnd 2vcc 3vol(对比度调整)4p3.0(RS 数据命令选择)
5p3.1 R/W读写选择 6p3.5 E,使能信号
7----14 p1.0-p1.7 数据总线
51测试网从 0 开始学单片机入门教程 www.51c51.com 版权所有
更详细的信息请登陆 www.8951.com www.51c51.com 51测试网跟我来学单片机第 10 页 共 10 页
;1该程序的功能是把所有端口的同时置高置低,不断闪烁.
;该程序在倚天版开发套件运行通过 tel;0755-27529065 28068492
;51测试网系列自学单片机例程.www.51c51.com www.8951.com
; 知识要点 理解单片机的运行过程, 理解延时程序,
ORG 0000H;程序开始
LJMP MAIN;
ORG 030H;
MAIN:MOV P0,#00H;把 p0,p1,p2,p3 全部置低电平
MOV P1,#00H;
MOV P2,#00H;
MOV P3,#00H;
ACALL DEL; 延时
MOV P0,#0FFH; 把 p0,p1,p2,p3 全部置高电平
MOV P1,#0FFH;
MOV P2,#0FFH;
MOV P3,#0FFH;
ACALL DEL; 延时
AJMP MAIN; 重新开始
ORG 0200H; 从 200h开始存放
DEL:MOV R5,#04H; 延时子程序
F3:MOV R6,#0FFH;
F2:MOV R7,#0FFH;
F1: DJNZ R7,F1;
51测试网从 0 开始学单片机入门教程 www.51c51.com 版权所有
更详细的信息请登陆 www.8951.com www.51c51.com 51测试网跟我来学单片机第 11 页 共 11 页
DJNZ R6,F2;
DJNZ R5,F3;
RET; 子程序结束
END
程序在倚天版运行的状态 1,全部不亮
程序在倚天版运行的状态 2,全部亮
;2该程序的功能是 p1口 3路流水灯
;该程序在倚天版开发套件运行通过 tel;0755-27529065 28068492
;51测试网系列自学单片机例程,www.51c51.com www.8951.com
; 知识要点 理解 2进制数与端口的关系
ORG 0000H;程序开始
LJMP MAIN;
ORG 030H;
51测试网从 0 开始学单片机入门教程 www.51c51.com 版权所有
更详细的信息请登陆 www.8951.com www.51c51.com 51测试网跟我来学单片机第 12 页 共 12 页
MAIN:MOV P1,#0DBH;11011011--零为亮
ACALL DEL;延时
MOV P1,#06DH;01101101
ACALL DEL;延时
MOV P1,#0B6H;10110110
ACALL DEL;延时
AJMP MAIN;
DEL: MOV R7,#0FFH;延时子程序
DEL1:MOV R6,#0FFH;
DEL2: DJNZ R6,DEL2;
DJNZ R7,DEL1;
RET;
END
程序在倚天版运行的状态 1,跑马灯的瞬间 11011011 靠近数码管的一边为高位,1为灭 0为灭
51测试网从 0 开始学单片机入门教程 www.51c51.com 版权所有
更详细的信息请登陆 www.8951.com www.51c51.com 51测试网跟我来学单片机第 13 页 共 13 页
程序在倚天版运行的状态 2,跑马灯的瞬间 10110110 靠近数码管的一边为高位,1为灭 0为灭
;3该程序的功能是单片机的加法:把 52h+0fch 结果送 p1口
;该程序在倚天版开发套件运行通过 tel;0755-27529065 28068492
;51测试网系列自学单片机例程,www.51c51.com www.8951.com
;知识要点 理解 2进制数的加法
;运行结果为 p1.7到 p1.0为亮灭亮亮灭灭灭亮就是二进制 01001110
;注意是从高向低排列,同时该数已经超过 256, 所以进位 cy=1
ORG 0000H;程序开始
LJMP MAIN;
ORG 030H;
MAIN:ACALL DEL;
MOV A,#052H;寄存器 a送 52h
MOV R0,#0FCH;寄存器 r0送 0fch
ADD A,R0;相加
NOP;空操作
MOV P1,A;结果送 p1口
DEL:MOV R7,#0FFH;;延时子程序
DEL1:MOV R6,#0FFH;
DEL2:MOV R5,#01FH;
DEL3: DJNZ R5,DEL3;
DJNZ R6,DEL2;
DJNZ R7,DEL1;
RET;延时子程序返回
END
程序在倚天版运行的状态,运行结果为 p1.7到 p1.0为亮灭亮亮灭灭灭亮就是二进制 01001110
靠近数码管的一边为高位,1为灭 0为灭
;4该程序的功能是单片机的乘法:把 ff*03h 结果送 p1口先送高 8位再送低 8位
51测试网从 0 开始学单片机入门教程 www.51c51.com 版权所有
更详细的信息请登陆 www.8951.com www.51c51.com 51测试网跟我来学单片机第 14 页 共 14 页
;该程序在倚天版开发套件运行通过 tel;0755-27529065 28068492
;51测试网系列自学单片机例程,www.51c51.com www.8951.com
;知识要点 理解 2进制数的乘法
;运行结果先输出 00000010 ,然后输出 11111101,就是 1011111101换算后等于 10进制 765,就是两数相乘
的结果
;注意是从高向低排列,同时该数已经超过 256, 所以进位 cy=1
ORG 0000H;程序开始
LJMP MAIN;
ORG 030H;
MAIN:ACALL DEL;
MOV A,#0FFH;寄存器 a送 0ff
MOV B,#03H;寄存器 b送 03h
MUL AB; 相乘
MOV P1,b ;高 8位输出结果是 00000010
acall del
MOV P1,a;低 8位输出结果是 11111101
DEL:MOV R7,#0FFH;延时子程序
DEL1:MOV R6,#0FFH;
DEL2:MOV R5,#01FH;
DEL3: DJNZ R5,DEL3;
DJNZ R6,DEL2;
DJNZ R7,DEL1;
RET;
END
程序在倚天版运行的状态 11111101
51测试网从 0 开始学单片机入门教程 www.51c51.com 版权所有
更详细的信息请登陆 www.8951.com www.51c51.com 51测试网跟我来学单片机第 15 页 共 15 页
程序在倚天版运行的状态 00000010
;5该程序的功能是单片机的二进制加法
;该程序在倚天版开发套件运行通过 tel;0755-27529065 28068492
;51测试网系列自学单片机例程,www.51c51.com www.8951.com
;知识要点 理解 2进制数的加法
;运行结果先输出 00000000 (全亮),然后输出 00000001,然后 0000010,直到 11111111
;从 P1口的 8个灯看二进制的 0,1,2,3......
ORG 0000H;程序开始
LJMP MAIN;
ORG 030H;
MAIN:MOV A,#00H;先送 0
PLAY:MOV P1,A;输出
ACALL DEL;延时
INC A;加 1
AJMP PLAY;再输出
DEL:MOV R7,#0FFH;延时子程序
DEL1:MOV R6,#0FFH;
DEL2:MOV R5,#01FH;
DEL3: DJNZ R5,DEL3;
DJNZ R6,DEL2;
DJNZ R7,DEL1;
RET;
END
51测试网从 0 开始学单片机入门教程 www.51c51.com 版权所有
更详细的信息请登陆 www.8951.com www.51c51.com 51测试网跟我来学单片机第 16 页 共 16 页
程序在倚天版运行的状态 00000000
程序在倚天版运行的状态 00000010
51测试网从 0 开始学单片机入门教程 www.51c51.com 版权所有
更详细的信息请登陆 www.8951.com www.51c51.com 51测试网跟我来学单片机第 17 页 共 17 页
程序在倚天版运行的状态 00000100
;6该程序的功能是单片机的两位计数器
;该程序在倚天版开发套件运行通过 tel;0755-27529065 28068492
;51测试网系列自学单片机例程,www.51c51.com www.8951.com
;知识要点 理解数的概念
;运行结果 数码管从 00一直加到 99
;ANL 0FH就是把数据与 00001111相与那么遇 1 得原来的数遇 0 则为 0,结果是前面的 4 位变 0, 后面的 4
位保留
;P2.1 , P2.2 分别是数码管控制位.CLR 则点亮
ORG 0000H;程序开始
LJMP MAIN;
ORG 030H;
MAIN:MOV 20H,#00H;20H 单元送 00
MOV A,20H;
GOON:CLR C;进位 CY置 0这里的作用是当数字超过 9要求进位时屏蔽进位, 意思永不进位
ANL A,#0FH;屏蔽 A中的高 4位
MOV DPTR,#TAB;查表
MOVC A,@A+DPTR;
PP:CLR P2.2;打开个位数码管
MOV P0,A;输出到 P0
ACALL DEL;延时以便观察结果
SETB P2.2;关断显示
MOV A,20H;20H再送 A
SWAP A;交换 A的高低 4位
ANL A,#0FH;屏蔽 A中的高 4位
MOVC A,@A+DPTR;查表
CLR P2.1;打开十位数码管
51测试网从 0 开始学单片机入门教程 www.51c51.com 版权所有
更详细的信息请登陆 www.8951.com www.51c51.com 51测试网跟我来学单片机第 18 页 共 18 页
MOV P0,A;输出到 P0
ACALL DEL ;延时
SETB P2.1 ;关断显示
MOV A,20H;20H送 A
INC A; 加 1
DA A;2-10进制调整
MOV 20H,A;调整后送 20H
AJMP GOON;重新开始
DEL:MOV R7,#0FFH;延时子程序
DEL1:MOV R6,#01FH;
DEL2:MOV R5,#01FH;
DEL3: DJNZ R5,DEL3;
DJNZ R6,DEL2;
DJNZ R7,DEL1;
RET;
ORG 0100H;从 100H开始存放数据表 0,1,2,3,4,5,6,7,8,9
TAB: db 28h,7eh,0a2h,62h,74h,61h,21h,7ah,20h,60h
;0 1 2 3 4 5 6 7 8 9
END
程序在倚天版运行的状态瞬间第一个数码管显示 2
51测试网从 0 开始学单片机入门教程 www.51c51.com 版权所有
更详细的信息请登陆 www.8951.com www.51c51.com 51测试网跟我来学单片机第 19 页 共 19 页
程序在倚天版运行的状态瞬间第数码管显示 34
;7该程序的功能是学习单片机的逻辑运算
;该程序在倚天版开发套件运行通过 tel;0755-27529065 28068492
;51测试网系列自学单片机例程,www.51c51.com www.8951.com
;知识要点 理解熟悉单片机的逻辑运算
;运行结果 P1口输出 4次计算的数值,注意 1为灭 0为亮,从 1.7到 1.0排列
;与的概念:有 0为 0 全 1出 1.或的概念:有 1为 1 全 0出 0.取反的概念遇 1为 0遇 0为 1
;异或的概念:相同为 0不同为 1
ORG 0000H;
LJMP MAIN;程序开始
ORG 030H;
MAIN:MOV A,#03CH;A 送 03C ,就是 00111100
MOV R0,#0AAH;R0 送 0AA 就是 10101010
CPL A;A 的内容取反
MOV P1,A;输出到 P1结果为 11000011
ACALL DEL;调用延时便于观察
MOV P1,#0FFH ;关断显示
MOV A,#0C3H;A 的值重新载入
ANL A,R0;A 与 R0相与
MOV P1,A; 输出到 P1结果为 10000010
ACALL DEL;调用延时便于观察
MOV P1,#0FFH
MOV A,#0C3H; A 的值重新载入
ORL A,R0;A 与 R0相或结果为 11101011
MOV P1,A;输出到 P1
ACALL DEL;调用延时便于观察
MOV P1,#0FFH;关断显示
MOV A,#0C3H;A 的值重新载入
51测试网从 0 开始学单片机入门教程 www.51c51.com 版权所有
更详细的信息请登陆 www.8951.com www.51c51.com 51测试网跟我来学单片机第 20 页 共 20 页
XRL A,R0;;A与 R0相异或结果为 01101001
MOV P1,A;;输出到 P1
ACALL DEL;
MOV P1,#0FFH;;关断显示
AJMP MAIN;重新开始
DEL: MOV R7,#0FFH;延时子程序
DEL1:MOV R6,#0FFH;
DEL2:MOV R5,#01FH;
DEL3: DJNZ R5,DEL3;
DJNZ R6,DEL2;
DJNZ R7,DEL1;
RET;
END
程序在倚天版运行的状态 01101001
51测试网从 0 开始学单片机入门教程 www.51c51.com 版权所有
更详细的信息请登陆 www.8951.com www.51c51.com 51测试网跟我来学单片机第 21 页 共 21 页
程序在倚天版运行的状态 10000010
;8该程序的功能是进一步学习单片机的逻辑运算
;该程序在倚天版开发套件运行通过 tel;0755-27529065 28068492
;51测试网系列自学单片机例程,www.51c51.com www.8951.com
;知识要点 理解熟悉单片机的逻辑运算
;运行结果 P1口输出结果为 01100000,注意 1为灭 0为亮,从 1.7到 1.0排列
;ANL 0FH就是把数据与 00001111相与那么遇 1 得原来的数遇 0 则为 0,结果是前面的 4 位变 0, 后面的 4
位保留
ORG 0000H;程序开始
LJMP MAIN;
ORG 030H;
MAIN:MOV A,#59H;A中送 59H这个数 01011001
ANL A,#0FH;59H 和 00001111相与就是保留后 4位结果为 1001
SWAP A;A中的高低字节交换结果为 10010000
ANL P1,#0FH;P1口的内容与 A相与就是清除高 4位注意 P1本来为 11111111即 FF此时变为 00001111
ORL P1,A;P1的内容与相或 10010000和 00001111相或结果为 01100000
ACALL DEL;调用延时以便观察
AJMP MAIN;重新开始
DEL: MOV R7,#0FFH;延时子程序
DEL1:MOV R6,#0FFH;
DEL2:MOV R5,#01FH;
DEL3: DJNZ R5,DEL3;
DJNZ R6,DEL2;
DJNZ R7,DEL1;
RET;
END
运行结果 P1口输出结果为 01100000,注意 1为灭 0为亮,从 1.7到 1.0排列
51测试网从 0 开始学单片机入门教程 www.51c51.com 版权所有
更详细的信息请登陆 www.8951.com www.51c51.com 51测试网跟我来学单片机第 22 页 共 22 页
;9该程序的功能是用循环移位指令的流水灯
;该程序在倚天版开发套件运行通过 tel;0755-27529065 28068492
;51测试网系列自学单片机例程,www.51c51.com www.8951.com
;知识要点 理解熟悉移位指令
;运行结果 P1口 8个灯循环点亮
ORG 0000H;程序开始
LJMP MAIN;
ORG 030H;
MAIN:MOV R0,#08H;把 8送入 R0中,
MOV A,#0FEH;把 FE送入 A中,即 11111110
PLAY:RR A;右移动 1位
MOV P1,A;输出显示
ACALL DEL;延时
DJNZ R0,PLAY;一共移动 8次
AJMP MAIN;重新开始
DEL: MOV R7,#0FH;延时子程序
DEL1:MOV R6,#0FFH;
DEL2:MOV R5,#01FH;
DEL3: DJNZ R5,DEL3;
DJNZ R6,DEL2;
DJNZ R7,DEL1;
RET;
END
运行结果流水灯的瞬间 注意由于照相机的延时,看到的两个灯亮实际为一个灯亮
51测试网从 0 开始学单片机入门教程 www.51c51.com 版权所有
更详细的信息请登陆 www.8951.com www.51c51.com 51测试网跟我来学单片机第 23 页 共 23 页
运行结果流水灯的瞬间 注意由于照相机的延时,看到的两个灯亮实际为一个灯亮
;10该程序的功能是用按键计数器
;该程序在倚天版开发套件运行通过 tel;0755-27529065 28068492
;51测试网系列自学单片机例程,www.51c51.com www.8951.com
;知识要点 理解熟悉散转结构的程序
;运行结果 按 P3.2或 3.3(低 4位的任意一个键盘)第一位数码管加 1直到 9循环
; 开始显示 0把 P3送 OFH,判断有没有按键,没有则反复循环,有按 R0加 1,如到 10
;那么则清除, 最后根据 R0的值散转.
ORG 0000H;
LJMP MAIN;程序开始
ORG 030H;
MAIN: MOV P0,#028H;数码管显示 0
clr p2.1 ;打开第一个数码管
MOV R0,#00H;r0 送 0fh
ST: MOV P3,#0FH;p3 送 0fh
MOV A,P3;
CJNE A,#0FH,F1;如果 p3口的值等于 0f,那么按键没有按,
ACALL DEL;
AJMP ST;继续
检测
工程第三方检测合同工程防雷检测合同植筋拉拔检测方案传感器技术课后答案检测机构通用要求培训
F1: ACALL DEL;
CJNE A,#0FH,F2;再次判断有没有按
AJMP ST;继续检测
F2: INC R0;r0加 1
CJNE R0,#0AH,F3;如果 r0等于 10转道 f3;OAH就是 10, 到这里转移重新
MOV R0,#00H;
F3: MOV DPTR,#JPTAB;取地址
MOV A,R0;
CLR C;清除进位
51测试网从 0 开始学单片机入门教程 www.51c51.com 版权所有
更详细的信息请登陆 www.8951.com www.51c51.com 51测试网跟我来学单片机第 24 页 共 24 页
RLC A;a 的内容右移
JNC NADD;判断有没有进位, 有向下无到 NDDA
INC DPH;有进位 DPH加 1
NADD: JMP @A+DPTR;根据 A的内跳转到 PR1,PR2....
JPTAB: NOP;
NOP;
AJMP PR1;
AJMP PR2;
AJMP PR3;
AJMP PR4;
AJMP PR5;
AJMP PR6;
AJMP PR7;
AJMP PR8;
AJMP PR9;
DEL: MOV R7,#04H;延时子程序
DEL1: MOV R6,#0FFH;
DEL2: MOV R5,#01FH;
DEL3: DJNZ R5,DEL3;
DJNZ R6,DEL2;
DJNZ R7,DEL1;
RET;
PR1: MOV P0,#7eH;显示 1
ACALL DEL;
AJMP ST;
PR2: MOV P0,#0a2H;显示 2
ACALL DEL;
AJMP ST;
PR3: MOV P0,#62H;显示 3
ACALL DEL;
AJMP ST;
PR4: MOV P0,#74H;显示 4
ACALL DEL;
AJMP ST;
PR5: MOV P0,#61H;显示 5
ACALL DEL;
AJMP ST;
PR6: MOV P0,#21H;
ACALL DEL;
AJMP ST;
PR7: MOV P0,#7aH;
ACALL DEL;
AJMP ST;
PR8: MOV P0,#20H;
51测试网从 0 开始学单片机入门教程 www.51c51.com 版权所有
更详细的信息请登陆 www.8951.com www.51c51.com 51测试网跟我来学单片机第 25 页 共 25 页
ACALL DEL;
AJMP ST;
PR9: MOV P0,#60H;
ACALL DEL;
AJMP ST;
END
程序在倚天版运行的状态