SDCC简明手册.docx
- 文档编号:23867483
- 上传时间:2023-05-21
- 格式:DOCX
- 页数:12
- 大小:381.15KB
SDCC简明手册.docx
《SDCC简明手册.docx》由会员分享,可在线阅读,更多相关《SDCC简明手册.docx(12页珍藏版)》请在冰豆网上搜索。
SDCC简明手册
SDCC简明手册
仅探讨针对8051,针对windows环境下的应用。
在上搜索,并下载SDCC
在windows下安装sdcc,并且设置path
1,测试编译器
chartest;
voidmain(void){
test=0;
}
执行sdcc-ctest.c
生成test.asm,test.sym,test.lst和test.rel文件表示,编译成功
-c表示不进行连接
执行:
sdcctest.c
连接库生成test.ihx文件
test1.c
#include
charstr1[10];
voidmain(void){
strcpy(str1,"testing");
}
执行:
sdcctest1.c
生成test1.ihx文件,表示能够使用string.h库
以上,正常,证明SDCC能够正常工作。
输入packihxtest1.ihx>test1.hex用于生成intelhex文件
数据类型
data/near默认(smallmemorymodel),内部RAM
__dataunsignedchartest_data
xdata/far默认(largememorymodel)外部RAM
__xdataunsignedchartest_xdata
idata间接
__idataunsignedchartest_idata
变量使用:
#_test_idata_test_data等
pdata
__pdataunsignedchartest_pdata;
code
__codeunsignedchartest_code;
bit位类型变量
__bittest_bit;
定义SFR
__sfr__at(0x80)P0;
__sfr16__at(0x8C8A)TMR0;
__sbit__at(0xd7)CY;
指针变量
__xdataunsignedchar*__datap;
__dataunsignedchar*__xdatap;
__xdataunsignedchar*__codep;
__codeunsignedchar*__codep;
Unsignedchar*p;
char(*__datafp)(void);
8051存储结构
00-1F:
32字节4个bank,R0-R7
20-2F:
16字节128个位
30-7F:
89字节通用
绝对地址
xdataat0x7ffeunsignedintchksum;
__xdata__at(0x7ffe)unsignedintchksum;
__code__at(0x7ff0)charId[5]=“SDCC”;
告诉编译器不要禁止访问
volatile__xdata__at(0x8000)unsignedcharPORTA_8255;
定义I/O
__bit__at(0x80)MOSI;
中断服务程序
voidtimer_isr(void)__interrupt
(1)__using
(1)
{
}
中断号
描述
中断地址
0
外部0
0x0003
1
定时器0
0x000b
2
外部1
0x0013
3
定时器1
0x001b
4
串口
0x0023
5
定时器2
0x0026
…
N
0x0003+8*n
.HEX文件烧录到单片机中,即可运行.
分三步走:
1,设置PATH路径
2,SDCC***.C
3,PACKIHX***.IHX>****.HEX
4,烧录***.HEX到单片机
S51使用简介(S51是8051的模拟器)
1,显示模拟器的配置conf
2,显示硬件信息ihport[2]
3,设置硬件数据sethwport[0]12
4,帮助help?
?
t
5,退出q
6,简单计算expr8+1
7,显示信息show
8,显示sfr信息,getsfrp0getsfr0x90getsfrp0p1p2p3
9,设置数据setmemsfrp00x55
10,设置位数据setbitp1.40setbitp2.51
11,显示状态state
12,设置中断
13,显示所有中断ib
S51的DOS下图形界面:
更多信息如下链接
http:
//mazsola.iit.uni-miskolc.hu/~drdani/embedded/s51/
使用Emulator8051V1.0byTSControls进行仿真
软件注册信息为:
Name:
ImperialFalcons/n:
1911
可以使用周立功的TKSTUDIO集成开发环境加载SDCC进行开发,有模拟器功能。
通过编译工具设置,设置最新版本的SDCC(安装SDCC后,在这里指定目录)
根据安装的SDCC目录按照下图进行选择
下面是一个简单的程序示例:
#include"8052.h"
voidinit_timer0_16bit(void);
voidmain()
{
init_timer0_16bit();
while
(1)
{
P1_1=!
P1_1;
}
}
voidinit_timer0_16bit(void)
{
TMOD&=0xF0;/*Timer0mode1withsoftwaregate*/
TMOD|=0x01;/*GATE0=0;C/T0#=0;M10=0;M00=1;*/
TH0=0x00;/*initvalues*/
TL0=0x00;
ET0=1;/*enabletimer0interrupt*/
EA=1;/*enableinterrupts*/
TR0=1;/*timer0run*/
}
voidit_timer0(void)__interrupt
(1)__using
(1)/*interruptaddressis0x000b*/
{
TF0=0;/*resetinterruptflag(alreadydonebyhardware)*/
TH0=0xff;/*initvalues*/
TL0=0xfa;
P1_0=!
P1_0;/*P1.0togglewheninterrupt.*/
}
通过在工程窗口的SourceFiles右键选择“构建目标工程”生成目标文件
通过下面进行工程的参数配置
可以设置仿真的时钟频率等参数
通过下面菜单启动调试(也可通过快捷键进行)
可以对“输入/输出口”“定时/计数器”等进行观察。
跟踪窗口中的特征时间1.098us正是11.0592MHz的一个机器周期的时间。
也可以使用伟福的软件对.HEX进行反汇编,然后进行仿真模拟。
生成.HEX文件,可以用全面所述的命令行的方式进行生成
SDCC***.C
PACKIHX***.IHX>****.HEX
http:
//www.wave-
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- SDCC 简明 手册