[关闭]
@richey 2020-09-02T04:01:45.000000Z 字数 1031 阅读 1475

微型计算机技术应用讲义01-C51基础


物联网 单片机 嵌入式 讲义

1. MCS-51单片机回顾

1.1 MCS-51单片机的硬件结构

1.2 51单片机最小系统原理图

单片机、电源、晶振电路、复位电路
image_1clt4e03ubmj24j1rgb14s3te6f2.png-84.2kB

1.3 51单片机的存储结构

image_1clsvgtkm1t2i1oep1qn2fdc1i4639.png-71.7kB
image_1clsvjr4umf71uic1cug1bl91ek33m.png-65.8kB
image_1clt0oonusk21runfig1q2s45c5q.png-38.1kB

2. C51程序设计入门

2.1 新建C51工程

image_1clt12pg0htet9md7cpd6pih77.png-33.8kB
image_1clt14vjh1sn9p6qd401alu19k27k.png-51.3kB
image_1clt1c05ovf3q7dj762ti1ht3a1.png-46.7kB
image_1clt1eh9v30r394106cqdi102pbe.png-29.4kB

2.2 最简单的C51流水灯程序示范

  1. //common.h
  2. #ifndef __COMMON_H__
  3. #define __COMMON_H__
  4. //C99标准数据类型,增强程序的可移植性!
  5. typedef unsigned char uint8_t;
  6. typedef char int8_t;
  7. typedef unsigned int uint16_t;
  8. typedef int int16_t;
  9. typedef unsigned long uint32_t;
  10. typedef long int32_t;
  11. #define TRUE 1
  12. #define FALSE 0
  13. #endif
  1. //exp01.c
  2. #include <reg51.h> //关于特殊功能寄存器的一些定义
  3. #include "intrins.h" //移位函数库
  4. #include "common.h"
  5. uint8_t i = 0;
  6. sbit LED0 = P2^0;
  7. void delay_ms(uint16_t dly); //使用函数之前必须先声明!!!
  8. void main(){
  9. P1 = 0xfe;
  10. while(TRUE){ //主循环,必须有!!!必须有!!!必须有!!!
  11. for(i = 0; i < 8; i++){
  12. delay_ms(1000); //延时1000ms,注意函数调用和函数声明的区别!!!
  13. P1 = _crol_(P1,1); //P1循环左移1位
  14. LED0 = !LED0; //LED0取反
  15. }
  16. }
  17. }
  18. void delay_ms(uint16_t dly){
  19. uint8_t i;
  20. while(dly--)
  21. for(i = 110; i > 0; i--);
  22. }

2.3 与proteus联合调试

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注