第二行程序的开始地址是02,第二条机器码程序有两个指令有分别是“0B”、“05”,其中02地址单元中存放“0B”指令,03地址单元中存放“05”数据。第三条程序的开始地址是04,第三条机器码程序有三个指令有分别是“12”、“05”、“02”。......
2023-11-07
1.10个数的倒计时程序
【例2-33】 从09开始倒计时程序
实例程序运行效果:在单片机上手工输入并运行该程序,显示器从“09”开始显示,随之递减“1”显示:08、07、06、05、04、03、02、01、00。
程序点评:程序应用了条件转移指令JNZD。当1-1=0时,一方面执行下一条显示程序;另外一方面将“0”的数值重新赋值给显示寄存器d。执行显示程序后显示00数值。
【例2-34】 从0A开始倒计时程序
实例程序运行效果:在单片机上手工输入并运行该程序,显示器从“0A”开始显示,随之递减“1”显示:09、08、07、06、05、04、03、02、01。
程序点评:程序应用了条件转移指令JNZD。当1-1=0时,一方面执行下一条结束程序;另一方面尽管将“0”的数值重新赋值给显示寄存器d,但所执行的下一条程序是结束指令。因此,不显示00数值,而显示的数值仍是01。
2.10个数的正计时程序
【例2-35】 从00~09的正计时程序
实例程序运行效果:在单片机上手工输入并运行该程序,显示器从“00”开始显示,随之递加“1”显示:01、02、03、04、05、06、07、08、09随后关显示。
程序点评:程序应用了INCD加数指令和数值比较条件转移指令JNED。当程序执行到d=08+01指令时,将“09”赋值给显示寄存器d并没有显示“09”这个数。再执行到数值比较条件转移指令d-dx=0时,执行下一条显示程序,显示“09”数值。
【例2-36】 从01~0a的正计时程序
实例程序运行效果:在单片机上手工输入并运行该程序,显示器从“01”开始显示,随之递加“1”显示:02、03、04、05、06、07、08、09、0A随后关显示。
程序点评:本程序与上面10个数正计时程序的主要区别是当程序执行到d=09+01指令时,将“0A”赋值给显示寄存器d并没有显示“09”这个数。当执行到数值比较条件转移指令0A-0B≠0转移到02地址显示。再次执当程序执行到d=0A+01指令时,将“0B”赋值给显示寄存器d并没有显示“0B”这个数。再执行到数值比较条件转移指令0B-0B=0转移到下一条关显示程序,没有显示“0B”这个数。
3.程序设计
【例2-37】 设计一个绿灯亮5s倒计时并显示的控制程序。
要求:倒计时到时后,绿灯灭。
实例程序运行效果:在单片机上手工输入并运行该程序,绿灯亮并从“05”开始倒计时显示,随后倒计时显示04、03、02、01。计时结束绿灯熄灭。
程序点评:程序应用了条件转移指令JNZD。当1-1=0时,执行下一条关绿灯程序。(www.chuimin.cn)
注意,这时显示寄存器d被重新赋值的数值是“00”。
【例2-38】 设计一个绿灯亮5s倒计时并显示,以及绿灯计时、显示结束后,黄灯亮3s的程序。
实例程序运行效果:在单片机上手工输入并运行该程序,绿灯亮并从“05”开始倒计时并显示。绿灯计时、显示结束后,关闭显示器和黄灯亮。黄灯亮3s后再灭。
程序点评:程序应用了条件转移指令JNZD。当1-1=0时,执行下一条关绿灯程序。
【例2-39】 设计一个绿灯亮5s倒计时并显示,以及绿灯计时、显示结束后,黄灯亮3s倒计时并显示的程序。
程序一:
实例程序运行效果:在单片机上手工输入并运行该程序,绿灯亮并从“05”开始倒计时并显示。绿灯计时、显示结束后,黄灯亮并从“03”开始倒计时并显示。黄灯计时、显示结束后,关闭显示器。
程序点评:程序应用了两次条件转移指令JNZD。当d-1≠0分别转移到了02地址与10地址。
程序二:
实例程序运行效果:在单片机上手工输入并运行该程序,绿灯亮并从“05”开始倒计时并显示。绿灯计时、显示结束后,黄灯亮并从“03”开始倒计时并显示。黄灯计时、显示结束后,关闭显示器。
程序点评:程序两次应用了当d-1≠0条件转移指令JNZD和应用了d-dx≠0数值比较条件转移指令JNED。多次转移,多个转移地址。尽管本程序也是绿灯亮5s但与上面的程序有所不同,它们一个是绿灯从“08”开始倒计时、显示,一个是从“05”开始倒计时、显示。
【例2-40】 设计一个绿灯亮5s倒计时并显示,以及绿灯计时、显示结束后,黄灯闪烁3s且倒计时显示的程序。
程序一:
实例程序运行效果:在单片机上手工输入并运行该程序,绿灯亮并从“05”开始倒计时并显示。绿灯计时、显示结束后,黄灯亮并从“03”开始倒计时与显示,同时黄灯闪烁3s。黄灯计时、显示结束后,黄灯灭并关闭显示器。
程序点评:倒计时程序一般是以1s为单位计时。黄灯闪烁的同时,倒计时的时间单位要一致。设计黄灯闪烁的时间亮、灭各0.5s共用1s即可满足要求。
程序二:
实例程序运行效果:在单片机上手工输入并运行程序,绿灯亮并从“08”开始倒计时并显示。绿灯计时、显示结束后,黄灯亮并从“03”开始倒计时与显示,黄灯闪烁3s。黄灯计时、显示结束后,黄灯灭并关闭显示器。
程序点评:注意区分d-1≠0条件转移指令JNZD和d-dx≠0数值比较条件转移指令JNED的不同用法。区分不同的转移地址。
有关零起点学习单片机多语言编程的文章
第二行程序的开始地址是02,第二条机器码程序有两个指令有分别是“0B”、“05”,其中02地址单元中存放“0B”指令,03地址单元中存放“05”数据。第三条程序的开始地址是04,第三条机器码程序有三个指令有分别是“12”、“05”、“02”。......
2023-11-07
单片机是将CPU+ROM+RAM+I/O集成在一块小小的芯片上,这种结构使用非常灵活,可以“嵌入”任何控制对象内,组成嵌入式系统。单片机中的片内程序存储器是一种可编程可擦除的只读存储器。通用计算机的CPU主要是进行高速数据处理。单片机体积很小,可以直接“嵌入”到机器的控制板上,实际上就是将计算机系统嵌入到机器内,组成所谓的“嵌入式系统”。......
2023-11-07
安装在单片机上的两个数码管从“00”开始累加1显示,到“99”后循环。需要讲解的指令重点是累加器A加1赋值指令“INC A”和十进制变换指令“DA A”。低位数码管逐段循环显示源程序实例程序运行效果:在完成了源文件建立、汇编、下载的步骤后,单片机自动运行该程序。......
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
位运算是以运算量的二进制位为单位所进行的运算。一般位逻辑运算都是以十六进制数形式进行。在右移运算中,左端的空位补0,右端移出位则舍弃。按条件将a=0x85,b=0x36,执行位运算具体如下:P3=a<<1,左移1位后a=00001010=0x0A显示正确,左位取消,右位补0。......
2023-11-07
尽管单片机有许多特点,但仍然属于计算机的范围。这种特殊的语言就是程序设计语言,也就是由一系列语句组成的程序。程序设计语言从原理上可分为机器语言、汇编语言和高级语言三种类型,单片机也不例外。由于汇编语言指令具有直接对应机器语言指令的特点,因而生成的机器代码效率高,执行速度快,至今在单片机程序设计中仍被采用。在众多高级语言中,只有C语言成了应用于单片机系统的高级语言。......
2023-11-07
所谓DIY即自己做。要实现DIY并不困难,只要具备基本的电子电路的焊接技能,了解电子元器件的基础知识,会使用多用表(万用表),就可以按照本书的步骤完成本单片机实验机的自装,并能顺利地投入使用。一般用5色环表示阻值和准确度。用数字万用表测量所有电阻阻值,应在规定误差范围内。若最后数字万用表的显示不能超出量程,说明电容存在漏电,耐压条件不合格,不能使用。......
2023-11-07
所谓独立键,就是各个按键的功能线之间没有电的连接,每个按键独立存在。这种连接方法一只按键要占用一个接口。常用于键少的应用场合。若再次查询按键并没有闭合,则认为按键未被按下,无效。流程图的作用就是将一个应用任务转化为计算机的工作流程。这是用计算机解决应用问题的必要前提。对于任何程序,只有三种基本结构,即顺序结构、分支结构和循环结构。反复执行,则P1.0反复取反状态,表示程序执行正确。......
2023-11-07
相关推荐