作者Aquatics (小瑞)
看板C_and_CPP
标题Re: [问题] 单晶片使用Keil C ?
时间Sun Jun 21 11:55:48 2009
※ 引述《hotpot21 (小新)》之铭言:
: 大学时期学C(蚂蚁书) 只是在电脑上Run
: 现在碰到单晶片使用Keil C,有看过相关程式、与51晶片的各接脚功能
: 有些地方一直搞不懂
: (程式主要是控制LCD的驱动IC)
: 请问。。。
: 1.程式里的哪些变数才是对应到晶片上的接脚? 一直连结不起来 @@
: 怎麽设定 ?
查阅 8051的datasheet,里面有SFR 位址定义
然後对照 Keil 的 .H 档案,
例如
sfr P0 = 0x80;
就是将P0 宣告对应SFR的0x80
所以在C code里面,使用P0 时,compiler 就会知道要去存取 0x80
: 2.初学者如何吸收才会较有效率?
: 又如果在"晶片控制LCD的驱动IC"方面来说 要如何学习与吸收?
多写多看sample多debug
: 3.看到程式里有如下:
: void WRITE(unsigned int cmd)
: {
: .
: .
: .
: .
: .
: XBYTE[0X01] = cmd ;
: }
: 请问 XBYTE[0X01] 是什麽意思?
能用 XBYTE 是因为有include "ABSACC.H"
里面对XBYTE有定义
#define XBYTE ((unsigned char volatile xdata *) 0)
应用到xdata资料型态,在keil manual 里面有说明
简单来说,是使用组语 MOVX 指令来存取
至於MOVX的动作,datasheet 有时序图说明
: 4. 譬如 location = 0X0000
: 只知道 0X0000 是16进制 但为何要 = 0X0000 ? 而不是一般的数@@
可以写 location = 0
只是为了coding style 一致所以写 0x0000
像 LCM = 0x8000
你也可以写 LCM = 32768,compile 出来都一样的
写16进位对於制作外部decode 电路会比较清楚 。
: 麻烦各位前辈教导!! 原谅小弟的才疏学浅..
: 非常感谢各位
写得没有很详细,建议你自己自己查书;会学得更多。
good luck
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 219.84.233.198
1F:推 hotpot21:非常感谢你的耐心指导 1.详细 懂了 2.了解 有推荐的书? 06/21 13:07
2F:→ hotpot21:3.IC datasheet时序图看不懂!! XBYTE定义 我再去研究一下 06/21 13:12
3F:→ hotpot21:4. 0是十进制? 为了coding style是何意? 06/21 13:14
4F:→ james732:KeilC的官网有说明文件可以看 建议初学者先去看一下 06/21 13:21
5F:→ hotpot21:英文? 还是去看看!! 感谢 06/21 13:24
7F:→ james732:是英文没错 不过不难读 我英文很烂都看得懂了 XDDD 06/21 13:25
8F:→ hotpot21:说不定我比你更烂XD!! 整个看完? 06/21 13:27
9F:→ Aquatics:应急可先看相关部分,有空整个go through 一遍,以後查 06/21 13:30
10F:→ Aquatics:比较快 :) 06/21 13:30
11F:→ hotpot21:相关部分是? 总觉得都很关..连... XD 06/21 13:33
12F:→ james732:用关键字去查吧 06/21 13:53
13F:→ hotpot21:thanks 06/21 14:21
14F:推 zlw:根据C/C++标准的规定,0就是0没有几进制,加上0x就是16进位, 06/21 14:25
15F:→ zlw:如0xA;加上0就是八进制,如010其实是0x8;其他当然就是10进制 06/21 14:26
16F:→ zlw:组合语言,记得好像是用10h中的h代表16进位,10b的b代表二进位 06/21 14:28
17F:推 hotpot21:了解 感谢 06/21 14:30
18F:推 VictorTom:其实应该是以 ?进制表示法 来表达一个数而已.... 06/21 19:34
19F:→ VictorTom:那些constant不管用几进制表示, 代表的数仍是相同的. 06/21 19:35
20F:→ VictorTom:所以才会说只是为了维护coding style一致而已:) 06/21 19:35
21F:→ hotpot21:?->什麽东东;coding style让程式看起来易读? 06/21 20:53
22F:→ hotpot21:感谢解说 很详细!! 06/21 20:54