精华内容
下载资源
问答
  • gt //51系列单片机定义文件#define uchar unsigned char //定义无符号字符#define uint unsigned int //定义无符号整数void delay(uint); //声明延时函数void main(void){uint i;uchar temp;while(1){temp=0x01;fo.....

    #include&ltreg51.h&gt //51系列单片机定义文件

    #define uchar unsigned char //定义无符号字符

    #define uint unsigned int //定义无符号整数

    void delay(uint); //声明延时函数

    void main(void)

    {

    uint i;

    uchar temp;

    while(1)

    {

    temp=0x01;

    for(i=0;i&lt8;i++) //8个流水灯逐个闪动

    {

    P2=~temp;

    delay(100); //调用延时函数

    temp&lt&lt=1;

    }

    temp=0x80;

    for(i=0;i&lt8;i++) //8个流水灯反向逐个闪动

    {

    P2=~temp;

    delay(100); //调用延时函数

    temp&gt&gt=1;

    }

    temp=0xFE;

    for(i=0;i&lt8;i++) //8个流水灯依次全部点亮

    {

    P2=temp;

    delay(100); //调用延时函数

    temp&lt&lt=1;

    }

    temp=0x7F;

    for(i=0;i&lt8;i++) //8个流水灯依次反向全部点亮

    {

    P2=temp;

    delay(100); //调用延时函数

    temp&gt&gt=1;

    }

    }

    }

    void delay(uint t) //定义延时函数

    {

    register uint bt;

    for(;t;t--)

    for(bt=0;bt&lt255;bt++);

    }

    展开全文
  • 原标题:C51单片机头文件和启动文件STARTUP.A51// . 清理RAM.设置堆栈等.即执行完start.a51后跳转到.c文件的main函数 //特殊寄存器的字节地址和位地址,定义字节变量、sbit定义位变量,用通俗名作为变量名,并赋地址...

    原标题:C51单片机头文件和启动文件

    STARTUP.A51// . 清理RAM.设置堆栈等.即执行完start.a51后跳转到.c文件的main函数

    //特殊寄存器的字节地址和位地址,定义字节变量、sbit定义位变量,用通俗名作为变量名,并赋地址值,从而用名称来使用这些特殊寄存器。

    //定义了一些外部函数,在中,INTRINS.H的函数使用起来,就会让你像在用汇编时一样简便.

    /*--

    REG51.H

    Header file for generic 80C51 and 80C31 microcontroller.

    Copyright (c) 1988-2002 Keil Elektronik GmbH and Keil Software, Inc.

    All rights reserved.

    --*/

    #ifndef __REG51_H__

    #define __REG51_H__

    /* BYTE Register */

    sfr P0 = 0x80;

    sfr P1 = 0x90;

    sfr P2 = 0xA0;

    sfr P3 = 0xB0;

    sfr PSW = 0xD0;

    sfr ACC = 0xE0;

    sfr B = 0xF0;

    sfr SP = 0x81;

    sfr DPL = 0x82;

    sfr DPH = 0x83;

    sfr PCON = 0x87;

    sfr TCON = 0x88;

    sfr TMOD = 0x89;

    sfr TL0 = 0x8A;

    sfr TL1 = 0x8B;

    sfr TH0 = 0x8C;

    sfr TH1 = 0x8D;

    sfr IE = 0xA8;

    sfr IP = 0xB8;

    sfr SCON = 0x98;

    sfr SBUF = 0x99;

    /* BIT Register */

    /* PSW */

    sbit CY = 0xD7;

    sbit AC = 0xD6;

    sbit F0 = 0xD5;

    sbit RS1 = 0xD4;

    sbit RS0 = 0xD3;

    sbit OV = 0xD2;

    sbit P = 0xD0;

    /* TCON */

    sbit TF1 = 0x8F;

    sbit TR1 = 0x8E;

    sbit TF0 = 0x8D;

    sbit TR0 = 0x8C;

    sbit IE1 = 0x8B;

    sbit IT1 = 0x8A;

    sbit IE0 = 0x89;

    sbit IT0 = 0x88;

    /* IE */

    sbit EA = 0xAF;

    sbit ES = 0xAC;

    sbit ET1 = 0xAB;

    sbit EX1 = 0xAA;

    sbit ET0 = 0xA9;

    sbit EX0 = 0xA8;

    /* IP */

    sbit PS = 0xBC;

    sbit PT1 = 0xBB;

    sbit PX1 = 0xBA;

    sbit PT0 = 0xB9;

    sbit PX0 = 0xB8;

    /* P3 */

    sbit RD = 0xB7;

    sbit WR = 0xB6;

    sbit T1 = 0xB5;

    sbit T0 = 0xB4;

    sbit INT1 = 0xB3;

    sbit INT0 = 0xB2;

    sbit TXD = 0xB1;

    sbit RXD = 0xB0;

    /* SCON */

    sbit SM0 = 0x9F;

    sbit SM1 = 0x9E;

    sbit SM2 = 0x9D;

    sbit REN = 0x9C;

    sbit TB8 = 0x9B;

    sbit RB8 = 0x9A;

    sbit TI = 0x99;

    sbit RI = 0x98;

    #endif

    /*--

    INTRINS.H

    Intrinsic functions for C51.

    Copyright (c) 1988-2002 Keil Elektronik GmbH and Keil Software, Inc.

    All rights reserved.

    --*/

    #ifndef __INTRINS_H__

    #define __INTRINS_H__

    extern void _nop_ (void);

    extern bit _testbit_ (bit);

    extern unsigned char _cror_ (unsigned char, unsigned char);

    extern unsigned int _iror_ (unsigned int, unsigned char);

    extern unsigned long _lror_ (unsigned long, unsigned char);

    extern unsigned char _crol_ (unsigned char, unsigned char);

    extern unsigned int _irol_ (unsigned int, unsigned char);

    extern unsigned long _lrol_ (unsigned long, unsigned char);

    extern unsigned char _chkfloat_(float);

    #endif

    关于sfr、sbit://如同int、char...

    sfr 似乎不是标准C 语言的关键字,而是Keil 为能直接访问80C51 中的SFR 而提供了一个新的关键词,其用法是:sfrt 变量名=地址值。

    例:sfr P1 = 0x90;

    这样的一行即定义P1 与地址0x90 对应,P1 口的地址就是0x90.

    SFR的定义在头文件reg51.h或reg52.h中。

    在C51里,利用sbit可访问RAM中可寻址位或SFR中可寻址位。

    如果直接写P1.0,C 编译器并不能识别,而且P1.0 也不是一个合法的C语言变量名,所以得给它另起一个名字,比如P1_0,可是P1_0 是不是就是P1.0呢?C 编译器可不这么认为,所以必须给它们建立联系,这里使用了Keil C的关键字sbit 来定义,sbit 的用法有三种:

    第一种方法:sbit 位变量名=地址值

    第二种方法:sbit 位变量名=SFR 名称^变量位地址值

    第三种方法:sbit 位变量名=SFR 地址值^变量位地址值

    例如,定义P1 中的P1.1脚可以用以下三种方法:

    sbit P1_1=0x92 (1)说明:0x92是P1.1 的位地址值

    sbit P1_1=P1^1 (2)说明:其中P1必须先用sfr 定义好

    sbit P1_1=0x90^2 (3)说明:0x90 就是P1的地址值

    因此这里用sfr P1_0=P1^0;就是定义用符号P1_0 来表示P1.0 引

    sfr 是定义8 位(范围0~255)的特殊功能寄存器而sfr16 则是用来定义16 位特殊功能寄存器, 如8052 的T2 定时器,可以定义为:

    sfr16 T2 = 0xCC; //这里定义8052 ,地址为T2L=CCH,T2H=CDH

    在KEIL中,汇编是从ORG H开始启动,那么它在C51中是如何启动MAIN()函数的呢?实际上是C51中有一个启启动程序STARTUP.A51,它总是和C程序一起编译和链接的.

    启动文件STARTUP.A51中包含目标板启动代码,可在每个project中加入这个文件,只要复位,则该文件立即执行,其功能包括:

    z 定义内部RAM大小、外部RAM大小、可重入堆栈位置

    z 清除内部、外部或者以此页为单元的外部存储器

    z 按存储模式初使化重入堆栈及

    z 初始化8051硬件堆栈指针

    z 向main( )函数交权

    开发人员可修改以下数据从而对系统初始化

    常数名 意义

    IDATALEN 待清内部RAM长度

    XDATA START 指定待清外部RAM起始地址

    XDATALEN 待清外部RAM长度

    IBPSTACK 是否小模式重入堆栈指针需初始化标志,1为需要。缺省为0

    IBPSTACKTOP 指定小模式重入堆栈顶部地址

    XBPSTACK 是否大模式重入堆栈指针需初始化标志,缺省为0

    XBPSTACKTOP 指定大模式重入堆栈顶部地址

    PBPSTACK 是否Compact重入堆栈指针,需初始化标志,缺省为0

    PBPSTACKTOP 指定Compact模式重入堆栈顶部地址

    PPAGEENABLE P2初始化允许开关

    PPAGE 指定P2值

    PDATASTART 待清外部RAM页首址

    经常可能需要修改的地方:(红色)

    XDATASTART EQU 0H ; the absolute start-address of XDATA memory

    XDATALEN EQU 0H ; the length of XDATA memory in bytes.

    XBPSTACK EQU 0 ; set to 1 if large reentrant is used.

    XBPSTACKTOP EQU 0FFFFH+1; set top of stack to highest location+1.

    PPAGEENABLE EQU 0 ; set to 1 if pdata object are used.

    PPAGE EQU 0 ; define PPAGE number.

    当在kiel C中新建项目时,会问: Copy standard 8051 Starup Code to Project Forder an dd file to Project? 翻译为:8051启动代码到项目并和添加文件到项目? 其实无论您选是还是否,您的代码中都将包含该文件。 该文件的作用是 初始化 内外部 RAM使其清零,另外还初始化SP等。 如果上述提示框您选否,对哪些RAM清零将采用默认的方式。 如果您想改变RAM清零区域(假如希望复位时某些RAM不被清零时会很有用。),您可以选是,这样该文件的一个副本将添加到您的项目,您可以根据需要改写此文件。 其他SP,SAMLL/COMPACT、LARGE模式的重入函数的堆栈和指针的初始化等和RAM的道理是一样的。

    责任编辑:

    展开全文
  • 1.概述鉴于好多朋友平常工作电脑为苹果,再配一台 Windows 机器来开发 51 单片机,略显多余。为此,本文详细讲解在 macOS 搭建 51 单片机开发环境。软硬件需求:macOS 笔记本或台式机串口转 USB 驱动 CH34151 内核...

    1.概述

    鉴于好多朋友平常工作电脑为苹果,再配一台 Windows 机器来开发 51 单片机,略显多余。为此,本文详细讲解在 macOS 搭建 51 单片机开发环境。

    软硬件需求:

    • macOS 笔记本或台式机
    • 串口转 USB 驱动 CH341
    • 51 内核编译器 sdcc
    • 程序下载工具 stcgal
    • 代码编辑器 visual studio code
    • 51 单片机开发板(选配)

    小编使用的 51 单片机开发板为 nebula-Pi,主单片机型号为 STC89C52RC,并且搭载了 CH340C 串口转 USB 芯片,通过该串口实现程序的下载。

    2.串口转 USB 驱动 CH341 安装

    单片机开发板与 PC 之间通过 USB 线连接,需安装 CH340C 的 USB 转串口 macOS 驱动程序。下载地址,直接点下载就好。解压下载好的文件,双击运行目录里面的 ch34xInstall.pkg,根据提示一直点击下一步,最后重启电脑。

    重启电脑后,将 51 单片机开发板连接至 PC,在命令行终端输入下列代码:

    ls /dev/tty.wchusbser*
    

    如果出现:

    /dev/tty.wchusbserial14a0
    

    表示驱动安装成功!其中 14a0 代表你的串口号,每台 PC 或插在不同的 USB 口,这个号略有差异,后续下载程序将会使用到。

    3.程序下载工具 stcgal 安装

    stcgal 是 STC 单片机的下载工具,安装前需确保已提前安装好 python3。

    3.1 安装 python3

    macOS 自带 python2.7,到官网下载 python3 的 macOS 版本,并安装。 安装完毕 python3 以后,敲入命令获得安装路径:

    which python3
    

    我的安装路径为:

    /Library/Frameworks/Python.framework/Versions/3.7/bin/python3.7
    

    将这个路径配入环境变量:

    vim ~/.bash_profile
    

    在文件的最后一行输入下面代码,保存并重启电脑:

    alias python="/Library/Frameworks/Python.framework/Versions/3.7/bin/python3.7"
    

    命令行敲入:

    python
    

    输出如下信息表明 python3 环境配置成功:

    Python 3.7.0 (v3.7.0:1bf9cc5093, Jun 26 2018, 23:26:24) 
    [Clang 6.0 (clang-600.0.57)] on darwin
    Type "help", "copyright", "credits" or "license" for more information.
    

    3.2 下载安装 stcgal

    下载地址,下载后并解压。在终端命令行中 cd 切换路径到解压文件。终端输入下面两条命令开始安装:

    ./setup.py build
    sudo ./setup.py install
    

    可输入如下命令查看 stcgal 版本信息:

    stcgal --version
    

    到这里,STC 单片机在 macOS 下的程序下载工具 stcgal 就安装完成了。

    4.内核编译器 sdcc 安装

    sdcc 可通过命令行直接安装:

    brew install sdcc
    

    该命令使用了 brew,因此需提前安装 homebrew,请自行研究下载方法。
    安装完成后,查看 sdcc 版本信息:

    sdcc --version
    

    运行结果如下:

    SDCC : mcs51/z80/z180/r2k/r3ka/gbz80/tlcs90/ez80_z80/ds390/pic16/pic14/TININative/ds400/hc08/s08/stm8/pdk13/pdk14/pdk15 4.0.0 #11528 (Mac OS X x86_64)
    published under GNU General Public License (GPL)
    

    到这里 sdcc 安装也告一段落了。

    4.代码编辑器 visual studio code 安装

    命令行代码安装如下:

    brew cask install visual-studio-code
    

    安装完成启动软件,按下图所示搜索,并安装 platformIO IDE 插件:

    ce2be33fe11a76fb0951c0c291c9e47a.png

    按下图所示,搜索嵌入式平台 Intel MCS-51 ,并点击进入 install。

    0f7ddd41d357cd15005b479153b1c7fc.png

    到这里,代码编辑环境准备就绪了。

    5.新建工程

    step1: 新建项目流程如下所示:

    93a4ae75fa5f6deada7c08ed076f0be4.png

    step2: 设置项目名称,选用 Generic STC89C52RC 平台。

    8f21431947f6b0c8bef35dc08a77f596.png

    step3: 编辑代码step3.1 添加符合 sdcc 编译器要求的头文件,需要打开工程目录将头文件添加至 include 文件夹下。

    step3.2 src 文件夹下添加.c 格式文件如下图 2,3 所示,并编辑代码如下:

    #include"8051.h"
    #define LED0 P1_0
    
    void main()
    {
    	LED0 = 0;//点亮 LED0
    }
    

    step3.3 指定下载串口,打开 platformio.ini 文件,添加如下代码,如下图 5 所示:

    upload_port = /dev/cu.wchusbserial14a0
    

    注意: 代码中的串口号就是安装 USB 串口驱动时的串口号,正常情况下,在下载时软件会自动寻找并打开串口,但有时打开不正确,造成下载不成功,因此,我们在这里指定好固定的串口。
    具体流程如下图所示,其中,6,7 所示为编译下载按钮。

    f78978e64576ec2affbf477f0e65c221.png

    step4 按上图的 6 编译按钮开始编译,结果如下:

    76eca8658e4070ddb015bd32fe0bcc54.png

    step5 按上图 7 下载按钮,并给开发板上电,下载过程如下图所示。

    a28f7185c386d6c57ca84b12091bbb86.png

    到这里便完成了 51 单片机的开发环境的搭建,并完成了一个小的试验项目。

    6 其他重要事项

    大家是否注意到我们在新建工程的 step2: 选用 Generic STC89C52RC 平台,如果我们板子的平台不在可选之列怎么办?例如单片机 STC12C5A60S2。此时,我们需要自行建立板子平台模版,具体操作方法请参考: RY-Teach STC12C5A60S2 Mac 环境搭建 。

    7 总结

    本文详细介绍了 基于 visual studio + platformIO + stcgal + sdcc 的 51 单片机开发环境搭建。

    展开全文
  • 课件1单片机C51语言文件实验2 LED指示灯循环控制 先画出Proteus仿真电路原理图。 8个发光二极管上下循环,闪烁间隔为0.5s Exercises-4.1 LED-7小题 。 Exercises-4.2 LED-7小题。 Exercises-4.1 用位操作和总线操作...

    课件1单片机C51语言文件

    实验2 LED指示灯循环控制 先画出Proteus仿真电路原理图。 8个发光二极管上下循环,闪烁间隔为0.5s Exercises-4.1 LED-7小题 。 Exercises-4.2 LED-7小题。 Exercises-4.1 用位操作和总线操作两种方法完成以下题目 1.熟练建立KEIL工程 2.点亮第一个发光管. 3.点亮最后一个发光管 4.点亮1、3、5、7发光管 5.点亮二、四、五、六发光管 6.尝试让第一个发光管闪烁。 延时函数 7.尝试设计出流水灯程序。<< >> Exercises-4.2 第一个发光管以间隔200ms闪烁. 8个发光管由上至下间隔1s流动,其中每个管亮500ms,灭500ms,亮时蜂鸣器响,灭时关闭蜂鸣器,一直重复下去。 8个发光管来回流动,每个管亮100ms,流动时让蜂鸣器发出“滴滴”声。>>1; <<1; 2循环 用8个发光管演示出8位二进制数累加过程。P1++ Exercises-4.2 8个发光管间隔200ms由上至下,再由下至上,再重复一次,然后全部熄灭再以300ms间隔全部闪烁5次。重复此过程。i=2; j=5 间隔300ms第一次一个管亮流动一次,第二次两个管亮流动,依次到8个管亮,然后重复整个过程。 间隔300ms先奇数亮再偶数亮,循环三次;一个灯上下循环三次;两个分别从两边往中间流动三次;再从中间往两边流动三次;8个全部闪烁3次;关闭发光管,程序停止。 1010 _crol_(aa,1) a1<<=1; a2>>=1;i=4,j=3P0=0;P0=0xff; Exercises-4.3 8. 在P0口连接一个共阳极数码管,使之循环显示0~F 共16个数字。 * * * * * * 第4章 单片机的C51语言 4.1 C51的程序结构 4.2 C51的数据结构 4.3 C51与汇编语言的混合编程 4.4 C51仿真开发环境 4.5 C51初步应用编程 第4章单片机的C51语言 C51与标准C的相同之处: 语法规则、程序结构、编程方法 C51与标准C的差异之处: 数据结构(数据类型、存储模式)、中断处理 第4章单片机的C51语言 4.1 C51的程序结构 4.2 C51的数据结构 4.3 C51与汇编语言的混合编程 4.4 C51仿真开发环境 4.5 C51初步应用编程

    展开全文
  • 简介 本课程是单片机学习者从入门到深入的一套经典视频教程,以初学者为对象,从零开始手把手教你学习单片机,循序渐进地基于理论讲解并结合实验项目实战开发,讲解当前最热门的51单片机的C程序设计! 本教程的亮点...
  • 1如何建立多个C文件首先,我们需要一个新文档,这个文档的建立有两种方法(以delay1s函数为例)。第一种,在工程目录下建立一个delay1s.txt然后将其改名为delay1s.h。因为都是同编码的所以不会出现乱码,然后在工程...
  • 这个是我自己编写的51单片机的库函数对应的头文件,在网上本人还分享了很多热门模块的库函数,都是现成的,欢迎下载!!!!#ifndef__CONFIG_H#define__CONFIG_H#include<myreg51.h>#include<intrins.h>...
  • 1. 基于proteus的51单片机开发实例(1)--点亮一个小灯1.1. 实验目的通过本实例了解和熟悉以下知识:1、51单片机I/O端口的输出操作;2、了解单片机最小系统的组成;3、了解单片机程序的基本框架;4、了解LED发光二极管...
  • 我相信,对于初学单片机编程或其他语言编程的朋友来说,刚开始我们编程时总喜欢把所有的代码都写在一个文件中。(当然如果你是绝世天才那就另当别论了,哈哈)。其实我也如此,刚开始我就想,将所有的代码都写在一个...
  • 本篇内容包括:一、计算机公共知识(单选+多选)二、MCS-51单片机的结构与原理(单选)三、MCS-51单片机的结构与原理(多选)注:以下内容中的“书”均指《单片机原理及应用(第3版)》-张鑫编著-电子工业出版社。...
  • C文件,是程序设计中的一个重要概念。所谓“文件”一般是指存储在外部介质上数据的集合。一批文件是以数据的形式存放在外部介质(如磁盘)上的。操作系统是以文件为单位对数据进行管理的,也就是说,如果想找存在外部...
  • 【单选题】51单片机能直接运行的文件格式是 ______ 。 【判断题】科学管理的目标是提高生产效率和改善劳资关系。 【判断题】链表是一种动态存储技术,尤其适用于数据个数可变的数据存储,以下是一个链表示意图。 (2.0...
  • 零基础问题说明(1)视频制作主要针对自动化专业的大一新生,考虑到了学习者的基础。...传统51单片机学习方法对比开发板入门单片机:优点:成品稳定可靠,案例丰富。缺点:硬件连接固定,价格较高。取长补短...
  • 写在开头这是我单片机入门教程系列的第一篇文章,在往下读之前,你需要做一些必要的准备工作。本人也是刚开始入坑单片机,望大家多多指教。准备工作① 首先需要准备一块单片机开发板,我使用的是清翔电子单片机小车...
  • 2、单片机系统的设计:51单片机最小系统:复位、震荡、电源三要素按照典型电路设计。 3、单片机外围按键电路的设计:电阻+按键即可实现。电阻为了限流。 4、单片机外围LED灯电路的设计;电阻+LED即可实现。电阻为了...
  • 单片机的开发或使用过程中除了掌握必要的硬件外,同样离不开软件,只有通过软件(程序)的执行,硬件才能发挥出具体的作用。机器如何认识我们用各种符号编写的程序呢?早期我们写的汇编语言源程序要变为CPU可以执行...
  • 我在学习单片机的过程中懵懵懂懂地学了半桶水,以上几种单片机都学过一点,但是都不是很精,...1、51单片机的点灯方式:我用的51单片机是AT89S52,51单片机的设置和电路接线非常简单。这也是51比较好学的原因。#incl...
  • C51单片机

    2018-09-12 13:04:14
    保存(弹窗否)并选择cpu为atm89c51(弹窗否) 创建新文本 //(FILE下方空白图标-&amp;amp;gt; 保存并命名为main.c) 将c文件添加到工程 //(右击souce文件夹 -&amp;amp;gt; add file to…) 生成hex文件 /...
  • visual C++_Turbo C串口通信编程实践

    热门讨论 2010-07-30 09:14:24
    5.1 建立SCOMM程序工程实现界面功能 5.2 串口的初始化及关闭 5.3串口数据的发送与接收及十六进制数据的处理 5.3.1 十六进数据发送处理 5.3.2 手动发送处理 5.3.3自动发送处理 5.3.4 接收处理及十六进制显示 ...
  • 2.4.1 改进一:ascii文本和二进制数据发送方式兼容 40 2.4.2 改进二:也许能解决内存泄漏 43 2.4.3 改进三:彻底关闭串口,释放串口资源 44 第3章 控件mscomm串口编程 46 3.1 mscomm控件介绍 46 3.1.1 vc中应用...
  • 2.4.1 改进一:ascii文本和二进制数据发送方式兼容 40 2.4.2 改进二:也许能解决内存泄漏 43 2.4.3 改进三:彻底关闭串口,释放串口资源 44 第3章 控件mscomm串口编程 46 3.1 mscomm控件介绍 46 3.1.1 vc中应用...
  • 2.4.1 改进一:ascii文本和二进制数据发送方式兼容 40 2.4.2 改进二:也许能解决内存泄漏 43 2.4.3 改进三:彻底关闭串口,释放串口资源 44 第3章 控件mscomm串口编程 46 3.1 mscomm控件介绍 46 3.1.1 vc中应用...
  • 2.4.1 改进一:ASCII文本和二进制数据发送方式兼容 40 2.4.2 改进二:也许能解决内存泄漏 43 2.4.3 改进三:彻底关闭串口,释放串口资源 44 第3章 控件MSComm串口编程 46 3.1 MSComm控件介绍 46 3.1.1 VC中应用...
  • 2.4.1 改进一:ASCII文本和二进制数据发送方式兼容 40 2.4.2 改进二:也许能解决内存泄漏 43 2.4.3 改进三:彻底关闭串口,释放串口资源 44 第3章 控件MSComm串口编程 46 3.1 MSComm控件介绍 46 3.1.1 VC中应用...
  • C#编程经验技巧宝典

    热门讨论 2008-06-01 08:59:33
    88 <br>0136 如何进行文本加密与解密 88 <br>0137 如何区别0、空字符串、Null、Empty和Nothing 89 <br>0138 从字符串中分离文件路径、文件名及扩展名 89 <br>0139 如何批量替换某一类字符串 89...

空空如也

空空如也

1 2
收藏数 28
精华内容 11
关键字:

51单片机建立文本文件