第一节、基础知识
一、单片机概念
1、单片机:在一片集成电路芯片上集成微处理器(CPU)、存储器(ROM和RAM)、I/O接口电路,从而构成了单芯片微型计算机,即单片机(single chip Microcomputer)也叫微控制器(MCU)。
CPU( Central Processing Unit ):由运算和控制逻辑组成,同时还包括中断系统和部分外部特殊功能寄存器;
RAM( Random-Access Memory ):用以存放可以读写的数据,如运算的中间结果、最终结果以及欲显示的数据;
ROM (Read-Only Memory):用以存放程序、一些原始数据和表格;
I/O(input/output)口:四个8位并行I/O口,既可用作输入,也可用作输出;
T/C (timer/counter):两个定时/记数器,既可以工作在定时模式,也可以工作在记数模式;
Intel公司1980年推出了MCS-51系列单片机:集成 8位CPU、4K字节ROM、128字节RAM、4个8位并口、1个全双工串行口、2个16位定时/计数器。寻址范围64K,并有控制功能较强的布尔处理器。
80C51是MCS-51系列中的一个典型品种;其它厂商以8051为基核开发出的CMOS工艺单片机产品统称为80C51系列。
主要的80C51单片机
Intel:80C31、80C51、80C32、80C52、87C52
ATMEL:AT89C51、AT89C52、AT89C2051等;
STC:89C51、89C52、90C51、STC15w
Philips:P80C54、P80C58、P87C54
华邦:W78C54、W78C58、W78E54
Siemens:C501-1R、C513A-H
等公司的许多产品 。
芯片封装简介
单片机用途
凡是与控制或简单计算有关的电子设备都可以用单片机来实现,再根据具体实际情况选择不同性能的单片机,如:atmel,stc,pic,avr,凌阳,80C51,arm等
工业自动化:数据采集、测控技术。
智能仪器仪表:数字示波器、数字信号源、数字万用表、感应电流表等。
消费类电子产品:洗衣机、电冰箱、空调机、电视机、微波炉、手机、IC卡、汽车电子设备等。
通讯方面:调制解调器、程控交换技术、手机、小灵通等。
武器装备:飞机、军舰、坦克、导弹、航天飞机、鱼雷制导、智能武器等。
学习51单片机C语言编程基本知识
电平特性
数字电路中只有两种电平:高和低
单片机为TTL电平: 高 +5V 低 0V
RS232电平:计算机的串口 高 -12V 低+12V
所以计算机与单片机之间通讯时需要加电平转换芯片max232等其他芯片
二进制
数字电路中的两种电平特性决定了它使用二进制运算
二进制逻辑运算
逻辑变量 : 只有两个:“0”(假)和“1”(真)。
逻辑“与”(逻辑乘)运算L=A·B 或者 L=A∧B
“与”的运算法则为:
0·0=0 , 0·1=0 ,
1·0=0 , 1·1=1
A·0=0,A·1=A,A·A=A
逻辑“或”(逻辑加)运算L=A+B 或者 L=A∨B
“或”的运算法则为:
0+0=0 , 0+1=1
1+0=1 , 1+1=1
A+0=A ,A+1=1 ,A+A=A
逻辑“非”(逻辑取反)运算L= A
“非”的运算法则为:
0 = 1 ,1 = 0
A + A = 1 ,
A·A = 0 ,A = A
“异或”
其运算规则是:
C语言基本数据类型
基本语法
变量定义
数据类型 变量名
int num1;
double num2 = 2;
unsigned short num3;
if()语句
if(条件){分支}
if(条件){分支1}else{分支2}
if(x>=0)
{
y=y/2;
}
else
{
y=y*x;
}
while()语句
while(条件){循环体}
while(i<10)
{
s+=k;
}
for()语句
for(表达式1;条件2;表达式3){循环体}
for(i=0;x!=y;j++)
{
z/=3;
}
函数定义
数据类型 函数名(形参列表){函数体}
int add(int num1,int num2)
{
return num1+num2;
}
三、80C51引脚简介
1. 电源引脚:Vcc (40脚):电源端,接+5V电源。
Vss(Gnd) (20脚):接地端,接+5V电源地端
2. 外接晶体引脚:XTAL1和XTAL2
89C51内部有一个振荡器和时钟产生电路。
XTAL1(19脚): 片内振荡电路反相放大器输入
XTAL2(18脚):片内振荡电路反相放大器输出 当采用内部时钟时,片外连接石 英晶体和微调电容,产生原始 的振荡脉冲信号。
采用外部时钟时, XTAL1输入 外部时钟脉冲信号, XTAL2悬空.
3. 控制信号引脚:RST、ALE、PSEN、EA
RST (9脚) : 复位信号输入端,高电平有效。
保持两个机器周期高电平时,完成复位操作。
ALE/PROG (30脚) :
地址锁存允许输出端/编程脉冲输入端
正常时,连续输出振荡器频率的1/6正脉冲信号。
访问片外存储器时:
作为锁存P0口低8位地址的控制信号。
对8751片内 ROM编程写入时:作为编程脉冲输入端。
PSEN (29脚): 外部程序存储器读选通输出信号
访问片外ROM时,输出负脉冲作为读ROM选通.
常连接到片外ROM芯片的输出允许端(OE)作外部ROM的读选通信号。
EA/Vpp (31脚):
外部程序存储器地址使能输入/编程电压输入端. 平常,接“1”时,CPU访问片内4KB的ROM,当地址超4KB时,自动转向片外ROM中的程序。当接“0”时,CPU只访问片外ROM。 第2功能Vpp 对8051编程时,编程电压输入端。
4. 输入/输出端口引脚 P0、P1、P2、P3
4个8位的并行输入/输出端口,共32个引脚。作为通用输入/输出端口
通用输入/输出端口
准双向口: 作输入时要先对锁存器写“1”。默认启动初始化为高电平
P0端口(P0.0—P0.7,第39—32脚):
漏极开路的准双向口, 内部没有上拉电阻,为搞阻状态,不能正常输出高低电平,做I/O时需要接上拉电阻(10K)
P1端口(P1.0—P1.7,第1—8脚):
内部带上拉电阻的准双向口,在做输入时要先1
P2端口(P2.0—P2.7,第21—28脚):
内部带上拉电阻的准双向口,与P1相似
P3端口(P3.0—P3.7,第10—17脚):
内部带上拉电阻的准双向口,做I/O时与P1相似,另外有第二功能
P3口的第二功能
仿真软件Proteus
Proteus 软件是由英国 Labcenter Electronics 公司开发的EDA(Electronic Design Automation)工具软件,已有近20年的历史,在全球得到了广泛应用。Proteus 软件的功能强大,它集电路设计、制版及仿真等多种功能于一身,不仅能够对电工、电子技术学科涉及的电路进行设计与分析,还能够对微处理器进行设计和仿真,并且功能齐全,界面多彩,是近年来备受电子设计爱好者青睐的一款新型电子线路设计与仿真软件。
在Proteus中,从原理图设计、单片机编程、系统仿真到PCB设计一气呵成,真正实现了从概念到产品的完整设计。
主要功能
ISIS——智能原理图输入系统,系统设计与仿真的基本平台。
ARES ——高级PCB( Printed Circuit Board)布线编辑软件
VSM(虚拟仿真模式)
交互式仿真—— 实时直观地反映电路设计的仿真结果;
基于图表的仿真(ASF)—— 用来精确分析电路的各种性能,如频率特性、噪声特性等。
工具箱中各图标按钮对应的操作如下
库元件的分类
1. 大类(Category)
在左侧的“Category”中,共列出了以下几个大类
要从库中拾取一个元件时,首先要清楚它的分类是位于哪一类,然后在打开的元件拾取对话框中,选中“Category”中相应的大类
2子类(Sub-category)
选取元件所在的大类(Category)后,再选子类(Sub-category),也可以直接选生产厂家(Manufacturer),这样会在元件拾取对话框中间部分的查找结果(Results)中显示符合条件的元件列表。从中找到所需的元件,双击该元件名称,元件即被拾取到对象选择器中去了。如果要继续拾取其他元件,最好使用双击元件名称的办法,对话框不会关闭。如果只选取一个元件,可以单击元件名称后单击“OK”按钮,关闭对话框。如果选取大类后,没有选取子类或生产厂家,则在元件拾取对话框中的查询结果中,会把此大类下的所有元件按元件名称首字母的升序排列出来
各子类介绍
1. Analog ICs
模拟集成器件共有8个子类
2.Capacitors
电容共有23个分类
3. CMOS 4000 series
CMOS 4000系列数字电路共有16个分类
4. Connectors
接头共有8个分类
5. Data Converters
数据转换器共有4个分类
6. Debugging Tools
调试工具数据共有3个分类
7. Diodes
二极管共有8个分类
8. Inductors
电感共有3个分类
9. Laplace Primitives
拉普拉斯模型共有7个分类
10. Memory ICs
存储器芯片共有7个分类
11. Microprocessor ICs
微处理器芯片共有13个分类
12. Modelling Primitives
建模源共有9个分类
13. Operational Amplifiers
运算放大器共有7个分类
14.Optoelectronics
光电器件共有11个分类
15.Resistors
电阻共有11个分类
16.Simulator Primitives
仿真源共有3个分类
17.Switches and Relays
开关和继电器共有4个分类
18. Switching Devices
开关器件共有4个分类
19.Thermionic Valves
热离子真空管共有4个分类
20.Transducers
传感器共有2个分类
21.Transistors
晶体管共有8个分类
五.编译软件Keil
Keil C51是美国Keil Software公司出品的51系列兼容单片机C语言软件开发系统,与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。Keil提供了包括C编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境(μVision)将这些部分组合在一起。运行Keil软件需要Windows操作系统。使用C语言编程,那么Keil几乎就是不二之选,即使不使用C语言而仅用汇编语言编程,其方便易用的集成环境、强大的软件仿真调试工具也会令你事半功倍。
Keil C51软件提供丰富的库函数和功能强大的集成开发调试工具,全Windows界面。另外重要的一点,只要看一下编译后生成的汇编代码,就能体会到Keil C51生成的目标代码效率非常之高,多数语句生成的汇编代码很紧凑,容易理解。在开发大型软件时更能体现高级语言的优势。
C51 有以下扩展关键字(共21个):
_at_ alien bdata bit code compact data far idata interrupt large pdata _priority_ reentrant sbit sfr sfr16 small _task_ using xdata
常用关键字说明
sfr:sfr用来定义特殊功能寄存器
sfr16:定义一个16位的特殊功能寄存器
sbit:定义一个特殊功能寄存器的某一位
bit:定义位变量
code: 指定存储位置位于程序存储器
interrupt:声明中断服务程序
using:指定的寄存器组
扩展函数
需要包含intrins.h头文件
常用函数
_irol_、_iror_ 对unsigned int数循环左移、右移
_lrol_、_lror_ 对unsigned long数循环左移、右移
_crol_、_cror_对unsigned char数循环左移、右移
六、点亮第一个LED灯
LED发光二极管一般压降为1.7 V 电流3mA即可点亮,因此串联1K电阻限流限压,长脚的为正极。
D1点亮 p1.0设置为低电平,有电流流过,二极管发光
D2不亮 p1.1默认为高电平,没有点亮流过,二极管不会发光
仿真时 红色代表高电平,蓝色代表低电平,灰色代表高阻态
流水灯的实现
一、80c51的最小应用系统
电源+5v 3V接C6 (104 为10 *104 0.1uF)和C5(10uF)提高抗干扰性
复位电路外部RST引脚复位就是从外部向RST引脚施加一定宽度的复位脉冲,从而实现单片机的复位。将RST复位管脚拉高并维持至少24个时钟加10us后,单片机会进入复位状态,将RST复位管脚拉回低电平后,单片机结束复位状态并从用户程序区的0000H处开始正常工作。
当系统上电时,电容充电会给rst引脚高电平,等电容稳定后将没有电流流过.
振荡电路 振荡频率越高表示单片机运行速度越快,但同时对存储器的速度和印刷电路板的要求也就越高。如同木桶原理。同时单片机性能的好坏,不仅与CPU运算速度有关,而且与存储器的速度、外设速度等都有很大关系。因此一般选用6~12MHZ。并联谐振电路对电容的值没有严格要求,但会影响振荡器的稳定、振荡器频率高低、起振快速性等。一般根据手册说明选定.
二、下载程序到stc90c51单片机
三、单片机工作的基本时序
(1) 振荡周期: 也称时钟周期, 是指为单片机提供时钟脉冲信号的振荡源的周期,常用12MHZ,11.0592MHZ。
(2) 状态周期: 每个状态周期为时钟周期的 2 倍, 是振荡周期经二分频后得到的。
(3) 机器周期: 一个机器周期包含 6 个状态周期S1~S6, 也就是 12 个时钟周期。 在一个机器周期内, CPU可以完成一个独立的操作。
(4) 指令周期: 它是指CPU完成一条操作所需的全部时间。 每条指令执行时间都是有一个或几个机器周期组成。MCS - 51 系统中, 有单周期指令、双周期指令和四周期指令。
四、简单的软件延时
使用keil查看程序执行时间
延时100ms函数
延时1s闪烁
流水灯设计
从上到下每隔500ms依次点亮
P0口上拉电阻
P0口是开路漏极只能输出低电平,不能正常输出高电平。所以做I/O时需要加上拉电阻
每隔500ms依次点亮其中一个
来回依次循环点亮一个led
加减速流水灯
花样流水灯
利用_crol_、_cror_实现流水灯
多I/O口的流水灯
第三节、数码管和定时器
显示器及其接口
单片机系统中常用的显示器有:
发光二极管LED(Light Emitting Diode)显示器、液晶LCD(Liquid Crystal Display)显示器、CRT显示器等。LED、LCD显示器有两种显示结构:段显示(7段、米字型等)和点阵显示(5×8、8×8点阵等)。
LED数码显示方式及电路
使用LED显示器时,要注意区分这两种不同的接法。为了显示数字或字符,必须对数字或字符进行编码。七段数码管加上一个小数点,共计8段。因此为LED显示器提供的编码正好是一个字节。
上一篇:PC机通过RS232控制单片机
下一篇:51单片机精确控制步进电机(有TB6600驱动)
推荐阅读
史海拾趣
在电子行业竞争日益激烈的情况下,Collins Electronics Corp面临着巨大的挑战。为了保持竞争优势,公司加大了研发投入,不断优化产品性能。同时,他们还加强了对市场趋势的研究,以便及时调整产品策略。在一次行业技术革新中,公司凭借敏锐的市场洞察力和强大的研发能力,成功推出了一款符合市场需求的新产品,赢得了市场份额。
进入21世纪后,E-T-A公司开始关注智能电路保护技术的研发。公司投入大量资源进行技术创新,成功推出了多款智能电路保护产品。这些产品不仅具有更高的安全性和可靠性,还能实现远程监控和控制功能,为客户提供更加便捷和高效的服务。
随着技术的不断进步和市场的日益成熟,E-T-A公司的产品线也逐渐扩展。公司不仅继续深耕断路器领域,还推出了包括保护控制器、流量和液位传感器等一系列新产品。同时,公司也开始积极拓展全球市场,通过设立分支机构和办事处,为全球客户提供更便捷的服务和支持。
恒连电子注重企业文化建设和团队建设,为员工创造了一个良好的工作环境和发展平台。公司倡导“以人为本”的管理理念,关注员工的成长和发展,为员工提供丰富的培训和学习机会。同时,公司还建立了完善的激励机制和福利制度,激发员工的工作积极性和创造力。在团队建设方面,公司注重团队协作和沟通能力的培养,鼓励员工相互学习、共同进步。通过优秀的团队建设和企业文化建设,恒连电子打造了一支高效、专业、团结的队伍,为公司的发展提供了有力的人才保障。
随着技术的不断成熟和市场需求的扩大,Beck IPC开始寻求新的业务领域。公司凭借在嵌入式通讯领域的深厚积累,成功拓展至机器到机器(M2M)通讯和工业物联网(IIoT)解决方案领域。同时,公司积极开拓国际市场,与多个国家和地区的合作伙伴建立了紧密的合作关系。通过引进国际先进技术和理念,Beck IPC不断提升自身实力,逐渐在全球范围内树立起良好的品牌形象。
在电子行业的早期,Coleman Cable Inc以其创新性的电缆设计和技术突破,在市场中崭露头角。公司研发出一款具有高效传输和稳定性能的电缆产品,迅速赢得了消费者的青睐。随着技术的不断完善和市场需求的扩大,Coleman Cable逐渐扩大了生产规模,并开始向国际市场拓展,其产品在全球范围内得到了广泛应用。
本人学习verilog的时间不是很久,但是有一个体会,HDL十分的枯燥,也十分的茫然,语法就是那么一点,没有c语言好用。但是有时候想用verilog打到c的效果真的不知从何下手,而且代码很容易一写就几百行。写着写着,自己都看晕了。比如说想写一个1602 ...… 查看全部问答∨ |
|
有人做过WINCE6.0下BSP的移植吗?我是个学生,毕设做的是把一个WINCE420版本的BSP移植到WINCE600下,之前没有过移植的经验,想请教有过这方面经验的高手指点。… 查看全部问答∨ |
|
微软的 .Net Micro Framework 支持arm7和arm9,我想知道能不能用传统的arm开发板来开发 .Net Micro Framework 嵌入式应用… 查看全部问答∨ |
|
诺基亚日本研发中心属于Multimedia Business Unit,是全球8 个研发中心之一。另外7个研发中心分布于芬兰、英国、德国、加拿大和印度。 Multimedia Business Unit在诺基亚高新技术领域领先于其它BU,与中国的MPBU不同,专门研发高端产品。 ...… 查看全部问答∨ |