单片机课程设计.docx
- 文档编号:12856813
- 上传时间:2023-04-22
- 格式:DOCX
- 页数:32
- 大小:306.16KB
单片机课程设计.docx
《单片机课程设计.docx》由会员分享,可在线阅读,更多相关《单片机课程设计.docx(32页珍藏版)》请在冰豆网上搜索。
单片机课程设计
目录
绪论…………………………………………………………………………………………2
第一章单片机选型…………………………………………………………………………3
1.1单片机型号的选择……………………………………………………………3
1.2AT89C51简介…………………………………………………………………3
1.2.1主要特性………………………………………………………………3
1.2.2管脚说明………………………………………………………………3
1.2.3振荡器特性……………………………………………………………5
第二章电子时钟……………………………………………………………………………5
2.1电子钟的概念…………………………………………………………………6
2.2电子钟的时钟功能……………………………………………………………6
2.3工作原理………………………………………………………………………6
2.4电子钟的优点与缺点…………………………………………………………6
2.5数码管显示……………………………………………………………………6
第三种电子时钟的硬件设计………………………………………………………………7
3.1proteus的简介…………………………………………………………………7
3.1.1EDA工具软件的功能……………………………………………………7
3.1.2特点……………………………………………………………………7
3.2电子时钟的原理图……………………………………………………………9
3.3电路模块………………………………………………………………………9
3.3.1单片机的晶振电路……………………………………………………9
3.2.2按键模块………………………………………………………………10
3.3.3单片机的复位电路……………………………………………………11
3.3.4时间显示模块…………………………………………………………11
第四章电子时钟软件设计…………………………………………………………………12
4.1keil软件的介绍………………………………………………………………12
4.2软件设计流程图………………………………………………………………12
4.2.1主程序…………………………………………………………………13
4.2.2定时器中断服务程序…………………………………………………15
4.3设计步骤………………………………………………………………………16
4.4系统仿真与实验测试…………………………………………………………17
4.4.1系统仿真与实验测试…………………………………………………17
4.4.2性能测试………………………………………………………………17
第五章实验心得……………………………………………………………………………20
附录元器件清单及程序……………………………………………………………………21
参考文献……………………………………………………………………………………25
绪论
单片微型计算机简称单片机,是典型的嵌入式微控制器(MicrocontrollerUnit)。
单片机芯片
常用英文字母的缩写MCU表示单片机,单片机又称单片微控制器,它不是完成某一个逻辑功能的芯片,而是把一个计算机系统集成到一个芯片上。
相当于一个微型的计算机,和计算机相比,单片机只缺少了I/O设备。
概括的讲:
一块芯片就成了一台计算机。
它的体积小、质量轻、价格便宜、为学习、应用和开发提供了便利条件。
同时,学习使用单片机是了解计算机原理与结构的最佳选择。
它最早是被用在工业控制领域。
由于单片机在工业控制领域的广泛应用,单片机由芯片内仅有CPU的专用处理器发展而来。
最早的设计理念是通过将大量外围设备和CPU集成在一个芯片中,使计算机系统更小,更容易集成进复杂的而对体积要求严格的控制设备当中。
INTEL的Z80是最早按照这种思想设计出的处理器,当时的单片机都是8位或4位的。
其中最成功的是INTEL的8031,此后在8031上发展出了MCS51系列单片机系统。
因为简单可靠而性能不错获得了很大的好评。
尽管2000年以后ARM已经发展出了32位的主频超过300M的高端单片机,直到目前基于8031的单片机还在广泛的使用。
在很多方面单片机比专用处理器更适合应用于嵌入式系统,因此它得到了广泛的应用。
事实上单片机是世界上数量最多处理器,随着单片机家族的发展壮大,单片机和专用处理器的发展便分道扬镳。
现代人类生活中所用的几乎每件电子和机械产品中都会集成有单片机。
手机、电话、计算器、家用电器、电子玩具、掌上电脑以及鼠标等电脑配件中都配有1-2部单片机。
汽车上一般配备40多部单片机,复杂的工业控制系统上甚至可能有数百台单片机在同时工作!
单片机的数量不仅远超过PC机和其他计算的总和,甚至比人类的数量还要多。
第一章单片机的选型
1.1单片机型号的选择
AT89C51
1.2AT89C51简介
1.2.1主要特性
AT89C51提供以下标准功能:
4k字节Flash闪速存储器,128字节内部RAM,32个I/O口线,两个16位定时/计数器,一个5向量两级中断结构,一个全双工串行通信口,片内振荡器及时钟电路。
同时,AT89C51可降至0Hz的静态逻辑操作,并支持两种软件可选的节电工作模式。
空闲方式停止CPU的工作,但允许RAM,定时/计数器,串行通信口及中断系统继续工作。
掉电方式保存RAM中的内容,但振荡器停止工作并禁止其它所有部件工作直到下一个硬件复位。
1.2.2管脚属性
VCC:
供电电压。
GND:
接地。
P0口:
P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。
当P0口的管脚第一次写1时,被定义为高阻输入。
P0能够用于外部程序数据存储器,它可以被定义为数据/地址的低八位。
在FIASH编程时,P0口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须接上拉电阻。
P1口:
P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。
P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。
在FLASH编程和校验时,P1口作为低八位地址接收。
P2口:
P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。
并因此作为输入时,P2口的管脚被外部拉低,将输出电流。
这是由于内部上拉的缘故。
P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。
在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。
P2口在FLASH编程和校验时接收高八位地址信号和控制信号。
P3口:
P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。
当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。
作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。
P3口也可作为AT89C51的一些特殊功能口,如下表所示:
口管脚备选功能
P3.0RXD(串行输入口)
P3.1TXD(串行输出口)
P3.2/INT0(外部中断0)
P3.3/INT1(外部中断1)
P3.4T0(记时器0外部输入)
P3.5T1(记时器1外部输入)
P3.6/WR(外部数据存储器写选通)
P3.7/RD(外部数据存储器读选通)
P3口同时为闪烁编程和编程校验接收一些控制信号。
RST:
复位输入。
当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。
ALE/PROG:
当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的低位字节。
在FLASH编程期间,此引脚用于输入编程脉冲。
在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。
因此它可用作对外部输出的脉冲或用于定时目的。
然而要注意的是:
每当用作外部数据存储器时,将跳过一个ALE脉冲。
如想禁止ALE的输出可在SFR8EH地址上置0。
此时,ALE只有在执行MOVX,MOVC指令是ALE才起作用。
另外,该引脚被略微拉高。
如果微处理器在外部执行状态ALE禁止,置位无效。
/PSEN:
外部程序存储器的选通信号。
在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。
但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。
/EA/VPP:
当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。
注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。
在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。
XTAL1:
反向振荡放大器的输入及内部时钟工作电路的输入。
XTAL2:
来自反向振荡器的输出。
1.2.3振荡器特性
XTAL1和XTAL2分别为反向放大器的输入和输出。
该反向放大器可以配置为片内振荡器。
石晶振荡和陶瓷振荡均可采用。
如采用外部时钟源驱动器件,XTAL2应不接。
有余输入至内部时钟信号要通过一个二分频触发器,因此对外部时钟信号的脉宽无任何要求,但必须保证脉冲的高低电平要求的宽度。
第二章电子时钟
2.1电子钟的概念
电子钟亦称数显钟(数字显示钟),是一种用数字电路技术实现时、分、秒计时的装置,与机械时钟相比,直观性为其主要显著特点,且因非机械驱动,具有更长的使用寿命,相较石英钟的石英机芯驱动,更具准确性。
电子钟已成为人们日常生活中必不可少的必需品,广泛用于个人家庭以及车站、码头、剧院、办公室等公共场所,给人们的生活、学习、工作、娱乐带来极大地方便。
相对于其他时钟类型,它的特点可归结为“两强一弱”:
比机械钟强在观时显著,比石英钟强在走时准确,但是它的弱点为显时较为单调。
2.2电子钟的时钟功能
电子钟的时钟功能:
具有可选的24h(小时)或12h(小时)的计时方式,显示时、分、秒;具有快速校准时、分、秒的功能;能设置起闹时刻、响闹时间为1min(分钟),超过1min(分钟)自动停止;具有人工止闹功能,止闹后不再重新操作,将不再发生起闹;具有整点报时功能。
随着科技的进步与发达,部分电子钟还带投影功能,同时衍生为许多其他产品的辅助功能。
2.3工作原理
电子钟是一个将“时”,“分”,“秒”显示于人的视觉器官的计时装置。
它的计时周期为24小时,显示满刻度为23时59分59秒,具有校时功能和报时功能。
因此,一个基本的数字钟电路主要由译码显示器、“时”,“分”,“秒”计数器、校时电路、报时电路和振荡器组成。
主电路系统由秒信号发生器、“时、分、秒”计数器、译码器及显示器、校时电路、整点报时电路组成。
秒信号产生器是整个系统的时基信号,它直接决定计时系统的精度,一般用石英晶体振荡器加分频器来实现。
将标准秒信号送入“秒计数器”,“秒计数器”采用60进制计数器,每累计60秒发出一个“分脉冲”信号,该信号将作为“分计数器”的时钟脉冲。
“分计数器”也采用60进制计数器,每累计60分钟,发出一个“时脉冲”信号,该信号将被送到“时计数器”。
“时计数器”采用24进制计时器,可实现对一天24小时的累计。
译码显示电路将“时”、“分”、“秒”计数器的输出状态用七段显示译码器译码,通过七段显示器显示出来。
整点报时电路时根据计时系统的输出状态产生一脉冲信号,然后去触发一音频发生器实现报时。
校时电路时用来对“时”、“分”、“秒”显示数字进行校对调整。
2.4电子钟的优点与缺点
优点:
与传统的机械钟先比,电子钟具有更优异的优点。
由于电子钟采用数字集成电路的发展和采用了先进的石英技术,使电子钟具有走时准确、性能稳定、携带方便等优点,电子钟用于定时自动报警、按时自动打铃、时间程序自动控制、定时广播及自动控制等各个领域。
缺点:
因为电子钟毕竟是电子产品,电子产品都有辐射,不过电子钟危害极低,对人体够不成任何危害,不象手机的辐射那么大。
2.5数码管显示
显示器主要有LED(发光二级管显示器)和LCD(液晶显示器)。
这两种显示器具有耗电省、配置灵活、线路简单、安装方便、耐振动、寿命长等优点。
两者相比,LED显示器价格更低廉,结构更简单,LCD显示器功耗更低,显示清晰度更高。
LED显示器分为静态显示方式和动态显示方式。
静态显示是指显示器显示某个字符时相应的一直导通或截止,直至变换为其他字符。
动态扫描显示方式就是把个显示器的相同段选并联在一起,由一个8位输入/输出端口控制,其公共端由其他相应的输入/输出端口控制,然后采用扫描方法轮流点亮各位LED,使每位分别显示该为应该显示的字符。
动态扫描式显示接口虽然硬件简单,但在使用时必须反复循环显示,若CPU需做其他操作,只能插入循环程序中,这就降低了CPU的工作效率。
第三章电子时钟的硬件设计
3.1Proteus的简介
3.1.1EDA工具软件的功能
Proteus软件是英国Labcenterelectronics公司出版的EDA工具软件。
它不仅具有其它EDA工具软件的仿真功能,还能仿真单片机及外围器件。
它是目前最好的仿真单片机及外围器件的工具。
虽然目前国内推广刚起步,但已受到单片机爱好者、从事单片机教学的教师、致力于单片机开发应用的科技工作者的青睐。
Proteus是世界上著名的EDA工具(仿真软件),从原理图布图、代码调试到单片机与外围电路协同仿真,一键切换到PCB设计,真正实现了从概念到产品的完整设计。
是目前世界上唯一将电路仿真软件、PCB设计软件和虚拟模型仿真软件三合一的设计平台,其模型支持8051、HC11、PIC10/12/16/18/24/30/DsPIC33、AVR、ARM、8086和MSP430等,2010年即将增加Cortex和DSP系列处理器,并持续增加其他系列处理器模型。
在编译方面,它也支持IAR、Keil和MPLAB等多种编译器。
3.1.2特点
(1)互动的电路仿真
用户甚至可以实时采用诸如RAM,ROM,键盘,马达,LED,LCD,AD/DA,部分SPI器件,部分IIC器件。
(2)仿真处理器及其外围电路
可以仿真51系列、AVR、PIC、ARM、等常用主流单片机。
还可以直接在基于原理图的虚拟原型
上编程,再配合显示及输出,能看到运行后输入输出的效果。
配合系统配置的虚拟逻辑分析仪、示波器等,Proteus建立了完备的电子设计开发环境。
3.2电子时钟的原理图
3.3电路模块
3.1.2单片机的晶振电路
晶振产生电路所需的振荡频率
3.2.2按键模块
分别用三个按键控制时分秒的显示
3.3.3复位电路
复位是单片机的初始化操作,单片机在启动运行时,都需要先复位,它的作用是使CPU和其他部件都处于一个确定的初始状态,并从这个状态开始工作。
3.3.4时间显示模块
本次实验用的显示器为动态显示,各个数码管虽然是分别轮流通电的,但由于发光二极管具有余辉特性及人眼具有视觉暂留作用,所以适当选取循环扫描频率,看上去所有的数码管是同时点亮的,察觉不出有闪烁现象。
第四章电子时钟软件设计
4.1keil软件的介绍
KeilC51是美国KeilSoftware公司出品的51系列兼容单片机C语言软件开发系统,与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。
Keil提供了包括C编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境(uVision)将这些部分组合在一起。
运行Keil软件需要WIN98、NT、WIN2000、WINXP等操作系统。
如果你使用C语言编程,那么Keil几乎就是你的不二之选,即使不使用C语言而仅用汇编语言编程,其方便易用的集成环境、强大的软件仿真调试工具也会令你事半功倍。
优点:
1.KeilC51生成的目标代码效率非常之高,多数语句生成的汇编代码很紧凑,容易理解。
在开发大型软件时更能体现高级语言的优势。
2.与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。
用过汇编语言后再使用C来开发,体会更加深刻。
KeilC51软件提供丰富的库函数和功能强大的集成开发调试工具,全Windows界面。
4.2软件设计流程图
4.2.1主程序
MAIN:
MOVTMOD,#16H
MOVTH1,#3CH
MOVTL1,#0B0H
MOVTH0,#0FFH
MOVTL0,#0FFH
MOVR4,#00H
MOVR5,#00H
MOVR6,#00H
MOVR7,#20
MOVTCON,#05H
SETBTR1
SETBET1
SETBEA
SETBTR0
CLREX0
CLREX1
CLRET0
MOVSP,#60H
LOOP:
MOVa,R4
MOVb,#10
DIVab
MOVDPTR,#0300H
MOVCa,@a+DPTR
MOVP0,a
MOVP1,#40H
LCALLDELAY
MOVP0,#0FFH
MOVa,b
MOVCa,@a+DPTR
MOVP1,#80H
MOVP0,a
LCALLDELAY
MOVP0,#0FFH
MOVP2,#0FFH
JNBP2.0,TIAOJIE
LCALLDELAY
MOVP0,#0FFH
MOVa,R5
MOVb,#10
DIVab
MOVDPTR,#0300H
MOVCa,@a+DPTR
MOVP0,a
MOVP1,#08H
LCALLDELAY
MOVP0,#0FFH
MOVa,b
MOVCa,@a+DPTR
MOVP1,#10H
MOVP0,a
LCALLDELAY
MOVP0,#0FFH
MOVP2,#0FFH
JNBP2.0,TIAOJIE
MOVP1,#20H
MOVP0,#0F6H
LCALLDELAY
MOVP0,#0FFH
MOVa,R6
MOVb,#10
DIVab
MOVDPTR,#0300H
MOVCa,@a+DPTR
MOVP0,a
MOVP1,#01H
LCALLDELAY
MOVP0,#0FFH
MOVa,b
MOVCa,@a+DPTR
MOVP1,#02H
MOVP0,a
LCALLDELAY
MOVP0,#0FFH
MOVP2,#0FFH
JNBP2.0,TIAOJIE
MOVP1,#04H
MOVP0,#0F6H
LCALLDELAY
MOVP0,#0FFH
LJMPLOOP
TIAOJIE:
CPLET1
CPLET0
CPLEX0
CPLEX1
LJMPLOOP
4.2.2中断程序
ZJ:
PUSHACC
MOVTH1,#3CH
MOVTL1,#0B0H
MOVR7,#20
DJNZR7,FANHUI
INCR4
MOVA,R4
CJNEA,#60,FANHUI
MOVR4,#00H
INCR5
MOVA,R5
CJNEA,#60,FANHUI
MOVR5,#00H
INCR6
N
MOVA,R6
CJNEA,24H,FANHUI
MOVR6,#00H
FANHUI:
POPACC
RETI
ORG0200H
MIAO:
CLREA
INCR4
SETBEA
RETI
SHI:
CLREA
INCR6
SETBEA
RETI
FEN:
CLREA
INCR5
SETBEA
RETI
Y
Y
Y
Y
N
N
N
中断服务方框图
4.3设计步骤
1.打开keil软件,出现keil软件操作窗口
2.找到project,点击newproject,选择atmel中的at89c51芯片
3.新建一个text窗口,保存到开始的文件夹中,后缀名为:
.asm
4.在界面的左上角打开sourcegroup添加刚才保存的文件
5.在新建的界面内输入程序,并检测无错误
6.点击project选择optionsfortarget选择at89c51芯片,同时设置晶振的主频为12MHZ并创建一个(.HEX)文件
4.4系统仿真与实验测试
4.4.1系统测试与实验测试
4.4.2性能测试
软件运行
调秒按键
调分电路
调时电路
第五章实验心得
本次课程设计学到了很多,首先是学到了几个新的软件,对单片机也有了更多的了解。
为我以后的学习打下了一定的基础,也增长了许多的知识,尤其是本性课程设计所做的东西。
通过这次对电子钟的设计,我摆脱了单纯的理论知识学习状态,和实际操作的结合锻炼了我。
综合运用了所学的专业基础知识,解决实际使用过程中存在的问题,同时也提高我查阅文献资料、设计规范以及电脑制图等其他专业能力水平。
通过整体的设计,局部的取舍,以及对细节的斟酌处理,都使我的能力得到了锻炼,并且磨练了我的意志力,抗压能力及耐力也都得到了不同程度的提升。
还有就是对于程序的编程也有了点提高,不至于让自己在遇到这样的东西的时候变的手足无措。
通过对系统的分析与设计过程,我学到了许多新的知识,并且对我在这几年所学习的电子方面的专业知识进行巩固。
这次的课程设计不仅使我学会了电子时钟的制作过程,更重要的是让我学会了Proteus的使用,学会了这种解决问题的方法,授之以鱼不如授之以渔,学会了这种方法也便能够解决此类问题,我相信,在以后的单片机学习与使用中,这次课程设计学会的东西将起着不可替代的作用。
本次毕业设计能顺利如期的完成给了我很大的信心,让我了解专业知识的同时也对本专业的发展前景充满信心。
附录:
元件清单和程序
程序:
ORG0000H
LJMPMAIN
ORG0003H
LJMPMIAO
ORG000BH
LJMPSHI
ORG0013H
LJMPFEN
ORG001BH
LJMPZJ
MAIN:
MOVTMOD,#16H
MOVTH1,#3CH
MOVTL1,#0B0H
MOVTH0,#0FFH
MOVTL0,#0FFH
MOVR4,#00H
MOVR5,#00H
M
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 课程设计