51单片机51单片机

  • C51程序

C51程序

学习C51程序之前需要对C语言有一定的了解和学习;这里只介绍与C语言有区别的地方;

具体的不同如下:
1、C51中增加了几种针对MSC-51单片机的特有数据类型

a、sfr和sfr16:用于定义特殊功能寄存器,如:sfr PSW = 0xd0(一般情况下这些特殊功能寄存器不需要用户自定义,通常包含在<reg51.h>头文件中)
b、bit和sbit: 定义位变量,只占用一个二进制位;bit是位寻址区中的变量(20H~2FH,关于位寻址区详见51单片机之存储器篇)sbit指特殊功能寄存器中的可以位寻址的变量 ,如:sbit P1_0 = P1^0 sbit OV = 0xd2

2、C51的存储模式与存储器密切相关,定义变量时要指明指定的存储器属性


如:

其实,对于单片机而言,他有片内、片外存储器,有RAM、ROM之分,RAM中还可以细分为4块(详见51单片机之存储器篇),所以我们需要在定义变量时明确的指出变量要存放在哪里?因此我们需要上图的不同的存储器类型来标识。

3、有专门的关键字和语法规则
在常规的函数定义后加入interrupt n来说明该函数为中断函数。n的取值有6种,分别代表不同的中断类型:

在使用中断函数时要注意以下几点:

51单片机C51程序相关推荐

  1. c语言编写51单片机中断程序,执行过程是怎样的?

    Q:c语言编写51单片机中断程序,执行过程是怎样的? 例如程序: #include<reg52.h>   void main(void)   {    EA=1;      //开放总中断 ...

  2. 24c512 c语言程序,24C32~24C512的51单片机读写程序

    24C32~24C512的51单片机读写程序 来源:-- 作者:-- 浏览:3875 时间:2016-08-10 14:18 标签: 摘要: AT89S52 晶振频率为11.0592MHz 指令周期: ...

  3. 台达触摸屏modbusRTU与51单片机通讯台达屏与郭天祥51单片机通讯程序

    台达触摸屏modbusRTU与51单片机通讯台达屏与郭天祥51单片机通讯程序亲测过好用,P1口led显示8个位的状态上传给触摸屏,d2至d7为16数据寄存器能写能读,数码管显示当前写入的数码id=60 ...

  4. 51单片机计算机加减乘除,51单片机加减乘除程序.doc

    51单片机加减乘除程序 #include //STC51单片机头文件 #define uchar unsigned char #define uint unsigned int uint key; u ...

  5. 51单片机容易串电,用USB转ttl(ch340)给51单片机下载程序,接上TX,RX,板子上的灯就亮了,怎么解决?

    1 原理框架图: 2 原理图: 51单片机要冷启动下载程序,就是先点下载,然后再给单片机上电,上述的电路设计解决了在用USB转ttl为51单片机下载程序时串电的问题.

  6. 简述单片机c51语言程序结构,单片机C51程序结构

    <单片机C51程序结构>由会员分享,可在线阅读,更多相关<单片机C51程序结构(14页珍藏版)>请在人人文库网上搜索. 1.1 C51程序流程与控制C语言是一种结构化的编程语言 ...

  7. keil5安装及51单片机入门程序实例

    1. keil5的安装 之前我在找的时候,一直以为官网不是很方便下载,在其他地方找,这过程很玛法,今天试了一下官网发现非常方便. 进入官网,点击Downloads 点击C51,以为我们是写51的单片机 ...

  8. ds18b20c语言显示小数位,DS18B20多点测温(读序列,匹配序列,51单片机C程序,1602显示)...

    DS18B20多点测温(读序列,匹配序列,51 C程序,1602显示) 程序一:单个读序列号.程序二,匹配并且读两个DS18B20,当然,读多个与读两个基本原理一样,只要加上其序列号等即可.本程序所有 ...

  9. c语言51单片机延时程序,51单片机c语言延时.doc

    1,_nop_() 适用于us级的少量延时 标准的C语言中没有空语句.但在单片机的C语言编程中,经常需要用几个空指令产生短延时的效果.这在汇编语言中很容易实现,写几个nop就行了. 在keil C51 ...

最新文章

  1. 【Android基础】序列化 Serializable vs Parcelable
  2. js 通过jquery插件获取url参数 其中的一个小问题,或许不算Bug。
  3. php 脏数据,使用 PHP Masked Package 屏蔽敏感数据
  4. extern 在c/c++ 中的作用
  5. 自动/持续部署Docker 的tomcat web项目(二)
  6. 【服务端渲染】NuxtJS基础
  7. python报错cannot import name ‘BeautifulSoup‘ from ‘bs4‘
  8. 扫雷android源代码,Android实现扫雷小游戏
  9. DirectShow笔记
  10. 全民 https!使用 FreeSSL 申请免费的 https 证书
  11. 理解加载class到JVM的时机
  12. 如何快速在手机上修改证件照底色
  13. 计算机硬盘格式化与储存原理
  14. web前端学习13-19(HTML常用标签)
  15. 白酒分化明显,中小酒企面临生存困境
  16. 微信h5互动小游戏制作心得
  17. Java-龙与地下城怪物设计
  18. execjs._exceptions.ProcessExitedWithNonZeroStatus
  19. 利达主机联网接线端子_利达接线图介绍
  20. android平台下OpenGL ES 3.0使用GLSurfaceView对相机Camera预览实时处理

热门文章

  1. thinkcmf ajax,thinkcmfx 中如何用jquery ajax提交数据,自己尝试去做之后,还是没法提交,求助!...
  2. python 定义字符串变量_Python变量和字符串详解
  3. 外显子和基因组基本概念(一)
  4. 精选| 2021年2月R新包推荐(第51期)
  5. 高通量数据中批次效应的鉴定和处理(一)
  6. SIP系统怎么禁用?SIP系统完整性保护关闭方法(含M1)
  7. Linux开发相关书籍
  8. QT Core | 信号槽01 - GUI上按钮触发应用程序里某个类的函数
  9. STM32H743+CubeMX-串口重定向printf
  10. java 发送数据_用JAVA模拟POST发送数据