版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 单片机原理及应用课程综述专业班级: 电气13-5班 姓 名:徐毅、周兵、李浩宇、赵国辉、依力斯特 一、课程综述姓名: 徐毅 姓名: 周兵 本学期,我们在课程教学老师谢军老师与实验教学老师张亚老师的指导下,以MCS-51单片机为主要学习对象,由浅到深地了解和学习单片机极其应用系统,在将老师讲解与个人学习相结合基础上,我对本学期单片机极其应用系统的学习总结理解如下:首先我们要了解什么是单片机。单片机又称单片微控制器,是指在一块芯片体上集成中央处理器CPU、随机存储器ROM或EPROM、定时器/计数器、中断控制器、以及串行和并行I/O接口等部件,构成一个完整微型计算机。目前,新型单片机内还有A/D
2、及D/A转换器、高速输入/输出部件、DMA通道、浮点运算等特殊功能部件。它不是完成某一个逻辑功能的芯片,而是把一个计算机系统集成到一个芯片上。概括的讲,一块芯片就成了一台计算机。 单片机特点及应用如下,单片机具有体积小、功能强、应用面广等优点,目前正以前所未见的速度取代着传统电子线路构成的经典系统,蚕食着传统数字电路与模拟电路固有的领地。它的体积小、质量轻、价格便宜、为学习、应用和开发提供了便利条件。同时,学习使用单片机了解计算机原理与结构的最佳选择。现在,这种单片机的使用领域已十分广泛。单片机的应用可分为单机应用和多机应用。单机应有主要用于测控系统、智能仪表、机电一体化产品、智能接口、智能民
3、用产品等领域,是目前应用最多的方式。而多机应用又可分为功能集散系统、并行多机控制系统及局部网络系统。单片机按用途大体上可分为两类,一种是通用型单片机,另一种是专用型单片机。单片机经过几十年来的发展可总结为以下五个阶段:1)、四位单片机:仅能用于简单控制,但价格便宜。2)、低档8位单片机:不带串行接口,寻址范围一般在4KB内,其功能可满足一般工业控制和智能化仪器等的需要。3)、高等8位单片机:带有串行接口,寻址范围可达64KB,有多级中断处理系统、16位定时器/计数器,其功能较强,是目前应用的主要产品。4)、16位单片机:计算速度和控制功能大幅度提高,具有很强的实时处理能力。5)、新一代单片机:
4、在结构上才有双CPU或内部流水线,CPU位数有8位、16位、32位,时钟频率高达40MHz,片内带有PWM输出、监视定时器WDT、可编辑计数器阵列PCA、DMA传输、调制解调器等。芯片向高集成化、低功耗方向发展,使得单片机在大量数据的实时处理、高级通信系统、数字信号处理、复杂工业过程控制、高级机器人以及局域网等方面得到大量的应用。其中,MCS-51单片机是美国INTEL公司于1980年推出的产品,与MCS- 48单片机相比,它的结构更先进,功能更强,在原来的基础上增加了更多的电路单元和指令,指令数达111条,MCS-51单片机可以算是相当成功的产品,一直到现在,MCS-51系列或其兼容的单片机
5、仍是应用的主流产品,在本学期的单片机课程教学中也是以MCS-51单片机作为代表进行理论基础学习。在查阅相关资料及老师的讲解,我将对MCS-51单片机的基本组成进行综合论述。(1)、在基本组成方面:经过总结了解到,首先其内部结构包含了:一个8位CPU,功能很强大,由运算器和控制器构成;4KB ROM或EPROM(8031中没有ROM);128字节RAM数据存储器;21个特殊功能寄存器SFR;4个8位并行I/O接口,其中P0、P2为地址线/数据线。可寻址64KB ROM和64KB RAM;一个可编程全双工串行接口;具有5个中断源,两个优先级,嵌套中断结构;两个16位定时器/计数器;一个片内振荡器及
6、时钟电路。运算器以完成二进制的算术/逻辑运算部件ALU为核心,再加上暂存器TMP、累加器ACC、寄存器B、程序状态标志寄存器PSW及布尔处理器。累加器ACC是一个八位寄存器,它是CPU中工作最频繁的寄存器。在进行算术、逻辑运算时,累加器ACC往往在运算前暂存一个操作数(如被加数),而运算后又保存其结果(如代数和)。寄存器B主要用于乘法和除法操作。标志寄存器PSW也是一个八位寄存器,用来存放运算结果的一些特征,如有无进位、借位等。控制器是CPU的神经中枢,它包括定时控制逻辑电路、指令寄存器、译码器、地址指针DPTR及程序计数器PC、堆栈指针SP等。这里程序计数器PC是由16位寄存器构成的计数器。
7、要单片机执行一个程序,就必须把该程序按顺序预先装入存储器ROM的某个区域。单片机动作时应按顺序一条条取出指令来加以执行。因此,必须有一个电路能找出指令所在的单元地址,该电路就是程序计数器PC。当单片机开始执行程序时,给PC装入第一条指令所在地址,它每取出一条指令(如为多字节指令,则每取出一个指令字节),PC的内容就自动加1,以指向下一条指令的地址,使指令能顺序执行。只有当程序遇到转移指令、子程序调用指令,或遇到中断时,PC才转到所需要的地方去。8051 CPU指定的地址,从ROM相应单元中取出指令字节放在指令寄存器中寄存,然后,指令寄存器中的指令代码被译码器译成各种形式的控制信号,这些信号与单
8、片机时钟振荡器产生的时钟脉冲在定时与控制电路中相结合,形成按一定时间节拍变化的电平和时钟,即所谓控制信息,在CPU内部协调寄存器之间的数据传输、运算等操作。 存储器是单片机的又一个重要组成部分,每个存储单元对应一个地址,如256个单元共有256个地址,用两位16进制数表示,即存储器的地址(00HFFH)。存储器中每个存储单元可存放一个八位二进制信息,通常用两位16进制数来表示,这就是存储器的内容。存储器的存储单元地址和存储单元的内容是不同的两个概念,不能混淆。 此外,存储器又分为程序存储器、和数据存储器和特殊功能寄存器三部分,程序存储器是控制计算机动作的一系列命令,单片机只认识由“0”和“1”
9、代码构成的机器指令。单片机的数据存储器由读写存储器RAM组成。其最大容量可扩展到64k,用于存储实时输入的数据。8051内部有256个单元的内部数据存储器,其中00H7FH为内部随机存储器RAM,80HFFH为专用寄存器区。实际使用时应首先充分利用内部存储器,从使用角度讲,搞清内部数据存储器的结构和地址分配是十分重要的。因为将来在学习指令系统和程序设计时会经常用到它们。8051内部数据存储器地址由00H至FFH共有256个字节的地址空间,该空间被分为两部分,其中内部数据RAM的地址为00H7FH(即0127)。 而用做特殊功能寄存器的地址为80HFFH,特殊功能寄存器(SFR)的地址范围为80
10、HFFH。在MCS51中,除程序计数器PC和四个工作寄存器区外,其余21个特殊功能寄存器都在这SFR块中。其中5个是双字节寄存器,它们共占用了26个字节。特殊功能寄存器反映了8051的状态,实际上是8051的状态字及控制字寄存器。(2)、在单片机的指令系统方面:MCS-51单片机的指令系统是一个具有255种代码的集合,绝大多数指令包含两个基本部分:操作码和操作数。操作码表明指令要执行的性质;操作数说明参与操作的数据或数据所存放的地址。MSC-51单片机有包括:数据传送指令、算数运算指令、逻辑运算指令、控制转移指令、位操作指令111条,有立即寻址、直接寻址、寄存器寻址、寄存器间接寻址、相对寻址、
11、变址寻址、位寻址7种寻址方式。在学习单片机的指令系统时候我们学习了一种跟机器打交道的比较实用的汇编语言,在这个学习过程是非常有趣的,你可要通过自己编写程序区控制单片机。通过设计可以用单片机制造一些电子产品输入自己设计的程序是它完成我们所需要的功能。MCS-单片机作为最早的单片机其结构简单,容易较好的让我们初学者入门,而一切所以的后来的单片机的原理都是由MCS-拓展的,所以我们学习MSC-51为我们单片机打下坚实的基础。(3)、汇编语言程序设计方面:一般情况下,程序设计过程可分为以下几个步骤。 1)、分析问题,确定算法或接替思路; 2)、画流程图; 3)、编写程序; 4)、调试和修改
12、; 汇编语言语句有两种基本类型:指令语句和伪指令语句。指令语句由上所述的五类指令组成伪指令语句(指示性语句)则是指那些不由CPU执行,只为汇编程序在汇编源程序是提供有关信息。伪指令语句除了所定义的具体数据要生成目标代码外,其他项均不生成目标代码。汇编语言的基本格式:MCS-51汇编语言的四分段格式为:标号字段 、操作码字段 、操作数字段 、注释字段,用汇编语言进行编程时,还要注意各个字段的语法及格式规则,以免造成不必要的麻烦。在我看来,汇编语言程序设计是单片机学习中最复杂的部分,因此我们必须在熟练掌握各条指令的功能的基础上,通过各种实际程序,慢慢熟悉汇编语言的编写,需要耐心。(4)
13、、在中断系统方面: 所谓中断就是指计算机在执行某一程序的过程中,由于计算机系统内、外的某种原因,而必须中止程序的执行,转去执行相应的处理程序,待处理结束之后,再回来继续执行被中断的原程序的过程。采用中断技术之后的计算机,可以解决CPU与外设之间速度匹配的问题,使计算机可以及时处理系统中许多随机的参数和信息。同时,它也提高了计算机处理故障能力与应变的能力。 单片机的特点是一段程序反复执行,程序中的每个指令的执行都需要一定的执行时间,如果程序没有执行到某指令,则该指令的动作就不会发生,这样就会耽误很多快速发生的事情,例如,按钮按下时的下降沿。要使单片机在程序正常运行过程中,对快速动作做出反应,就必
14、须使用单片机的中断功能,该功能就是在快速动作发生后,单片机中断正常运行的程序,处理快速发生的动作,处理完成后,在返回执行正常的程序。中断功能使用中的困难是需要精确地知道什么时候不允许中断发生(屏蔽中断)、什么时候允许中断发生(开中断),需要设置哪些寄存器才能使某种中断起作用,中断开始时,程序应该干什么,中断完成后,程序应该干什么等等。中断学会后,就可以编制更复杂结构的程序。 在学习总结MCS51单片机的同时,我们也充分用到了之前学习的专业基础课包括:电路基础、模拟电子技术、数字电路基础等课程,从而使我们再一次的对上述课程的巩固学习,从新的对知识梳理了一遍更加深刻了对知识的印象,了解到了知识串接
15、的重要性。以上就是我通过本学期的学习,对单片机相关内容知识的一些基本总结与论述。二、单片机应用实例设计1、实例题目及要求1)、题目:设计一个简易计算器。计算器电路包括三个部分:七段数码管显示电路显示数据和结果、4*4键扫描电路、单片机微控制电路。2) 、要求: 具体设计如下:(1)可以进行四则运算。(2)键盘包括数字键(09)、符号键(+、-、×、÷)、清除键和等号键,共16个按键。(3)执行过程:开机显示零,等待键入数值,当键入数字,通过LED显示出来,当键入+、-、*、/运算符,计算器在内部执行数值转换和存储,并等待再次键入数值,当再键入数值后将显示键入的数值,按等号就
16、会在LED上输出运算结果。2、系统整体设计思路本次设计采用51单片机作为控制芯片。开机显示零,等待键入数值,当键入数字,通过LED显示出来,当键入+、-、*、/运算符,计算器在内部执行数值转换和存储,并等待再次键入数值,当再键入数值后将显示键入的数值,按等号就会在LED上输出运算结果。3、硬件设计及描述(1)、主要元器件工作原理和功能描述 1)、AT89C51简介 AT89C51是一种带4K字节FLASH存储器(FPEROMFlash Programmable and Erasable Read Only Memory)的低电压、高性能CMOS 8位微处理器,俗称单片机。AT89C
17、51是一种带2K字节闪存可编程可擦除只读存储器的单片机。单片机的可擦除只读存储器可以反复擦除1000次。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,AT89C51是它的一种精简版本。AT89C51单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。AT89C51芯片内部引脚图2)、7段数码管的结构与工作原理 7段数码管一般由8个发光二极管组成,其中由7个细长的发光二极管组成数字显示,另外一个圆形的发光二极管显示小数点。当发光
18、二极管导通时,相应的一个点或一个笔画发光。控制相应的二极管导通,就能显示出各种字符,尽管显示的字符形状有些失真,能显示的数符数量也有限,但其控制简单,使有也方便。发光二极管的阳极连在一起的称为共阳极数码管,阴极连在一起的称为共阴极数码管。3)、矩阵按键 键盘是单片机系统中最常用的人机对话输入设备,用户通过键盘向单片机输入数据或指令。键盘控制程序需完成的任务有:监测是否有键按下,有键按下时,在无硬件去抖的动电路时,应用软件延时方法消除按键抖动影响;当有多个键同时按下时,只处理一个按键,不管一次按键持续多长时间,仅执行一次按键功能程序。矩阵按键扫描程序是一种节省IO口的方法,按键数目越多节省IO口
19、就越可观,思路:先判断某一列(行)是否有按键按下,再判断该行(列)是那一只键按下。但是,在程序的写法上,采用了最简单的方法,使得程序效率最高。本程序中,如果检测到某键按下了,就不再检测其它的按键,这完全能满足绝大多数需要,又能节省大量的CPU时间。本键盘扫描程序的优点在于:不用专门的按键延时程序,提高了CPU效率,也不用中断来扫描键盘,节省了硬件资源。另外,本键盘扫描程序,每次扫描占用CPU时最短,不论有键按下或者无键按下都可以在很短的时间完成一次扫描。 矩阵键盘电路图4)、元器件清单AT89C51单片机一片,4*4键盘一个,6位共阳极的七段数码管一个,连线和电阻和开关若干。51单片机的P2口
20、作键盘口,其中P2.4-P2.7为键盘扫描输出线,P2.0-P2.3为键盘扫描输入线。键盘由4*4共16个按键组成,10个数字键(由0-9组成)5个运算符号(加减乘除等于)组成,1个清除键(作用相当于整体复位)。6个数码管用于显示当前数值的十万,万,千,百,十,个,P1口接6个数码管的八段,P0口分别接6个数码管的公共端,P1口输出数码管的字形码,P0口输出数码管的字位码。4、软件设计及描述1)、软件设计流程图2)、键盘扫描流程图3)、汇编语言程序及注释#include<reg51.h>#define uchar unsigned char 简化unsigned char变量名称#
21、define uint unsigned int 简化unsigned int变量名称sbit dula=P26; 为引脚,定义一个变量名称。sbit wela=P27;sbit beep=P23;uchar temp,key;uchar fun;long int num1,num2,res;uchar aa,dis;uchar code table=0x00,0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71;uchar code weixuan=0xdf,0xef,0xf7,0xfb
22、,0xfd,0xfe;void delay(unsigned char i)uchar j,k; for(j=i;j>0;j-) for(k=125;k>0;k-);void bee()beep=0;delay(255);delay(255);beep=1;key_scan() P3=0xfe; temp=P3; temp=temp&0xf0; if(temp!=0xf0) delay(10); if(temp!=0xf0) temp=P3; switch(temp) case 0xee: key=0; break; case 0xde: key=1; break; cas
23、e 0xbe: key=2; break; case 0x7e: key=3; break; while(temp!=0xf0) temp=P3; temp=temp&0xf0; P3=0xfd; temp=P3; temp=temp&0xf0; if(temp!=0xf0) delay(10); if(temp!=0xf0) temp=P3; switch(temp) case 0xed: key=4; break; case 0xdd: key=5; break; case 0xbd: key=6; break; case 0x7d: key=7; break; while
24、(temp!=0xf0) temp=P3; temp=temp&0xf0; P3=0xfb; temp=P3; temp=temp&0xf0; if(temp!=0xf0) delay(10); if(temp!=0xf0) temp=P3; switch(temp) case 0xeb: key=8; break; case 0xdb: key=9; break; case 0xbb: key=10; break; case 0x7b: key=11; break; while(temp!=0xf0) temp=P3; temp=temp&0xf0; P3=0xf7;
25、 temp=P3; temp=temp&0xf0; if(temp!=0xf0) delay(10); if(temp!=0xf0) temp=P3; switch(temp) case 0xe7: key=12; break; case 0xd7: key=13; break; case 0xb7: key=14; break; case 0x77: key=15; break; while(temp!=0xf0) temp=P3; temp=temp&0xf0; void Init()num1=0;num2=0;wela=1;P0=0xdf;wela=0;dula=1;P0
26、=table1;dula=0;key=16;aa=0;dis=0;res=0;void dis_play(long int nm)uchar a1,a6;long int shu;shu=nm;if(shu=0) wela=1; P0=0xdf; wela=0; dula=1; P0=table1; dula=0;elsefor(a6=0;a6<6;a6+)a1=shu%10;if(shu!=0)a1=a1+1;shu=shu/10;P0=tablea1; dula=1;dula=0;P0=weixuana6;wela=1;wela=0;delay(5);void display()sw
27、itch (dis) case 0: dis_play(num1); break; case 1: dis_play(num2); break; case 2: dis_play(res); break; void shanshuo()wela=1;P0=0xff;wela=0;delay(255);void check()if(key!=16)bee();if(key>=10)switch (key) case 10:Init();break; / CE case 11: switch (fun) case 0:res=num1+num2,dis=2;break; case 1:res
28、=num1-num2,dis=2;break; case 2:res=num1*num2,dis=2;break; case 3:res=num1/num2,dis=2;break; ;break; / = case 12:fun=0,aa=1,shanshuo();break; / + case 13:fun=1,aa=1,shanshuo();break; / - case 14:fun=2,aa=1,shanshuo();break; / * case 15:fun=3,aa=1,shanshuo();break; / / else switch (aa) case 0:num1=num
29、1*10+key; ;break; case 1:dis=1;num2=num2*10+key; ;break; key=16;void main()Init();while(1)key_scan();check();display(); 5、参考文献 微机原理及其应用-温淑焕 中国农业科学技术出版社51单片机快速上手-陈志旺 机械工业出版社 新概念51单片机C语言教程-郭天祥 电子工业出版社51系列单片机设计实例-楼然苗 北京航空航天大学出版社MCS-51系列单片微型计算机及其应用(第4版)- 孙育才 东南大学出版6、 设计人任务分配说明徐毅、依力斯特:键盘扫描功能程序设计、对应GG硬件的计
30、算器功能实现周兵:开机自动清除功能程序设计、应用DD计算器功能实现李浩宇:显示功能程序设计、.赵国辉:计算器运算程序设计、对应硬件的运算功能的实现成绩:姓名张三李四王五课程综述成绩实例设计成绩总成绩单片机应用实例设计一、定时报警器(1-2人)设计一个单片机控制的简易定时报警器。要求根据设定的初始值(1-59 秒)进行倒计时,当计时到0时数码管闪烁“00”(以 1Hz 闪烁),按键功能如下:(1)设定键:在倒计时模式时,按下此键后停止倒计时,进入设置状态;如果已经处于设置状态则此键无效。(2)增一键:在设置状态时,每按一次递增键,初始值的数字增 1。(3)递一键:在设置状态时,每按一次递减键,初
31、始值的数字减 1。(4)确认键:在设置状态时,按下此键后,单片机按照新的初始值进行倒计时及显示倒计时的数字。如果已经处于计时状态则此键无效。二、交通灯(3-4人)设计一个基于单片机的交通灯信号控制器。已知东、西、南、北四个方向各有红黄绿色三个灯和显示倒计时的两个数码管。要求交通灯按照表1进行显示和定时切换,并要求在数码管上分别倒计时显示东西、南北方向各状态的剩余时间。表1:交通灯的状态切换表南北方向东西方向序号状态序号状态1绿灯亮 25 秒,红、黄灯灭1红灯亮 30 秒,绿、黄灯灭2黄灯亮 5 秒,红、绿灯灭3红灯亮 30 秒,绿、黄灯灭2绿灯亮 25 秒,红、黄灯灭3黄灯亮 5 秒,红、绿灯
32、灭回到状态1回到状态1三、密码锁1(3-4人)设计一个单片机控制的密码锁。单片机 P1引脚外接独立式按键 S1-S8,分别代表数字键0-5、确定键、取消键。单片机从P3.0-P3.3输出4个信号,分别为1个电磁开锁驱动信号和密码错误指示、报警输出、已开锁指示信号,分别用发光二极管L1-L4指示。P3.4接一有源蜂鸣器,用于实现提示音。基本要求:(1)初始密码为123450,输完后按确定键开锁,取消键清除所有输入,每次按键有短“滴”声按键提示音。(2)密码输入正确后,输出一个电磁锁开锁信号与已开锁信号,并发出两声短“滴”声提示。4秒后开锁信号与已开锁指示清零。(3)密码输入错误时,发出一声长“滴”声错误指示提示音,并密码错误指示灯亮,三次密码错误时,发出长鸣声报警,并密码错误指示灯亮,报警指示灯亮,此后15秒内无法再次输入密码,15秒过后,清除所有报警和指示。(4)5秒内无任何操作后,清除所有输入内容,等待下次输入。四、密码锁2(4-6人)设计一个单片机控制的密码锁。(1)设置6位密码,密码通过键盘输入,若密码正确,则将锁打开。(2)密码可以由用户修改设定(只支持6位密码),锁打开后才能修改密码。修改密码之前必须再次输入密码,在输入新密码时候需要二次确认,以防止误操作。(3)报警、锁定键盘功能。密码输入错误显示器会出现错误提示,若密码输入错误次数超过3次,蜂鸣器
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 《早春呈水部张十八员外》课件
- 《机械员培训资料》课件
- 《推拿学讲义十》课件
- 《初一寒假家长会》课件
- 2026年法律职位考试题库(含答案)
- 2026年基金从业资格证考试题库及答案
- 2026年机械工程师资格考试模拟试卷(含答案)
- 2026年卫生资格(神经外科学中级相关专业知识)试题及答案
- 2026年大专课程模拟题及答案详解
- 2026年办公软件考试模拟题目及答案详解
- 湖北省武汉市2027届高三上9月调研考试地理试卷( 含答案)
- 移动智慧家庭工程师(家客L3)等级认证备考试题及答案
- 2025绵阳东辰本部小升初数学考试试题库(含答案)
- 2026 年秋季校园传染病案例警示教育
- 2026银行业务创新研究与服务模式分析与发展方向研究报告
- 丰田TSC 7000G-2023中文版(丰田汽车电气电子部件环境测试标准)
- 县级管理档案实施方案
- 肠梗阻诊疗指南(2024版)
- 2026中国金融基础设施现代化建设与运营效率提升研究报告
- 《固态电力变压器第1部分技术规范》
- 医保局保密工作制度
评论
0/150
提交评论