void main(void)

{

unsigned int a;

unsigned char b;

do{

for (a=0;a50000;a++)

P1_0 = 0; //点亮P1_0

for (a=0;a50000;a++)

P1_7 = 0; //点亮P1_7

for (b=0;b255;b++)

{

for (a=0;a10000;a++)

P1 = b; //用b的值来做跑马灯的花样

}

P1 = 255; //熄灭P1上的LED

for (b=0;b255;b++)

{

for (a=0;a10000;a++) //P1_1闪烁

P1_1 = 0;

for (a=0;a10000;a++)

P1_1 = 1;

}

}while(1);

}

. Keil c51指针变量

单片机c语言支持一般指针(Generic Pointer)和存储器指针(Memory_Specific Pointer).

1. 1. 一般指针

一般指针的声明和使用均与标准C相同,不过同时还能说明指针的存储类型,例如:

long * state;为一个指向long型整数的指针,而state本身则依存储模式存放。

char * xdata ptr;ptr为一个指向char数据的指针,而ptr本身放于外部RAM区,以上的long,char等指针指向的数据可存放于任何存储器中。

一般指针本身用3个字节存放,分别为存储器类型,高位偏移,低位偏移量。

2. 2. 存储器指针

基于存储器的指针说明时即指定了存贮类型,例如:

char data * str;str指向data区中char型数据

int xdata * pow; pow指向外部RAM的int型整数。

这种指针存放时,只需一个字节或2个字节就够了,因为只需存放偏移量。

3. 3. 指针转换

即指针在上两种类型之间转化:

l 当基于存储器的指针作为一个实参传递给需要一般指针的函数时,指针自动转化。

l 如果不说明外部函数原形,基于存储器的指针自动转化为一般指针,导致错误,因而请用“#include”说明所有函数原形。

l 能强行改变指针类型。

变量的存储类别

一、static(静态局部)变量。

1、静态局部变量在程序整个运行期间都不会释放内存。

2、对于静态局部变量,是在编译的时候赋初值的,即只赋值一次。如果在程序运行时已经有初值,则以后每次调用的时候不再重新赋值。

3、如果定义局部变量的时候不赋值,则编译的时候自动赋值为0。而对于自动变量而言,定义的时候不赋值,则是一个不确定的值。

4、虽然静态变量在函数调用结束后仍然存在,但是其他函数不能引用。

二、用extern声明外部变量。

用extern声明外部变量,是为了扩展外部变量的作用范围。比如一个程序能由多个源程序文件组成。如果一个程序中需要引用另外一个文件中已经定义的外部变量,就需要使用extern来声明。

正确的做法是在一个文件中定义外部变量,而在另外一个文件中使用extern对该变量作外部变量声明。

51单片机数值存储c语言教程,单片机c语言教程:C51变量相关推荐

  1. 学单片机需要多少C语言基础,C语言单片机编程教程

    很多学员和朋友经常找我给他们推荐C语言的书,他们可能想和我当年一样,闷头大干一场,学个几个月的C语言,把C语言吃透,再开始单片机程序开发! 别!别!别! 大家千万别这么干,我当年自学了3个月的C语言, ...

  2. c语言时钟加秒表报告,51单片机秒表计时器课程设计报告(含C语言程序)-20210419061005.docx-原创力文档...

    XXXXXX学院 51单片机系统设计课程设计报告 题 目:秒表系统设计 专业.班级: 学生姓名: 学号: 指导教师: 分数: [摘要]本设计是一个秒表计时器,采用51单片机实现.电路包括以下儿部分:单 ...

  3. 单片机应用技术案例教程(c语言)答案,单片机应用技术案例教程(C语言版)

    项目1单片机及其开发系统(1) 任务1-1控制1颗LED发光二极管闪烁(1) 1.151单片机的引脚排列及其功能(14) 1.2单片机很小应用系统(15) 1.2.1时钟电路(15) 1.2.2复位电 ...

  4. 单片机六位抢答器c语言程序,八路电子抢答器(基于51单片机的8路抢答器设计C语言程序)...

    哥,你还有AT89C51单片机8路抢答器的资料吗 哥,你还有AT89C51单片机8路抢答器的资料吗 AT89C51单片机8路抢答器的资料 源程序如下 #include #define uchar un ...

  5. 基于STM32单片机光学指纹识别模块(FPM10A)全教程(基于C语言)

    本文转载,其来源在参考中:1,稍加修改,因为近期使用到这个模块,故而加以整理! 1.平台 首先我使用的是 奋斗 STM32 开发板 MINI板 基于STM32单片机光学指纹识别模块(FPM10A)全教 ...

  6. c语言单片机用float,float类型变量在单片机中的存储

    如何把float类型的变量发送到串口调试助手 2015-10-26 科技老顽童 有位小伙伴问,怎么把float类型的变量发送到串口调试助手?在这里给大家统一说一下. 什么时候用float类型的变量? ...

  7. c51语言提供了code存储类型来访问,单片机原理与应用(C51编程+proteus仿真)第2版张毅刚--第3章课后习题答案2020年1月30日整理...

    单片机原理与应用(C51编程+proteus仿真)第2版 -张毅刚课后习题参考答案 第3章思考题及习题3 参考答案 一.填空 1.与汇编语言相比, C51语言具有().().().和()等优点.答:可 ...

  8. 51单片机c语言复位程序,51单片机如何实现软件复位系统(C语言),谢谢

    满意答案 waterMM 推荐于 2017.09.02 采纳率:57%    等级:13 已帮助:6010人 单片机实现软件复位(软复位)的方法及讨论 单片机实现软件复位(软复位)的方法及讨论 (天堂 ...

  9. 秒表系统的设计c语言程序,51单片机秒表计时器课程设计报告(含C语言程序).doc...

    51单片机秒表计时器课程设计报告(含C语言程序) XXXXXX学院 51单片机系统设计 课程设计报告 题 目: 秒表系统设计 专业.班级: 学生姓名: 学 号: 指导教师: 分 数 : [摘要]本设计 ...

  10. 单片机c 语言0-99,单片机“0~99”加法计数器程序的设计51单片机原理及应用.doc...

    单片机"0~99"加法计数器程序的设计51单片机原理及应用 课 程 设 计 课程名称51单片机原理及应用题目名称单片机"0~99"加法计数器程序设计专业班级学生 ...

最新文章

  1. 年度重磅发布:《人工智能发展报告2020》
  2. html浏览器影响js问题,js 浏览器兼容性问题
  3. 百分之九十的人不知道?在Python中f-string的几个技巧
  4. leetcode 171. Excel表列序号
  5. C#通过修改注册表改变IE默认选项
  6. linux c多进程多线程,linux下的C\C++多进程多线程编程实例详解
  7. 掌握 Ajax,第 11 部分: 服务器端的 JSON
  8. iOS build Version 作用
  9. php画弧,php绘制一条弧线的方法
  10. 一起谈.NET技术,Microsoft NLayerApp案例理论与实践 - 多层架构与应用系统设计原则...
  11. RateLimiter限流
  12. 阿里巴巴29个屌炸天的开源项目
  13. FLV无损转换MP4
  14. requests的基本使用以及爬虫的基本介绍:QQ机器人制作基础
  15. 安卓一键清理内存_雨点清理下载-雨点清理v1.6手机下载
  16. 2016 计蒜之道 初赛 第一场 青云的服务器密钥
  17. 南京师范大学计算机专业考研分数,南京师范大学2021考研分数线已公布
  18. [笨木头FireFly01]入门篇1·最简单的服务端和客户端连接
  19. Lisp语言:列表(List)
  20. 疫情防控大课观后感3

热门文章

  1. 语文学科html代码,[2018年最新整理]学科分类与代码.doc
  2. Excel VBA教程之如何在功能区中显示 Excel 开发人员选项卡,启用vba(教程含源码)
  3. JavaScript正则表达式 1
  4. MFC MessageBox使用教程
  5. 操作系统(02326)第1章:操作系统概论
  6. Spring(16) 获得bean的id
  7. 【转】java对音频文件的频谱分析
  8. 华为交换机web界面配置
  9. 计算机主机五大结构,计算机由哪五大部分组成?
  10. mac 系统搭建web服务器,MAC OS 如何搭建本地webserver