logo资料库

SDCC簡明手冊.doc

第1页 / 共10页
第2页 / 共10页
第3页 / 共10页
第4页 / 共10页
第5页 / 共10页
第6页 / 共10页
第7页 / 共10页
第8页 / 共10页
资料共10页,剩余部分请下载后查看
SDCC 简明手册 仅探讨针对 8051,针对 windows 环境下的应用。 在 google.com 上搜索,并下载 SDCC http://sdcc.sourceforge.net/ 在 windows 下安装 sdcc,并且设置 path 1,测试编译器 char test; void main(void) { test=0; } 执行 sdcc -c test.c 生成 test.asm ,test.sym, test.lst和 test.rel 文件 表示,编译成功 -c表示不进行连接 执行:sdcc test.c 连接库生成test.ihx文件 test1.c #include char str1[10]; void main(void) { strcpy(str1, "testing"); }
执行:sdcc test1.c 生成test1.ihx文件,表示能够使用string.h库 以上,正常,证明SDCC能够正常工作。 输入packihx test1.ihx>test1.hex 用于生成intel hex文件 数据类型 data/near 默认(small memory model),内部 RAM __data unsigned char test_data xdata/far 默认(large memory model)外部 RAM __xdata unsigned char test_xdata idata 间接 __idata unsigned char test_idata
变量使用:#_test_idata _test_data 等 pdata __pdata unsigned char test_pdata; code __code unsigned char test_code; bit 位类型变量 __bit test_bit; 定义 SFR __sfr __at (0x80) P0; __sfr16 __sbit __at (0xd7) CY; 指针变量 __at (0x8C8A) TMR0; __xdata unsigned char *__data p; __data unsigned char * __xdata p; __xdata unsigned char * __code p; __code unsigned char * __code p; Unsigned char *p; char (* __data fp) (void); 8051 存储结构 00-1F:32 字节 4 个 bank,R0-R7 20-2F:16 字节 128 个位 30-7F:89 字节 通用 绝对地址 xdata at 0x7ffe unsigned int chksum; __xdata __at(0x7ffe) unsigned int chksum; __code __at (0x7ff0) char Id[5] = “SDCC”; 告诉编译器不要禁止访问 volatile __xdata __at (0x8000) unsigned char PORTA_8255; 定义 I/O __bit __at (0x80) MOSI; __interrupt (1) __using (1) 中断服务程序 void timer_isr (void) { }
描述 外部 0 定时器 0 外部 1 定时器 1 串口 定时器 2 中断号 0 1 2 3 4 5 … N 中断地址 0x0003 0x000b 0x0013 0x001b 0x0023 0x0026 0x0003+8*n .HEX 文件烧录到单片机中,即可运行. 分三步走: 1, 设置 PATH 路径 2, SDCC ***.C 3, PACKIHX ***.IHX>****.HEX 4, 烧录***.HEX 到单片机 ? ? t S51 使用简介 (S51 是 8051 的模拟器) 1, 显示模拟器的配置 conf 2, 显示硬件信息 i h port[2] 3, 设置硬件数据 set hw port[0] 12 4, 帮助 help 5, 退出 q 6, 简单计算 expr 8+1 7, 显示信息 show 8, 显示 sfr 信息,get sfr p0 9, 设置数据 set mem sfr p0 0x55 10, 设置位数据 set bit p1.4 0 11,显示状态 state 12, 13, 设置中断 显示所有中断 i b get sfr 0x90 get sfr p0 p1 p2 p3 set bit p2.5 1
S51 的 DOS 下图形界面: 更多信息如下链接 http://mazsola.iit.uni-miskolc.hu/~drdani/embedded/s51/ 使用 Emulator 8051 V1.0 by TS Controls 进行仿真 软件注册信息为:Name:Imperial Falcon s/n:1911 可以使用周立功的 TK STUDIO 集成开发环境 加载 SDCC 进行开发,有模拟器功能。 http://www.embedtools.com/pro_tools/emluator/studio.asp 通过编译工具设置,设置最新版本的 SDCC(安装 SDCC 后,在这里指定目录)
根据安装的 SDCC 目录按照下图进行选择 下面是一个简单的程序示例: #include "8052.h" void init_timer0_16bit(void); void main() { init_timer0_16bit();
while(1) { P1_1=!P1_1; } } void init_timer0_16bit(void) { TMOD &= 0xF0; /* Timer 0 mode 1 with software gate */ TMOD |= 0x01; /* GATE0=0; C/T0#=0; M10=0; M00=1; */ TH0 = 0x00; /* init values */ TL0 = 0x00; ET0=1; /* enable timer0 interrupt */ EA=1; /* enable interrupts */ TR0=1; /* timer0 run */ } void it_timer0(void) __interrupt(1) __using(1) /* interrupt address is 0x000b */ { TF0 = 0; /* reset interrupt flag (already done by hardware)*/ TH0 = 0xff; /* init values */ TL0 = 0xfa; P1_0 = !P1_0;/* P1.0 toggle when interrupt. */ } 通过在工程窗口的 Source Files 右键选择“构建目标工程” 生成目标文件
通过下面进行工程的参数配置 可以设置仿真的时钟频率等参数
分享到:
收藏