单片机高级实训项目教程(I)
单片机实训报告
单⽚机实训报告
电⽓信息⼯程学院
《单⽚机原理及应⽤》
实验指导书
专业: 计算机科学与技术
班级: 计科1342班
学号: 201310913246 姓名: 张赛男
指导教师: 陶春鸣
实验⼀ I/O⼝的实验
⼀、实验⽬的
1.掌握在Keil环境下建⽴项⽬、添加、保存源⽂件⽂件、编译源程序的⽅法;
2.掌握运⾏、步进、步越、运⾏到光标处等⼏种调试程序的⽅法;
3.掌握在Proteus环境下建⽴⽂件原理图的⽅法;
4.实现Proteus与Keil联调软件仿真。
⼆、实验原理
1.在Proteus环境下建⽴如下仿真原理图,并保存为⽂件;
原理图中常⽤库元件的名称:
⽆极性电容:CAP 极性电容:CAP-ELEC 单⽚机:AT89C51
晶体振荡器:CRYSTAL 电阻:RES 按键:BUTTON
发光⼆极管:红⾊LED-RED 绿⾊LED-GREEN 蓝⾊LED-BLUE 黄⾊LED-YELLOW 2.在Keil环境下建⽴源程序并保存为.ASM⽂件,⽣成.HEX⽂件;
参考程序如下:
C语⾔程序:
#include
#include
#define uchar unsigned char
#define uint unsigned int
void delay()
{
uchar i,j;
for(i=255;i>0;i--)
for(j=0;j<255;j++);
}
void main()
{
P1=0xfe;
while(1)
{
delay();
P1=_crol_(P1,1);
}
}
将以上程序补充完整,流⽔时间间隔为50ms。
3.将.HEX⽂件导⼊仿真图,运⾏并观察结果;
单片机原理与应用项目化教程 项目二 MCS-51单片机结构
XTAL2:(18脚)
内接反向放大器的输出端,外接晶振一端。
高职高专 “十二五”创新型规划教材 《单片机原理与应用项目教程》课件
二、控制引脚(一)
项目二 MCS-51系列单片机结构
1.RST/VPD: (9脚) RST:复位引脚 功能:当出现2个机器周期以上的高电平,使单片机复位。
复位后:PC=0000H SP=07H VPD:当VCC掉电时,可以接备用电源,保持数据不丢失。
(7)P(PSW.0)奇偶标志位: 每个指令周期都由硬件来置位或清除,以表示累加器A中
值为l的位数的奇偶数。若为奇数,则P=l,否则P=0。此标 志位对串行口通讯中的数据传输有重要的意义,常用奇偶检 验的方法来检验数据传输的可靠性。
例如: 10101101H 11001100H
高职高专 “十二五”创新型规划教材
2.1.4 MCS-51的引脚定义及功能
高职高专 “十二五”创新型规划教材 《单片机原理与应用项目教程》课件
项目二 MCS-51系列单片机结构
一、电源及时钟引脚
1. 主电源引脚
VCC (40脚) 接+5V电源
VSS (20脚) 接地 GND
2. 外接晶振引脚
XTAL1: (19脚)
内接反向放大器的输入端,外接晶振一端。
高职高专 “十二五”创新型规划教材 《单片机原理与应用项目教程》课件
实训一 单片机最小系统
单片机最小系统
一、单片机最小系统的功能和应用
在智能化仪器仪表中,控制核心均为微处理器,而单片机以高性能、高速度、体积小、价格低廉、稳定可靠而得到广泛应用,是设计智能化仪器仪表的首选微控制器,单片机结合简单的接口电路即可构成单片机最小系统,它是智能化仪器仪表的基础,也是测控。监控的重要组成部分。
二.单片机最小系统结构框架
(一)、系统功能要求:
1、显示位数:6位。
2、键盘按键数:16个。
3、初始化状态显示P.。
3、能输入、显示十六进制数0——f。
(一)、硬件系统设计:
硬件系统原理图如下页图:
1、时钟电路
系统的时钟电路设计是采用的内部方式,即利用芯片内部
的振荡电路。AT89单片机内部有一个用于构成振荡器的高增益反相放大器。引脚XTAL1和XTAL2分别是此放大器的输入端和输出端。这个放大器与作为反馈元件的片外晶体谐振器一起构成一个自激振荡器。外接晶体谐振器以及电容C1和C2构成并联谐振电路,接在放大器的反馈回路中。对外接电容的值虽然没有严格的要求,但电容的大小会影响震荡器频率的高低、震荡器的稳定性、起振的快速性和温度的稳定性。因此,此系统电路的晶体振荡器的值为12MHz,电容应尽可能的选择陶瓷电容,电容值约为22μF。在焊接刷电路板时,晶体振荡器和电容应尽可能安装得与单片机芯片靠近,以减少寄生电容,更好地保证震荡器稳定和可靠地工作。
2、复位电路
复位是由外部的复位电路来实现的。片内复位电路是复位引脚RST通过一个斯密特触发器与复位电路相连,斯密特触发器用来抑制噪声,它的输出在每个机器周期的S5P2,由复位电路采样一次。复位电路通常采用上电自动复位和按钮复位两种方式,此电路系统采用的是上电与按钮复位电路,如图所示。当时钟频率选用6MHz时,C取22μF,Rs约为200Ω,Rk约为1K。
51单片机超详细教程PPT(绝对值)
Keil C51软件的使用
Keil C51启动窗口
Keil C51软件的使用
建立工程文件
Keil C51软件的使用
选择目标CPU
Keil C51软件的使用
图2.17 文本编缉窗口
Keil C51软件的使用
增加文件到组中
Keil C51软件的使用
选择文件类型
Keil C51软件的使用
目标属性
全国高职高专规划教材· 精品与示范系列
单片机应用技术
(C语言版)
王静霞 主 编
第1章
单片机硬件系统
本章内容
什么是单片机
MCS-51内部组成及信号引脚
单片机最小系统电路 MCS-51存储器结构
什么是单片机
单片微型计算机(Single Chip Microcomputer)简称单 片机,是指集成在一个芯片上的微型计算机,它的各种 功能部件,包括CPU(Central Processing Unit)、存 储器(memory)、基本输入/输出(Input/Output,简称 I/O)接口电路、定时/计数器和中断系统等,都制作在一 块集成芯片上,构成一个完整的微型计算机。单片机内 部基本结构如图1.7所示。由于它的结构与指令功能都是 按照工业控制要求设计的,故又称为微控制器(MicroController Unit,简称MCU)。
必须使必须使rstrst引脚持续引脚持续22微秒微秒高电平高电平外部时钟外部时钟12mhz12mhz10111213142827262524232221201918171615101112131428272625242322212019181716151011121314151617181920403938373635343332313029282726252424222110111213142827262524232221201918171615ram626410111213142827262524232221201918171615ram626480318751805189c51ramramromrom256b字节4k1程序存储器程序存储器程序存储器内部外部0000h0fffh4k0000hffffh64k0000h0fffh4k0000h0001h0002hpc0000h是程序执行的起始单元在这三个单元存放一条无条件转移指令中断5中断4中断3中断2中断10003h000bh0013h001bh0023h002bh外部中断0定时器0中断外部中断1定时器1中断串行口中断0fffh0ffehea1ea0程序存储器资源分布中断入口地址在单片机c语言程序设计中用户无需考虑程序的存放地址编译程序会在编译过程中按照上述规定自动安排程序的存放地址
(完整版)单片机实训教案
基础知识一 软件调试仿真器Keil uVision 应用实践
Keil 编程软件是目前最流行的开发MCS-51系列单片机的软件。它提供了包括C 编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器在内的完整开发方案,通过一个集成开发环境
uVision2将这些部分组合在一起。
程序安装完成后,桌面上会出现Keil uVision2图标,如
图1-36,双击该图标便可启动Keil 软件的集成开发环境。启动后的程序窗口主要由菜单栏、工具栏、源文件编辑窗口、工程管理窗口 和输出窗口五部分组成。启动窗口如图1-37所示。
工具栏为一组快捷工具图标,主要包括基本文件工具栏、建造工具栏和调试(DEBUG/调试)工具栏,基本文件工具栏包括新建、打开、拷贝、粘贴等4个基本操作。建造工具拦主要包括
文件编译、目标文件编译连接、所有目标文件编译连接、目标选项和一个目标选择窗口。调试(DEBUG/调试)工具栏位于最后,主要包括一些仿真调试源程序的基本操作,如单步、复位、全速运行等。
在工具栏下面,有3个默认窗口。左边的一个是工程管理窗口,该窗口有3个标签,分别是Files 、Regs 和Books 。右边的一个为源文件编辑窗口,编辑窗口实质上就是一个
工具栏
菜单栏
建造工具
调试工具
工程 管理 窗口
源文件 编辑 窗口
输出 窗口
基本工具
图1-37 Keil uVision2启动窗口
图1-36 Keil uVision2
文件编辑器,我们可以在这里对源程序文件进行编辑、修改、粘贴等。下边的一个为输出窗口,源文件编译之后的结果显示在输出窗口中,会出现通过或错误(包括错误类型及行号)的提示。如果通过则会生成"HEX”格式的目标文件,用于仿真或烧录芯片MCS-51单片机软件。
(完整版)单片机C语言程序设计实训100例--基于8051+PROTEUS仿真1
《单片机C语言程序设计实训100例—基于8051+Proteus仿真》案例
第01 篇基础程序设计
01 闪烁的LED
/* 名称:闪烁的LED
说明:LED按设定的时间间隔闪烁
*/
#include
#define uchar unsigned char
#define uint unsigned int
sbit LED=P1^0;
//延时
void DelayMS(uint x)
{
uchar i;
while(x--)
{
for(i=0;i<120;i++);
}
}
//主程序
void main()
{
while(1)
{
LED=~LED;
DelayMS(150);
}
}
02 从左到右的流水灯
/* 名称:从左到右的流水灯
说明:接在P0口的8个LED
从左到右循环依次点亮,产生走
马灯效果
*/
#include
#include
#define uchar unsigned char
#define uint unsigned int
//延时
void DelayMS(uint x)
{
uchar i;
while(x--)
{
for(i=0;i<120;i++);
}
}
//主程序
void main()
{
P0=0xfe;
while(1)
{
P0=_crol_(P0,1); //P0的值向左循环移动
DelayMS(150);
}
}
03 8只LED左右来回点亮
/* 名称:8只LED左右来回点亮
说明:程序利用循环移位函数_crol_和_cror_形成来回滚动的效果*/
#include
#include
#define uchar unsigned char
单片机应用技术项目教程教案全套教案.doc
《单片机应用技术》课程单元1教学设计
单元教学进度
《单片机应用技术》课程单元2教学设计
单元教学进度
《单片机应用技术》课程单元3教学设计
单元教学进度
《单片机应用技术》课程单元4教学设计
单元教学进度
《单片机应用技术》课程单元5教学设计
单元教学进度
《单片机应用技术》课程单元6教学设计
单元教学进度
《单片机应用技术》课程单元7教学设计
单元教学进度
01.项目一 发光二极管LED点亮控制
发光二极管LED点亮控制 项目一 发光二极管 点亮控制
计算机科学系
单片机应用技术项目教程( 语言版 语言版) 单片机应用技术项目教程(C语言版)
用PROTEUS设计第一个LED控制电路 PROTEUS设计第一个 设计第一个LED控制电路
新建设计文件 保存设计文件 选取元器件 放置元器件 编辑元器件 放置终端 连线 属性设置 电气规则检测
通过程序控制,使P1.0引脚输出低电平,使发光 引脚输出低电平, 通过程序控制, P1.0引脚输出低电平 二极管点亮。 二极管点亮。
问题: 问题: 程序怎么使P1口的引脚输出低电平 口的引脚输出低电平? 程序怎么使P1口的引脚输出低电平? 下面我们来看一下程序,就可以找到答案。 下面我们来看一下程序,就可以找到答案。
发光二极管LED点亮控制 项目一 发光二极管 点亮控制
计算机科学系
单片机应用技术项目教程( 语言版 语言版) 单片机应用技术项目教程(C语言版)
单片机的特点
由于单片机是在一块芯片上集成了一台微型计算 机所需的CPU、存储器、输入/ 机所需的CPU、存储器、输入/输出部件和时钟电 路等。因此它具有体积小,使用灵活、成本低、 路等。因此它具有体积小,使用灵活、成本低、 易于产品化、抗干扰能力强, 易于产品化、抗干扰能力强,可在各种恶劣环境 下可靠地工作等特点。 下可靠地工作等特点。
发光二极管LED点亮控制 项目一 发光二极管 点亮控制
单片机原理与应用项目教程
单片机原理与应用项目教程
单片机是一种集成电路,它包含了中央处理器、存储器、输入输出端口和定时器等功能模块。单片机广泛应用于各种电子设备中,如家用电器、汽车电子、医疗设备等。本文将介绍单片机的原理和应用项目教程。
一、单片机原理
单片机的核心是中央处理器,它负责执行程序指令。单片机的存储器分为程序存储器和数据存储器。程序存储器用于存储程序指令,数据存储器用于存储数据。输入输出端口用于与外部设备进行通信,定时器用于计时和延时。
单片机的工作原理是通过程序指令控制输入输出端口的状态,从而实现各种功能。程序指令是由程序员编写的,通过编译器将程序烧录到单片机的程序存储器中。单片机执行程序指令时,会根据指令的类型和操作数执行相应的操作。
二、单片机应用项目教程
1. LED闪烁
LED闪烁是单片机最基本的应用之一。通过控制单片机的输出端口,可以实现LED的闪烁效果。以下是一个简单的LED闪烁程序:
#include
sbit LED = P1^0;
void main()
{
while(1)
{
LED = 0;
delay(500);
LED = 1;
delay(500);
}
}
2. 温度测量
单片机可以通过温度传感器测量环境温度。以下是一个简单的温度测量程序:
#include
sbit DQ = P1^0;
void delay_us(unsigned int us)
{
while(us--);
}
unsigned char read_temperature() {
unsigned char i, j, k;
unsigned char temperature = 0;
单片机原理实验教案参考程序doc资料
广东松山职业技术学院《MCS-51单片机原理》实验指导书
宁玉珊黄晓林
使用Proteus辅助设计与仿真
实训项目1 Proteus辅助设计与仿真的使用
一、实训目的
学习并熟练掌握PROTEUS辅助设计与仿真软件的使用。通过使用Proteus的ISIS组件绘制A T89C51功能接口原理图,并对原理图编写程序和调试程序,观察在仿真条件下的实现功能的效果。
二、实训内容
在PROTEUS仿真环境下实现一个发光二极管(LED)闪烁。要求LED亮0.5s灭1s,并绘制原理图和编写实现程序,同时用虚拟的示波器观察硬件和软件实现的效果。
三、实训器材
安装有Proteus7软件的计算机 1 台。
四、实训步骤
1)在硬盘建立文件夹用来保存新建项目的所有文件。如在D盘建立PROJECT文件夹。
2)选择‘开始→程序→Proteus7 professional→ISIS professional(或者双击桌面图标ISIS)’,进入Proteus仿真环境,如图P1_1和P1_2所示。
图P1-1
图P1-2
3)选择菜单【File/New Design】创建一个新的设计项目,如图P1_3所示。
图P1-3
4)此时系统会弹出模板选择窗口,选择‘DEFAULT’点击【OK】即可,如图P1_4所示。
图P1_4
5)点击界面左侧工具栏中的图标,接着点击元件池上方的按钮,将要用到的元器件从系统库调到当前设计文件库中。在弹出的Pick Devices对话框左上角的‘Keywords’文本框中键盘输入元件名(或元件的其它关键词)搜索到需要的元器件。双击‘Results’栏下的目标元件,该元件即调出到当前设计文件库的元件列表中,如图P1_5所示。本实训中所要用到的元件如表PS1_1所示。
单片机应用技术项目式教程(C语言版)
1.单片机特点2. 51系列单片机主要产品 “理实一体”理论知识指导实践;实践中提升对知识的 理解。
微型计算机的硬件组成
微型计算机系统
CPU
输 入 设 备
主 机
输 入 接 口 电 路
运算器
控制器
存储器
输 出 接 口 电 路
输 出 设 备
软
+
件 系 统
鼠标硬件系统
什么是单片机?
把组成微型计算机的控 制器、运算器、存储器、
P1.0电平信号怎 么来???
软件编程!!
控制程序
/*************************************************************************** 程序名称: program1-1.c 程序功能:一位LED信号灯闪烁的控制 ****************************************************************************/ #include <reg51.h> //包含头文件REG51.H,定义了单片机的特殊功能寄存器 sbit P1_0=P1^0; //定义位名称 LED信号灯闪 void delay(unsigned char i); //延时函数声明,i作为形式参数 烁控制 void main() //主函数 { while(1) { P1_0=0; //点亮LED灯 delay(10); //调用延时函数,实际参数为10 P1_0=1; //熄灭LED灯 delay(10); //调用延时函数,实际参数为10 } }
图文51单片机超详细教程PPT(绝对值)
C语言提供了丰富的运算符,包括算术运算符、关系运算 符、逻辑运算符等。在51单片机中,这些运算符可用于进 行各种数值计算和逻辑判断。
表达式
由变量、常量、运算符组成的式子称为表达式。在C语言 中,表达式可以包含多种数据类型和运算符,用于实现复 杂的计算和控制逻辑。
流程控制语句和函数
流程控制语句
02 03
保护现场和恢复现场
在进入中断服务程序之前,需要保存当前程序的执行状态 (即保护现场),以便在中断服务程序执行完毕后能够恢 复到原来的状态(即恢复现场)。这可以通过使用堆栈等 数据结构来实现。
避免中断嵌套
在编写中断服务程序时,应尽量避免出现中断嵌套的情况 。因为中断嵌套会增加程序的复杂性和执行时间,甚至可 能导致程序出现死锁等问题。可以通过合理设置中断优先 级、使用中断屏蔽等方式来避免中断嵌套的发生。
C语言提供了多种流程控制语句,如if语句、switch语句、while语句、for语句等。这些语句可用于实现条 件判断、循环控制等功能,是编写复杂程序的基础。
函数
函数是C语言中的基本组成单位,用于实现特定的功能。在51单片机中,可以将常用的功能封装成函数,方 便重复使用。函数的定义包括函数名、参数列表和函数体等部分。
中断源识别方法
在51单片机中,中断源分为外部中断和内部中断两种。外部中断由外部信号触发,而内部中断则是由 单片机内部的定时器/计数器、串行通信等模块产生的。识别中断源的方法主要是通过查询中断标志位 的状态来确定是哪个中断源产生的中断请求。
51单片机C语言实验及实践教程1
51单片机C语言实验及实践教程
第一章:硬件资源模块
第二章:keil c 软件使用
at89s51单片机实验及实践课题┅┅┅┅┅┅┅┅┅┅┅1.闪烁灯
at89s51单片机实验及实践课题┅┅┅┅┅┅┅┅┅┅┅2.模拟开关灯
at89s51单片机实验及实践课题┅┅┅┅┅┅┅┅┅┅┅3.多路开关状态指示
at89s51单片机实验及实践课题┅┅┅┅┅┅┅┅┅┅┅4.广告灯的左移右移
at89s51单片机实验及实践课题┅┅┅┅┅┅┅┅┅┅┅5.广告灯(利用取表方式)
at89s51单片机实验及实践课题┅┅┅┅┅┅┅┅┅┅┅6.报警产生器
at89s51单片机实验及实践课题┅┅┅┅┅┅┅┅┅┅┅7.I/O并行口直接驱动LED显示
at89s51单片机实验及实践课题┅┅┅┅┅┅┅┅┅┅┅8.按键识别方法之一
at89s51单片机实验及实践课题┅┅┅┅┅┅┅┅┅┅┅9.一键多功能按键识别技术
at89s51单片机实验及实践课题┅┅┅┅┅┅┅┅┅┅┅10.00-99计数器
at89s51单片机实验及实践课题┅┅┅┅┅┅┅┅┅┅┅11.00-59秒计时器(利用软件延时)
at89s51单片机实验及实践课题┅┅┅┅┅┅┅┅┅┅┅12.可预置可逆4位计数器
at89s51单片机实验及实践课题┅┅┅┅┅┅┅┅┅┅┅13.动态数码显示技术
at89s51单片机实验及实践课题┅┅┅┅┅┅┅┅┅┅┅14.4×4矩阵式键盘识别技术
at89s51单片机实验及实践课题┅┅┅┅┅┅┅┅┅┅┅15.定时计数器T0作定时应用技术(一)
at89s51单片机实验及实践课题┅┅┅┅┅┅┅┅┅┅┅16.定时计数器T0作定时应用技术(二)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
21.拉幕式数码显示技术
1.实验任务
用AT89S51单片机的P0.0/AD0-P0.7/AD7端口接数码管的a-h端,8位数码管
的S1-S8通过74LS138译码器的Y0-Y7来控制选通每个数码管的位选端。
AT89S51单片机的P1.0-P1.2控制74LS138的A,B,C端子。在8位数码管上
从右向左循环显示“12345678”。能够比较平滑地看到拉幕的效果。
2.电路原理图
图4.21.1
3.系统板上硬件连线
(1.把“单片机系统”区域中的P0.0/AD0-P0.7/AD7用8芯排线连接到“动态数码显示”区域中的a-h端口上;
(2.把“三八译码模块”区域中的Y0-Y7用8芯排线连接到“动态数码显示”
区域中的S1-S8端口上;
(3.把“单片机系统”区域中的P1.0-P1.2端口用3根导线连接到“三八译码模块”区域中的A、B、C“端口上;
4.程序设计方法
(1.动态数码显示技术;如何进行动态扫描,由于一次只能让一个数码管
显示,因此,要显示8位的数据,必须经过让数码管一个一个轮流显
示才可以,同时每个数码管显示的时间大约在1ms到4ms之间,所以
为了保证正确显示,我必须每隔1ms,就得刷新一个数码管。而这刷
新时间我们采用单片机的定时/计数器T0来控制,每定时1ms对数码
管刷新一次,T0采用方式2。
(2.在进行数码显示的时候,要对显示单元开辟8个显示缓冲区,每个显示缓冲区装有显示的不同数据即可。
5.程序框图
主程序框图
中断服务程序框图
图4.21.2
6.汇编源程序DISPBUF EQU 30H DISPCNT EQU 38H DISPBIT EQU 39H
T1CNTA EQU 3AH
T1CNTB EQU 3BH
CNT EQU 3CH
ORG 00H
LJMP START
ORG 0BH
LJMP INT_T0
START: MOV DISPCNT,#8 MOV A,#10
如有帮助,欢迎下载。
MOV R1,#DISPBUF
LP: MOV @R1,A
INC R1
DJNZ DISPCNT,LP
MOV DISPBIT,#00H
MOV T1CNTA,#00H
MOV T1CNTB,#00H
MOV CNT,#00H
MOV TMOD,#01H
MOV TH0,#(65536-1000) / 256
MOV TL0,#(65536-1000) MOD 256
SETB TR0
SETB ET0
SETB EA
SJMP $
INT_T0:
MOV TH0,#(65536-1000) / 256
MOV TL0,#(65536-1000) MOD 256
MOV A,DISPBIT
ADD A,#DISPBUF
MOV R0,A
MOV A,@R0
MOV DPTR,#TABLE
MOVC A,@A+DPTR
MOV P0,A
MOV A,P1
ANL A,#0F8H
ADD A,DISPBIT
MOV P1,A
INC DISPBIT
MOV A,DISPBIT
CJNE A,#08H,NEXT
MOV DISPBIT,#00H
NEXT: INC T1CNTA
MOV A,T1CNTA
CJNE A,#50,LL1
MOV T1CNTA,#00H
INC T1CNTB
MOV A,T1CNTB
CJNE A,#8,LL1
MOV T1CNTB,#00H
INC CNT
MOV A,CNT
CJNE A,#9,LLX
如有帮助,欢迎下载。
MOV CNT,#00H
MOV A,CNT
LLX: CJNE A,#01H,NEX1
MOV 30H,#8
LL1: LJMP DONE
NEX1: CJNE A,#02H,NEX2
MOV 31H,#8
MOV 30H,#8
LJMP DONE
NEX2: CJNE A,#03H,NEX3
MOV 32H,#8
MOV 31H,#8
MOV 30H,#8
LJMP DONE
NEX3: CJNE A,#04H,NEX4
MOV 33H,#8
MOV 32H,#8
MOV 31H,#8
MOV 30H,#8
LJMP DONE
NEX4: CJNE A,#05H,NEX5
MOV 34H,#8
MOV 33H,#8
MOV 32H,#8
MOV 31H,#8
MOV 30H,#8
LJMP DONE
NEX5: CJNE A,#06H,NEX6
MOV 35H,#8
MOV 34H,#8
MOV 33H,#8
MOV 32H,#8
MOV 31H,#8
MOV 30H,#8
LJMP DONE
NEX6: CJNE A,#07H,NEX7
MOV 36H,#8
MOV 35H,#8
MOV 34H,#8
MOV 33H,#8
MOV 32H,#8
MOV 31H,#8
MOV 30H,#8
LJMP DONE