Keil C51 的printf】的更多相关文章

概述 进行C/C++开发的时候我们都会需要打印调试信息,打印调试信息时我们习惯使用printf函数,但是在Keil C51环境下,由于我们的程序是下载到单片机里,使用printf函数时不能直接打印到串口上,这个时候就需要我们对printf函数输出重定向. 重定向 重定向printf很简单,我们知道,printf函数是调用putchar实现字符数据传送的.我们只要重写putchar函数,就可以对printf进输出重定向. 代码清单 下面是自己在Keil 5环境下,使用单片机STC12测试print…
转自:http://blog.csdn.net/zhanglianpin/article/details/44779009 在Keil C51 中使用printf ,首先需要重新实现 putchar(char c)函数.此函数在 char putchar (char c) { ES=0; SBUF = c; while(TI==0); TI=0; ES=1; return 0; } 我们先分析一下上面这个程序哈, 关闭串口中断 发送单字节数据 等待发送完毕 清除TI标志 开启串口中断 在main…
作者:dragoniye   发布:2014-02-15 12:44   分类:硬件     抢沙发   /*******************************************KEIL里扩展出了b,h,l来对输入字节宽的设置:(1)b八位(2)h十六位(默认)(3)l三十二位 在Keil C51中用printf输出一个单字节变量时要使用%bd,如unsigned char counter;printf(“Current count: %bd\n”, counter);//输出8…
进入 Keil C51 后,屏幕如下图所示.几秒钟后出现编辑界 启动Keil C51时的屏幕 进入Keil C51后的编辑界面 简单程序的调试:学习程序设计语言.学习某种程序软件,最好的方法是直接操作实践. 下面通过简单的编程.调试,引导大家学习Keil C51软件的基本使用方法和基本的调试技巧. 1)建立一个新工程,单击Project菜单,在弹出的下拉菜单中选中New Project选项   2)然后选择你要保存的路径,输入工程文件的名字,比如保存到C51目录里,工程文件的名字为C51 如下图…
第一节 绝对地址访问C51提供了三种访问绝对地址的方法: 1. 绝对宏:在程序中,用“#include”即可使用其中定义的宏来访问绝对地址,包括:CBYTE.XBYTE.PWORD.DBYTE.CWORD.XWORD.PBYTE.DWORD,具体使用可看一看absacc.h便知. 例如: rval=CBYTE[0x0002]; //指向程序存贮器的0002h地址 rval=XWORD[0x0002]; //指向外RAM的0004h地址  2. _at_关键字直接在数据定义后加上_at_ cons…
主要介绍Keil C51的预处理方法如宏定义.常用的预处理指令及文件包含指令,C51编译库的选择及代码优化原理,C51与汇编混合编程的方法与实现以及超过64KB空间的地址分页方法的C51实现. 教学目标 1.了解Keil C51的预处理方法,主要有宏定义#define.常用的预处理指令#define.#error.#if .#else.#elif.#endif.#ifdef.#ifndef .#undef .#line .#pragma 及文件包含指令#include. 2.了解small.co…
变量就是一种在程序执行过程中其值能不断变化的量.要在程序中使用变量必须先用标识符作为变量名,并指出所用的数据类型和存储模式,这样编译系统才能为变量分配相应的存储空间.定义一个变量的格式如下: [存储种类] 数据类型 [存储器类型] 变量名表 在定义格式中除了数据类型和变量名表是必要的,其它都是可选项.存储种类有四种:自动(auto).外部(extern).静态(static)和寄存器(register),缺省类型为自动(auto).这些存储种类的具体含义和使用方法,将在第七课<变量的存储>中进…
code是KEIL C51 扩展的关键字,用code修饰的变量将会被放到CODE区里.但C语里的const关键字好像也有定义不能改变的变量的功能,这两个关键字有什么区别呢?在帮助手册里查找const,可以找到以下的描述1 Variables declared with the const type qualifier alone are stored in the memory area (data, idata, xdata, and so on) associated with their…
源:keil c51的内部RAM(idata)动态内存管理程序 程序比较简单,但感觉比较有意思,个人认为有一定应用价值,希望大家有更好的思路和方法,互相促进. 程序的基本思路是:在CPU堆栈指针SP以上的RAM区域,通过把堆栈指针SP上移若干个字节,把空出的RAM区域供用户使用,当用户在使用完后又可以把该RAM区域释放. 头文件dmalloc51.h /* **********************************************************************…
第一章 Keil C51开发系统基本知识 第一节 系统概述 Keil C51是美国Keil Software公司出品的51系列兼容单片机C语言软件开发系统,与汇编相比,C语言在功能上.结构性.可读性.可维护性上有明显的优势,因而易学易用.用过汇编语言后再使用C来开发,体会更加深刻.Keil C51软件提供丰富的库函数和功能强大的集成开发调试工具,全Windows界面.另外重要的一点,只要看一下编译后生成的汇编代码,就能体会到Keil C51生成的目标代码效率非常之高,多数语句生成的汇编代码很紧凑…