课程设计说明书
(2009/2010学年第二学期)
课程名称 :题 目 :专业班级 :学生姓名 :学 号 :指导教师 :设计周数 :设计成绩 :
单片机应用课程设计 四路抢答器 电气2班
韩昱 苗敬利 两周(10.6.28-10.07.09)
2010年 7月9日
前言
单片机是指一个集成在一块芯片上的完整计算机系统。尽管他的大部分功能集成在一块小芯片上,但是它具有一个完整计算机所需要的大部分部件:CPU、内存、内部和外部总线系统,目前大部分还会具有外存。同时集成诸如通讯接口、定时器,实时时钟等外围设备。而现在最强大的单片机系统甚至可以将声音、图像、网络、复杂的输入输出系统集成在一块芯片上。
单片机也被称为微控制器(Microcontroller),是因为它最早被用在工业控制领域。单片机由芯片内仅有CPU的专用处理器发展而来。最早的设计理念是通过将大量外围设备和CPU集成在一个芯片中,使计算机系统更小,更容易集成进复杂的而对体积要求严格的控制设备当中。INTEL的Z80是最早按照这种思想设计出的处理器,从此以后,单片机和专用处理器的发展便分道扬镳。
随着电子技术和计算机应用的发展,单片机广泛应用于工业自动控制、智能化仪表、计算机外部设备的控制和顺序控制、家用电器、计算机网络、并行处理等系统中,同时,由于许多新颖技术应用于单片机,使单片机的功能趋向于多样化、专用化,指令的功能越来越强。目前,世界上的单片机以Intel、Motorala、 NEC、 Eilog等公司的产品居多,这些公司的单片机主要用于控制和仪器。
随着半导体工艺技术的发展及系统设计水平的提高,单片机还会不断产生新的变化和进步,最终人们可能发现:单片机与微机系统之间的距离越来越小,甚至难以辨认。
1 设计目的
随着电子技术的发展, 现在的抢答器功能越来越强, 可靠性和准确性也越来越高。以前的抢答器大部分都是基于数字电路组成的。制作过程复杂, 而且准确性与可靠性不高, 成品和占地面积较大, 安装、维护困难。由于近年来单片机发展迅速, 逐渐出现用单片机制作抢答器, 制作过程简单, 而且安装, 维护简单。而且集成度也越来越高,实现的功能也越来越多,在这样一种迅速发展的势头下,作为一名普通高等学院的学生就一定要掌握如何实现抢答器的功能,熟悉单片机的运行过程和工作原理以及掌握专业相关的知识。
通过课程设计,我们应该知道单片机的各个引脚的作用,以及如何通过编写的程序让它实现我们所需要的功能,其间要进行电路的焊接和程序调试,最后实现我们所需要的功能。
2 设计要求
在这学期最后两周的课程设计中,我们这一组的任务是完成4路智力竞赛抢答器的设计。抢答器在日常生活中经常用到,特别是比赛中,但市场上卖的成品比较贵,有足够的器件和条件,我们可以自己动手做简易的抢答器装置,根据自己的需要进行改进。我们设计的主要内容是:(1)设计按键输入电路;(2)设计显示输出电路;(3)掌握定时器中断的原理;(4)编写程序;(5)利用Protel软件画出硬件电路原理图和PCB图;(6)软硬件联机调试;(7)书写实验报告。
设置4个抢答按钮和1个抢答计时器1个选手显示器,1个比赛主持人“清零开始”键和一个复位键。采用中断和查询结合的方法确定按键的动作。主持人按下“开始”键后,计时器开始倒计时从9到0,若有人抢答,则显示抢答选手号并记录此时时间,用7段LED数码管显示号码,若10秒内无人抢答,则发出3响报警声,主持人可按下“开始”键开始下一题的抢答。
2.1基本功能
(1) 设计一个智力竞赛抢答器,可同时供4名选手或4个代表队参加比赛,
(2) 抢答器具有数据锁存和显示的功能。抢答开始后,若有选手按动抢答按钮,编号立即锁存,并在LED数码管上显示出选手的编号,并记录此时的时间。
2.2 设计基本原理
4路抢答器的设计,主要的部分是MCS-51,编写程序,实现软硬结合,实现抢答功能。采用查询与中断的方式,先等待主持人中断按钮,看是否按下,按下则执行下面的选手查询程序,谁先抢答数码管上显示哪个选手的台号并记录此时的时间。若在10秒到达的时候没有人抢答,就开始报警,宣布此题作废,主持人可以再按下开始键开始下一题的抢答,如此循环。
3.设计内容 3.1 设计所需器材
按键: 电阻:
共计6个;
5K共计5个; 1K共计4个; 10K共计1个; 330共计7个;
电容: 电解电容:
10μf 共计1个; 20PF 共计 2个;
普通电容:
三极管: PNP 3个;
1个; 2个;
蜂鸣器: 共阳数码管:
晶振: 12MHZ 1个; 集成芯片: 89C51: 1个; 底座:
DIP40: 1个;
万能电路板: 1个; 底座
DIP24 1个 。
3.2 器件说明
3.2.1 89C51功能特性描述
89C51是一种带4K字节闪烁可编程可擦除只读存储器(FPEROM—Falsh Programmable and Erasable Read Only Memory)的低电压,高性能CMOS8位微处理器,俗称单片机。89C2051是一种带2K字节闪烁可编程可擦除只读存储器的单片机。单片机的可擦除只读存储器可以反复擦除100次。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的89C51是一种高效微控制器,89C2051是它的一种精简版本。89C单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。
89C51具有以下标准功能:
与MCS-51 兼容
4K字节可编程闪烁存储器 全静态工作:0Hz-24Hz 三级程序存储器锁定 128*8位内部RAM 32可编程I/O线 两个16位定时器/计数器 5个中断源 可编程串行通道 低功耗的闲置和掉电模式 片内振荡器和时钟电路
端口介绍:
(1)P0 口:P0口是一个8位漏极开路的双向I/O口。作为输出口,每位能驱动8个TTL逻辑
电平。对P0端口写“1”时,引脚用作高阻抗输入。 当访问外部程序和数据存储器时,P0口也被作为低8位地址/数据复用。在这种模式下, P0具有内部上拉电阻。 在flash编程时,P0口也用来接收指令字节;在程序校验时,输出指令字节。程序校验 时,需要外部上拉电阻。
(2)P1 口:P1 口是一个具有内部上拉电阻的8 位双向I/O 口,p1 输出缓冲器能驱动4 个 TTL
逻辑电平。对P1 端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入 口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。 此外,P1.0和P1.2分别作定时器/计数器2的外部计数输入(P1.0/T2)和时器/计数器2 的触发输入(P1.1/T2EX),具体如下表所示。 在flash编程和校验时,P1口接收低8位地址字节。 引脚号第二功能:
P1.0 T2(定时器/计数器T2的外部计数输入),时钟输出 P1.1 T2EX(定时器/计数器T2的捕捉/重载触发信号和方向控制) P1.5 MOSI(在系统编程用) P1.6 MISO(在系统编程用) P1.7 SCK(在系统编程用)
(3)P2 口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL
门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。P2口在FLASH编程和校验时接收高八位地址信号和控制信号。 P3 口:P3 口是一个具有内部上拉电阻的8 位双向I/O 口,p2 输出缓冲器能驱动4 个 TTL 逻辑电平。对P3 端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入 口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。
(4)P3口亦作为AT89S52特殊功能(第二功能)使用,如下表所示。 在flash编程和校验时,P3口也接收一些控制信号。 端口引脚 第二功能: P3.0 RXD(串行输入口) P3.1 TXD(串行输出口) P3.2 INTO(外中断0) P3.3 INT1(外中断1) P3.4 TO(定时/计数器0) P3.5 T1(定时/计数器1) P3.6 WR(外部数据存储器写选通) P3.7 RD(外部数据存储器读选通)
P3口同时为闪烁编程和编程校验接收一些控制信号。
此外,P3口还接收一些用于FLASH闪存编程和程序校验的控制信号。RST——复位输入。当振荡器工作时,RST引脚出现两个机器周期以上高电平将是单片机复位。ALE/PROG——当访问外部程存储器或数据存储器时,ALE(地址锁存允许)输出脉冲用于锁存地址的低8位字节。一般情况下,ALE仍以时钟振荡频率的1/6输出固定的脉冲信号,因此它可对外输出时钟或用于定时目的。要注意的是:每当访问外部数据存储器时将跳过一个ALE脉冲。对FLASH存储器编程期间,该引脚还用于输入编程脉冲(PROG)。如有必要,可通过对特殊功能寄存器(SFR)区中的8EH单元的D0位置位,可禁止ALE操作。该位置位后,只有一条MOVX和MOVC指令才能将ALE激活。此外,该引脚会被微弱拉高,单片机执行外部程序时,应设置ALE禁止位无效。PSEN——程序储存允许
(PSEN)输出是外部程序存储器的读选通信号,当AT89C52由外部程序存储器取指令(或数据)时,每个机器周期两次PSEN有效,即输出两个脉冲,在此期间,当访问外部数据存储器,将跳过两次PSEN信号。EA/VPP——外部访问允许,欲使CPU仅访问外部程序存储器(地址为0000H-FFFFH),EA端必须保持低电平(接地)。需注意的是:如果加密位LB1被编程,复位时内部会锁存EA端状态。如EA端为高电平(接Vcc端),CPU则执行内部程序存储器的指令。FLASH存储器编程时,该引脚加上+12V的编程允许电源Vpp,当然这必须是该器件是使用12V编程电压Vpp。
3.2.2 七段数码管
LED数码有共阳和共阴两种,共阳极数码管是指八段数码管的八段发光二极管的阳极(正极)都连在一起,而阴极对应的各段可分别控制。
共阴极数码管是指八段数码管的八段发光二极管的阴极(负极)都连在一起,而阳极对应的各段分别控制。
数码管共阳如图 数码管共阴如图
数码管的显示方式:
三极管除了有放大信号的功能外还有开关作用,多个数码管通过动态显示要正常显示,就要用三极管的开关作用来控制数码管的公共端,并加相应的驱动电路来驱动数码管的各个段码,从而显示出我们要的数字。此电路设计中采用PNP三极管控制共阳型数码管,数码管接限流电阻接至p0口。
限流电阻的确定:R=(电源电压-1.7)/额定电流
显示驱动:动态驱动是指每个数码管的每一个段码都由一个单片机的I/O端口进行驱动,通
过位选信号的选通与否实现单个数码管的点亮,由于人眼有视觉停留效果,就能看到一串数字。基本的半导体数码管是由7个条状的发光二极管(LED)按图1所示排列而成的,可实现数字"0~9"及少量字符的显示。另外为了显示小数点,增加了1个点状的发光二极管,因此数码管就由8
个LED组成,我们分别把这些发光二极管命名为 "a,b,c,d,e,f,g,dp",排列顺序如下图:
3.2.3 蜂鸣器
由于蜂鸣器的工作电流一般比较大,以致于单片机的I/O 口是无法直接驱动的,所以要利用放大电路来驱动,一般使用三极管(pnp)来放大电流就可以了。驱动电路如下图:
程序流程图:
6课程设计心得体会
做了两周的单片机课程设计,我有了很多的体会和感想。这两周的实习真的有点郁闷,程序里面的好多内容不懂,自我感觉是单片机我们所学的内容还不足以编出这两个程序,但是只好硬着头皮去看去理解。但在学习过程中也充满了乐趣,当看懂了程序的一些语句,画出了要求的设计图,那我喜悦那种成就感油然而生。
这次实习让我受益匪浅,无论从知识上还是其他的各个方面。上课的时候的学习从来没有见过真正的单片机,只是从理论的角度去理解枯燥乏味。但在实习中见过甚至使用了单片机及其系统,能够理论联系实际的学习,开阔了眼界,提高了单片机知识的理解和水平。在这次课程设计中又让我体会到了合作与团结的力量,当遇到不会或是设计不出来的地方,我们就会在QQ群里讨论或者是同学之间相互帮助。团结就是力量,无论在现在的学习中还是在以后的工作中,团结都是至关重要的,有了团结会有更多的理念、更多的思维、更多的情感。
程序设计是一个很灵活的东西,它反映了你解决问题的逻辑思维和创新能力,它才是一个设计的灵魂所在。因此在整个设计过程中大部分时间是用在程序上面的。很多子程序是可以借鉴书本上的,但怎样衔接各个子程序才是关键的问题所在,这需要对系统的结构很熟悉。因此可以说系统的设计是软件和硬件的结合,二者是密不可分的。通过这次课程设计我也发现了自身存在的不足之处,虽然感觉理论上已经掌握,但在运用到实践的过程中仍有意想不到的困惑。这也激发了我今后努力学习的兴趣,我想这将对我以后的学习产生积极的影响。
单片很重要的一门课程,老师和一些工作的朋友都曾说过,如果学好一门单片机,就凭这个技术这门手艺找一个好工作也不成问题。尽管我们在课堂学到的内容很有限,但在以后的学习中单片机还需要好好的深入研究和学习,学好了单片机也就多了一项生存的本钱。最后感谢老师对我们的精心指导和帮助,感谢同学们对我的帮助。
附录1 四路抢答器程序
ORG 0H
AJMP MAIN
ORG 000BH
AJMP T0INT
MAIN: MOV TMOD,#01H
MOV TH0,#3CH
MOV TL0,#0B0H
SETB EA
SETB ET0
SETB TR0
START: MOV R1,#0
MOV R2,#0
DL: ACALL DISPLAY
JNB P1.0,DOU
AJMP DL
DOU: ACALL DELAY5MS
JNB P1.0,NEXT
AJMP DL
NEXT: MOV R4,#0
MOV R3,#9
MOV A,R3
MOV R2,A
DW0: ACALL DISPLAY
JNB P1.1,TRVE1
JNB P1.2,TRVE2
JNB P1.3,TRVE3
JNB P1.4,TRVE4
MOV A,R4
CJNE A,#20,DW0
DEC R2
MOV R4,#0
MOV A,R2
CJNE A,#0,DW0
CLR P2.3
MOV R5,#0
DW2: MOV R4,#0
DW1: ACALL DISPLAY
MOV A,R4
CJNE A,#14H,DW1
CPL P2.3
INC R5
MOV A,R5
CJNE A,#5,DW2
DW3: ACALL DISPLAY
JNB P1.0,START
AJMP DW3
TRVE1: MOV R1,#1
AJMP DW3
TRVE2: MOV R1,#2
AJMP DW3
TRVE3: MOV R1,#3
AJMP DW3
TRVE4: MOV R1,#4
AJMP DW3
DISPLAY:SETB P2.6
MOV DPTR,#TAB
MOV A,R1
MOVC A,@A+DPTR
MOV P0,A
CLR P2.7
ACALL DELAY5MS
MOV A,R2
MOVC A,@A+DPTR
SETB P2.7
MOV P0,A
CLR P2.6
ACALL DELAY5MS
RET
T0INT: MOV TH0,#3CH
MOV TL0,#0B0H
INC R4
RETI
DELAY5MS:MOV 31H,#32H
LOOP1: MOV 30H,#32H
LOOP: DJNZ 30H,LOOP
DJNZ 31H,LOOP1
RET
TAB: DB 40H,79H,24H,30H,19H
DB 12H,02H,78H,00H,10H
END
8参考文献
【1】80C51单片机原理与应用技术 吴炳胜 等编 冶金工业出版社
【2】单片机原理及接口技术 梅丽凤 等编 清华大学出版社
【3】电子线路设计.实验.测试(第三版) 谢自美 主编 华中科技大学出版社
注:此表必须在同一页面。
PCB图
课程设计说明书
(2009/2010学年第二学期)
课程名称 :题 目 :专业班级 :学生姓名 :学 号 :指导教师 :设计周数 :设计成绩 :
单片机应用课程设计 四路抢答器 电气2班
韩昱 苗敬利 两周(10.6.28-10.07.09)
2010年 7月9日
前言
单片机是指一个集成在一块芯片上的完整计算机系统。尽管他的大部分功能集成在一块小芯片上,但是它具有一个完整计算机所需要的大部分部件:CPU、内存、内部和外部总线系统,目前大部分还会具有外存。同时集成诸如通讯接口、定时器,实时时钟等外围设备。而现在最强大的单片机系统甚至可以将声音、图像、网络、复杂的输入输出系统集成在一块芯片上。
单片机也被称为微控制器(Microcontroller),是因为它最早被用在工业控制领域。单片机由芯片内仅有CPU的专用处理器发展而来。最早的设计理念是通过将大量外围设备和CPU集成在一个芯片中,使计算机系统更小,更容易集成进复杂的而对体积要求严格的控制设备当中。INTEL的Z80是最早按照这种思想设计出的处理器,从此以后,单片机和专用处理器的发展便分道扬镳。
随着电子技术和计算机应用的发展,单片机广泛应用于工业自动控制、智能化仪表、计算机外部设备的控制和顺序控制、家用电器、计算机网络、并行处理等系统中,同时,由于许多新颖技术应用于单片机,使单片机的功能趋向于多样化、专用化,指令的功能越来越强。目前,世界上的单片机以Intel、Motorala、 NEC、 Eilog等公司的产品居多,这些公司的单片机主要用于控制和仪器。
随着半导体工艺技术的发展及系统设计水平的提高,单片机还会不断产生新的变化和进步,最终人们可能发现:单片机与微机系统之间的距离越来越小,甚至难以辨认。
1 设计目的
随着电子技术的发展, 现在的抢答器功能越来越强, 可靠性和准确性也越来越高。以前的抢答器大部分都是基于数字电路组成的。制作过程复杂, 而且准确性与可靠性不高, 成品和占地面积较大, 安装、维护困难。由于近年来单片机发展迅速, 逐渐出现用单片机制作抢答器, 制作过程简单, 而且安装, 维护简单。而且集成度也越来越高,实现的功能也越来越多,在这样一种迅速发展的势头下,作为一名普通高等学院的学生就一定要掌握如何实现抢答器的功能,熟悉单片机的运行过程和工作原理以及掌握专业相关的知识。
通过课程设计,我们应该知道单片机的各个引脚的作用,以及如何通过编写的程序让它实现我们所需要的功能,其间要进行电路的焊接和程序调试,最后实现我们所需要的功能。
2 设计要求
在这学期最后两周的课程设计中,我们这一组的任务是完成4路智力竞赛抢答器的设计。抢答器在日常生活中经常用到,特别是比赛中,但市场上卖的成品比较贵,有足够的器件和条件,我们可以自己动手做简易的抢答器装置,根据自己的需要进行改进。我们设计的主要内容是:(1)设计按键输入电路;(2)设计显示输出电路;(3)掌握定时器中断的原理;(4)编写程序;(5)利用Protel软件画出硬件电路原理图和PCB图;(6)软硬件联机调试;(7)书写实验报告。
设置4个抢答按钮和1个抢答计时器1个选手显示器,1个比赛主持人“清零开始”键和一个复位键。采用中断和查询结合的方法确定按键的动作。主持人按下“开始”键后,计时器开始倒计时从9到0,若有人抢答,则显示抢答选手号并记录此时时间,用7段LED数码管显示号码,若10秒内无人抢答,则发出3响报警声,主持人可按下“开始”键开始下一题的抢答。
2.1基本功能
(1) 设计一个智力竞赛抢答器,可同时供4名选手或4个代表队参加比赛,
(2) 抢答器具有数据锁存和显示的功能。抢答开始后,若有选手按动抢答按钮,编号立即锁存,并在LED数码管上显示出选手的编号,并记录此时的时间。
2.2 设计基本原理
4路抢答器的设计,主要的部分是MCS-51,编写程序,实现软硬结合,实现抢答功能。采用查询与中断的方式,先等待主持人中断按钮,看是否按下,按下则执行下面的选手查询程序,谁先抢答数码管上显示哪个选手的台号并记录此时的时间。若在10秒到达的时候没有人抢答,就开始报警,宣布此题作废,主持人可以再按下开始键开始下一题的抢答,如此循环。
3.设计内容 3.1 设计所需器材
按键: 电阻:
共计6个;
5K共计5个; 1K共计4个; 10K共计1个; 330共计7个;
电容: 电解电容:
10μf 共计1个; 20PF 共计 2个;
普通电容:
三极管: PNP 3个;
1个; 2个;
蜂鸣器: 共阳数码管:
晶振: 12MHZ 1个; 集成芯片: 89C51: 1个; 底座:
DIP40: 1个;
万能电路板: 1个; 底座
DIP24 1个 。
3.2 器件说明
3.2.1 89C51功能特性描述
89C51是一种带4K字节闪烁可编程可擦除只读存储器(FPEROM—Falsh Programmable and Erasable Read Only Memory)的低电压,高性能CMOS8位微处理器,俗称单片机。89C2051是一种带2K字节闪烁可编程可擦除只读存储器的单片机。单片机的可擦除只读存储器可以反复擦除100次。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的89C51是一种高效微控制器,89C2051是它的一种精简版本。89C单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。
89C51具有以下标准功能:
与MCS-51 兼容
4K字节可编程闪烁存储器 全静态工作:0Hz-24Hz 三级程序存储器锁定 128*8位内部RAM 32可编程I/O线 两个16位定时器/计数器 5个中断源 可编程串行通道 低功耗的闲置和掉电模式 片内振荡器和时钟电路
端口介绍:
(1)P0 口:P0口是一个8位漏极开路的双向I/O口。作为输出口,每位能驱动8个TTL逻辑
电平。对P0端口写“1”时,引脚用作高阻抗输入。 当访问外部程序和数据存储器时,P0口也被作为低8位地址/数据复用。在这种模式下, P0具有内部上拉电阻。 在flash编程时,P0口也用来接收指令字节;在程序校验时,输出指令字节。程序校验 时,需要外部上拉电阻。
(2)P1 口:P1 口是一个具有内部上拉电阻的8 位双向I/O 口,p1 输出缓冲器能驱动4 个 TTL
逻辑电平。对P1 端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入 口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。 此外,P1.0和P1.2分别作定时器/计数器2的外部计数输入(P1.0/T2)和时器/计数器2 的触发输入(P1.1/T2EX),具体如下表所示。 在flash编程和校验时,P1口接收低8位地址字节。 引脚号第二功能:
P1.0 T2(定时器/计数器T2的外部计数输入),时钟输出 P1.1 T2EX(定时器/计数器T2的捕捉/重载触发信号和方向控制) P1.5 MOSI(在系统编程用) P1.6 MISO(在系统编程用) P1.7 SCK(在系统编程用)
(3)P2 口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL
门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。P2口在FLASH编程和校验时接收高八位地址信号和控制信号。 P3 口:P3 口是一个具有内部上拉电阻的8 位双向I/O 口,p2 输出缓冲器能驱动4 个 TTL 逻辑电平。对P3 端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入 口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。
(4)P3口亦作为AT89S52特殊功能(第二功能)使用,如下表所示。 在flash编程和校验时,P3口也接收一些控制信号。 端口引脚 第二功能: P3.0 RXD(串行输入口) P3.1 TXD(串行输出口) P3.2 INTO(外中断0) P3.3 INT1(外中断1) P3.4 TO(定时/计数器0) P3.5 T1(定时/计数器1) P3.6 WR(外部数据存储器写选通) P3.7 RD(外部数据存储器读选通)
P3口同时为闪烁编程和编程校验接收一些控制信号。
此外,P3口还接收一些用于FLASH闪存编程和程序校验的控制信号。RST——复位输入。当振荡器工作时,RST引脚出现两个机器周期以上高电平将是单片机复位。ALE/PROG——当访问外部程存储器或数据存储器时,ALE(地址锁存允许)输出脉冲用于锁存地址的低8位字节。一般情况下,ALE仍以时钟振荡频率的1/6输出固定的脉冲信号,因此它可对外输出时钟或用于定时目的。要注意的是:每当访问外部数据存储器时将跳过一个ALE脉冲。对FLASH存储器编程期间,该引脚还用于输入编程脉冲(PROG)。如有必要,可通过对特殊功能寄存器(SFR)区中的8EH单元的D0位置位,可禁止ALE操作。该位置位后,只有一条MOVX和MOVC指令才能将ALE激活。此外,该引脚会被微弱拉高,单片机执行外部程序时,应设置ALE禁止位无效。PSEN——程序储存允许
(PSEN)输出是外部程序存储器的读选通信号,当AT89C52由外部程序存储器取指令(或数据)时,每个机器周期两次PSEN有效,即输出两个脉冲,在此期间,当访问外部数据存储器,将跳过两次PSEN信号。EA/VPP——外部访问允许,欲使CPU仅访问外部程序存储器(地址为0000H-FFFFH),EA端必须保持低电平(接地)。需注意的是:如果加密位LB1被编程,复位时内部会锁存EA端状态。如EA端为高电平(接Vcc端),CPU则执行内部程序存储器的指令。FLASH存储器编程时,该引脚加上+12V的编程允许电源Vpp,当然这必须是该器件是使用12V编程电压Vpp。
3.2.2 七段数码管
LED数码有共阳和共阴两种,共阳极数码管是指八段数码管的八段发光二极管的阳极(正极)都连在一起,而阴极对应的各段可分别控制。
共阴极数码管是指八段数码管的八段发光二极管的阴极(负极)都连在一起,而阳极对应的各段分别控制。
数码管共阳如图 数码管共阴如图
数码管的显示方式:
三极管除了有放大信号的功能外还有开关作用,多个数码管通过动态显示要正常显示,就要用三极管的开关作用来控制数码管的公共端,并加相应的驱动电路来驱动数码管的各个段码,从而显示出我们要的数字。此电路设计中采用PNP三极管控制共阳型数码管,数码管接限流电阻接至p0口。
限流电阻的确定:R=(电源电压-1.7)/额定电流
显示驱动:动态驱动是指每个数码管的每一个段码都由一个单片机的I/O端口进行驱动,通
过位选信号的选通与否实现单个数码管的点亮,由于人眼有视觉停留效果,就能看到一串数字。基本的半导体数码管是由7个条状的发光二极管(LED)按图1所示排列而成的,可实现数字"0~9"及少量字符的显示。另外为了显示小数点,增加了1个点状的发光二极管,因此数码管就由8
个LED组成,我们分别把这些发光二极管命名为 "a,b,c,d,e,f,g,dp",排列顺序如下图:
3.2.3 蜂鸣器
由于蜂鸣器的工作电流一般比较大,以致于单片机的I/O 口是无法直接驱动的,所以要利用放大电路来驱动,一般使用三极管(pnp)来放大电流就可以了。驱动电路如下图:
程序流程图:
6课程设计心得体会
做了两周的单片机课程设计,我有了很多的体会和感想。这两周的实习真的有点郁闷,程序里面的好多内容不懂,自我感觉是单片机我们所学的内容还不足以编出这两个程序,但是只好硬着头皮去看去理解。但在学习过程中也充满了乐趣,当看懂了程序的一些语句,画出了要求的设计图,那我喜悦那种成就感油然而生。
这次实习让我受益匪浅,无论从知识上还是其他的各个方面。上课的时候的学习从来没有见过真正的单片机,只是从理论的角度去理解枯燥乏味。但在实习中见过甚至使用了单片机及其系统,能够理论联系实际的学习,开阔了眼界,提高了单片机知识的理解和水平。在这次课程设计中又让我体会到了合作与团结的力量,当遇到不会或是设计不出来的地方,我们就会在QQ群里讨论或者是同学之间相互帮助。团结就是力量,无论在现在的学习中还是在以后的工作中,团结都是至关重要的,有了团结会有更多的理念、更多的思维、更多的情感。
程序设计是一个很灵活的东西,它反映了你解决问题的逻辑思维和创新能力,它才是一个设计的灵魂所在。因此在整个设计过程中大部分时间是用在程序上面的。很多子程序是可以借鉴书本上的,但怎样衔接各个子程序才是关键的问题所在,这需要对系统的结构很熟悉。因此可以说系统的设计是软件和硬件的结合,二者是密不可分的。通过这次课程设计我也发现了自身存在的不足之处,虽然感觉理论上已经掌握,但在运用到实践的过程中仍有意想不到的困惑。这也激发了我今后努力学习的兴趣,我想这将对我以后的学习产生积极的影响。
单片很重要的一门课程,老师和一些工作的朋友都曾说过,如果学好一门单片机,就凭这个技术这门手艺找一个好工作也不成问题。尽管我们在课堂学到的内容很有限,但在以后的学习中单片机还需要好好的深入研究和学习,学好了单片机也就多了一项生存的本钱。最后感谢老师对我们的精心指导和帮助,感谢同学们对我的帮助。
附录1 四路抢答器程序
ORG 0H
AJMP MAIN
ORG 000BH
AJMP T0INT
MAIN: MOV TMOD,#01H
MOV TH0,#3CH
MOV TL0,#0B0H
SETB EA
SETB ET0
SETB TR0
START: MOV R1,#0
MOV R2,#0
DL: ACALL DISPLAY
JNB P1.0,DOU
AJMP DL
DOU: ACALL DELAY5MS
JNB P1.0,NEXT
AJMP DL
NEXT: MOV R4,#0
MOV R3,#9
MOV A,R3
MOV R2,A
DW0: ACALL DISPLAY
JNB P1.1,TRVE1
JNB P1.2,TRVE2
JNB P1.3,TRVE3
JNB P1.4,TRVE4
MOV A,R4
CJNE A,#20,DW0
DEC R2
MOV R4,#0
MOV A,R2
CJNE A,#0,DW0
CLR P2.3
MOV R5,#0
DW2: MOV R4,#0
DW1: ACALL DISPLAY
MOV A,R4
CJNE A,#14H,DW1
CPL P2.3
INC R5
MOV A,R5
CJNE A,#5,DW2
DW3: ACALL DISPLAY
JNB P1.0,START
AJMP DW3
TRVE1: MOV R1,#1
AJMP DW3
TRVE2: MOV R1,#2
AJMP DW3
TRVE3: MOV R1,#3
AJMP DW3
TRVE4: MOV R1,#4
AJMP DW3
DISPLAY:SETB P2.6
MOV DPTR,#TAB
MOV A,R1
MOVC A,@A+DPTR
MOV P0,A
CLR P2.7
ACALL DELAY5MS
MOV A,R2
MOVC A,@A+DPTR
SETB P2.7
MOV P0,A
CLR P2.6
ACALL DELAY5MS
RET
T0INT: MOV TH0,#3CH
MOV TL0,#0B0H
INC R4
RETI
DELAY5MS:MOV 31H,#32H
LOOP1: MOV 30H,#32H
LOOP: DJNZ 30H,LOOP
DJNZ 31H,LOOP1
RET
TAB: DB 40H,79H,24H,30H,19H
DB 12H,02H,78H,00H,10H
END
8参考文献
【1】80C51单片机原理与应用技术 吴炳胜 等编 冶金工业出版社
【2】单片机原理及接口技术 梅丽凤 等编 清华大学出版社
【3】电子线路设计.实验.测试(第三版) 谢自美 主编 华中科技大学出版社
注:此表必须在同一页面。
PCB图