在上面已经介绍了简易汇编的概念和“宏”指令的特点,现在我们可以进行“宏”指令源程序的编辑、输入和执行操作。指示灯D0被点亮,表示程序从地址00开始正确执行。可反复操作,表示机器功能正确,可以使用。hex文件程序输入对于hex文件用上面示例的方法,将机器码输入到存储器内。......
2023-11-07
1.I/O接口某位置0指令
“n”表示I/O接口中的某一位。实验机I/O接口共有8位分别用00、01、02、03、04、05、06、07表示。n=00、01、02、03、04、05、06、07。
【例2-2】 将I/O接口01位的状态置0(即使n=01)
【例2-3】 设计一个00、02、04、06位发光二极管发光的程序
实例运行效果:在单片机键盘上输入机器码程序后复位并运行。安装单片机的I/O接口00位、02位、04位和06位的外接发光二极管发光(亮)。
程序点评:程序运行后,只要不断电,上述4个发光二极管一直亮。结束语句是一个程序结束的标志,将会在后面讲解。
输入练习:将编程练习中机器码依次输入到单片机中观察该程序运行状况。输入操作步骤如下:
1)安装电池、打开电源开关。
2)按下复位键,显示器显示“C”。
3)输入数据“0B”(机器码):调整“加数、减数”键使显示器显示“0B”。
4)写入,按下写入键将数据“0B”写入到单片机的内存中。
5)反复重复步骤3、4)再将数据“00、0B、02、0B、04、0B、06、10”依次写入到单片机的内存中。
6)运行程序:先按下复位键,显示器显示“C”。在按下地址键的同时按下写入键然后同时抬起。
7)检查程序:程序运行后显示器显示“-1”。单片机I/O接口中外接的00、02、04、06位发光二极管发光,程序编写和输入正确(若程序输入有错可重新输入,如何修改后文中将提到)。
2.I/O接口置1指令
“n”表示I/O接口中的某一位。本款单片机I/O接口共有8位分别用00、01、02、03、04、05、06、07表示。n=00、01、02、03、04、05、06、07。
【例2-4】 设计一个00、02、04、06位发光二极管发光,而01、03、05、07位的发光二极管不发光的程序
实例运行效果:在单片机键盘上输入机器码程序后复位并运行。安装在单片机I/O接口00位、02位、04位和06位外接的发光二极管发光(亮),01位、03位、05位和07位外接的发光二极管不发光(灭)。
程序点评:程序运行后,只要不断电,有4个发光二极管一直亮,而另外4个发光二极管一直灭。结束语句是一个程序结束的标志。
3.延时指令
其中,“n1”表示延时时间的数据,其取值范围为n1=00H~FFH。
“n2”表示延时时间的单位,其时间单位定义“n2=00”表示0.01s;“n2=01”表示0.1s;“n2=02”表示1s;“n2=03”表示1min;“n2=04”表示1h。
延时时间=n1×n2。
延时时间举例如下:
【例2-5】 延时5s
其中,n1=05表示数;n2=02表示时间,单位1s延时时间=n1×n2=05×1s=05s。
【例2-6】 延时0.2s
【例2-7】 设计一个00位发光二极管亮2s后熄灭,00位发光二极管熄灭5s后02位发光二极管亮2s后熄灭,02位发光二极管熄灭5s的程序
实例运行效果:在单片机键盘上输入机器码程序后复位并运行。安装单片机的I/O接口00位和02位外接的发光二极管先后亮、灭。
程序点评:00位外接的发光二极管亮、灭时间间隔不相同。(www.chuimin.cn)
4.无条件转移指令
其中,“n”表示地址,其取值范围n=00H~FFH。
【例2-8】 设计00位发光二极管亮2s灭2s循环闪烁程序
实例运行效果:在单片机键盘上输入机器码程序后复位并运行。安装单片机的I/O接口00位外接的发光二极管进入亮、灭循环闪烁状态。
程序点评:00位发光二极管亮、灭时间间隔相同。只要不断电,00位外接的发光二极管一直会循环闪烁。
【例2-9】 设计一个00位发光二极管亮2s后熄灭,熄灭5s后02位发光二极管亮2s后熄灭,熄灭5s以后00位发光二极管与02位发光二极管逐一亮灭(即00位发光二极管与02位发光二极管逐一交替循环闪烁)的程序
实例运行效果:在单片机键盘上输入机器码程序后复位并运行。安装在单片机I/O接口00位和02位的外接发光二极管发光开始交替循环闪烁。
程序点评:00位和02位发光二极管先后亮灭,亮、灭时间间隔不相同。只要不断电,两只外接的发光二极管会一直交替循环闪烁。
5.程序结束指令
程序结束指令是一条伪指令,表示程序结束,它已在程序中多次应用。因此,不再举例说明。
6.地址
在单片机芯片内部有一定容量的存储单元用于保存用户编写的程序。地址就是这些存储单元的编号。用宏指令编写的汇编语言中有地址一栏,计算每条程序的地址时可以按助记符一栏计算也可以按机器码一栏计算,但每个程序的首地址都是从00开始。
1)程序地址的计算。以例2-1汽车转向灯程序为例,其按机器码一栏计算地址如下:
在例2-1的程序中,第一条机器码程序有两个指令有分别是“0B”、“01”。程序的首行地址都是从00开始,所以第一行程序的地址是00,它表示00地址单元中存放“0B”指令。第一条机器码程序中的第二个指令数据“01”存放在01地址单元中。第二行程序的开始地址是02,第二条机器码程序有两个指令有分别是“0B”、“05”,其中02地址单元中存放“0B”指令,03地址单元中存放“05”数据。第三条程序的开始地址是04,第三条机器码程序有三个指令有分别是“12”、“05”、“02”。其中04地址单元中存放“12”指令,05地址单元中存放“05”数据,06地址单元中存放“02”数据。依此类推计算并写出程序的地址栏。
2)通过地址修改程序。在单片机上输入完毕程序后,若要对程序中的某些指令、数据进行修改时简捷的方法是按地址修改。下面以例2-1汽车转向灯程序为例讲解如何修改地址上的数据。
例2-1汽车转向灯程序是两个黄灯同时亮灭,现将修改两个黄灯同时亮灭的延时时间,以改变汽车转向灯闪烁的视觉效果。修改延时时间可以修改时间长短(即时间数据),也可以修改延时时间单位。下面我们以修改延时时间为例,将时间单位从1s改为0.1s,即将“02”改为“01”。
具体操作步骤如下:
1)计算出要修改的延时单位数据存放的存储单元地址。例2-1中的两条延时指令程序的行地址分别是“04”和“0B”。存放延时单位数据的存储单元地址分别是“06”,“0D”。
2)按下单片机的复位键,显示器显示“C”。
3)按下地址键,显示器显示“00.”(注意是00点,显示点表示的是00地址)。
4)按住地址键不松手,在显示器上显示“00.”的基础上调整“加数”、“减数”键使显示器显示要修改的时间数据的地址“04.”后放手。
5)再将原数据“02”调整为修改值“01”(用“加数”、“减数”键)。
6)写入:按下写入键将修改后的指令或数据写入到单片机的内存中。
7)再修改第二个数据。
8)按下地址键不松手,在显示器上显示“05.”的基础上调整“加数”、“减数”键使显示器显示要修改的时间数据的地址“0D.”后放手。
9)再将原数据“02”调整为修改值“01”(用“加数”、“减数”键)。
10)写入:按下写入键将修改后的指令或数据写入到单片机的内存中。
11)运行程序并检查修改效果。先按下单片机的复位键,显示器显示“C”。再分别按下地址键和写入键同时放手。
有关零起点学习单片机多语言编程的文章
在上面已经介绍了简易汇编的概念和“宏”指令的特点,现在我们可以进行“宏”指令源程序的编辑、输入和执行操作。指示灯D0被点亮,表示程序从地址00开始正确执行。可反复操作,表示机器功能正确,可以使用。hex文件程序输入对于hex文件用上面示例的方法,将机器码输入到存储器内。......
2023-11-07
一种良好的程序设计规则和方法是结构化程序设计。结构化程序设计的基本思想是基于这样的考虑,即任何程序都可以用三种基本结构的组合来实现。这三种基本结构为顺序结构、分支结构和循环结构。在本章的程序讲解和编程练习中较多地使用了“延时程序”子程序,其程序结构常用的有单循环和双循环。由于前文所介绍的程序并没有对“延时程序”子程序延时时间的计算进行讲解,因此,在此结合程序的循环结构讲解延时程序的延时时间计算。......
2023-11-07
安装在单片机上的两个数码管从“00”开始累加1显示,到“99”后循环。需要讲解的指令重点是累加器A加1赋值指令“INC A”和十进制变换指令“DA A”。低位数码管逐段循环显示源程序实例程序运行效果:在完成了源文件建立、汇编、下载的步骤后,单片机自动运行该程序。......
2023-11-07
尽管单片机有许多特点,但仍然属于计算机的范围。这种特殊的语言就是程序设计语言,也就是由一系列语句组成的程序。程序设计语言从原理上可分为机器语言、汇编语言和高级语言三种类型,单片机也不例外。由于汇编语言指令具有直接对应机器语言指令的特点,因而生成的机器代码效率高,执行速度快,至今在单片机程序设计中仍被采用。在众多高级语言中,只有C语言成了应用于单片机系统的高级语言。......
2023-11-07
单片机是将CPU+ROM+RAM+I/O集成在一块小小的芯片上,这种结构使用非常灵活,可以“嵌入”任何控制对象内,组成嵌入式系统。单片机中的片内程序存储器是一种可编程可擦除的只读存储器。通用计算机的CPU主要是进行高速数据处理。单片机体积很小,可以直接“嵌入”到机器的控制板上,实际上就是将计算机系统嵌入到机器内,组成所谓的“嵌入式系统”。......
2023-11-07
位运算是以运算量的二进制位为单位所进行的运算。一般位逻辑运算都是以十六进制数形式进行。在右移运算中,左端的空位补0,右端移出位则舍弃。按条件将a=0x85,b=0x36,执行位运算具体如下:P3=a<<1,左移1位后a=00001010=0x0A显示正确,左位取消,右位补0。......
2023-11-07
定时器/计数器是MCS51系列单片机芯片内的一个组件,简写为T/C。它有2个相同的定时器/计数器,称为定时器/计数器0和定时器/计数器1。实际上定时器/计数器是一个计数器,可以8位、13位或16位计数,对应的两组4个8位计数器。TCON定时控制位共4位。TR0=0,停止定时器/计数器工作;TR0=1,开启定时器/计数器工作。TMOD是专业寄存器,用于设定定时器/计数器0和定时器/计数器1的工作方式,只能用字节传送设置。......
2023-11-07
所谓DIY即自己做。要实现DIY并不困难,只要具备基本的电子电路的焊接技能,了解电子元器件的基础知识,会使用多用表(万用表),就可以按照本书的步骤完成本单片机实验机的自装,并能顺利地投入使用。一般用5色环表示阻值和准确度。用数字万用表测量所有电阻阻值,应在规定误差范围内。若最后数字万用表的显示不能超出量程,说明电容存在漏电,耐压条件不合格,不能使用。......
2023-11-07
相关推荐