程序点评:数据传送指令MOV将一组数据分别传送到P1口,做了输出口的操作。将8位立即数传送给累加器A,再由累加器A将数据传送到I/O接口的P1口,使P1.0灯亮。在I/O接口输出操作时不能将间接寄存器中的地址输出到P1口。......
2023-11-07
1.调试程序
2.汇编
用Keil C51 V6.12编译软件汇编。将文件命名为“exam_1”并完成汇编而且确定无汇编错误、无警告和已生成了后缀为“.hex”的文件。
若程序汇编出错,则必须按系统信息栏的错误提示对程序进行修改,再次进行汇编,直到通过为止。否则无法产生.hex文件,更无法进入调试环境。只在程序汇编通过并产生.hex文件的条件下才可进入调试状态。
3.软仿真调试操作步骤
下面为简化软仿真调试统称“调试”。调试的目的是发现程序的错误。主要是观察工作寄存器、片内RAM单元、SFR及转移的地址位置是否正确,软仿真调试窗口如图3-8所示。
1)单击主菜单上的“调试”按钮,在第1条(LJMP MAIN)指令处显示黄色图标,并显示调试菜单条。(www.chuimin.cn)
2)单击调试菜单上的“外围设备→I/O→Port→Port 1”(因为程序中使用了P1口),I/O接口图标显示P1口状态(可以拖动)。上排表示输出状态,下排表示输入状态。标志“”表示高电平,空白表示低电平。系统上电复位后,端口均处于高电平输入状态。
3)在调试菜单中单击“跟踪”按钮,再一下下按动键盘上的“F11”键,程序则一步步执行。经过指令“CPL P1.0”,I/O接口图标显示P1口状态可看到P1.0=0。
这里“跟踪”是一条条执行指令,进入延时指令后继续执行“跟踪”,在左侧工作寄存器栏显示R5=0x05,R6=0x64,R7=0xF6数据一个个变化。先是R7不断减1,一直到R7=0为止。然后R6减1,再执行R7-1。如果有耐心的话,可以一直执行“跟踪”,观察工作寄存器的变化。因为每执行一步DJNZR7,$,等于延时2×2=4μs。总的延时时间t=250×4×100×5=500ms=0.5s。
图3-8 软仿真调试窗口
4)在调试菜单中单击“单步”按钮,再一下下按动键盘上的“F10”键,程序则一条条执行。经过指令“CPL P1.0”时,I/O接口图标显示P1口状态可看到P1.0=0。在经过指令“SETB P1.0”时,I/O接口图标显示P1口状态可看到P1.0=1。执行SJMP MAIN程序转移到MAIN。连续单击“单步”按钮,可看到P1.0由1到0不断变化。实际就反映了灯P1.0的亮和灭的变化。
“单步”调试是一种宏调试。它可以一次执行完子程序的全部指令,这与“跟踪”调试不同。
5)在调试菜单中单击“调试开始/停止”按钮,返回编辑状态。尽管这是为练习而举的例子,但不管程序如何复杂在程序正确的条件下方法是相同的。
有关零起点学习单片机多语言编程的文章
程序点评:数据传送指令MOV将一组数据分别传送到P1口,做了输出口的操作。将8位立即数传送给累加器A,再由累加器A将数据传送到I/O接口的P1口,使P1.0灯亮。在I/O接口输出操作时不能将间接寄存器中的地址输出到P1口。......
2023-11-07
逐一依次循环闪烁:“逐一”表示某时刻仅能有一个发光二极管亮;“依次”表示I/O接口各位的发光二极管按顺序亮;“循环”表示I/O接口各位的灯逐一依次无固定次数的不停闪烁;“闪烁”表示I/O接口各位的发光二极管有亮有灭。方案说明:图2-1中深色的符号表示发光二极管亮,浅色的符号表示发光二极管不亮。3)程序设计(二)。程序点评:在关闭上一对发光二极管1s后,开启下一对,关闭与开启之间有1s的时间间隔。I/O接口位N=00~07。......
2023-11-07
可进行置位、复位、取反、等于0转移、等于1转移且清“0”、逻辑运算以及与可寻址位之间传送数据的操作。MCS51系列单片机的I/O接口位输入、输出操作指令只能通过累加位C进行。本例中使用了I/O接口置位清“0”输出操作指令,而例3-1使用了I/O接口按口输出操作指令。......
2023-11-07
1)把I/O接口的P2口中的输入数据保存在累加器A,再将累加器A中保存的输入数据输出到I/O接口的P1口。从P1口验证P2口输入的数据源程序(一)实验机的小键盘上的+1键、-1键、高一位操作键、地址键和写入键一端分别接在P2口的P2.0、P2.1、P2.2、P2.3、P2.4上,另一端接地。每次复位后可以重新输入。安装在P1口的发光二极管亮的位与接在P2口按下的键相对应。程序点评:P2口输入的数据通过芯片内部RAM用户区某地址输出到P1口。......
2023-11-07
否则无法产生.hex文件,无法进入调试环境。2)单击调试菜单中的“外围设备→I/O-Port→Port 1”,显示P1口状态。图3-9RAM单元内容图3-10工作寄存器内容图3-11P1状态5)通过调试证明程序执行正确。单击“调试→开始→停止”返回编辑状态。......
2023-11-07
所谓I/O接口也就是输入/输出接口。根据信号传输方式的不同,I/O接口一般可分为并行接口和串行接口两种方式。通常所说的并行接口一般称为Centronics接口,也称为IEEE1284标准。当传输距离较远、位数又多时,并行接口会导致通信线路复杂且成本提高。图5-13所示为各类并行接口及并行电缆,传输的是数字量和开关量。串行接口按电气标准及协议来分包括RS-232-C、RS-422、RS-485等。......
2023-06-23
尽管单片机有许多特点,但仍然属于计算机的范围。这种特殊的语言就是程序设计语言,也就是由一系列语句组成的程序。程序设计语言从原理上可分为机器语言、汇编语言和高级语言三种类型,单片机也不例外。由于汇编语言指令具有直接对应机器语言指令的特点,因而生成的机器代码效率高,执行速度快,至今在单片机程序设计中仍被采用。在众多高级语言中,只有C语言成了应用于单片机系统的高级语言。......
2023-11-07
I/O接口是一组电子电路,它是CPU和I/O设备之间交换信息的媒介和桥梁,负责实现CPU通过系统总线把I/O电路和外围设备联系在一起。1)I/O接口的功能由于计算机的外围设备品种繁多,特性各异,每种设备都有各自的接口。PC中常见的接口标准有IDE接口、USB接口、显示器输出接口等,图2.23显示的是机箱背面的I/O接口。图2.23 PC机箱背面的I/O接口IDE接口和SATA接口IDE接口主要用于连接硬盘、光驱和软驱,采用并行双向传送方式,体积小,数据传输速率快。......
2023-10-22
相关推荐