一体化学材.docx
- 文档编号:6717773
- 上传时间:2023-01-09
- 格式:DOCX
- 页数:81
- 大小:1.53MB
一体化学材.docx
《一体化学材.docx》由会员分享,可在线阅读,更多相关《一体化学材.docx(81页珍藏版)》请在冰豆网上搜索。
一体化学材
电气工程与自动化系
单片机
一体化学材
目录
任务一认识单片机试验箱2
任务二KEIL软件的使用8
任务三星星点灯14
任务四灯光闪烁22
任务五广告灯27
任务六交通灯33
任务七模拟开关灯38
任务八数码管静态显示43
任务九数码管按键显示50
任务十带中断功能的交通灯55
任务十一16*16数字点阵显示61
附录MCS-51单片机指令表68
任务一认识单片机试验箱
学习目标
1、认识单片机试验箱的整体架构
2、了解试验箱的各个模块。
3、认识单片机下载器。
4、会使用下载器下载程序。
任务描述
1、认识单片机试验箱的各个模块,对试验箱以及单片机有一个整体的认识任务一认识单片机试验箱。
2、能够使用下载器下载程序到芯片中去
一、试验箱外观和内部结构
1、试验箱内部组成
试验箱内部采用通用或专用模块形式组成,实验时,选用其中某一个或某几个模块共同完成。
总共有以下几个模块构成:
电源模块、单片机最小系模块、流水灯模块、交通灯模块、LED静态显示模块、开关电平模块、、单次脉冲模块、数字点阵模块、RS232通信模块、矩阵键盘模块串口应用模块等。
2、试验箱所用器件:
220V电源插座
带开关保险座
AC220V/DC5V模块
MTC46631A
实验插座
实验箱专用
键盘按钮
单次脉冲按钮
插座
IDC8
排电阻
4..7K*8
单刀双掷开关
SPDT单刀双掷指拨式
串口插座
DB9
晶振
12M
IC夹座
DIP40
8*8LED点阵
ArkSZ410788K
共阳LED数码管
ArkSM410501K
LED发光管
∮5红色
∮5绿色
∮5黄色
集成电路
74LS164
74LS08
74LS00
74LS245
74LS154
MAX232
三极管
2N5401
2N5551
电阻
3301/2W
4.7K1/4W
1K1/4W
10K1/4W
4701/4W
IC座
DIP14
DIP20
DIP16
DIP24
胆电容
1μ
电解电容
220μ15V
22μ15V
瓷片电容
0.1μ
15p
二、单片机下载器和下载线
RF-1800是一个四十脚的下载器,它可以对上百款芯片进行烧录,其附带光盘,在安装软件的时候,按照提示进行安装。
安装成功后桌面会出现如下图标
。
点击该图标链接好设备,打开设备的电源就可以进入上位机界面。
界面如下:
根据要下载的芯片的型号选择对应的芯片,操作如下:
点击变为蓝色的按钮会出现如下对话框:
选择对应的厂家和对应的芯片点击确定即可。
下载的时候听到一声蜂鸣器的声音变下载成功,如果听到三声响声便是下载失败,上位机界面上也会出现类似的失败窗口。
注意:
在下载的时候一定要选择编译器写的文件是什么类型的文件如,用keil软件写出来的是InterHex文件;
一、自己下载一个文件到单片机中去
。
二、在调试过程中遇到的问题以及解决办法
1、。
2、。
3、。
4、。
5、。
教师评价
教师总体评价:
教师签名:
日期:
年月日
任务二KEIL软件的使用
学习目标
1、会使用KEIL软件存储程序。
2、会使用KEIL软件进行编程。
3、会使用KEIL软件进行程序调试。
任务描述
1、使用KEIL软件,实现程序的输入、编译、连接和调试。
KEIL软件概述
单片机开发中除必要的硬件外,同样离不开软件,我们写的汇编语言源程序要变为CPU可以执行的机器码有两种方法,一种是手工汇编,另一种是机器汇编,目前已极少使用手工汇编的方法了。
机器汇编是通过汇编软件将源程序变为机器码,Keil软件是目前最流行开发MCS-51系列单片机的软件。
掌握这一软件的使用对于使用51系列单片机的爱好者来说是十分必要的,不管你使用C语言还是汇编语言,其方便易用的集成环境、强大的软件仿真调试工具都会令你事半功倍。
接下来,我们将通过一些实例来学习Keil软件的使用,在这一部份我们将学习如何输入源程序,建立工程、对工程进行详细的设置,以及如何将源程序变为目标代码。
一、Keil工程的建立
首先启动Keil软件的集成开发环境,这里假设读者已正确安装了该软件,可以从桌面上直接双击uVision的图标以启动该软件。
UVison启动后,程序窗口的左边有一个工程管理窗口,该窗口有3个标签,分别是Files、Regs、和Books,这三个标签页分别显示当前项目的文件结构、CPU的寄存器及部份特殊功能寄存器的值(调试时才出现)和所选CPU的附加说明文件,如果是第一次启动Keil,那么这三个标签页全是空的。
1、建立工程文件
在项目开发中,并不是仅有一个源程序就行了,还要为这个项目选择CPU,为管理和使用方便,Keil使用工程(Project)这一概念,将这些参数设置和所需的所有文件都加在一个工程中,只能对工程而不能对单一的源程序进行编译(汇编)和连接等操作,下面我们就一步一步地来建立工程。
图2选择目标CPU
点击“Project->NewProject…”菜单,出现一个对话框,要求给将要建立的工程起一个名字,你可以在编缉框中输入一个名字(设为exam1),不需要扩展名。
点击“保存”按钮,出现第二个对话框,如图2所示,这个对话框要求选择目标CPU(即你所用芯片的型号),Keil支持的CPU很多,我们选择Atmel公司的89C51芯片。
点击ATMEL前面的“+”号,展开该层,点击其中的89C51,然后再点击“确定”按钮,回到主界面,此时,在工程窗口的文件页中,出现了“Target1”,前面有“+”号,点击“+”号展开,可以看到下一层的“SourceGroup1”。
2、源文件的建立
使用菜单“File->New”或者点击工具栏的新建文件按钮,即可在项目窗口的右侧打开一个新的文本编缉窗口,在该窗口中输入以下汇编语言源程序,
ORG0000H
MOVP1,#01H
END
保存该文件,注意必须加上扩展名(汇编语言源程序一般用asm或a51为扩展名),这里假定将文件保存为exam1.asm。
需要说明的是,源文件就是一般的文本文件,不一定使用Keil软件编写,可以使用任意文本编缉器编写,而且,Keil的编缉器对汉字的支持不好,建议使用UltraEdit之类的编缉软件进行源程序的输入。
3、将源文件添加到工程中
这时的工程还是一个空的工程,里面什么文件也没有,需要手动把刚才编写好的源程序加入,点击“SourceGroup1”使其反白显示,然后,点击鼠标右键,出现一个下拉菜单,如图3所示。
选中其中的“AddfiletoGroup”SourceGroup1”,出现一个对话框,要求寻找源文件,注意,该对话框下面的“文件类型”默认为Csourcefile(*.c),也就是以C为扩展名的文件,而我们的文件是以asm为扩展名的,所以在列表框中找不到exam1.asm,要将文件类型改掉,点击对话框中“文件类型”后的下拉列表,找到并选中“AsmSourceFile(*.a51,*.asm),这样,在列表框中就可以找到exam1.asm文件了。
双击exam1.asm文件,将文件加入项目,注意,在文件加入项目后,该对话框并不消失,等待继续加入其它文件,但初学时常会误认为操作没有成功而再次双击同一文件,这时会出现如图4所示的对话框,提示你所选文件已在列表中,此时应点击“确定”,返回前一对话框,然后点击“Close”即可返回主界面,返回后,点击“SourceGroup1”前的加号,会发现exam1.asm文件已在其中。
双击文件名,即打开该源程序。
图3加入文件
图4重复加入文件的错误
二、工程的详细设置
工程建立好以后,还要对工程进行进一步的设置,以满足要求。
首先点击左边Project窗口的Target1,然后使用菜单“Project->Optionfortarget‘target1’”即出现对工程设置的对话框,这个对话框可谓非常复杂,共有8个页面,要全部搞清可不容易,好在绝大部份设置项取默认值就行了。
图5对目标进行设置
设置对话框中的Target页面,如图5所示,Xtal后面的数值是晶振频率值,默认值是所选目标CPU的最高可用频率值,对于我们所选的AT89C51而言24M,该数值与最终产生的目标代码无关,仅用于软件模拟调试时显示程序执行时间。
正确设置该数值可使显示时间与实际所用时间一致,一般将其设置成与你的硬件所用晶振频率相同,如果没必要了解程序执行的时间,也可以不设,这里设置为12。
其他参数不重新选择,按默认值设置。
设置对话框中的OutPut页面,如图6所示,这里面也有多个选择项,其中CreatHexfile用于生成可执行代码文件(可以用编程器写入单片机芯片的HEX格式文件,文件的扩展名为.HEX),默认情况下该项未被选中,如果要写片做硬件实验,就必须选中该项,这一点是初学者易疏忽的,在此特别提醒注意。
选中Debuginformation将会产生调试信息,这些信息用于调试,如果需要对程序进行调试,应当选中该项。
Browseinformation是产生浏览信息,该信息可以用菜单view->Browse来查看,这里取默认值。
按钮SelectFolderforobjects”是用来选择最终的目标文件所在的文件夹,默认是与工程文件在同一个文件夹中。
NameofExecutable用于指定最终生成的目标文件的名字,默认与工程的名字相同,这两项一般不需要更改。
工程设置对话框中的其它各页面与C51编译选项、A51的汇编选项、BL51连接器的连接选项等用法有关,这里均取默认值,不作任何修改。
以下仅对一些有关页面中常用的选项作一个简单介绍。
图6对输出进行控制
在设置好工程后,即可进行编译、连接。
选择菜单Project->Buildtarget,对当前工程进行连接,如果当前文件已修改,软件会先对该文件进行编译,然后再连接以产生目标代码;也可以通过工具栏按钮直接进行。
编译过程中的信息将出现在输出窗口中的Build页中,如果源程序中有语法错误,会有错误报告出现,双击该行,可以定位到出错的位置,对源程序反复修改之后,最终会得到如图9所示的结果,提示获得了名为exam1.hex的文件,该文件即可被编程器读入并写到芯片中,同时还产生了一些其它相关的文件,可被用于Keil的仿真与调试,这时可以进入下一步调试的工作。
一、总结出keil软件使用的步骤
。
二、使用KEIL软件编译一个程序,学会程序的存储、调试等功能。
。
三、在调试过程中遇到的问题以及解决办法
1、。
2、。
3、。
4、。
5、。
一、展示
各小组派代表上台展示解说任务的实施过程和遇到的困难和解决的办法。
二、自我评价
1、你们能否熟练使用KEIL软件?
能□不能□
2、你觉得自己在小组中发挥的作用是
主导作用□配合作用□旁观者作用□
3、你对自己和小组的表现满意吗?
很满意□满意□还行□不满意□
三、小组评价
1、小组分工是否合理?
有否出现纠纷?
配合是否良好?
评价:
2、总结这次任务是否达到学习目标?
评价:
3、有哪些地方需要在今后的学习任务中改良?
评价:
小组成员签名:
四、教师评价
教师总体评价:
教师签名:
日期:
年月日
任务三星星点灯
学习目标
1、认识单片机
2、学习单片机的各个引脚的作用。
3.学习反光二极管共阴级,共阳极的接法和特点。
4、学习星星点灯的原理。
任务描述
1、利用实验箱和配套软件系统,让单片机能够正常的工作,实现点星星点灯的任务。
一、认识单片机
1、单片机定义
所谓单片机,是指在一块芯片上集成了中央处理器CPU、随机存储器RAM、程序存储器ROM或EEPROM、定时/计数器、中断控制器以及串行口,并行I/O接口等部件,构成的一个完整的微型计算机系统
2、单片机的发展
(1)、单片机诞生于20世纪70年代。
1946:
第一台电子计算机诞生
1973:
TI公司注册了世界上第一个单片机专利
举例
单片机仍处在初级的发展阶段,元件集成规模还比较小,功能比较简单,一般均把CPU、RAM有的还包括了一些简单的I/O口集成到芯片上,象Farichild公司就属于这一类型,它还需配上外围的其他处理电路方才构成完整的计算系统。
类似的单片机还有Zilog公司的Z80微处理器。
(2)、单片机的发展、应用里程碑
1974年TI公司推出TMS1000单片机,TI公司高速反雷达导航器
1976年INTEL公司推出了MCS-48单片机,起到8位机的引领和带头作用,Zilog公司的Z8系列在其带领下产生的。
1978年DALLAS(June11,1978)一种新的单片集成电路电子语音合成器由TexasInstruments开发.
(3)、80年代初,单片机发展高性能阶段
1982年以后,16位单片机问世,代表产品是INTEL公司的MCS-96系列,16位单片机比起8位机,数据宽度增加了一倍,实时处理能力更强,主频更高,集成度达到了12万只晶体管,RAM增加到了232字节,ROM则达到了8kB,并且有8个中断源,同时配置了多路的A/D转换通道,高速的I/O处理单元,适用于更复杂的控制系统
(4)、九十年代以后,单片机获得了飞速的发展
世界各大半导体公司相继开发了功能更为强大的单片机。
美国Microchip公司发布了一种完全不兼容MCS-51的新一代PIC系列单片机,引起了业界的广泛关注,特别它的产品只有33条精简指令集吸引了不少用户,使人们从INTEL的111条复杂指令集中走出来。
PIC单片机获得了快速的发展,在业界中占有一席之地
3、单片机的基本组成
(1)一个8位微处理器CPU。
(2)片内数据存储器RAM和特殊功能寄存器SFR。
(3)片内程序存储器ROM。
(4)两个定时/计数器T0、T1,可用作定时器,也可用以对外部脉冲进行计数。
(5)四个8位可编程的并行I/O端口,每个端口既可作输入,也可作输出。
(6)一个串行端口,用于数据的串行通信。
(7)中断控制系统。
(8)内部时钟电路。
4、单片机的内部结构
二、单片机的各个引脚功能
电源引脚Vcc和Vss
Vcc:
电源端,接+5V。
Vss:
接地端。
时钟电路引脚XTAL1和XTAL2
XTAL1:
接外部晶振和微调电容的一端,在片内它是振荡器倒相放大器的输入,若使用外部TTL时钟时,该引脚必须接地。
XTAL2:
接外部晶振和微调电容的另一端,在片内它是振荡器倒相放大器的输出,若使用外部TTL时钟时,该引脚为外部时钟的输入端。
地址锁存允许ALE
系统扩展时,ALE用于控制地址锁存器锁存P0口输出的低8位地址,从而实现数据与低位地址的复用。
外部程序存储器读选通信号PSEN
PSEN是外部程序存储器的读选通信号,低电平有效。
程序存储器地址允许输入端EA/VPP
当EA为高电平时,CPU执行片内程序存储器指令,但当PC中的值超过0FFFH时,将自动转向执行片外程序存储器指令。
当EA为低电平时,CPU只执行片外程序存储器指令。
复位信号RST
该信号高电平有效,在输入端保持两个机器周期的高电平后,就可以完成复位操作。
输入/输出端口引脚P0,P1,P2和P3
P0口(P0.0~P0.7):
该端口为漏极开路的8位准双向口,它为外部低8位地址线和8位数据线复用端口,驱动能力为8个LSTTL负载。
P1口(P1.0~P1.7):
它是一个内部带上拉电阻的8位准双向I/O口,P1口的驱动能力为4个LSTTL负载。
P2口(P2.0~P2.7):
它为一个内部带上拉电阻的8位准双向I/O口,P2口的驱动能力也为4个LSTTL负载。
在访问外部程序存储器时,作为高8位地址线。
P3口(P3.0~P3.7):
为内部带上拉电阻的8位准双向I/O口,P3口除了作为一般的I/O口使用之外,每个引脚都具有第二功能。
三、试验箱单片机最小系统原理图
1、二极管共阴极接法。
。
二极管的负极连接在一起一块接地,正极分别接电源端,当接通电源的时候发光二极管正向导通,此时发光二极管点亮。
一般要接一电阻,阻值得大小根据使二极管的亮度的高低来确定,也可根据通过二级管电流的参数来确定。
2、二极管的共阳极接法。
二极管的正极连接在一块接电平的高电位,负极彼此分立分别接地,该接法是共阳极接法。
一般要接电阻,阻值得确定同共阴极。
四、驱动IC(74LS245)
74LS245具有双向三态功能,既可以输出,也可以输入数据。
当8051单片机的P0口总线负载达到或超过P0最大负载能力时,必须接入74LS245等总线驱动器。
当片选端/CE低电平有效时,DIR=“0”,信号由B向A传输;(接收)
DIR=“1”,信号由A向B传输;(发送)当/CE为高电平时,A、B均为高阻。
五、语句
SETBP1.0;将P1.0的值置为1
CLRP1.0;将P1.0清为0
一、二极管和单片机有几种连接方式?
二、我们采用的是哪一种方式?
是高电平有效还是低电平有效?
三、设计中遇到问题的时候,我们怎样解决问题?
自己设计一些问题并给出测试和解决办法。
1、。
2、。
3、。
4、。
一、展示
各小组派代表上台展示解说任务的实施过程和成果。
二、自我评价
1、你们能否用设计出一个比较完整的单片机系统呢?
能□不能□
2、你觉得自己在小组中发挥的作用是
主导作用□配合作用□旁观者作用□
3、你对自己和小组的表现满意吗?
很满意□满意□还行□不满意□
三、小组评价
1、小组分工是否合理?
有否出现纠纷?
配合是否良好?
评价:
2、总结这次任务是否达到学习目标?
评价:
3、有哪些地方需要在今后的学习任务中改良?
评价:
小组成员签名:
四、教师评价
教师总体评价:
教师签名:
日期:
年月日
任务四灯光闪烁
学习目标
1、学习使用单片机的各个I/O口
2、学习使用单片机调用子程序的指令和方法。
3、学习使用编译器的使用。
4、会使用下载器下载程序。
任务描述
1、利用试验箱和配套的软件系统设计出灯光闪烁的效果,使8个LED灯从左到右依次亮灭0.2秒。
一、堆栈
堆栈介绍:
日常生活中,我们都注意到过这样的现象,家里洗的碗,一只一只摞起来,最晚放上去的放在最上面,而最早放上去的则放在最下面,在取的时候正好相反,先从最上面取,这种现象我们用一句话来概括:
“先进后出,后进先出”。
请大家想想,还有什么地方有这种现象?
其实比比皆是,建筑工地上堆放的砖头、材料,仓库里放的货物,都是“先进后出,后进先出”,这实际是一种存取物品的规则,我们称之为“堆栈”。
在单片机中,我们也可以在RAM中构造这样一个区域,用来存放数据,这个区域存放数据的规则就是“先进后出,后进先出”,我们称之为“堆栈”。
为什么需要这样来存放数据呢?
存储器本身不是可以按地址来存放数据吗?
对,知道了地址的确就可以知道里面的内容,但如果我们需要存放的是一批数据,每一个数据都需要知道地址那不是麻烦吗?
如果我们让数据一个接一个地放置,那么我们只要知道第一个数据所在地址单元就可以了(看图2)如果第一个数据在27H,那么第二、三个就在28H、29H了。
所以利用堆栈这种方法来放数据可以简化操作。
那么51中堆栈什么地方呢?
单片机中能存放数据的区域有限,我们不能够专门分配一块地方做堆栈,所以就在内存(RAM)中开辟一块地方,用于堆栈,但是用内存的哪一块呢?
还是不好定,因为51是一种通用的单片机,各人的实际需求各不相同,有人需要多一些堆栈,而有人则不需要那么多,所以怎么分配都不合适,怎样来解决这个问题?
分不好干脆就不分了,把分的权利给用户(编程者),根据自已的需要去定吧,所以51单片机中堆栈的位置是可以变化的。
而这种变化就体现在SP中值的变化,看图2,SP中的值等于27H不就相当于是一个指针指向27H单元吗?
当然在真正的51机中,开始指针所指的位置并非就是数据存放的位置,而是数据存放的前一个位置,比如一开始指针是指向27H单元的,那么第一个数据的位置是28H单元,而不是27H单元,为什么会这样,我们在学堆栈命令时再说明。
图2
二、调用及返回指令
在程序设计中,通常把具有一定功能的公用程序段编制成子程序,当主程序需要使用子程序时用调用指令,而在子程序的最后安排一条子程序返回指令,以便执行完子程序后能返回主程序继续执行。
1.绝对调用指令
ACALLaddr11
这是一条2KB范围内的子程序调用指令。
执行该指令时,先将PC+2以获得下一条指令的地址,然后将16位地址压入堆栈(PCL内容先进栈,PCH内容后进栈),SP内容加2,最后把PC的高5位PC15~PC11与指令中提供的11位地址addr11相连接(PC15~PC11,A10~A0),形成子程序的入口地址送入PC,使程序转向子程序执行。
所用的子程序的入口地址必须与ACALL下面一条指令的第一个字节在同一个2KB区域的存储器区内。
2.长调用指令
LCALLaddr16
这条指令无条件调用位于16位地址addr16的子程序。
执行该指令时,先将PC+3以获得下一条指令的首地址,并把它压入堆栈(先低字节后高字节),SP内容加2,然后将16位地址放入PC中,转去执行以该地址为入口的程序。
LCALL指令可以调用64KB范围内任何地方的子程序。
指令执行后不影响任何标志。
3.子程序返回指令
RET
这条指令的功能是:
恢复断点,将调用子程序时压入堆栈的下一条指令的首地址取出送入PC,使程序返回主程序继续执行。
三、子程序的调用
主程序与子程序的结构图:
四、延时程序的编写
DELAY:
MOVR5,#20
D1:
MOVR6,
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 一体 化学