第二行程序的开始地址是02,第二条机器码程序有两个指令有分别是“0B”、“05”,其中02地址单元中存放“0B”指令,03地址单元中存放“05”数据。第三条程序的开始地址是04,第三条机器码程序有三个指令有分别是“12”、“05”、“02”。......
2023-11-07
1.【例4-31】 流水灯
(1)编辑C语言源程序
(2)编译
作为编程练习,“//”后面的注释部分无需输入。键入时,要注意每一条语句的格式,例如,“{ }”、“;”等不能遗漏,所有标点符号用英文输入状态下的符号。
(3)执行
1)软仿真。操作方法见前节。编译通过后,点“调试”进入软仿真状态。
①点击“外围设备”,调出P1状态。点击“W监视及堆栈”,调出变量窗口。
②执行时,所有操作均采用“单步”,一步步地执行。
变量i及a,P1口变化如下:
③跟随语句的执行,可以看到P1状态的变化。
2)将程序下载到实验机。将上面C51源程序编译后的HEX文件通过STC-ISP下载软件写入目标板(实验机)观察结果,应显示流水灯效果。
(4)程序点评
1)延时子函数的延时计算:t=6μs×167×100×5=500ms=0.5s
2)因为变量a左移1位后,最低位必须是1。用逻辑位或0x01来保证。
3)因为变量a右移1位后,最高位必须是1。用逻辑位或0x80来保证。
2.【例4-32】 广告灯
所谓广告灯,就是可以任意变化显示方案的灯。也就是将灯的显示码存入芯片的ROM内,执行时可顺序调出,达到彩灯的效果。显示码可以任意设置。(www.chuimin.cn)
(1)编辑C语言源程序
(2)编译
(3)执行
1)软仿真。实际上就是将显示码放入数组,每次调用数组内容输出到P1口。
2)下载到目标机,具体操作见第一章。
(4)程序点评
本例用数组a存储显示码,存储类型为code型,放在ROM区。用for循环调用数组内容输出到P1口,分时以灯的二进制码显示,形成广告灯效果。用存储代码的方法可以对编码进行任意编排,比用移位方法简单得多。
3.【例4-33】 用指针法显示广告灯
(1)编辑C语言源程序
(2)编译
(3)执行
1)软仿真。单击“单步”执行程序,核对P1口的输出状态,与数组的内容相同,证明程序正确。
2)下载到实验机,显示相同效果。
(4)程序点评
本例与例4-30相同,只不过调用方式改为指针。根据指针的定义pa=a等效于pa=&a[0],即数组a[0]的地址。若将数组的元素序号用变量i代表,则可以表示 pa+i=&a[i]。当然,*(pa+i)=a[i],取地址pa+i的内容就是数组的内容。所以P1=*(pa+i),P1就是数组a的内容,即
有关零起点学习单片机多语言编程的文章
第二行程序的开始地址是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
为此,我们采用逐次逼近,边焊边试的操作方法,保证读者能100%按质量完成整机装焊。用逻辑笔测试U3-74HC164的引脚13、12、11、10、6、5、4、3的状态,应为11000110。若不能显示以上状态,应立即断开电源开关K1,逐项检查。如果直接进行下一步会相当危险,可能导致整板报废。2)插放芯片U2、U3、U4、U5及数码管。达不到要求不能进行下一步。按第3步3)操作,应正常显示。......
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
相关推荐