8051单片机是一种经典的8位微控制器,由Intel公司于1980年推出。它具有体积小、功耗低、易于编程、易于扩展等优点,被广泛应用于各种嵌入式系统中。下面是关于8051单片机的一些基本知识。
8051单片机的架构
8051单片机的架构包括CPU、RAM、ROM、I/O口、定时器/计数器、串行通信接口等模块。其中,CPU是单片机的核心,负责执行指令和控制系统的运行;RAM用于存储程序和数据;ROM存储程序代码;I/O口用于与外部设备进行数据交互;定时器/计数器用于计时和计数;串行通信接口用于与其他设备进行通信。
8051单片机的指令集
8051单片机的指令集包括基本指令、位操作指令、移位指令、逻辑指令、算术指令、跳转指令等。这些指令可以完成各种操作,如数据传输、逻辑运算、算术运算、跳转等。
8051单片机的编程语言
8051单片机可以使用汇编语言或C语言进行编程。汇编语言是一种低级语言,需要编写详细的指令序列;C语言是一种高级语言,可以通过编写简单的代码实现复杂的功能。
8051单片机的应用
8051单片机被广泛应用于各种嵌入式系统中,如家电控制、汽车电子、医疗设备、工业自动化等。它可以控制各种设备,如电机、灯光、传感器等,实现各种功能,如控制、检测、计算等。
8051单片机的扩展
8051单片机可以通过扩展模块实现更多的功能。常见的扩展模块包括LCD显示模块、键盘输入模块、ADC模块、DAC模块、网络通信模块等。这些模块可以扩展单片机的功能,使其更加灵活和实用。
8051单片机是一种经典的8位微控制器,具有体积小、功耗低、易于编程、易于扩展等优点
C语言结构体数组示例
/* C语言结构体数组示例1*/
#include<stdio.h>
struct stu {
char* name;//名字
int num;//学号
int age;//年龄
char group;//小组
float score;//成绩
}stus[] = {
{"zhang san",42,99,'A',100.5},
{"li san",32,23,'N',140.6},
{"ss san",52,23,'N',145.8}
};
int main(
){
int i,sum=0,num_140=0;
for (i = 0; i < 3; i++)
{
sum += stus[i].score;
if (stus[i].score >140)num_140++;
}
printf("总成绩=%d;%d个140分的同学;平均成绩=%.3f", sum, num_140,(float)sum/3);
return 0;
}
/*结构体指针示例2*/
#include<stdio.h>
struct stu {
char* name;//名字
int num;//学号
int age;//年龄
char group;//小组
float score;//成绩
}stus[] = {
{ "zhang san",45,99,'A',154.5 },
{ "li si",32,99,'B',142.5 },
{ "niu ma",22,99,'C',145.5 },
{ "lao liu",52,99,'D',157.5 },
{ "bu ke neng da gong",62,99,'E',125.5 }}
;
void average(struct stu* wlo, int len);
int main()
{
int i, score1=0, age1=0;
int len = sizeof(stus) / sizeof(struct stu);
average(stus, len);
return 0;
}
void average(struct stu* wlo, int len)
{
int i, all_score=0;
float sum = 0;
for (i = 0; i < len; i++)
{
sum += (*(wlo+i)).score;//wlo[i].score;//(wlo + i)->score;这三个等价
if ((wlo + i)->score > 140) all_score++;
}
printf("总成绩=%.2fn平均成绩=%.2fn 优秀成绩(>140)=%d", sum, sum / 5, all_score);
}