打印

单片机汇编语言与C语言

[复制链接]
3682|19
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
FS1360472174|  楼主 | 2011-11-28 17:38 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
1.在C语言中I/O我们被告知默认为高电平。而在汇编语言中,我们在进行I/O口输入时需要先对I/O进行置1操作。如MOV P0,#0FFH。这让我想到同样的外部硬件,为什么两者编程方式不一样呢。由此我想了解一下两者语言的一些特点。

2.汇编语言编程时,地址跳来跳去的,让小弟很困惑,这些地址是显然不是随便定义的,那么他的原理是什么呢?
以下题为例
ORG 0000H
LJMP MAIN
ORG 001BH
LJMP SERVE
ORG 2000H这里的2000H是怎么确定的???????????????
MAIN:
MOV TMOD,#60H
MOV TL1,#9CH
MOV TH1,#9CH
MOV IE,#88H
SETB TR1
HERE: SJMP HERE
SERVE: CPL 1.0
RETI
谢谢各位了,不甚感激

相关帖子

沙发
mtxmxt| | 2011-11-28 18:14 | 只看该作者
我们在进行I/O口输入时需要先对I/O进行置1操作,这是因为51的IO口是准双向口
ORG 2000H这里的2000H是怎么确定的???????????????真的是随便定义的,只要避开中断入口地址 ,一般设定为0030H

使用特权

评论回复
板凳
NE5532| | 2011-11-28 19:22 | 只看该作者
去问做编译器的人吧。所以说还是汇编好,就老子说了算。

使用特权

评论回复
地板
DownCloud| | 2011-11-29 00:00 | 只看该作者
表达方式不一样而已。

使用特权

评论回复
5
ayb_ice| | 2011-11-29 08:03 | 只看该作者
"1.在C语言中I/O我们被告知默认为高电平。"

请问: 不知是谁告知的

使用特权

评论回复
6
q331513266| | 2011-11-29 09:12 | 只看该作者
估计是上帝……;P

使用特权

评论回复
7
FS1360472174|  楼主 | 2011-11-29 11:55 | 只看该作者
那你是怎么理解的?能否指导一下?不甚感激 6# q331513266

使用特权

评论回复
8
FS1360472174|  楼主 | 2011-11-29 11:56 | 只看该作者
那你是怎么理解的?能否告知一下?不甚感激 5# ayb_ice

使用特权

评论回复
9
sysdriver| | 2011-11-29 12:31 | 只看该作者
估计LZ刚开始学习,有些东西不用深究,达到一定的境界就知道,比如那IO,比如那地址。
初学者知道怎么做就照着做照着用,如果事事都问为什么,会影响你的兴趣和进度。就那IO和地址,如果你多做几个实际练习就知道了也说不定。

使用特权

评论回复
10
z3571240| | 2011-11-29 12:39 | 只看该作者
:lol初学者来看看

使用特权

评论回复
11
jack821119| | 2011-11-29 13:47 | 只看该作者
"在C语言中I/O我们被告知默认为高电平。"
我想楼主是指51系列的单片机,51系列的单片机上电后IO口默认是高电平。
但是这只限于51类的单片机,其他内核的单片机上电后默认的有些是低电平,也有些是高电平。

其实用c51进行读操作的时候,也需要先将IO口置高,然后才可以进行读操作。
只不过一般情况下,该IO口默认输出是高电平,所以就省掉了置高的操作。
如果该IO口是双向的IO口,那这步操作就不可以省掉。不然会导致读入的数据不正确。


ORG 2000H
这句只是表示起始地址,也可以设置为其他地址。该地址由mcu内部的程序存储区的大小决定的。
设置为2000H,只是为了避免和中断入口地址冲突而已。

还有随便问下,楼主你是不是佛山的?

使用特权

评论回复
12
q331513266| | 2011-11-29 14:05 | 只看该作者
有问题加Q聊……

使用特权

评论回复
13
peigang| | 2011-11-29 15:14 | 只看该作者
中断地址和程序的初始地址
中断地址是单片机默认的
看手册
程序执行初始地址自己设置
不予中断地址冲突就行

使用特权

评论回复
14
haha123ab| | 2011-11-29 15:33 | 只看该作者
c语言简单。。。。。。

使用特权

评论回复
15
chencheng| | 2011-11-29 16:49 | 只看该作者
单片机采取固定入口地址的办法管理中断。也就是说,程序存储器中,有一些存储单元是被约定为某个中断服务程序的存储空间,其它程序应避免使用这些空间。又由于留给中断服务程序的存储空间实际上很小,通常是放置一条转移指令,转到用户自己安排的地方去。

使用特权

评论回复
16
fjzzclc| | 2011-11-29 17:00 | 只看该作者
最近也开始学C语言

使用特权

评论回复
17
FS1360472174|  楼主 | 2011-11-29 20:19 | 只看该作者
不是佛山人,何出此言? 12# q331513266

使用特权

评论回复
18
FS1360472174|  楼主 | 2011-11-29 20:20 | 只看该作者
不是佛山人,何出此言 11# jack821119

使用特权

评论回复
19
jack821119| | 2011-11-30 09:24 | 只看该作者
只是看到你的名字是fs开头的,佛山的缩写是fs开头,我是佛山的,还以为遇到同乡了 哈

使用特权

评论回复
20
hotpower| | 2011-12-1 07:55 | 只看该作者
在PC端练习C语言是快速掌握的捷径。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

2

主题

56

帖子

1

粉丝