单片机实验数码转换实验代码如何补充,补充过程及注释解释

单片机实验数码转换实验代码如何补充,补充过程及注释解释,第1张

2.2.1 实验目的

1. 掌握不同进制数及编码相互转换的程序设计方法,加深对数码转换的理解;

2. 熟悉Keil C51 集成开发环境的 *** 作及程序调试的方法。

2.2.2 实验设备

PC机一台,TD-NMC+教学实验系统、或“TD-PIT++教学实验系统+TD-51 系统平台”、或

“TD-PITE 教学实验系统+TD-51 系统平台”

2.2.3 实验内容

1. 将BCD 码整数0~255 存入片内RAM 的20H、21H、22H 中,然后转换为二进制整数

00H~FFH,保存到寄存器R4 中。

2. 将16 位二进制整数存入R3R4 寄存器中,转换为十进制整数,以组合BCD 形式存储在

RAM 的20H、21H、22H 单元中举嫌。

2.2.4 实验步骤

1. BCD 整数转换为二进制整数

实验参考例程:(Asm2-1.asm)

ORG 0000H

LJMP MAIN

ORG 0100H

MAIN: MOV R0, #20H BCD 存放高位地址

MOV R7, #03H BCD 码0--255, 最多3 位

CLR A

MOV R4, A

LP1: MOV A, R4

MOV B, #0AH

MUL AB 乘10

ADD A, @R0 加下一位的值

INC R0 指向下一单元

MOV R4, A 结果存入R4

DJNZ R7, LP1 转换未结束则继续

SJMP MAIN 设置断点, 观察实验结果R4 中的内容

END

实验步骤:

(1)输入程序,检查无误后,编译、链接程序,首先给系统复位,然后点击命令进入

调试状态;

(2)修改20H、21H、22H 单元的内容,如:00H,05H,08H;

(3)在SJMP MAIN 语句行设置断点,然后运行程序;

(4)程序遇到断点后停止程序运行,此时查看寄存器R4 的内容,应为3AH;

(5)重新修改20H、21H、22H 单元的内容,再次运行程序,验证程序的正确性;

(6)实验结束,按复位键将系统复位,点击退出调试状态。

2. 二进制整数转换为十进制整数

图2-2-1 程序流程图

实验参考例程:(Asm2-2.asm)

ORG 0000H

LJMP MAIN

ORG 0100H

MAIN: MOV R0, #22H 转换结果低位地址

MOV A, R0

PUSH ACC ACC 表示累加器A 的直接地址

MOV R7, #03H

CLR A

LP1: MOV @R0, A 结果存储地址清零

DEC R0

DJNZ R7, LP1

POP ACC

MOV R0, A

MOV R7, #16

LP2: PUSH ACC

CLR C

MOV A, R4 R4中为二进制数的低位

RLC A

MOV R4, A

MOV A, R3 R3中为二进制数的高位

RLC A

MOV R3, A

MOV B, #03H

LP3: MOV A, @R0

ADDC A, @R0 执行乘2 *** 作

DA A 十进制调整

MOV @R0, A 结果保存

DEC R0

DJNZ B, LP3

POP ACC

MOV R0, A

DJNZ R7, LP2

LJMP MAIN 设置断点观察结果, 可进行下一次转换

END

实验步骤:

(1)编写实验程序,程序流程图如图2-2-1 所示,编译、链接无误后,进入调试状态;卖答腔

(2)修改R3R4 寄存器,例如A2H、FCH;

(3)在LJMP MAIN 语中衫句行设置断点,然后运行程序;

(4)程序停止后,查看存储器20H 的内容,应为:04H、17H、24H;

(5)反复修改R3R4 寄存器的内容,运行实验程序,验证程序的正确性。

有两个方面的原因引起的。

一是硬件问题。硬件问题一般都是内存的地址分配失败了,还有可能是内存坏了或者质量有问题。

二是软件问题。在使用动态分配的应用程序中,有时会有这样的情况出现:程序试突读写一块「应该可用」的内存,但不知为什么,这个预料中可用的光标已经失效了。有可能是「忘记了」向 *** 作系统要求分配,也可能是程序自己在某个时候已经注销了这块内存而「没有留意」等等。注销了的内存被系统绝嫌回收,其访问权已经不属于该应用程序,因此读写 *** 作也同样会触发系统的保护机制,企图「违法」的程序唯一的下场就是被 *** 作终止执行,回收全部资源。计算机世界的法律还是要比人类有效和严厉得多啊!像这样的情况都属于程序自身的BUG,你往往可在特定的 *** 作顺序下重现错误。无效光标不一定总是0,因此错误提示中的内存地址也不一定为「0x00000000」,而是其它随机数字。而在内存中有个存放数据的地方叫缓冲区,当程序把数据放在其一位置时,因为没有足够空间,就会发生溢出现象。这个问题,经常出现windows2000和XP系统上,Windows 2000/XP对硬件的要求是很苛刻的,一旦遇到资源死锁、溢出或者类似Windows 98里的非法 *** 作,系统为保持稳定,就会出现上述情况。

解决方法:

1 内存条坏了 更换内存条

2 双内存不兼容 使用同品牌的内存或只要一条内存

3 内存质量问题 更换内存条

4 散热问题

加强机箱内部的散热

5 内存和主板没插好或其他硬件不兼容 重插内存或换个插槽

6 硬件有问题 更换硬盘

7 驱动问题

重装驱动,如果是新系统,应先安装主板驱动

8 软件损坏 重装软件

9 软件有BUG 打补丁或更新到最新版本

10 软件和系统不兼容

给软件打上补丁或是试试系统的兼容模式

11 软件和软件之间有冲突 如果最近安装了什么新软件,卸载了试试

12 软件要使用其他相关的软件有问题

重装相关软件,比如播放某一格式的文件时出错,可能是这个文件并则手的解码器有问题

13 病毒问题 杀毒

14 杀毒软件与系统或软件相冲突

由于杀毒软件是进入底层监控系统的,可能与一些软件相冲突,卸载试试

15 系统本身有问题

有时候 *** 作系统本身也会有BUG,要注意安装官方发行的盯升更新程序,象SP的补丁,最好打上.如果还不行,重装系统,或更换其他版本的系统。

内存指令不能written,这是在电脑使用中经常出现的问题,内存是主板上的存储部件,是CPU直接与之沟通,并用其存放当前正在使用的数据和命令的重要部件。当你用键盘或鼠标输入某个命令后,CPU就会解释命令并将指令或程式载入到内存中,这样程序才能够被执行。而一旦内存发生问题了,程序就不能被执行,因此就产生了前面我们提到的“该内存不能为written”错误的警告。当然,出现了“该内存不能为written”的故障也不一定都是内存的问题,电脑中了病毒或木马以及运行的程序本身的Bug也会造成这种现象。很难分清究竟是什么原因造成的,一时半会不好排除,但没关系,按确定、取消,重启,即可。感兴趣的网友可用下述办法试着去解决:

1、打开的程序太多,如果同时打开的文档过多或者运行的程序过多,没有足够的内存运行其他程序,要随时关闭不用的程序和窗口。

2、自动运行的程序太多,关闭一些启动程序, 开始-运行-Msconfig---启动 ,除杀毒软件、输入法外一般的程序都可以关掉。

3、物理内存过小,加大物理内存;内存和主板没插好或其他硬件不兼容 重插内存或换个插槽 ;双内存不兼容 ,要使用同品牌的内存或只要一条内存 ;劣质内存条或内存条坏了 更换漏简内存条;合理设置虚拟内存。

4、市电电压过大的波动,或者PC机上使用劣质电源,都会给内存带来损害,更换功率大、质量好的电源。

5、PC机箱内充满灰尘,或者PC工作环境相对潮湿,也会造成运行不正常。及时除尘。

6 、CPU、显卡散热问题 ,改善散热 。

7、硬盘有问题 ,扫描修复或更换硬盘 。

8 、驱动问题 重装更新驱动 。

9、非法 *** 作,系统无法执行。

10、 软件损坏 重装软件 ;软件有BUG 打补丁或更新到最新版本 ; 软件和系统不兼容 给软件打上返胡裤补丁或是试试系统的兼容模式 ; 软件和软件之间有冲突 如果最近安装了什么新软件,卸载了试试 。

11、 系统本身有问题 有时候 *** 作系统本身也会有BUG,要注意安装官方发行的更新程序最好及时补上,必要时重装系统。

12、 病毒问题 杀毒 ;杀毒软件与系统或软件相冲突 由于杀毒软件是进入底层监控系统的,可能与一些软件相冲突,卸载试试 。

13、运行执行regedit进入注册表, 在进入:HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Explorer\\ShellExecuteHooks下,这个键值下面应该只有一个正常的键值"{AEB6717E-7E19-11d0-97EE-00C04FD91972}, 如果有其他的我们可以将其它的全部删除,只做返保留这个默认键值。

14、试用命令排除

开始-运行- 输入cmd-- 回车,在命令提示符下输入下面命令

for %1 in (%windir%\system32\*.dll) do regsvr32.exe /s %1

怕输入错误,可以复制这条指令,然后在命令提示符后击鼠标右键,打“粘贴”,回车,耐心等待,直到屏幕滚动停止为止。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12501606.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-25
下一篇 2023-05-25

发表评论

登录后才能评论

评论列表(0条)

保存