keilc51程序结构(keilc51的主要功能)

KEIL C51结构体问题求助

GPIO_REG *GPIOA; // 这条语句你只是定义了一个结构体指针,没有定义一个结构体变量。

就是说GPIOA没有指向一个有效的结构体变量,是个野指针。并且Keil把GPIOA初始化成了0x00,这是寄存器组,程序运行时,寄存器里的值是会变的。

keil c51的简介

支持8051微控制器体系结构的Keil开发工具,适合每个阶段的开发人员,不管是专业的应用工程师,还是刚学习嵌入式软件开发的学生。 Keil C51目前由ARM国内授权代理商提供技术支持和销售等相关服务。 产业标准的Keil C编译器、宏汇编器、调试器、实时内核、单板计算机和仿真器,支持所有的251系列微控制器,帮助你如期完成项目进度。

以下图表显示Keil的开发工具以及它们相互之间的接口。

KEIL C51开发工具旨在解决嵌入式软件开发商面临的复杂问题。

当你开始一个新项目,只需简单的从设备数据库选择使用的设备,uVision IDE将设置好所有的编译器、汇编器、链接器和存储器选项。

包含大量的例程,帮助你着手使用最流行的嵌入式8051设备。

Keil μVision调试器准确地模拟8051设备的片上外围设备(IC、CAN、UART、SPI、中断、I/O端口、A/D转换器、D/A转换器和PWM模块)。模拟帮助你了解硬件配置,避免在安装问题上浪费时间。 此外,使用模拟器你可以在没有目标设备的情况下编写和测试应用程序。

当你准备在目标硬件上测试软件应用时,可以使用MON51、MON390、NONADI、或者FlashMON51目标监视器、ISD51 In-System调试器、ULINK USB-JTAG适配器在目标系统上下载并测试程序代码。

在keil C51中使用结构体的问题

楼主没有搞清楚 51的 结构.

楼上说的虽然大多是废话,,对你的项目可以没多少帮助

但是至少有一点是对的..设置成xdata可以解决你的问题.

虽然不是什么好办法.

51的 ram 分外三种.

内部直接寻址你的128byte 内部间接的128byte

还有就是外部 ram

你的51单片机有512byte

那么肯定是 内部 直接 间接各128

外加外部256字节

你把那些大一点的数据全部改成 xdata 声明就可以了.

当然如果你会控制ram大小的话..用idata 声明效率更好一点

例如 unsigned char yy;

写个成 unsigned char xdata yy;

(你看你自己的编译结果显示 data=137, xdata=0, code=4856

就应该猜测一下 xdata 干吗用的了

最后 建议楼主. 最好不用在keil c51里面使用printf函数(浪费啊)

回去.仔细看一遍51的结构..然后看看keil c51的区别于ansi c的东西

会对你有帮助

如果对您有帮助,请记得采纳为满意答案,谢谢!祝您生活愉快!

361知讯网

本文链接:http://pdidw.com/keil/56172.html

发表评论

评论列表

还没有评论,快来说点什么吧~