单片机电路仿真软件Proteus;编程软件Keil;

在Proteus中设计好电路图、在Keil中编写程序编译生成十六进制文件。本文引用地址:http://www.eepw.com.cn/article/201611/318622.htm

在电路图中载入该十六进制文件通过相应的程序控制电路。

51hei单片机+Proteus视频+实例+开发工具包 http://download.csdn.net/detail/leytton/7658297

http://www.51hei.com/

文章阅读

http://www.51hei.com/mcuteach/252.html

http://www.51hei.com/mcuteach/150.html

视频教程

http://www.51hei.com/sp/

JBJB P1.3,L1 意思就是判断P1.3的值是不是“1” 如果是就跳转到L1程序执行

eg1

MOV R7,#250 ;赋值R7=250 注意没有"H"

LOOP:

DJNZ R7,LOOP ;R7=R7-1;if(R7!=0) goto LOOP;循环250次

eg2 http://www.51hei.com/mcuteach/244.html

MOV R7,#20

MOV R0,#30H

LOOP:MOV A,@R0

INC R0

DJNZ R7,LOOP

这个例程中大部份指令我们是能看懂的,第一句,是将立即数20送到R7中,执行完后R7中的值应当是20。第二句是将立即数30H送入R0工作寄存器中,所以执行完后,R0单元中的值是30H,第三句,这是看一下R0单元中是什么值,把这个值作为地址,取这个地址单元的内容送入A中,此时,执行这条指令的结果就相当于MOV A,30H。第四句,没学过,就是把R0中的值加1,因此执行完后,R0中的值就是31H,第五句,学过,将R7中的值减1,看是否等于0,不等于0,则转到标号LOOP处继续执行,因此,执行完这句后,将转去执行MOV A,@R0这句话,此时相当于执行了MOV A,31H(因为此时的R0中的值已是31H了),如此,直到R7中的值逐次相减等于0,也就是循环20次为止,就实现了我们的要求:从30H单元开始将20个数据送入A中。

AJMP无条件跳转指令

以直接地址为目的操作数的指令

MOV direct,A例:MOV 20H,A

MOV direct,Rn MOV 20H,R1

MOV direct1,direct2 MOV 20H,30H

MOV direct,@Ri MOV 20H,@R1

MOV direct,#data MOV 20H,#34H

以间接地址为目的操作数的指令

MOV @Ri,A例:MOV @R0,A

MOV @Ri,direct MOV @R1,20H

MOV @Ri,#data MOV @R0,#34H

十六位数的传递指令

MOV DPTR,#data16

51单片机汇编指令周期表:

http://blog.sina.com.cn/s/blog_4419d72d0100mt7r.html

http://www.51hei.com/mcuteach/242.html

单片机的累加器A与片外RAM之间的数据传递类指令

MOVX A,@Ri

MOVX @Ri,A

MOVX A,@DPTR

MOVX @DPTR,A

在51系列单片机中,与外部存储器RAM打交道的只能是A累加器。所有需要传送入外部RAM的数据必需要通过A送去,而所有要读入的外部RAM中的数据也必需通过A读入。在此我们能看出内外部RAM的区别了,内部RAM间能直接进行数据的传递,而外部则不行,比如,要将外部RAM中某一单元(设为0100H单元的数据)送入另一个单元(设为0200H单元),也必须先将0100H单元中的内容读入A,然后再传送到0200H单元中去。

MOVC就是读代码存储器,MOVX就是读写外部存储器,即外部RAM

51C语言

表 3-1 KEIL uVision2 单片机c语言编译器所支持的数据类型

摘自http://www.51hei.com/mcuteach/146.html

数据类型长 度值 域

unsigned char单字节0~255

signed char单字节-128~+127

unsigned int双字节0~65535

signed int双字节-32768~+32767

unsigned long四字节0~4294967295

signed long四字节-2147483648~+2147483647

float四字节±1.175494E-38~±3.402823E+38

*1~3 字节对象的地址

bit位0 或 1

sfr单字节0~255

sfr16双字节0~65535

sbit位0 或 1

位运算:[摘自百度百科]

P1=(4>0)&&(9<0xab);//将逻辑运算结果送P1口

P0=0xa2^0x3c;//将条件运算结果送P0口,P0=8=0000 1000B

一个简单的C51程序[参考http://www.51hei.com/mcuteach/248.html]

#include void DELAY() //延时函数{ unsigned char i,j;for(i=0;i<250;i++){for(j=0;j<200;j++);} }void main() //程序从这里开始执行{while(1) //这句的作用就是反复的执行下面这个{}中包含的4句{P1_0=1; //(1)熄灭灯DELAY(); //(2)延时一段时间P1_0=0; //(3)点亮灯DELAY(); //(4)延时一段时间}}

51单片机c语言学习笔记,51单片机学习笔记(一)_总记相关推荐

  1. 51单片机c语言试题及答案,单片机C语言期末考试题..

    单片机C语言期末考试题..,单片机的c语言应用程序设计,单片机c语言编程,51单片机c语言程序100例,单片机c语言,单片机c语言编程思想,c语言开发单片机,c语言单片机程序,新概念51单片机c语言教 ...

  2. 单片机c语言 〉〉,PìC单片机C语言编程入门(课件).doc

    PìC单片机C语言编程入门(课件) PICC入门笔记 PIC单片机C语言编程入门笔记 C语言基础复习--------没C语言基础看起来可能有点困难. C程序的语句 语句名称一般形式说明表达式语句表达式 ...

  3. 51单片机c语言工作手册,51单片机C语言编程手册

    51单片机C语言编程手册 1 第一章 介绍 这是一本关于Intel 80C51 以及广大的51 系列单片机的书这本书介绍给读者一些 新的技术使你的8051 工程和开发过程变得简单请注意这本书的目的可不 ...

  4. 51单片机c语言编程100,51单片机C语言编程100例.doc

    51单片机C语言编程100例.doc 目 录实例3用单片机控制第一个灯亮3实例4用单片机控制一个灯闪烁认识单片机的工作频率3实例5将 P1口状态分别送入P0.P2.P3口认识I/O口的引脚功能4实例6 ...

  5. 51单片机c语言版清华大学,51单片机c语言版.docx

    51单片机(呼吸灯)C语言版 基于单片机与PWM的呼吸灯设计 实训指导教师:班级: 设计人姓名:设计日期:设计地点:完成时间: 本设计是基于单片机的原理与接口设计,采用单片机I/O 口,加以C 语言编 ...

  6. 51单片机C语言code定义,51单片机数组的定义方法(code与data的作用)

    数组前不加"code"或"data",则默认将数组存放在程序存储器中: code 指定数据是存储在代码区,数据是在编程的时候跟代码一起写入代码存储器,运行过程中 ...

  7. 51单片机c语言试题及答案,单片机考试复习题及答案

    <单片机考试复习题及答案>由会员分享,可在线阅读,更多相关<单片机考试复习题及答案(14页珍藏版)>请在人人文库网上搜索. 1.选择题1.主频为12MHz的单片机他的机器周期为 ...

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

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

  9. 51单片机c语言内存使用,51单片机C语言编程之内存优化

    原标题:51单片机C语言编程之内存优化 最常见的是以下两种 ① 超过变量128后必须使用compact模式编译 实际的情况是只要内存占用量不超过 256.0 就可以用 small 模式编译 ② 128 ...

  10. 51单片机c语言计数程序,51单片机INTOINT1中断计数c语言源程序.doc

    单片机C语言程序设计:INT0 中断计数 来源: \t "/jichuzhishi/mcu/program/2013-06-27/_blank" 21ic?作者: 关键字: \t ...

最新文章

  1. github 修改项目为public_GitHub仓库中项目的语言属性可以这样修改,有点简单
  2. JAVA语言基础组成(2)
  3. 一篇文章了解Github和Git教程-AndroidStudio上传Github教程
  4. 《陶哲轩实分析》部分勘误
  5. N次剩余(详解+例题+代码)
  6. cmake 学习笔记
  7. 在python中求小于100的所有合数_python输出100以内的质数与合数
  8. 信息学奥赛一本通 1172:求10000以内n的阶乘 | OpenJudge NOI 1.6 14:求10000以内n的阶乘
  9. travis-ci自动部署_如何使用Travis CI设置高级自动部署
  10. ASP.NET MVC中的统一化自定义异常处理
  11. java 下面的while语句退出时_java 下面的while语句退出时
  12. Vs 2008 sp1更新后出现的问题!
  13. Harris 角点检测子
  14. 【算法01】—动态规划
  15. c语言指针实现字符串拼接
  16. 1088 旅行问题(单调队列优化)
  17. 一种电池过放电保护电路
  18. 开源免费截图软件ShareX如何改变文字水印和logo特效透明度
  19. Feature Selective Anchor-Free(FSAF)
  20. 数据机房特殊规范标签生成及打印方案分享

热门文章

  1. 谁能教教我, 这个插件是怎么破解 yunfile, yifile, ctfile, 77file 等网盘的
  2. MPC5744p时钟模块
  3. S7-1500系统内使用ET200S 1SI模块实现Modbus 从站通信
  4. 9、杂项:qxdm报错0xc000007b无法启动
  5. 解决递归求快速排序时间复杂度计算
  6. KNX智能照明系统在福安中医院的应用
  7. 在Qt工程中调用GmSSL
  8. 有哪些好用的低代码开发平台?
  9. 一级造价工程师(安装)- 计量笔记
  10. plsqldev解决中文乱码问题