简单讨论一下小白学习单片机所需要的软件环境、硬件环境

2022-05-12     大方老师单片机

原标题:简单讨论一下小白学习单片机所需要的软件环境、硬件环境

简单讨论一下小白学习单片机所需要的软件环境、硬件环境

///插播一条:我自己在今年年初录制了一套还比较系统的入门单片机教程,想要的同学找我拿就行了免费的,私信我就可以~点我头像黑色字体加我地球呺也能领取哦。最近比较闲,带做毕设,带学生参加省级或以上比///

单片机让很多同学觉得难,是因为单片机是软硬件结合的产品。你需要对软件了解,也需要对硬件了解一些,但是这不是单片机入门最关键的要素,大部分同学不入门最关键的问题是好高骛远,另一个关键问题是目前市面上大部分的单片机书籍不适合入门。

作者一直提倡学习使用框架法、逆推法、一步步学习,此次也不例外。

直接了当,我们做个学习单片机的知识框架:

·单片机核心当然是必不可少的,单片机就是将电脑所拥有的大部分硬件集成到一个芯片中,当然是精简过,但是也强悍的不得了。

·都将计算机集成了,我们考虑下,自然需要有些基础学习单片机才能进展快,所以要了解一些模拟电路、数字电路的基础知识,但是大家不要被这两个名词吓住了,针对单片机应用来说,我们仅学习其中万分之一的基础知识就好。

·当然单片机学习离不开单片机编程,早期学单片机很费劲,要学习汇编语言,机器语言,感C语言的发明人和拓展科学家吧!他们把问题简化,我们可以用中级语C语言完成单片机编程C语言是核心,这个要学会,现在甚至有些可以用高级语言或者图形化单片机编程,但是还不够实用化,C语言仍然是核心

·我们用编写单片机软件来控制单片机硬件,所以软件环境、硬件环境都必不可少。软件环境包括编程平台(软件开发平台)和调试工具(串口调试助手TCP/IP/UDP调试助手等等;硬件环境我们要准备单片机开发板和调试工具万用表、示波器、逻辑分析仪等。

·准备这些很麻烦,有些还比较贵,所以在公司内部和学校学习是最好的方式,另外现在有个-Proteus,它包含了单片机编程平台、硬件仿真、硬件调试工具,作为初学者可以proteus入手学习单片机,事半功倍。

·通讯协议是重点、重点、重点!单片机核心与外部模块、芯片通讯,都要有通讯协议才行,要用几根线与外部连线,要发送什么数...

向导的专栏从来不是劝退专栏,而是想尽各种办法让零基础、非专业的同学入门。

不要被上面的英文单词或者专业术语吓住了,实际上框架罗列出来,是让大家有个清晰的认识,知道单片机系统是什么。

大部分不适合入门的最大的问题就是无框架、跳跃式讲解,任何一个专业术语,都有办法解释清楚,一篇文章不100篇!

仅以此篇,作为单片机入门专栏的总目录。

总目录:

第一篇,单片机入门系列

向导D1.1单片机入门第一课

向导D1.2单片机入门第二程序语言框架

向导:单片机入门框架学习思代码结流程图与分析工具

向导:单片机核心概1---定时器

向导PM10单片机调试方法与技软件工具使用

第二篇,进阶工程师内容

向导E2.1单片机开源框--时间片轮询

向导E2.2单片机开源框--时间片轮--思路

附录

向导:单片机学习方法与步骤

向导:代码分析工understand与实用化配置

向导:玲珑剑与生锈--串口调试利器

向导:向导单片机训练--开源资料

向导:最简洁的单片机状态机模(X-状态)

向导:单片--学习全流程框架(初稿)

待补...

声明:

文中所有论点、结论皆根据作者经历经验总结,限于知识结构、层次、经历局限性,必然有不少偏颇,甚至部分内容偏激,作者所有的文章也是试错的过程,欢迎批评斧正,如有不同意见或建议,请与讨论区提出讨论

1.数码管静态与动态的原理

1.1静态

概念:每个数码管必须8位数据线。当送入一次字形码后,可保持不变,直至送入新的为止。

优点:CPU占用时间少

缺点:硬件电路复杂,成本高

.2 动态

特点:将所有数码管的段选线并联,由位选线决定哪一个数码管工作。同一时刻,仅有一个数码管工作。

动态显示的亮度要差一些,所以选择限流电阻时,应略小于静态显示电路中的电阻。

.中断

.1概念:略

.2中断过程:.中断发生;.中断服务;.中断返回(自己看书本的描述,记一下)

.3相关寄存器

..1TCON

TR0=1,定时器0启动;TF0:定时器0溢出中断标志位

..2SCON

TI、RI:收发中断标志位,需软件清零。

..3中断允许控制

EA:中断总开关

如果要打开定时器中断,要开两个中断!先EA=1,再ET0=1。

如果要打开串口中断,则是先EA=1,再ES=1。

..4中断优先级控制

.4定时器/计数器

51单片机的定时器,有4种工作方式,通过寄存M1,M0来设置。

.5程序(仅摘录关键部分)

..1定时器初始化部分

TMOD=0x01;

TH0=(65536-N)/256;

TL0=(65536-N)%256;

EA=1;

ET0=1;

TR0=1;

..2中断服务

void T0_time()interrupt 1

TH0=...;

TL0=...;

num++;

如果时使用定时器1,则是interrupt 3。

..3 延时函数

void delayms(uint z)

uint i,j;

for(i=z;i>0;i--)

for(j=110;j>0;j--);

第四章 键盘

.键盘分类

.1编码键盘

硬件部分已经帮键盘编好码了

.2非编码键盘

需要软件去编码和判断哪个按键按下。其中常见的有独立键盘和矩阵键盘。

.去抖

去抖的关键是加delay函数,看程序就很好理解了。

.独立键盘程序编写

sbit s1=p3^0;

if(s1 == 0)

delayms(0);//去抖

if(s1 == 0)

...

while(s1!=0)//等待按键放下

.矩阵键盘编写

假设,先检测第2列

P3=0xfd;//关键1:0xfd即(11111101),扫描第2列

temp=P3;//

temp=temp&0xf0;//关键2:读取第1、2、3、4行

if(temp!=0xf0)

delayms(10);

if(temp!=0xf0)

temp=P3;

switch(temp)

case ...//逐行排除,看看是谁被按下了。

矩阵键盘特点:节省I/O口资源,但编程复杂。

文章来源: https://twgreatdaily.com/zh-hans/deb218809c0fdda9abdb5e34f0386221.html