欧易

欧易(OKX)

国内用户最喜爱的合约交易所

火币

火币(HTX )

全球知名的比特币交易所

币安

币安(Binance)

全球用户最多的交易所

C语言知识并不难,没有任何编程基础的人都能够学

2022-10-09 17:10:59 437

摘要:C语言知识并不难,没有任何编程基础的人都能够学单片机属于数字电路,其概念、术语、硬件构造和原理都源自数字电路,假如数字电路根底扎实,对复杂的单片机硬件构造和原理就能容易了解,就能轻松地迈开进修的第一步,自自信心也会树立起来。一般是先进修模拟...

C语言知识并不难,没有任何编程基础的人都能够学

单片机属于数字电路,其概念、术语、硬件构造和原理都源自数字电路,假如数字电路根底扎实,对复杂的单片机硬件构造和原理就能容易了解,就能轻松地迈开进修的第一步,自自信心也会树立起来。

一般是先进修模拟电路再去进修数字电路。扎实的模拟电路根底不仅让你容易看懂他人设计的电路,而且让你的设计的电路更可靠,提高产品质量。

C语言知识并不难,没有任何编程根底的人都能够学,在我看来,初中生、高中生、中专生、大学生都能学会。当然,数学根底好、逻辑思维好的人学起来相对轻松一些。

文章相对比较长,字数比较多,大家可以先打开头像关注我,之后慢慢看,///插播一条:我自己在今年年初录制了一套还比较系统的入门单片机教程,想要的同学找我拿就行了免費的,私信我就可以哦~点我头像左下角黑色字体加我也能领取哦。最近比较闲,带做毕设,带学生参加省级或以上比赛///

当根底打好以后,你会感觉到单片机不再难学了,而且越学越起劲。

当单片机乖乖的依照你的逻辑思维和算法去执行指令,达到预期控制效果的时候,成就感会让你自信心十足、夜以继日、废寝忘食的投入到单片机的世界里。

能够这么说,扎实的电子技术根底和C语言根底能增强进修单片机自信心,快速掌握单片机技术。

假如是电子专业,和单片机相关的主要是电路分析,数电,模电。

一初始的时候,师兄带着我学C语言,那时候我记住和明白的独有C的语法,数字电路师兄也没有讲,毕竟C语言不像汇编,不用控制寄存器,只有明白有关的宏定义是什么意思,如P1=0x00就是把LED灯全部点亮(在明白LED灯的工作原理的情况下),那时候也根本不知道什么弱上拉,推挽、开漏等GPIO状态,更看不懂数据手册上的工作框图,也不知道怎么看数据手册。

其实没有硬件根底,有c的根底,也能够直接来的。买个板子,依葫芦画瓢,上手了,再回去进修根底知识。

单片机基本原理

C51程序设计

C51的指令规则;C51编程语句及规则;

C51表达式和运算符;

顺序程序、分支程序及循环程序设计;

C51的函数;

中断函数。

例:

程序的基本结构有顺序、选择、循环 。

2.C51的存储器模式有small 、 compact 、 large 。

3.C51中int型变量的长度为8bit ,其值域为0-255 ;unsigned char型变量的长度为8位,其值域为 -128-127 。

C51中关键字sfr的作用访问特殊功能寄存器 ,sbit的作用 位寻址 。

函数定义由 函数名 和 函数体 两部分组成。

C51的表达式由运算符和操作数 组成。C51表达式语句由表达式和分号 组成。

若局部变量未初始化,其初值为 0 。

C51中“!”运算符的作用是 逻辑非 ;运算符”~”的作用是 取反 。

若函数无返回值,用 void 关键字指定。

在C51中,语句while(1){循环体语句}的含义是 如果没有break语句则一直循环执行循环体中语句,否则执行到break跳出。

C51中,用于定义变量片内数据存储器类型的关键字是 small 。

程序设计题

1、电路如图所示,要求编程实现一个流水灯。

#include

#define led P2

Int mian()

{

Led = 0xFE;

While(1){

Led=(led<

}

Return 0;

}

2、电路如图所示,要求编程实现:数码管显示0~9,循环显示。

#include

#define digital P2

Void delay(int xx)

{

While(0<>

}

Int main()

{

Digital=0;

While(1){

If(digital

Digital+=1;

Delay(5000);

}

Else

Digital=0;

}

Return 0;

}

中断系统

1、 中断的定义;

2、 中断源及其优先级;

3、 中断过程及中断应用编程。

例:

一、 填空题

1.MCS-51单片机有 5 个中断源。上电复位时,同级中断的自然优先级从高至低依次为 外中断0,定时器0,外中断1,定时器1,串口中断,若IP=00010100B,优先级别最高者为外部中断1 、最低者为定时器1 。

外部中断请求有 电平 触发和 边沿 触发两种触发方式。

MCS-51单片机5个中断源的中断入口地址为:外部0 0003H,;定时0000B;外部1 0013H;定时1 001BH;串口中断 002BH; 。

中断向量是中断服务程序的 识别标志,用于生成中断服务程序入口地址(入口地址指示器) 。

5.当定时器/计数器1申请中断时,TF1为1 ,当中断响应后,TF1为0 。

当串口完成一帧字符接收时,RI为1 ,当中断响应后,RI为1 ,需要软件清零。

6.在MCS-51单片机的中断系统中,中断优先级共分为 2 级。

MCS-51 单片机定时器T0 的中断类型号是 1 。

二、 简答题

MCS-51单片机有几个中断源?各中断标志是如何产生的?如何撤销的?各中断源的中断矢量分别是什么?

5个中断源;中断标志在TCON寄存器中设定的对应的触发条件达成时由硬件置位;除串口中断外,进入处理函数前由硬件撤销中断标志;串口中断标志由软件清除;中断向量分别为:0003;000B;0013;001B;0023;

简述MCS-51中断过程。

程序执行过程中中断条件达成,当前执行空间的参量入栈保存后跳转到对应的中断服务函数,执行完后将先前的参量出栈继续执行前一过程;如果有多个中断同时被触发,先执行高优先级的中断服务函数;如果有同优先级中断,按照自然优先级顺序执行;

MCS-51 单片机有哪几个中断源?它们的中断类型号分别是什么?自然优先级由高到低依次是什么?

外部0 0;计时0 1;外部1 2;计时1 3;串口中断 4;

程序设计题

没有外部中断时,七段数码管显示8,当有外部中断时,七段数码管上显示的8连续闪烁8次,然后继续显示8。要求编写程序实现上述功能。

#include

Int0_srv() interrupt 0

{

For(int i=0;i

P2=0x00;

Delay();

P2=0xff;

}

}

Int main()

{

While(1){

P1=0xff;

}

Return 0;

}

2、没有中断发生时,发光二极管亮,有中断发生时,有外部中断时,在8个发光LED上按从上到下点亮一遍,然后再从下向上点亮一遍,每次点亮一个发光二极管。要求编写程序实现上述功能。

#include

Void int0_srv() interrupt 0

{

P2=0xff;

P2=0xfe;

Delay();

For(int i=0;i

P2=(P2<

For(int i=0;i

P2=(P2>>1)|(~P2);

}

Int main()

{

While(1){

P2=0x00;

}

Return 0;

}


对单片机感兴趣的朋友可以找我我录制了一些关于单片机的入门教程有需要的童鞋找我拿就行免费的私信我“林老师”就可以拿点击打开我的头像就能领取

版权声明:本站所有文章皆是来自互联网,如内容侵权可以联系我们( 微信:bisheco )删除!
友情链接
币圈社群欧易官网