摘 要
单片机自20世纪70年代问世以来,以其极高的性能价格比,受到人们的重视和关注,应用很广、发展很快。而51单片机是各单片机中最为典型和最有代表性的一种。 本文设计以AT89S51芯片为核心,辅以必要的外围电路,设计了一个结构简单,功能齐全的电子时钟,它由5V直流电源供电。在硬件方面,除了CPU外,使用六个七段LED数码管来进行显示,LED采用的是动态扫描显示,使用74LS14芯片进行驱动。通过LED能够比较准确显示时、分。两个简单的按键实现对时间的调整。软件方面采用汇编语言编程。整个电子钟系统能完成时间的显示、调时、定时闹钟和复位等功能。 选用单片机最小系统应用程序,添加比较程序、时间调整程序及蜂鸣程序,通过时间比较程序触发蜂鸣,实现闹钟功能,完成设计所需求的软件环境。介绍并使用Keil单片机模拟调试软件,测试程序的可行性。
关键词:单片机技术,AT89S51,液晶驱动,电子闹钟
I
湖南工业大学本科生毕业设计(论文)
ABSTRACT
Because of its extremely high performance-price ratio, the single-chip computer (SCC) has been paid great attention to ever since it came out in 1970s of 20th Century, and has gained an extensive applicable field and fast development. Among all kinds of SCCs, 51 SCC is the most typical and representative one.
This design, adopting AT89S51 chip as the core part with some necessary peripheral circuits, is a simple electronic clock which uses 5V DC as the power supply. In hardware aspect, besides the CPU, six seven-segment LED digi-tubes are used for display, which work in a dynamically scanning display mode and driven by 74SL14 chip. The LEDs can accurately indicate hour and minute and two buttons can be used to adjust the time. While in the software aspect, the programming language is assembly language. The whole electronic clock system has functions of time display, adjustment, bell-setting and reset, etc.
Choose the smallest SCM system applications,add Comparison procedures, time to adjust procedures and faint buzzing procedures, Through relatively faint buzzing trigger procedures to achieve alarm clock function, Completed the design needs of the software environment. Keil introduced and the use of SCM software simulation debugging, testing the feasibility.
Keywords: technology of the one-chip computer,AT89S51,the liquid crystal is driven,Electronic alarm clock
II
主要符号表
目 录
第1章 绪 论 ..................................................................................................................... 1
1.1 单片机简介 ............................................................................................................... 1 1.2 电子闹钟的重要意义 ............................................................................................... 1 1.3 本文的主要工作 ....................................................................................................... 2
第2章AT89S51单片机的硬件系统 ........................................................................... 3
2.1 AT89S51单片机的特性 ............................................................................................ 3 2.2 AT89S51 单片机的封装 .......................................................................................... 3 2.3 存储空间 ................................................................................................................... 3 2.3.1 程序存储空间 ................................................................................................. 4 2.3.2 数据存储空间 ................................................................................................. 5 2.4 单片机最小应用系统电路 ....................................................................................... 8 2.4.1供电电路 ............................................................................................................ 8 2.4.2程序存储器选择电路 ........................................................................................ 8 2.4.3时钟电路 ............................................................................................................ 9 2.4.4复位电路 ............................................................................................................ 9
第3章 电子闹钟的硬件设计 ...................................................................................11
3.1系统要求 .................................................................................................................. 11 3.2 系统组成 ................................................................................................................. 11 3.3系统设计 .................................................................................................................. 11 3.3.1控制器 .............................................................................................................. 11
III
主要符号表
3.3.2计数器 .............................................................................................................. 12 3.3.3寄存器 .............................................................................................................. 12 3.3.4分频器 .............................................................................................................. 12 3.3.5显示电路 .......................................................................................................... 12 3.3.6输入电路 .......................................................................................................... 13 3.3.7计时器 .............................................................................................................. 13 3.3.8 振荡器 ............................................................................................................. 13 3.3.9 整体系统 ......................................................................................................... 14 3.4 硬件选择 ................................................................................................................. 14
第4章 电子闹钟的软件设计 .................................................................................. 16
4.1 子程序及其功能简介 ............................................................................................. 16 4.2 程序设计 ................................................................................................................. 16 4.3 调试软件及其环境 ................................................................................................. 17 4.3.1 Keil单片机模拟仿真调试软件的安装和启动 ............................................ 18 4.3.2 工程的建立 ..................................................................................................... 20 4.3.3 源文件的输入 ................................................................................................. 22
结 论 ................................................................................................................................. 24 参考文献 ............................................................................................................................ 25 致 谢 ................................................................................................................................. 26 附 录1 程序设计 ...................................................................................................... 27 附 录2 外文文献及翻译 ........................................................................................ 33
IV
主要符号表
V
湖南工业大学本科生毕业设计(论文)
第1章 绪 论
1.1 单片机简介
单片机的全称是单片微型计算机(Single Chip Microcomputer)。为了使用方便,它把组成计算机的主要功能部件:中央处理器(CPU)、数据存储器(RAM)、程序存储器(ROM、EPROM、E2PROM或FLASH)、定时/计数器和各种输入/输出接口电路等都集成在一块半导体芯片上,构成了一个完整的计算机系统。与通用的计算机不同,单片机的指令功能是按照工业控制的要求设计,因此它又被称为微控制器(Microcontroller)。
MCS51系列[1]单片机是美国Intel公司于1980年推出的一种8位单片机系列。该系列的基本型产品是8051、8031和8751。这3种产品之间的区别只是在片内程序存储器方面。8051的片内程序存储器(ROM)是掩膜型的,即在制造芯片时已将应用程序固化进去;8031片内没有程序存储器;8751内部包含有用作程序存储器4KB的EPROM。由于8051的编程需要制造商的支持,而8751的价格昂贵,因此8031获得了更为广泛的使用。
MCS51系列单片机优异的性能/价格比使得它从面世以来就获得用户的认可。Intel公司把这种单片机的内核,即8051内核,以出售或互换专利的方式授权给一些公司,如Atmel、Philips、ADI等。这些公司的这类产品也被称为8051兼容芯片,这些8051兼容芯片在原来的基础上增加了许多特性。本文应用电路中采用了Atmel公司的AT89S51芯片,它与MCS51单片机指令兼容,同时它的内部包含用作程序存储器4KB的基于FLASH技术的只读存储器。采用这款芯片既克服了采用8031需要添加外部程序存储器导致电路复杂的缺点,又克服了采用8751导致电路制作成本高的缺点。
1.2 电子闹钟的重要意义
20世纪末,电子技术获得了飞速的发展,在其推动下,现代电子产品几乎渗透了社会的各个领域,有力地推动了社会生产力的发展和社会信息化程度的提高,同时也使现代电子产品性能进一步提高,产品更新换代的节奏也越来越快。 时间对人们来说总是那么宝贵,工作的忙碌性和繁杂性容易使人忘记当前的时间。忘记了要做的事情,当事情不是很重要的时候,这种遗忘无伤大雅。但是,一旦重要事情,一时的耽误可能酿成大祸。例如,许多火灾都是由于人们一时忘记了关闭煤气或是忘记充电时间。
1
湖南工业大学本科生毕业设计(论文)
尤其在医院,每次护士都会给病人作皮试,测试病人是否对药物过敏。注射后,一般等待5分钟,一旦超时,所作的皮试试验就会无效。手表当然是一个好的选择,但是,随着接受皮试的人数增加,到底是哪个人的皮试到时间却难以判断。所以,要制作一个定时系统。随时提醒这些容易忘记时间的人。 钟表的数字化给人们生产生活带来了极大的方便,而且大大地扩展了钟表原先的报时功能。诸如定时自动报警、按时自动打铃、时间程序自动控制、定时广播、定时启闭电路、定时开关烘箱、通断动力设备,甚至各种定时电气的自动启用等,所有这些,都是以钟表数字化为基础的。因此,研究数字钟及扩大其应用,有着非常现实的意义。
1.3 本文的主要工作
首先介绍设计电子闹钟所涉及的主要硬件和特性,然后说明软件设计的思路,程序结构及流程,并在测试软件上进行调试修改,以完成电子闹钟的基本要求,即可随意设定起始时间,有秒显示功能,有12/24时制选择,可设定闹钟,停电时由电池供电等功能。
2
湖南工业大学本科生毕业设计(论文)
第2章AT89S51单片机的硬件系统
2.1 AT89S51单片机的特性
Atmel公司的AT89S51芯片具有以下特性: (1) 指令集和芯片引脚与Intel公司的8051兼容; (2) 4KB片内在系统可编程Flash程序存储器; (3) 时钟频率为0~33MHz;
(4) 128字节片内随机读写存储器(RAM); (5) 32个可编程输入/输出引脚; (6) 2个16位定时/计数器; (7) 6个中断源,2级优先级; (8) 全双工串行通信接口; (9) 监视定时器; (10) 2个数据指针。
2.2 AT89S51 单片机的封装
AT89S51单片机[2]具有多种封装形式,包括PDIP40、PDIP42、PLCC44和TQFP44。最适合学校实验室使用的是PDIP40封装形式,它的外形如图2.1所示。PDIP40封装形式的单片机芯片可以很方便地使用面包板来组成应用电路。
2.3 存储空间
AT89S51单片机[3]的程序存储空间和数据存储空间是分离的,每种存储空间的寻址范围都是64KB。上述存储空间在物理上可以被映射到4个区域:片内程序存储器和片外程序存储器,片内数据存储器和片外数据存储器。存储空间的映射图如图2.2所示。当存储空间映射为外部存储器时,包括程序空间和数据空间,AT89S51单片机P0口的8个引脚,从P0.0(AD0)到P0.7(AD7)(引脚从39到32),以时分方式被用作数据总线和地址总线的低8位;P2口的8个引脚,从P2.0(A8)到P2.7(A15)(引脚从21到28),被用作地址总线的高8位。由于对外部程序存储器和外部数据存
3
湖南工业大学本科生毕业设计(论文)
储器的访问都是通过P0口和P2口实现,为了区分它们,外部程序存储器由引脚PSEN(引脚29)的输出信号控制;外部数据存储器的写或读操作分别由引脚P3.6(WR,引脚16)和引脚P3.7(RD,引脚17)输出信号控制。
P1.0P1.1P1.2P1.3P1.4(MOSI) P1.5(MISO) P1.6(SCK) P1.7RST(RXD) P3.0(TXD) P3.1(INT0) P3.2(INT1) P3.3(T0) P3.4(T1) P3.5(WR) P3.6(RD) P3.7XTAL2XTAL1GND1234567 8 9 1011121314151617181920AT89S514039383736353433323130292827262524232221VCCP0.0 (AD0)P0.1 (AD1)P0.2 (AD2)P0.3 (AD3)P0.4 (AD4)P0.5 (AD5)P0.6 (AD6)P0.7 (AD7)EA/VPPALE/PROGPSENP2.7 (A15)P2.6 (A14)P2.5 (A13)P2.4 (A12)P2.3 (A11)P2.2 (A10)P2.2 (A9)P2.0 (A8)
图2.1 AT89S51单片机PDIP40封装外形图
程序存储空间FFFFH外部程序存储空间1000H外部数据存储空间数据存储空间FFFFHFFH80H7FH00H特殊功能寄存器内部数据存储空间0FFFHEA=1内部程序存储空间0000HEA=0外部程序存储空间0000H
图2.2 AT89S51单片机的存储器映射图
2.3.1 程序存储空间
程序存储空间可以被映射为内部程序存储器或者外部程序存储器[4]。AT89S51单
4
湖南工业大学本科生毕业设计(论文)
片机内部具有的4KB程序存储器被映射到程序存储空间的0000H~0FFFH区间,如图2.2所示。这部分程序存储空间也可以被映射为外部程序存储器,它具体被映射为哪一种程序存储器取决于引脚EA(引脚31)所接的电平。当引脚EA为高电平,内部程序存储器被映射到这部分程序存储空间;当引脚EA为低电平,外部程序存储器被映射到这部分程序存储空间。高于0FFFH的程序存储空间只能被映射为外部程序存储器。
目前Atmel公司生产的8051兼容芯片具有多种容量的内部程序存储器的型号,例如AT89S52单片机具有8KB内部程序存储器;T89C51RD2单片机具有64KB内部程序存储器。鉴于通常可以采用具有足够内部程序存储器容量的单片机芯片,用户在使用中不需要再扩展外部程序存储器,这样在单片机应用电路中引脚EA(引脚31)可以总是接高电平。
2.3.2 数据存储空间
如图2.3所示,数据存储空间[5]也可以被映射为内部数据存储器和外部数据存储器。进入不同的数据存储器是通过不同的指令来实现的,这点与程序存储器不一样。
AT89S51的内部数据存储器有256字节,它们被分为两部分:高128字节和低128字节。低128字节的内部数据存储器是真正的RAM区,可以被用来写入或读出数据。这一部分存储容量不是很大,但有很大的作用。它可以进一步被分为3部分,如图2.3所示。
通过程序状态字 PSW 中的位RS1和RS0进行选择111001007FH30H2FH20H18H10H08H00H1FH17H0FH07H4组工作寄存器位寻址空间通用数据存储器图2.3 内部数据存储器
在内部数据存储器低128字节中,地址从00H~1FH的最低32个字节组成4组工作寄存器,每组有8个工作寄存器。每组中的8个工作寄存器都被命名为从R0到R7。在一个具体时刻,CPU只能使用其中的一组工作寄存器。当前正在使用的工作寄存器组由位于高128字节的程序状态字寄存器(PSW)中第3位(RS0)和第4位(RS1)的数据决定。程序状态字寄存器中的数据可以通过编程来改变,这种功能为保护工作
5
}}}}
湖南工业大学本科生毕业设计(论文)
寄存器的内容提供了很大的方便[6]。如果用户程序中不需要全部使用4组工作寄存器,那么剩下的工作寄存器所对应的内部数据存储器也可以作为通用数据存储器使用。工作寄存器在内部数据存储器中的地址映射如表2.1所示。
表2.1 工作寄存器地址映射表
0组(RS1=0,RS0=0) 地址 寄存器 00H 01H 02H 03H 04H 05H 06H 07H R0 R1 R2 R3 R4 R5 R6 R7 08H 09H 0AH 0BH 0CH 0DH 0EH 0FH 地址 1组(RS1=0,RS0=1) 寄存器 R0 R1 R2 R3 R4 R5 R6 R7 10H 11H 12H 13H 14H 15H 16H 17H 地址 2组(RS1=1,RS0=0) 寄存器 R0 R1 R2 R3 R4 R5 R6 R7 18H 19H 1AH 1BH 1CH 1DH 1EH 1FH 地址 3组(RS1=1,RS0=1) 寄存器 R0 R1 R2 R3 R4 R5 R6 R7
表2.2 字节地址与位地址的关系
字节地址 2FH 2EH 2DH 2CH 2BH 2AH 29H 28H 27H 26H 25H 24H 23H 22H 21H 20H D7 7F 77 6F 67 5F 57 4F 47 3F 37 2F 27 1F 17 0F 07 D6 7E 76 6E 66 5E 56 4E 46 3E 36 2E 26 1E 16 0E 06 D5 7D 75 6D 65 5D 55 4D 45 3D 35 2D 25 1D 15 0D 05 D4 7C 74 6C 64 5C 54 4C 44 3C 34 2C 24 1C 14 0C 04 位 地 址 D3 7B 73 6B 63 5B 53 4B 43 3B 33 2B 23 1B 13 0B 03 D2 7A 72 6A 62 5A 52 4A 42 3A 32 2A 22 1A 12 0A 02 D1 79 71 69 61 59 51 49 41 39 31 29 21 19 11 09 01 D0 78 70 68 60 58 50 48 40 38 30 28 20 18 10 08 00 在工作寄存器区上面,内部数据存储器的地址从20H~2FH的16个字节范围内,
6
湖南工业大学本科生毕业设计(论文)
既可以通过字节寻址的方式进入,也可以通过位寻址的方式进入,位地址范围从00H到7FH。字节地址与位地址的对应关系如表2.2所示。
内部数据存储器地址从30H~7FH部分仅可以用作通用数据存储器。
内部数据存储器的高128字节被称为特殊功能寄存器(SFR)区。特殊功能寄存器被用作CPU和在片外围器件之间的接口,它们之间的联系方框图如图2.4所示。
程序存储器并行和串行接口MCS51核特殊功能寄存器定时/计数器中断管理监视定时器等其他外围器件
图2.4 特殊功能寄存器(SFR)工作框图
表2.3 AT89S51单片机特殊功能存储器地址映射表
F8H F0H E8H E0H B ACC SBUF SP DP0L TL1 TH0 TH1 AUXR FFH F7H EFH E7H DFH D7H CFH C7H BFH B7H AFH A7H 9FH 97H 8FH PCON 87H D8H D0H PSW C8H C0H B8H B0H IP P3 A8H IE A0H P2 98H 90H 88H 80H SCON P1 P0 AUXR1 WDERST TCON TMOD TL0 DP0H DP1L DP1H
CPU通过向相应的特殊功能存储器写入数据实现控制对应的在片外围器件的工作,从相应的特殊功能存储器读出数据实现读取对应的在片外围器件[7]的工作结果。
7
湖南工业大学本科生毕业设计(论文)
在AT89S51单片机中,包括前面提到的程序状态字寄存器(PSW)的特殊功能存储器共有26个,它们离散地分布在80H~FFH的内部数据存储器地址空间范围内,如表2.3所示。
在表2.3中,对于没有定义的存储单元用户不能使用。如果向这些存储单元写入数据将产生不确定的效果,从它们读取数据将得到一个随机数。
对于字节地址低位为8H或者FH的特殊功能存储器,既可以进行字节操作,也可以进行位操作。例如前面提到的用来确定当前工作寄存器组的程序状态字寄存器(PSW),它的地址为D0H,因此对它可以进行字节操作,也可以进行位操作。采用位操作可以直接控制程序状态字寄存器中的第3位(RS0)或第4位(RS1)数据而不影响其他位的数据。低位地址不为8H或FH的特殊功能存储器只可以进行字节操作,当需要修改这些特殊功能存储器中的某些位时,对其他的位应注意保护。
片外数据存储空间[8]可以被映射为数据存储器、扩展的输入/输出接口、模拟/数字转换器和数字/模拟转换器等。这些外围器件统一编址。所有外围器件的地址都占用数据存储空间的地址资源,因此CPU与片外外围器件进行数据交换时可以使用与访问外部数据存储器相同的指令。CPU通过向相应的外部数据存储器地址单元写入数据实现控制对应的片外外围器件的工作,从相应的外部数据存储器地址单元读出数据实现读取对应的片外外围器件的工作结果。
2.4 单片机最小应用系统电路
单片机的最小应用系统电路指的是它可以正常工作的最简单电路组成。AT89S51单片机的最小应用系统电路如图2.5所示,该系统中包含4个电路部分。
2.4.1供电电路
引脚VCC(引脚40)接+5V电源,引脚GND(引脚20)接地线。为提高电路的抗干扰能力,一个0.1μF(器件标注为104)的瓷片电容和一个10μF的电解电容通常被接在引脚VCC和接地线之间。
2.4.2程序存储器选择电路
如前所述,Atmel公司生产的8051兼容芯片具有多种容量的内部程序存储器的型号,因此在使用中不需要再扩展外部程序存储器,这样在单片机应用电路中引脚EA(引8
湖南工业大学本科生毕业设计(论文)
脚31)可以总是接高电平。
+5VC4+10μF4039383736353433323130292827262524232219C50.1P0.0(AD0)P0.1(AD1)P0.2(AD2)P0.3(AD3)P0.4(AD4)P0.5(AD5)P0.6(AD6)P0.7(AD7)P2.7(A15)P2.6(A14)P2.5(A13)P2.4(A12)P2.3(A11)P2.2(A10)XTAL2P2.1(A9)XTAL1ALE/PROGP1.5(MOSI)P1.6(MISO)P3.2(INT0)P3.3(INT1)P3.0(RXD)P3.1(TXD)P1.7(SCK)P3.6(WR)P3.7(RD)P3.4(T0)P3.5(T1)C110μF+101112131415161718R110kΩC230pF20CRY12MHzC330pF123456789GNDRSTP1.0P1.1P1.2P1.3P1.4P2.0(A8)VCCEA/VPPPSEN21
图2.5 AT89S51单片机最小应用系统电路
2.4.3时钟电路
AT89S51芯片的时钟频率可以在0~33MHz范围。单片机内部有一个可以构成振荡器的放大电路。在这个放大电路的对外引脚XTAL2(引脚18)和XTAL1(引脚19)接上晶体和电容就可以构成单片机的时钟电路。图2.5所示的时钟电路由晶体CRY和电容C2与C3组成。单片机的时钟频率取决于晶体CRY的频率,如果采用面包板来组装单片机应用电路,晶体CRY的推荐值为12MHz以下,电容C2与C3的取值范围为30pF~50pF。时钟电路采用晶体的目的是提高时钟频率的稳定性。
2.4.4复位电路
对于AT89S51芯片,如果引脚RST(引脚9)保持24个时钟周期的高电平,单片机就可以完成复位。通常为了保证应用系统可靠地复位,复位电路应使引脚RST保持10ms以上的高电平。只要引脚RST保持高电平,单片机就循环复位。当引脚RST从高电平变为低电平时,单片机退出复位状态,从程序空间的0000H地址开始执行用户程序。
图2.5所示复位电路由C1和R1组成。当系统加电时,由于C1两端的电压不能突变,因此引脚RST为高电平,单片机进入复位状态。随着C1充电,它两端的电压
9
湖南工业大学本科生毕业设计(论文)
上升,使得引脚RST上电压下降,最终使单片机退出复位状态。合理地选择C1和R1的取值,系统就能可靠地复位。C1的推荐值是10μF,R1的推荐值是10kΩ。
完成复位后,单片机不仅从程序空间的0000H地址开始执行用户程序,而且还影响一些特殊功能存储器的初始状态。相应的特殊功能存储器的复位值如表2.4所示。DPTR称为数据指针,它由两个特殊功能寄存器DP0H和DP0L组成。
表2.4 特殊功能存储器的复位值
特殊功能寄存器 PC ACC B PSW SP DPTR P0~P3 IP IE 复 位 值 0000H 00H 00H 00H 07H 0000H FFH XXX0 0000B 0XX0 0000B 特殊功能寄存器 TMOD TCON TH0 TL0 TH1 TL1 SCON SBUF PCON 复 位 值 00H 00H 00H 00H 00H 00H 00H XXXX XXXXB 0XXX 0000B 注:PC称为程序指针,它被用来存储下一条要执行的指令地址,PC的位置并不在特殊功能存储器区域。
10
湖南工业大学本科生毕业设计(论文)
第3章 电子闹钟的硬件设计
3.1系统要求
本课题设计的电子闹钟系统要求为: (1) 能随意设定走时起始时间; (2) 能设定闹铃时间; (3) 能指示秒节奏,即秒指示; (4) 12小时/24小时两种制式可选; (5) 采用交直流供电电源; (7) 具有走时误差修正能力; (7) 具有温度显示的功能;
(8) 停电时单片机由电池供电,计时不会停止。
3.2 系统组成
该数字闹钟包括以下几个组成部分:(1) 显示屏:由6个七段数码管组成,用于显示当前时间(时 分 秒)或设置的闹钟时间;(2) KEY键:用于输入新的时间或新的闹钟时间时,对每位输入数字的确认;(3) TIME(时间)键:用于确定新的时间设置; (4)闹钟键:用于确定新的闹钟时间设置,或显示已设置的闹钟时间;(5) 扬声器:在当前时钟时间与闹钟时间相同时,发出蜂鸣声。
3.3系统设计
3.3.1控制器
控制器是电子闹钟设计的核心部分,按设计要求产生相应的控制逻辑,以控制其他各部分的工作。由程序计数器、指令寄存器、指令译码器、时序产生器和操作控制器组成,它是发布命令的“决策机构”,即完成协调和指挥整个计算机系统的操作。
控制器主要功能如下:
从内存中取出一条指令,并指出下一条指令在内存中位置对指令进行译码或测试,
11
湖南工业大学本科生毕业设计(论文)
并产生相应的操作控制信号,以便启动规定的动作;指挥并控制CPU、内存和输入/输出设备之间数据流动的方向。
3.3.2计数器
计数器ALARM-COUNTER实际上是一个异步复位、异步置位的累加器。在中央处理器 CPU 中,累加器 (ACCUMULATOR) 是一种暂存器,用来储存计算所产生的中间结果。没有像累加器这样的暂存器,那么在每次计算 (加法,乘法,移位等等) 后就必须要把结果写回到内存,也许然后再读回来。然而存取主内存的速度是比从数学逻辑单元(ALU) 到有直接路径的累加器存取更慢。计数器的作用是:通常情况下进行时钟累加计数,必要时可以置入新的时钟值,然后从该值开始新的计数。
3.3.3寄存器
寄存器ALARM-REG用于保存用户设置的闹钟时间,是一个异步复位寄存器。寄存器是中央处理器内的组成部份,是有限存贮容量的高速存贮部件,它们可用来暂存指令、数据和位址。在中央处理器的控制部件中,包含的寄存器有指令寄存器(IR)和程序计数器(PC)。在中央处理器的算术及逻辑部件中,包含的寄存器有累加器(ACC)。
3.3.4分频器
分频器DIVIDER将高速的外部时钟频率分频成每一分钟一次的时钟频率,以便进行时钟计数。由于石英晶体振荡器产生的频率很高,要得到秒脉冲,需要用分频电路。例如,振荡器输出4MHZ信号,通过D触发器(74LS74)进行4分频变成1MHZ,然后送到10分频计数器(74LS90,该计数器可以用8421码制,也可以用5421码制),经过6次10分频而获得1HZ方波信号作为秒脉冲信号。
3.3.5显示电路
显示器DRIVER根据需要显示当前时间、用户设置的闹钟时间或用户通过键盘输入的新时间,同时判断当前时间是否已到了闹钟时间,实际上是一个多路选择比较器。多路选择器是数据选择器的别称。在多路数据传送过程中,能够根据需要将其中任意一路选出来的电路,叫做数据选择器,也称多路选择器或多路开关。
12
湖南工业大学本科生毕业设计(论文)
3.3.6输入电路
键盘缓冲器KEY-BUFFER是一个移位寄存器,暂存用户键入的数字,并且实现用户键入数字在显示器上从右到左是依次显示。寄存器的用途:(1)可将寄存器内的数据执行算术及逻辑运算。(2)存于寄存器内的地址可用来指向内存的某个位置,即寻址。(3)可以用来读写数据到电脑的周边设备。AT89S51有8个8位数据寄存器,这些8位寄存器可分别组成16位寄存器:
AH&AL=AX:累加寄存器,常用于运算; BH&BL=BX:基址寄存器,常用于地址索引; CH&CL=CX:计数寄存器,常用于计数; DH&DL=DX:数据寄存器,常用于数据传递。
为了运用所有的内存空间,8086设定了四个段寄存器,专门用来保存段地址: CS(CODE SEGMENT):代码段寄存器; DS(DATA SEGMENT):数据段寄存器; SS(STACK SEGMENT):堆栈段寄存器; ES(EXTRA SEGMENT):附加段寄存器。
当一个程序要执行时,就要决定程序代码、数据和堆栈各要用到内存的哪些位置,通过设定段寄存器 CS,DS,SS 来指向这些起始位置。通常是将DS固定,而根据需要修改CS。所以,程序可以在可寻址空间小于64K的情况下被写成任意大小。所以,程序和其数据组合起来的大小,限制在DS 所指的64K内,这就是COM文件不得大于64K的原因。
3.3.7计时器
在计时过程中,系统利用89S51自身的计时器T0作为时钟基准,计时器中断的准确度直接关系到整个系统的精度,因此获取精确的定时时钟信号成为该系统的关键。AT89S51单片机内有2个可编程的16位定时器/计数器,并工作在方式l下,晶振频率为12MHz。
3.3.8 振荡器
石英晶体振荡器的特点是振荡频率准确、电路结构简单、频率易调整。它被广泛应用于彩电、计算机、遥控器等各类振荡电路中。它还具有压电效应:在晶体某一方
13
湖南工业大学本科生毕业设计(论文)
向加一电场,晶体就会产生机械变形;反之,若在晶片的两侧施加机械压力,则在晶片相应的方向上将产生电场,这种物理现象称为压电效应。在这里,我们在晶体某一方向加一电场,从而在与此垂直的方向产生机械振动,有了机械振动,就会在相应的垂直面上产生电场,从而使机械振动和电场互为因果,这种循环过程一直持续到晶体的机械强度限制时,才达到最后稳定,这种压电谐振的频率即为晶体振荡器的固有频率。
3.3.9 整体系统
电子闹钟的系统硬件电路如图3.1所示,由控制器、记数器、寄存器、分频器、记时器、振荡器、显示电路及输入电路组成。
3.4 硬件选择
单片机选用AT89S51型,它是一种带4K字节闪烁可编程可擦除只读储存的低电压、高性能CMOS8位微处理器,该器件采用ATMEL高密度非易失性存储器制造技术与工业标准的MCS-51指令集和输出管脚相兼容,由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT8951是一种高效微控制器,为很多嵌入控制系统提供了一种灵活性高且廉价的方案。
整体系统选用 AT89S51单片机,时钟芯片DS1302,数码管显示驱动芯片MAX7219。共阴极数码管8个,4511七段译码芯片1片, 24M晶振1个。
14
湖南工业大学本科生毕业设计(论文)
图3.1 系统硬件电路图
15
湖南工业大学本科生毕业设计(论文)
第4章 电子闹钟的软件设计
AT89S5l内部定时/计数器T0和Tl设置为定时器模式l工作方式.作为电子时钟及电子秒表的计时基准。定时器T0产生10 ms的中断信号,每经过1t30次中断,时钟秒位加一,秒位经60次加一后向时位进位,当时问为23时59分59秒时,秒位再加一后变为00时00分00秒.当按键切换为电子秒表功能时,T0每产生一次中断,十毫秒单元加一,十毫秒单元经过l0次加一后,百毫秒单元加一。依次进位可实现最长为9小时59分59秒990毫秒的秒表计时,可达到分辩10 ms的计时精度。
利用K1~K4按键可对时钟进行对时当首次按下K1按键时,显示数码管第一位闪烁,继续按键时,下一位闪烁。当某一位闪烁时,按下K2按键可使闪烁位加一。在正常时钟显示方式下按下K2键时,转为年、月、日显示.按下K3键,可进入秒表状态,按下K4键可显示闹钟定时时间。
软件设计分为主程序、定时器T0和定时器T1中断服务程序及相应的子程序。
4.1 子程序及其功能简介
(1) 比较程序
每当秒存储单元的内容为0时,系统通过调用比较子程序可判断当前时间是否符合闹铃条件,若符合,则调用发音子程序使蜂鸣器发出闹铃声音。
(2) 检测按键程序
当系统检测到某个案件被按下时,转到相应子程序处理,可实现校时、设定闹铃时间的功能
(3) 显示程序
系统通过调用显示子程序,可将显示缓冲区里的内容通过动态扫描方式输出到数码管显示器。
(4) 时间设置程序
系统通过按键检测,更改显示数值,从而实现对当前时间修改的功能
4.2 程序设计
子程序设计框图4.1所示,具体程序见附录1
16
湖南工业大学本科生毕业设计(论文)
图4.1 比较程序框图
4.3 调试软件及其环境
单片机本身不具备自主开发能力,即使在单片机应用系统的设计完成以后用户也不能直接对程序进行修改。单片机应用系统的开发必须借助一套开发工具和软件环境才能进行。本节介绍一种单片机模拟调试软件的使用。模拟调试软件不仅可以在程序下载到单片机芯片之前验证它的正确性,而且模拟调试软件也可以用来辅助学习单片机的基本知识。
17
湖南工业大学本科生毕业设计(论文)
图4.2 中断程序框图
4.3.1 Keil单片机模拟仿真调试软件的安装和启动
Keil单片机模拟调试软件是目前获得广泛应用的一种开发MCS51系列兼容单片机的软件。该软件可以从Keil公司中国代理处购买,也可以从Keil公司的网站(http://www. keil.com)上下载它的免费评估(Eval)版本。
下载获得的Keil单片机模拟调试软件是一个压缩包,解压后执行其中的Setup.exe程序就可以安装这个软件。软件的安装过程与一般的Windows应用软件类似,只要按照安装提示操作即可,这里不作详细介绍,仅需要注意的是,安装方式要选择Eval Vision安装。
18
湖南工业大学本科生毕业设计(论文)
图4.3 时间设置程序框图
19
湖南工业大学本科生毕业设计(论文)
Keil单片机模拟调试软件安装完成以后,计算机桌面上将产生一个标注有“Keil μVision2”的图标,双击这个图标就可以进入Keil单片机模拟调试软件的集成开发环境。集成开发环境的界面如图5.1所示,初次进入的集成开发环境界面中只包括空的工程管理窗口和输出窗口。
图5.1 Keil单片机模拟调试软件的集成开发环境
4.3.2 工程的建立
Keil单片机模拟调试软件对MCS51单片机应用系统的软件开发过程采用工程(Project)管理。工程保存着程序编辑的信息和程序调试的环境。在开始编写程序之前首先应该建立一个工程。新建一个工程之前通常还需要建立一个文件夹,后面产生的工程文件和源程序文件等都将存储在这个文件夹之中。
在如图5.2所示的集成开发环境的窗口中选择Project →New Project命令将打开建立新工程的对话框,如图5.2所示。
图5.2 建立新工程的对话框
20
湖南工业大学本科生毕业设计(论文)
在“保存在”下拉列表框中选择新建工程将要存储的文件夹名,在 “文件名”文本框中输入工程的名称,注意对于工程不要添加扩展名,单击“保存”按钮即可完成一个工程的创建。
单击“保存”按钮在完成一个工程创建的同时也打开了单片机芯片型号选择对话框。如图5.3所示的对话框已经完成了芯片型号的选择。
图5.3 单片机芯片型号选择对话框
Keil单片机模拟调试软件支持许多公司生产的MCS51单片机兼容产品。如前所述,本书应用电路中采用Atmel公司的AT89S51芯片,下面以这款芯片为例介绍如何实现选择。
在图5.3所示的对话框中的Data base列表框中首先选择生产芯片的公司名称Atmel,双击这个公司名称即可打开Atmel公司目前生产的所有芯片型号。接着在列出的产品清单中选择将使用的AT89S51芯片,如图5.3所示。最后单击“确定”按钮即可完成芯片的选择。
完成芯片的选择后又回到如图5.3所示的集成开发环境的窗口,但是这时该窗口中的工程管理窗口不再是空白,在它的文件选项卡中出现目录列表Target 1和它的子目录Source Group 1。
集成开发环境中的菜单Project内还包含Open Project和Close Project等选项。Open Project选项用来以后再次进入已经建立的工程,选择Project→Open Project命令将打开选择工程的对话框,该对话框与图5.3类似。在 “查找范围”下拉列表框中选择欲打开的工程所在的文件夹,列表框中将出现该文件夹中的所有工程,选择将要打开的工程,单击“打开”按钮即可打开一个工程。选择Project→Close Project命令将关闭当前的工程。
21
湖南工业大学本科生毕业设计(论文)
4.3.3 源文件的输入
Keil单片机模拟调试软件内集成了一个文本编辑器,用该文本编辑器可以编辑源程序。在如图5.4所示的集成开发环境中选择File → New命令、单击新建工具按钮或者按快捷键Ctrl+N将打开一个新的文本编辑窗口,如图5.4所示。在图5.4中已经完成了汇编语言源文件的输入,并且完成了源程序向当前工程的添加。
图5.4 Keil单片机模拟调试软件的集成开发环境
完成汇编语言源文件的输入后,在集成开发环境中选择File→Save As命令可以完成文件的第一次存储。注意,汇编语言源文件的扩展名应该是ASM,它应该与工程文件存储在同一文件夹内。在完成文件的第一次存储后,当对汇编语言源文件又进行了修改,再次存储文件时则应该选择File→Save命令、单击保存工具按钮或者按快捷键Ctrl+S实现文件的保存。
接着需要把汇编语言源文件加入工程之中。选择图5.4中的工程管理器窗口的子目录Source Group 1,再单击鼠标右键打开快捷菜单。在快捷菜单中选择Add File to Group “Source Group 1”,加入文件对话框被打开。在这个对话框的“查找范围”下拉列表框中选择存储汇编语言源文件的文件夹,在“文件类型”下拉列表框中选择Asm Source file(*.a*;*.src),这时存储的汇编语言源文件将显示出来。双击要加入的文件名,或者选择要加入的文件名再单击Add按钮即可完成把汇编语言源文件加入工程。文件加入以后,加入文件对话框并不消失,更多的文件也可以利用它加入工程。如果不需要加入其他文件,单击Close按钮可以关闭加入文件对话框。这时工程管理窗口的文件选项卡中子目录Source Group 1下出现一个汇编语言源文件,如图5.4所示。
需要注意的是,当把汇编语言源文件加入工程但还没有关闭加入文件对话框时,
22
湖南工业大学本科生毕业设计(论文)
有可能被误认为文件没有成功地加入工程而再次进行加入操作,系统将显示所需的文件已经加入的提示。在这种情况下,单击提示框中的“确定”按钮,再单击Close按钮可以关闭加入文件对话框。
23
湖南工业大学本科生毕业设计(论文)
结 论
本文首先介绍了课题的研究意义,并说明本课题的主要工作。介绍并通过对MSC-51系列产品性能及价格对比,确定了电子闹钟的核心芯片为AT89S51型号。
本课题以单片机最小系统为基础,进行电子闹钟的硬件电路设计,添加如温度检测设备等,并根据需要适当改换部分元件的型号:AT89S51工作于工作方式1,时钟芯片型号为DS1302,数码管显示驱动芯片为MAX7219,七段译码芯片型号为4511,晶振选择24M 晶振,以达到设计所需。
软件设计方面,程序由以下子程序构成:实现子程序的中断程序、实现闹钟定时功能的时间比较程序、实现设定闹钟时间的时间设置程序、实现记时功能的秒记时程序、实现修改显示时间的时间调整程序、实现显示功能的显示程序及清零程序;基本模块参考单片机最小系统应用程序。
通过Keil软件对本文所设计的电子闹钟硬件及软件进行仿真操作,显示该系统设计是比较成功的。可以完成预先设定的所有功能。
由于时间有限,准备不够充分,本课题的完成存在很多缺陷,如对单片机的了解不够深入,未能够选择最佳的硬件型号及参数等。这些缺陷将在我日后的工作学习中进行修改及完善。
24
湖南工业大学本科生毕业设计(论文)
参考文献
[1] 代启化.基于PROTEUS的电路设计与方针[J].现代电子技术,2001, 19:19-21. [2] 夏继强,沈德金.单片机实验与实践教程[M].北京:北京航空航天大学出版社,2005:51-74.
[3] 曹巧媛.单片机原理与应用[M].北京:电子工业出版社,2002:83-107. [4] 沈雷.CMOS集成电路原理及应用[M].北京:光明日报出版社,1987.184-187 . [5] 石文茂,宋若川,胡显华.数字时钟芯片LM8376用于定时记录中的编码方法.电子技术[J].1994.21(7):12-14.
[6] 肖朝青.单片机原理及接口技术(修订版)[M].杭州:北京航空航天大学出版
社,1998:171-184.
[7] 沈红卫.单片机应用系统设计实例与分析[M].北京:北京航空航天大学出版社,
2003年1月:94-121.
[8] 肖华等.MCS-51系列实用接口技术[M] .北京:北京航空航天大学出版社,1993:64-87.
[9] 曾繁泰,侯亚宁,崔元明.可编程器件应用[J].北京:清华大学出版社,2001: 16-24 [10] 黄秉英,肖明耀. 时间频率的精确测量[J] .北京.中国计量出版社,2004:89-117
25
湖南工业大学本科生毕业设计(论文)
致 谢
我在肖教授的悉心教导下,顺利地完成了完成了本课题的研究。本课题研究很多关键时候提供了最大的帮助和支持,我取得的任何进步,都与他的谆谆教诲与关心是分不开的。导师广博的学识和认真严谨的治学态度深刻的影响着我,让我受益匪浅。我衷心地感谢肖教授对我的教诲,在此向恩师致以最诚挚的敬意。
感谢我的同学们和朋友们对我的关心和帮助,他们给了我最大的支持。遇到难题在与他们的讨论中,我学到了很多知识。
最后我还要特别感谢我的父母,感谢他们在生活上对我的关怀和精神上的支持,有了他们的关怀和支持,我能够顺利的完成学业。
学生签名: 日 期:
26
湖南工业大学本科生毕业设计(论文)
附 录1 程序设计
;; AT89S51时钟程序 ;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;
; 定时器T0、T1溢出周期为50MS,T0为秒计数用, T1为调整时闪烁用, ; P3.7为调整按钮,P1口 为字符输出口,采用共阳显示管。 ;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; 中断入口程序 ;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;
ORG 0000H ;程序执行开始地址 LJMP START ;跳到标号START执行 ORG 0003H ;外中断0中断程序入口 RETI ;外中断0中断返回 ORG 000BH ;定时器T0中断程序入口 LJMP INTT0 ;跳至INTTO执行 ORG 0013H ;外中断1中断程序入口 RETI ;外中断1中断返回 ORG 001BH ;定时器T1中断程序入口 LJMP INTT1 ;跳至INTT1执行
ORG 0023H ;串行中断程序入口地址 RETI ;串行中断程序返回 ;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; 主 程 序 ;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;
START: MOV R0,#70H ;清70H-7AH共11个内存单元 MOV R7,#0BH ; CLEARDISP: MOV @R0,#00H ; INC R0 ;
DJNZ R7,CLEARDISP ;
MOV 20H,#00H ;清20H(标志用) MOV 7AH,#0AH ;放入\"熄灭符\"数据
MOV TMOD,#11H ;设T0、T1为16位定时器 MOV TL0,#0B0H ;50MS定时初值(T0计时用) MOV TH0,#3CH ;50MS定时初值
MOV TL1,#0B0H ;50MS定时初值(T1闪烁定时用) MOV TH1,#3CH ;50MS定时初值 SETB EA ;总中断开放
27
湖南工业大学本科生毕业设计(论文)
SETB ET0 ;允许T0中断 SETB TR0 ;开启T0定时器
MOV R4,#14H ;1秒定时用初值(50MS×20) START1: LCALL DISPLAY ;调用显示子程序
JNB P3.7,SETMM1 ;P3.7口为0时转时间调整程序 SJMP START1 ;P3.7口为1时跳回START1 SETMM1: LJMP SETMM ;转到时间调整程序SETMM ;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; 1秒计时程序 ;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;T0中断服务程序
INTT0: PUSH ACC ;累加器入栈保护 PUSH PSW ;状态字入栈保护 CLR ET0 ;关T0中断允许 CLR TR0 ;关闭定时器T0
MOV A,#0B7H ;中断响应时间同步修正 ADD A,TL0 ;低8位初值修正
MOV TL0,A ;重装初值(低8位修正值) MOV A,#3CH ;高8位初值修正 ADDC A,TH0 ;
MOV TH0,A ;重装初值(高8位修正值) SETB TR0 ;开启定时器T0
DJNZ R4, OUTT0 ;20次中断未到中断退出 ADDSS: MOV R4,#14H ;20次中断到(1秒)重赋初值 MOV R0,#71H ;指向秒计时单元(71H-72H) ACALL ADD1 ;调用加1程序(加1秒操作)
MOV A,R3 ;秒数据放入A(R3为2位十进制数组合) CLR C ;清进位标志 CJNE A,#60H,ADDMM ;
ADDMM: JC OUTT0 ;小于60秒时中断退出
ACALL CLR0 ;大于或等于60秒时对秒计时单元清0 MOV R0,#77H ;指向分计时单元(76H-77H) ACALL ADD1 ;分计时单元加1分钟 MOV A,R3 ;分数据放入A CLR C ;清进位标志 CJNE A,#60H,ADDHH ;
ADDHH: JC OUTT0 ;小于60分时中断退出
ACALL CLR0 ;大于或等于60分时分计时单元清0 MOV R0,#79H ;指向小时计时单元(78H-79H) ACALL ADD1 ;小时计时单元加1小时 MOV A,R3 ;时数据放入A CLR C ;清进位标志 CJNE A,#24H,HOUR ;
28
湖南工业大学本科生毕业设计(论文)
HOUR: JC OUTT0 ;小于24小时中断退出
ACALL CLR0 ;大于或等于24小时小时计时单元清0 OUTT0: MOV 72H,76H ;中断退出时将分、时计时单元数据移 MOV 73H,77H ;入对应显示单元 MOV 74H,78H ; MOV 75H,79H ;
POP PSW ;恢复状态字(出栈) POP ACC ;恢复累加器 SETB ET0 ;开放T0中断 RETI ;中断返回 ;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; 闪动调时 程 序 ;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;T1中断服务程序,用作时间调整时调整单元闪烁指示 INTT1: PUSH ACC ;中断现场保护 PUSH PSW ;
MOV TL1, #0B0H ;装定时器T1定时初值 MOV TH1, #3CH ;
DJNZ R2,INTT1OUT ;0.3秒未到退出中断(50MS中断6次) MOV R2,#06H ;重装0.3秒定时用初值 CPL 02H ;0.3秒定时到对闪烁标志取反 JB 02H,FLASH1 ;02H位为1时显示单元\"熄灭\" MOV 72H,76H ;02H位为0时正常显示 MOV 73H,77H ; MOV 74H,78H ; MOV 75H,79H ; INTT1OUT:
POP PSW ;恢复现场 POP ACC ;
RETI ;中断退出
FLASH1: JB 01H,FLASH2 ;01H位为1时,转小时熄灭控制
MOV 72H,7AH ;01H位为0时,\"熄灭符\"数据放入分 MOV 73H,7AH ;显示单元(72H-73H),将不显示分数据 MOV 74H,78H ; MOV 75H,79H ;
AJMP INTT1OUT ;转中断退出
FLASH2: MOV 72H,76H ;01H位为1时,\"熄灭符\"数据放入小时 MOV 73H,77H ;显示单元(74H-75H),小时数据将不显示 MOV 74H,7AH ; MOV 75H,7AH ;
AJMP INTT1OUT ;转中断退出 ;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
29
湖南工业大学本科生毕业设计(论文)
;; 加1子 程 序 ;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;
ADD1: MOV A,@R0 ;取当前计时单元数据到A DEC R0 ;指向前一地址
SWAP A ;A中数据高四位与低四位交换
ORL A,@R0 ;前一地址中数据放入A中低四位 ADD A,#01H ;A加1操作 DA A ;十进制调整
MOV R3,A ;移入R3寄存器 ANL A,#0FH ;高四位变0
MOV @R0,A ;放回前一地址单元 MOV A,R3 ;取回R3中暂存数据 INC R0 ;指向当前地址单元
SWAP A ;A中数据高四位与低四位交换 ANL A,#0FH ;高四位变0
MOV @R0,A ;数据放入当削地址单元中 RET ;子程序返回 ;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; 清零程序 ;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;对计时单元复零用
CLR0: CLR A ;清累加器
MOV @R0,A ;清当前地址单元 DEC R0 ;指向前一地址
MOV @R0,A ;前一地址单元清0 RET ;子程序返回 ;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; 时钟调整程序 ;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;当调时按键按下时进入此程序
SETMM: cLR ET0 ;关定时器T0中断 CLR TR0 ;关闭定时器T0
LCALL DL1S ;调用1秒延时程序
JB P3.7,CLOSEDIS ;键按下时间小于1秒,关闭显示(省电) MOV R2,#06H ;进入调时状态,赋闪烁定时初值 SETB ET1 ;允许T1中断 SETB TR1 ;开启定时器T1
SET2: JNB P3.7,SET1 ;P3.7口为0(键未释放),等待 SETB 00H ;键释放,分调整闪烁标志置1 SET4: JB P3.7,SET3 ;等待键按下
LCALL DL05S ;有键按下,延时0.5秒
30
湖南工业大学本科生毕业设计(论文)
JNB P3.7,SETHH ;按下时间大于0.5秒转调小时状态 MOV R0,#77H ;按下时间小于0.5秒加1分钟操作 LCALL ADD1 ;调用加1子程序 MOV A,R3 ;取调整单元数据 CLR C ;清进位标志
CJNE A,#60H,HHH ;调整单元数据与60比较
HHH: JC SET4 ;调整单元数据小于60转SET4循环
LCALL CLR0 ;调整单元数据大于或等于60时清0 CLR C ;清进位标志
AJMP SET4 ;跳转到SET4循环
CLOSEDIS:SETB ET0 ;省电(LED不显示)状态。开T0中断 SETB TR0 ;开启T0定时器(开时钟) CLOSE: JB P3.7,CLOSE ;无按键按下,等待。
LCALL DISPLAY ;有键按下,调显示子程序延时削抖 JB P3.7,CLOSE ;是干扰返回CLOSE等待 WAITH: JNB P3.7,WAITH ;等待键释放
LJMP START1 ;返回主程序(LED数据显示亮) SETHH: CLR 00H ;分闪烁标志清除(进入调小时状态) SETHH1: JNB P3.7,SET5 ;等待键释放
SETB 01H ;小时调整标志置1 SET6: JB P3.7,SET7 ;等待按键按下
LCALL DL05S ;有键按下延时0.5秒
JNB P3.7,SETOUT ;按下时间大于0.5秒退出时间调整 MOV R0,#79H ;按下时间小于0.5秒加1小时操作 LCALL ADD1 ;调加1子程序 MOV A,R3 ; CLR C ;
CJNE A,#24H,HOUU ;计时单元数据与24比较 HOUU: JC SET6 ;小于24转SET6循环
LCALL CLR0 ;大于或等于24时清0操作 AJMP SET6 ;跳转到SET6循环
SETOUT: JNB P3.7,SETOUT1 ;调时退出程序。等待键释放 LCALL DISPLAY ;延时削抖
JNB P3.7,SETOUT ;是抖动,返回SETOUT再等待 CLR 01H ;清调小时标志 CLR 00H ;清调分标志 CLR 02H ;清闪烁标志 CLR TR1 ;关闭定时器T1 CLR ET1 ;关定时器T1中断 SETB TR0 ;开启定时器T0
SETB ET0 ;开定时器T0中断(计时开始) LJMP START1 ;跳回主程序
SET1: LCALL DISPLAY ;键释放等待时调用显示程序(调分) AJMP SET2 ;防止键按下时无时钟显示
31
湖南工业大学本科生毕业设计(论文)
SET3: LCALL DISPLAY ;等待调分按键时时钟显示用 AJMP SET4
SET5: LCALL DISPLAY ;键释放等待时调用显示程序(调小时) AJMP SETHH1 ;防止键按下时无时钟显示
SET7: LCALL DISPLAY ;等待调小时按键时时钟显示用 AJMP SET6
SETOUT1: LCALL DISPLAY ;退出时钟调整时键释放等待 AJMP SETOUT ;防止键按下时无时钟显示 ;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; 显示程序 ;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; 显示数据在70H-75H单元内,用六位LED共阳数码管显示,P1口输出段码数据,P3口作
; 扫描控制,每个LED数码管亮1MS时间再逐位循环。 DISPLAY: MOV R1,#70H ;指向显示数据首址 MOV R5,#0FEH ;扫描控制字初值 PLAY: MOV A,R5 ;扫描字放入A MOV P3,A ;从P3口输出 MOV A,@R1 ;取显示数据到A **** Hidden Message ***** ;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; 延时程序 ;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;
;1MS延时程序,LED显示程序用 DL1MS: MOV R6,#14H DL1: MOV R7,#19H DL2: DJNZ R7,DL2 DJNZ R6,DL1 RET
;20MS延时程序,采用调用显示子程序以改善LED的显示闪烁现象 DS20MS: ACALL DISPLAY ACALL DISPLAY ACALL DISPLAY RET
;延时程序,用作按键时间的长短判断 DL1S: LCALL DL05S LCALL DL05S RET
DL05S: MOV R3,#20H ;8毫秒*32=0.196秒 DL05S1: LCALL DISPLAY DJNZ R3,DL05S1
32
湖南工业大学本科生毕业设计(论文)
RET ;
END ;程序结束
附 录2 外文文献及翻译
Progress in computers
The first stored program computers began to work around 1950. The one we built in Cambridge, the EDSAC was first used in the summer of 1949.
These early experimental computers were built by people like myself with varying backgrounds. We all had extensive experience in electronic engineering and were confident that that experience would stand us in good stead. This proved true, although we had some new things to learn. The most important of these was that transients must be treated correctly; what would cause a harmless flash on the screen of a television set could lead to a serious error in a computer.
33
湖南工业大学本科生毕业设计(论文)
As far as computing circuits were concerned, we found ourselves with an embarrass de riches. For example, we could use vacuum tube diodes for gates as we did in the EDSAC or pentodes with control signals on both grids, a system widely used elsewhere. This sort of choice persisted and the term families of logic came into use. Those who have worked in the computer field will remember TTL, ECL and CMOS. Of these, CMOS has now become dominant.
In those early years, the IEE was still dominated by power engineering and we had to fight a number of major battles in order to get radio engineering along with the rapidly developing subject of electronics. dubbed in the IEE light current electrical engineering. properly recognized as an activity in its own right. I remember that we had some difficulty in organizing a conference because the power engineers‟ ways of doing things were not our ways. A minor source of irritation was that all IEE published papers were expected to start with a lengthy statement of earlier practice, something difficult to do when there was no earlier practice
Consolidation in the 1960s
By the late 50s or early 1960s, the heroic pioneering stage was over and the computer field was starting up in real earnest. The number of computers in the world had increased and they were much more reliable than the very early ones . To those years we can ascribe the first steps in high level languages and the first operating systems. Experimental time-sharing was beginning, and ultimately computer graphics was to come along.
Above all, transistors began to replace vacuum tubes. This change presented a formidable challenge to the engineers of the day. They had to forget what they knew about circuits and start again. It can only be said that they measured up superbly well to the challenge and that the change could not have gone more smoothly.
Soon it was found possible to put more than one transistor on the same bit of silicon, and this was the beginning of integrated circuits. As time went on, a sufficient level of integration was reached for one chip to accommodate enough transistors for a small number of gates or flip flops. This led to a range of chips known as the 7400 series. The gates and flip flops were independent of one another and each had its own pins. They could be connected by off-chip wiring to make a computer or anything else.
These chips made a new kind of computer possible. It was called a minicomputer. It was something less that a mainframe, but still very powerful, and much more affordable. Instead of having one expensive mainframe for the whole organization, a business or a university was able to have a minicomputer for each major department.
Before long minicomputers began to spread and become more powerful. The world was hungry for computing power and it had been very frustrating for industry not to be able to supply it on the scale required and at a reasonable cost. Minicomputers transformed the situation.
The fall in the cost of computing did not start with the minicomputer; it had always been that way. This was what I meant when I referred in my abstract to inflation in the computer industry „going the other way‟. As time goes on people get more for their money, not less.
Research in Computer Hardware.
The time that I am describing was a wonderful one for research in computer hardware. The user of the 7400 series could work at the gate and flip-flop level and yet the overall level of integration was sufficient to give a degree of reliability far above that of discreet transistors. The researcher, in a university or elsewhere, could build any digital device that a fertile imagination could conjure up. In the Computer Laboratory we built the Cambridge CAP, a full-scale
34
湖南工业大学本科生毕业设计(论文)
minicomputer with fancy capability logic.
The 7400 series was still going strong in the mid 1970s and was used for the Cambridge Ring, a pioneering wide-band local area network. Publication of the design study for the Ring came just before the announcement of the Ethernet. Until these two systems appeared, users had mostly been content with teletype-based local area networks.
Rings need high reliability because, as the pulses go repeatedly round the ring, they must be continually amplified and regenerated. It was the high reliability provided by the 7400 series of chips that gave us the courage needed to embark on the project for the Cambridge Ring.
The RISC Movement and Its Aftermath
Early computers had simple instruction sets. As time went on designers of commercially available machines added additional features which they thought would improve performance. Few comparative measurements were done and on the whole the choice of features depended upon the designer‟s intuition.
In 1980, the RISC movement that was to change all this broke on the world. The movement opened with a paper by Patterson and ditzy entitled The Case for the Reduced Instructions Set Computer.
Apart from leading to a striking acronym, this title conveys little of the insights into instruction set design which went with the RISC movement, in particular the way it facilitated pipelining, a system whereby several instructions may be in different stages of execution within the processor at the same time. Pipelining was not new, but it was new for small computers
The RISC movement benefited greatly from methods which had recently become available for estimating the performance to be expected from a computer design without actually implementing it. I refer to the use of a powerful existing computer to simulate the new design. By the use of simulation, RISC advocates were able to predict with some confidence that a good RISC design would be able to out-perform the best conventional computers using the same circuit technology. This prediction was ultimately born out in practice.
Simulation made rapid progress and soon came into universal use by computer designers. In consequence, computer design has become more of a science and less of an art. Today, designers expect to have a roomful of, computers available to do their simulations, not just one. They refer to such a roomful by the attractive name of computer farm.
The x86 Instruction Set
Little is now heard of pre-RISC instruction sets with one major exception, namely that of the Intel 8086 and its progeny, collectively referred to as x86. This has become the dominant instruction set and the RISC instruction sets that originally had a considerable measure of success are having to put up a hard fight for survival.
This dominance of x86 disappoints people like myself who come from the research wings. both academic and industrial. of the computer field. No doubt, business considerations have a lot to do with the survival of x86, but there are other reasons as well. However much we research oriented people would like to think otherwise. high level languages have not yet eliminated the use of machine code altogether. We need to keep reminding ourselves that there is much to be said for strict binary compatibility with previous usage when that can be attained. Nevertheless, things might have been different if Intel‟s major attempt to produce a good RISC chip had been more successful. I am referring to the i860 (not the i960, which was something different). In many ways the i860 was an excellent chip, but its software interface did not fit it to be used in a
35
湖南工业大学本科生毕业设计(论文)
workstation.
There is an interesting sting in the tail of this apparently easy triumph of the x86 instruction set. It proved impossible to match the steadily increasing speed of RISC processors by direct implementation of the x86 instruction set as had been done in the past. Instead, designers took a leaf out of the RISC book; although it is not obvious, on the surface, a modern x86 processor chip contains hidden within it a RISC-style processor with its own internal RISC coding. The incoming x86 code is, after suitable massaging, converted into this internal code and handed over to the RISC processor where the critical execution is performed.
In this summing up of the RISC movement, I rely heavily on the latest edition of Hennessy and Patterson‟s books on computer design as my supporting authority; see in particular Computer Architecture, third edition, 2003, pp 146, 151-4, 157-8.
The IA-64 instruction set.
Some time ago, Intel and Hewlett-Packard introduced the IA-64 instruction set. This was primarily intended to meet a generally recognized need for a 64 bit address space. In this, it followed the lead of the designers of the MIPS R4000 and Alpha. However one would have thought that Intel would have stressed compatibility with the x86; the puzzle is that they did the exact opposite.
Moreover, built into the design of IA-64 is a feature known as predication which makes it incompatible in a major way with all other instruction sets. In particular, it needs 6 extra bits with each instruction. This upsets the traditional balance between instruction word length and information content, and it changes significantly the brief of the compiler writer.
In spite of having an entirely new instruction set, Intel made the puzzling claim that chips based on IA-64 would be compatible with earlier x86 chips. It was hard to see exactly what was meant.
Chips for the latest IA-64 processor, namely, the Itanium, appear to have special hardware for compatibility. Even so, x86 code runs very slowly.
Because of the above complications, implementation of IA-64 requires a larger chip than is required for more conventional instruction sets. This in turn implies a higher cost. Such at any rate, is the received wisdom, and, as a general principle, it was repeated as such by Gordon Moore when he visited Cambridge recently to open the Betty and Gordon Moore Library. I have, however, heard it said that the matter appears differently from within Intel. This I do not understand. But I am very ready to admit that I am completely out of my depth as regards the economics of the semiconductor industry.
AMD have defined a 64 bit instruction set that is more compatible with x86 and they appear to be making headway with it. The chip is not a particularly large one. Some people think that this is what Intel should have done. [Since the lecture was delivered, Intel have announced that they will market a range of chips essentially compatible with those offered by AMD.
The Relentless Drive towards Smaller Transistors
The scale of integration continued to increase. This was achieved by shrinking the original transistors so that more could be put on a chip. Moreover, the laws of physics were on the side of the manufacturers. The transistors also got faster, simply by getting smaller. It was therefore possible to have, at the same time, both high density and high speed.
There was a further advantage. Chips are made on discs of silicon, known as wafers. Each wafer has on it a large number of individual chips, which are processed together and later
36
湖南工业大学本科生毕业设计(论文)
separated. Since shrinkage makes it possible to get more chips on a wafer, the cost per chip goes down.
Falling unit cost was important to the industry because, if the latest chips are cheaper to make as well as faster, there is no reason to go on offering the old ones, at least not indefinitely. There can thus be one product for the entire market.
However, detailed cost calculations showed that, in order to maintain this advantage as shrinkage proceeded beyond a certain point, it would be necessary to move to larger wafers. The increase in the size of wafers was no small matter. Originally, wafers were one or two inches in diameter, and by 2000 they were as much as twelve inches. At first, it puzzled me that, when shrinkage presented so many other problems, the industry should make things harder for itself by going to larger wafers. I now see that reducing unit cost was just as important to the industry as increasing the number of transistors on a chip, and that this justified the additional investment in foundries and the increased risk.
The degree of integration is measured by the feature size, which, for a given technology, is best defined as the half the distance between wires in the densest chips made in that technology. At the present time, production of 90 nm chips is still building up
Suspension of Law
In March 1997, Gordon Moore was a guest speaker at the celebrations of the centenary of the discovery of the electron held at the Cavendish Laboratory. It was during the course of his lecture that I first heard the fact that you can have silicon chips that are both fast and low in cost described as a violation of Murphy‟s law or Sod‟s law as it is usually called in the UK. Moore said that experience in other fields would lead you to expect to have to choose between speed and cost, or to compromise between them. In fact, in the case of silicon chips, it is possible to have both.
In a reference book available on the web, Murphy is identified as an engineer working on human acceleration tests for the US Air Force in 1949. However, we were perfectly familiar with the law in my student days, when we called it by a much more prosaic name than either of those mentioned above, namely, the Law of General Cussedness. We even had a mock examination question in which the law featured. It was the type of question in which the first part asks for a definition of some law or principle and the second part contains a problem to be solved with the aid of it. In our case the first part was to define the Law of General Cussedness and the second was the problem; A cyclist sets out on a circular cycling tour. Derive an equation giving the direction of the wind at any time.
The single-chip computer
At each shrinkage the number of chips was reduced and there were fewer wires going from one chip to another. This led to an additional increment in overall speed, since the transmission of signals from one chip to another takes a long time.
Eventually, shrinkage proceeded to the point at which the whole processor except for the caches could be put on one chip. This enabled a workstation to be built that out-performed the fastest minicomputer of the day, and the result was to kill the minicomputer stone dead. As we all know, this had severe consequences for the computer industry and for the people working in it.
From the above time the high density CMOS silicon chip was Cock of the Roost. Shrinkage went on until millions of transistors could be put on a single chip and the speed went up in proportion.
Processor designers began to experiment with new architectural features designed to give
37
湖南工业大学本科生毕业设计(论文)
extra speed. One very successful experiment concerned methods for predicting the way program branches would go. It was a surprise to me how successful this was. It led to a significant speeding up of program execution and other forms of prediction followed
Equally surprising is what it has been found possible to put on a single chip computer by way of advanced features. For example, features that had been developed for the IBM Model 91.the giant computer at the top of the System 360 range are now to be found on microcomputers
Murphy‟s Law remained in a state of suspension. No longer did it make sense to build experimental computers out of chips with a small scale of integration, such as that provided by the 7400 series. People who wanted to do hardware research at the circuit level had no option but to design chips and seek for ways to get them made. For a time, this was possible, if not easy
Unfortunately, there has since been a dramatic increase in the cost of making chips, mainly because of the increased cost of making masks for lithography, a photographic process used in the manufacture of chips. It has, in consequence, again become very difficult to finance the making of research chips, and this is a currently cause for some concern.
The Semiconductor Road Map
The extensive research and development work underlying the above advances has been made possible by a remarkable cooperative effort on the part of the international semiconductor industry.
At one time US monopoly laws would probably have made it illegal for US companies to participate in such an effort. However about 1980 significant and far reaching changes took place in the laws. The concept of pre-competitive research was introduced. Companies can now collaborate at the pre-competitive stage and later go on to develop products of their own in the regular competitive manner.
The agent by which the pre-competitive research in the semi-conductor industry is managed is known as the Semiconductor Industry Association (SIA). This has been active as a US organization since 1992 and it became international in 1998. Membership is open to any organization that can contribute to the research effort.
Every two years SIA produces a new version of a document known as the International Technological Roadmap for Semiconductors (ITRS), with an update in the intermediate years. The first volume bearing the title „Roadmap‟ was issued in 1994 but two reports, written in 1992 and distributed in 1993, are regarded as the true beginning of the series.
Successive roadmaps aim at providing the best available industrial consensus on the way that the industry should move forward. They set out in great detail over a 15 year horizon. the targets that must be achieved if the number of components on a chip is to be doubled every eighteen months, that is, if Moore‟s law is to be maintained.-and if the cost per chip is to fall.
In the case of some items, the way ahead is clear. In others, manufacturing problems are foreseen and solutions to them are known, although not yet fully worked out; these areas are colored yellow in the tables. Areas for which problems are foreseen, but for which no manufacturability solutions are known, are colored red. Red areas are referred to as Red Brick Walls.
The targets set out in the Roadmaps have proved realistic as well as challenging, and the progress of the industry as a whole has followed the Roadmaps closely. This is a remarkable achievement and it may be said that the merits of cooperation and competition have been combined in an admirable manner.
It is to be noted that the major strategic decisions affecting the progress of the industry have
38
湖南工业大学本科生毕业设计(论文)
been taken at the pre-competitive level in relative openness, rather than behind closed doors. These include the progression to larger wafers.
By 1995, I had begun to wonder exactly what would happen when the inevitable point was reached at which it became impossible to make transistors any smaller. My enquiries led me to visit ARPA headquarters in Washington DC, where I was given a copy of the recently produced Roadmap for 1994. This made it plain that serious problems would arise when a feature size of 100 nm was reached, an event projected to happen in 2007, with 70 nm following in 2010. The year for which the coming of 100 nm (or rather 90 nm) was projected was in later Roadmaps moved forward to 2004 and in the event the industry got there a little sooner.
I presented the above information from the 1994 Roadmap, along with such other information that I could obtain, in a lecture to the IEE in London, entitled The CMOS end-point and related topics in Computing and delivered on 8 February 1996.
The idea that I then had was that the end would be a direct consequence of the number of electrons available to represent a one being reduced from thousands to a few hundred. At this point statistical fluctuations would become troublesome, and thereafter the circuits would either fail to work, or if they did work would not be any faster. In fact the physical limitations that are now beginning to make themselves felt do not arise through shortage of electrons, but because the insulating layers on the chip have become so thin that leakage due to quantum mechanical tunneling has become troublesome.
There are many problems facing the chip manufacturer other than those that arise from fundamental physics, especially problems with lithography. In an update to the 2001 Roadmap published in 2002, it was stated that the continuation of progress at present rate will be at risk as we approach 2005 when the roadmap projects that progress will stall without research break-troughs in most technical areas “. This was the most specific statement about the Red Brick Wall, that had so far come from the SIA and it was a strong one. The 2003 Roadmap reinforces this statement by showing many areas marked red, indicating the existence of problems for which no manufacturability solutions are known.
It is satisfactory to report that, so far, timely solutions have been found to all the problems encountered. The Roadmap is a remarkable document and, for all its frankness about the problems looming above, it radiates immense confidence. Prevailing opinion reflects that confidence and there is a general expectation that, by one means or another, shrinkage will continue, perhaps down to 45 nm or even less.
However, costs will rise steeply and at an increasing rate. It is cost that will ultimately be seen as the reason for calling a halt. The exact point at which an industrial consensus is reached that the escalating costs can no longer be met will depend on the general economic climate as well as on the financial strength of the semiconductor industry itself.。
Insulating layers in the most advanced chips are now approaching a thickness equal to that of 5 atoms. Beyond finding better insulating materials, and that cannot take us very far, there is nothing we can do about this. We may also expect to face problems with on-chip wiring as wire cross sections get smaller. These will concern heat dissipation and atom migration. The above problems are very fundamental. If we cannot make wires and insulators, we cannot make a computer, whatever improvements there may be in the CMOS process or improvements in semiconductor materials. It is no good hoping that some new process or material might restart the merry-go-round of the density of transistors doubling every eighteen months.
39
湖南工业大学本科生毕业设计(论文)
I said above that there is a general expectation that shrinkage would continue by one means or another to 45 nm or even less. What I had in mind was that at some point further scaling of CMOS as we know it will become impracticable, and the industry will need to look beyond it.
Since 2001 the Roadmap has had a section entitled emerging research devices on non-conventional forms of CMOS and the like. Vigorous and opportunist exploitation of these possibilities will undoubtedly take us a useful way further along the road, but the Roadmap rightly distinguishes such progress from the traditional scaling of conventional CMOS that we have been used to.
Advances in Memory Technology
Unconventional CMOS could revolutionaries memory technology. Up to now, we have relied on dramas for main memory. Unfortunately, these are only increasing in speed marginally as shrinkage continues, whereas processor chips and their associated cache memory continue to double in speed every two years. The result is a growing gap in speed between the processor and the main memory. This is the memory gap and is a current source of anxiety. A breakthrough in memory technology, possibly using some form of unconventional CMOS, could lead to a major advance in overall performance on problems with large memory requirements, that is, problems which fail to fit into the cache.
Perhaps this, rather than attaining marginally higher basis processor speed will be the ultimate role for non-conventional CMOS.
Shortage of Electrons
Although shortage of electrons has not so far appeared as an obvious limitation, in the long term it may become so. Perhaps this is where the exploitation of non-conventional CMOS will lead us. However, some interesting work has been done. notably by Huron Amend and his team working in the Cavendish Laboratory. on the direct development of structures in which a single electron more or less makes the difference between a zero and a one. However very little progress has been made towards practical devices that could lead to the construction of a computer. Even with exceptionally good luck, many tens of years must inevitably elapse before a working computer based on single electron effects can be contemplated.
微机发展简史
第一台存储程序的计算开始出现于1950前后,它就是1949年夏天在剑桥大学,我们创造的延迟存储自动电子计算机(EDSAC)。
最初实验用的计算机是由象我一样有着广博知识的人构造的。我们在电子工程方面都有着丰富的经验,并且我们深信这些经验对我们大有裨益。后来,被证明是正确的,尽管我们也要学习很多新东西。最重要的是瞬态一定要小心应付,虽然它只会在电视机的荧幕上一起一个无害的闪光,但是在计算机上这将导致一系列的错误。
40
湖南工业大学本科生毕业设计(论文)
在电路的设计过程中,我们经常陷入两难的境地。举例来说,我可以使用真空二级管做为门电路,就象在EDSAC中一样,或者在两个栅格之间用带控制信号的五级管,这被广泛用于其他系统设计,这类的选择一直在持续着直到逻辑门电路开始应用。在计算机领域工作的人都应该记得TTL,ECL和CMOS,到目前为止,CMOS已经占据了主导地位。
在最初的几年,IEE(电子工程师协会)仍然由动力工程占据主导地位。为了让IEE 认识到无线工程和快速发展的电子工程并行发展是它自己的一项权利,我们不得不面对一些障碍。由于动力工程师们做事的方式与我们不同,我们也遇到了许多困难。让人有些愤怒的是,所有的IEE出版的论文都被期望以冗长的早期研究的陈述开头,无非是些在早期阶段由于没有太多经验而遇到的困难之类的陈述。
60年代的巩固阶段
60年代初,个人英雄时代结束了,计算机真正引起了重视。世界上的计算机数量已经增加了许多,并且性能比以前更加可靠。这些我认为归因与高级语言的起步和第一个操作系统的诞生。分时系统开始起步,并且计算机图形学随之而来。
综上所述,晶体管开始代替正空管。这个变化对当时的工程师们是个不可回避的挑战。他们必须忘记他们熟悉的电路重新开始。只能说他们鼓起勇气接受了挑战,尽管这个转变并不会一帆风顺。
小规模集成电路和小型机
很快,在一个硅片上可以放不止一个晶体管,由此集成电路诞生了。随着时间的推移,一个片子能够容纳的最大数量的晶体管或稍微少些的逻辑门和翻转门集成度达到了一个最大限度。由此出现了我们所知道7400系列微机。每个门电路或翻转电路是相互独立的并且有自己的引脚。他们可通过导线连接在一起,作成一个计算机或其他的东西。
这些芯片为制造一种新的计算机提供了可能。它被称为小型机。他比大型机稍逊,但功能强大,并且更能让人负担的起。一个商业部门或大学有能力拥有一台小型机而不是得到一台大型组织所需昂贵的大型机。
随着微机的开始流行并且功能的完善,世界急切获得它的计算能力但总是由于工业上不能规模供应和它可观的价格而受到挫折。微机的出现解决了这个局面。
计算消耗的下降并非起源与微机,它本来就应该是那个样子。这就是我在概要中提到的“通货膨胀”在计算机工业中走上了歧途之说。随着时间的推移,人们比他们付出的金钱得到的更多。
硬件的研究
我所描述的时代对于从事计算机硬件研究的人们是令人惊奇的时代。7400系列的用户能够工作在逻辑门和开关级别并且芯片的集成度可靠性比单独晶体管高很多。大学或各地的研究者,可以充分发挥他们的想象力构造任何微机可以连接的数字设备。在剑桥大学实验室力,我们构造了CAP,一个有令人惊奇逻辑能力的微机。
7400在70年代中期还不断发展壮大,并且被宽带局域网的先驱组织Cambridge Ring所采用。令牌环设计研究的发表先于以太网。在这两种系统出现之前,人们大多满足于基于电报交换机的本地局域网。
令牌环网需要高可靠性,由于脉冲在令牌环中传递,他们必须不断的被放大并且再生。是7400的高可靠性给了我们勇气,使得我们着手Cambridge Ring.项目。
精简指令计算机的诞生
早期的计算机有简单的指令集,随着时间的推移,商业用微机的设计者增加了另外的他们认为可以微机性能的特性。很少的测试方法被建立,总的来说特性的选取很大程度上依赖于设计者的直觉。
1980年,RISC运动改变了微机世界。该运动是由Patterson 和 Ditzel发表了一篇命名
41
湖南工业大学本科生毕业设计(论文)
为精简指令计算机的情况论文而引起的。
除了RISC这个引人注目缩略词外,这个标题传达了一些指令集合设计的见解,随之引发了RISC运动。从某种意义上说,它推动了线程的发展,在处理器中,同一时间有几个指令在不同的执行阶段称为线程。线程不是个新概念,但是它对微机来说是从未有过的。
RISC受益于一个最近的可用的方法的诞生,该方法使估计计算机性能成为可能而不去真正实现该微机的设计。我的意思是说利用目前存在的功能强大的计算机去模拟新的设计。通过模拟该设计,RISC的提倡者能够有信心的预言,一台使用和传统计算机相同电路的RISC计算机可以和传统的最好的计算机有同样的性能。
模拟仿真加快了开发进度并且被计算机设计者广泛采用。随后,计算机设计者变的多些可理性少了一些艺术性。今天,设计者们希望有满屋可用计算机做他们的仿真,而不只是一台。
x86指令集
除非出现很大意外,要不很少听到有计算机使用早期的RISC指令集了。INTEL 8086及其后裔都与x86密切相关。x86构架已经占据了计算机核心指令集的主导地位。被认为是相当成功的RISC指令集现在的生存空间越来越小了。
对于我们这些从事计算机学术研究的人,x86的统治地位让我们感到失望。毫无疑问,商业上对于x86的生存会有更多的考虑,但是这里还有很多原因,尽管我们多么希望人们考虑其他的方面。高级语言并没有完全消除对机器原始编码的的使用。我们仍需要不断提醒我们自己:我们应该严格的与先前的应用在机器层面上保持兼容。然而,情况也许有所不同,如果Intel的主要目的是为是生产一个好的RISC芯片。有一个已经取得了更大的成功,我所说的i860(不是i960,它们有一些不同)。从许多方面来说,i860是个卓越的芯片,但是它的软件借口不适合在工作站上应用。
对于x86取得胜利的最后有一件有意思的事情。直接应用先前x86的实现方式对于满足RISC处理器的持续增长的速度要求,是不可能的。因此,设计者们没有完全实现RISC指令集,尽管这不是很明显。表面上,一片现代的x86芯片包含了隐藏实现的部分,好象和实现RISC指令集的芯片一样。当致命的异常发生时,x86引入的代码是,经过适当的篡改后,被转化为它的内部代码并且被RISC芯片处理。
对于以上RISC运动的总结,我非常信赖最新版本的哈里斯和培生出版社的有关计算机设计的书籍。请参考特殊计算机体系构造,第三版,2003,P146,151-4,157-8
IA-64指令集
很久以前,Intel 和 Hewlett-Packard引进了IA-64指令集。这最初主要是为了满足通常的64位地址空间问题。在这种情况下,随后出现了MIPS R4000和Alpha。然而,人们普遍认为Intel应该与x86构架保持兼容,可令人疑惑的是恰恰相反。
进一步说,IA-64的设计与其他所有的指令集在主要实现方式上有所不同。特别的,每条指令它需要附加的6位。这打乱了传统的在指令字长和信息内容的平衡,并且它改变了编译器作者的原先的大纲。
尽管IA-64是个全新的指令集,但Intel发表了一个令人困惑的声明:基于IA-64的芯片将与早期的x86芯片保持兼容。很难弄懂它所指的是什么。
最新的称为Itaninu IA-64处理器显然需要特殊的兼容性的硬件,尽管如此,x86编码运行的相当慢。
由于以上的复杂因素,IA-64的实现需要更大的体积相对与传统的指令集,这暗示着更大的消耗。因此,在任何情况下,作为常识和一般性的标准,Gordon Moore在访问剑桥最近开放的Betty and Gordon Moore 图书馆时所反复强调。在听到他说问题出现在Intel内部也许有所不同,我很不理解。但是我已经作好了准备,去接受这样的事实,我已经完全不
42
湖南工业大学本科生毕业设计(论文)
了解半导体经济学了。
AMD已经定义了一种64位的与x86更加兼容的指令集,并且他们已经取得了进展。这种片子并不是很大。很多人认为这才是Intel应该做的。(在这篇演讲稿被提交之前,Intel表示他们将销售一系列本质上与AMD兼容的芯片)
更小晶体管的出现
集成度还在不断增加,这是通过缩小原始晶体管以致可以更容易放在一个片子上。进一步说,物理学的定律占在了制造商的一方。晶体管变的更快,更简单,更小。因此,同时导致了更高的集成度和速度。
这有个更明显的优势。芯片被放在硅片上,称为晶片。每一个晶片拥有很大数量的独立芯片,他们被同时加工然后分离。因为缩小以致在每块晶片上有了更多的芯片,所以每块芯片的价格下降了。
单元价格下降对于计算机工业是重要的,因为,如果最新的芯片性能和以前一样但价格更便宜,就没有理由继续提供老产品,至少不应该无限期提供。对于整个市场只需一种产品。
然而,详细计算各项消耗,随着芯片小到一定程度,为了继续保持产品的优势,移到一个更大的圆晶片上是十分必要的。尺寸的不断增加使的圆晶片不再是很小的东西了。最初,圆晶片直径上只有1到2英寸,到2000年已经达到了12英寸。起初,我不太明白,芯片的缩小导致了一系列的问题,工业上应该在制造更大的圆晶片上遇到更多的问题。现在,我明白了,单元消耗的减少在工业上和在一个芯片上增加电子晶体管的数量是同等重要的,并且,在风险中增加圆晶片厂的投资被证明是正确的。
集成度被特殊的尺寸所衡量,对于特定的技术,它是用在一块高密度芯片上导线间距离的一半来衡量的。目前,90纳米的晶片正在被建成。
对Murphy‟s定理的怀疑
1997年3月,在Cavendish实验室建立一百周年纪念庆典上,Gordon Moore被邀作为一名演讲者。在他演讲的过程中,我第一次了解到这样一个事实,我们可以使得硅芯片既快并且消耗低,从而违反在英国被称为Murphy‟s 定律或 Sod‟s 定律。Moore说在其它领域你也许不在二者之间做出取舍,但事实上,在硅片上,同时拥有二者是可能的。
在网上可得到一本相关的书籍,Murphy是在美国空军中从事人体重力加速度研究的工程师。然而在我们的学生时代就已经相当熟悉该定律,当时我们对于该定律有个更接近散文的名字而不是上面我们提到的那两个名字,我们称为General Cussedness定律。甚至它都曾出现在我们的试卷上。问题是这样,第一部分是关于该定律的定义,第二部分是应用该定律解决一道问题。我们的试题是:一、给出General Cussedness定律的定义;二、当一个骑自行车人围绕着圆做运动时,在任何情况下,考虑到风的因素得到一个平衡公式。
单片机
芯片每次的缩小,芯片数量将减少;并且芯片间的导线也随之减少。这导致了整体速度的下降,因为信号在各个芯片间的传输时间变长了。
渐渐地,芯片的收缩到只剩下处理器部分,缓存都被放在了一个单独的片子上。这使得工作站被建成拥有当代小型机一样的性能,结果搬倒了小型机绝对的基石。正如我们所知道的,这对于计算机工业和从事计算机事业的人产生了深远的影响
自从上述时代的开始,高密度CMOS硅芯片成为主导。随着芯片的缩小技术的发展,数百万的晶体管可以放在一个单独的片子上,相应的速度也成比例的增加。
为了得到额外的速度。处理器设计者开始对新的体系构架进行实验。一次成功的实验都预言了一种新的编程方式的分支的诞生。我对此取得的成功感到非常惊奇。它导致了程
43
湖南工业大学本科生毕业设计(论文)
序执行速度的增加并且其相应的框架。
同样令人惊奇的是,通过更高级的特性建立一种单片机是有可能的。例如,为IBM Model 91开发的新特性,现在在单片机上也出现了。
Murphy定律仍然在中止的状态。它不再适用于使用小规模集成芯片设计实验用的计算机,例如7400系列。想在电路级上做硬件研究的人们没有别的选择除了设计芯片并且找到实现它的办法。一段时间内,这样是可能的,但是并不容易。
不幸的是,制造芯片的花费有了戏剧性的增长,主要原因是制造芯片过程中电路印刷版制作成本的增加。因此,为制作芯片技术追加资金变的十分困难,这是当前引起人们关注的原因。
半导体前景规划
对于以上提到的各个方面,在部分国际半导体工业部门的精诚合作下,广泛的研究与开发工作是可行的。
在以前美国反垄断法禁止这种行为。但是在1980年,该法律发生了很大变化。预竞争概念被引进了该法律。各个公司现在可以在预言竞争阶段展开合作,然后在规则允许的情况下继续开发各自的产品。
在半导体工业中,预竞争研究的管理机构是半导体工业协会。1972年作为美国国内的组织,1998年成为一个世界性的组织。任何一个研究组织都可加入该协会。
每两年,SIA修订一次ITRS(国际半导体科学规划),并且逐年更新。1994年在第一卷中引入了“前景规划”一词,该卷由两个报告组成,些于1992年,在1993年提交。它被认为是该规划的真正开始。
为了推动半导体工业的向前发展,后续的规划提供最好的可利用的工业标准。它们对于15年内的发展做出了详细的规划。要达到的目标是每18个月晶体管的集成度增加一倍,同时每块芯片的价格下降一半,即Moore定律。
对于某些方面,前面的道路是清楚的。在另一方面,制造业的问题是可以预见的并且解决的办法也是可以知道的,尽管不是所有的问题都能够解决。这样的领域在表格中由蓝色表示,同时没有解决办法的,加以红色。红色区域往往称为红色砖墙。
规划建立的目标是现实的,同时也是充满挑战的。半导体工业整体上的进步于该规划密不可分。这是个令人惊讶的成就,它可以说是合作和竞争共同的价值。
值得注意的是,促进半导体工业向前发展的主要的战略决策是相对开放的预竞争机制,而不是闭关锁国。这也包括大规模圆晶片取得进展的原因。
1995年前,我开始感觉到,如果达到了不可能使得晶体管体积更小的临界点时,将发生什么。怀着这样的疑惑,我访问了位于华盛顿的ARPA(美国国防部)指挥总部,在那,我看到1994年规划的复本。我恍然大悟,当圆晶片尺寸在2007年达到100纳米时,将出现严重的问题,在2010年达到70纳米时也如此。在随后的2004年的规划中,当圆晶片尺寸达到100纳米时,也做了相应的规划。不久半导体工业将发展到那一步。
从1994年的规划中我引用了以上的信息,还有就是一篇提交到IEE的题目为CMOS终结点的论文和在1996年2月8号的Computing上讨论的一些题目。
我现在的想法是,最终的结果是表示一个存在可用的电子数目从数千减少到数百。在这样的情况下,统计波动将成为问题。最后,电路或者不再工作,或者达到了速度的极限。事实上,物理限制将开始让他们感觉到不能突破电子最终的不足,原因是芯片上绝缘层越来越薄,以致量子理论中隧道效应引起了麻烦,导致了渗漏。
相对基础物理学,芯片制造者面对的问题要多出许多,尤其是电路印刷术遇到的困难。2001年更新2002年出版的规划中,陈述了这样一种情况,照目前的发展速度,如果在2005年前在关键技术领域没有取得大的突破的话,半导体业将停止不前。这是对“红色砖墙”最准
44
湖南工业大学本科生毕业设计(论文)
确的描述。到目前为止是SIA遇到的最麻烦的问题。2003年的规划书强调了这一点,通过在许多地方加上了红色,指示在这些领域仍存在人们没有解决的制造方法问题。
到目前为止,可以很满意的报道,所遇到的问题到及时找到了解决之道。规划书是个非凡的文档,并且它坦白了以上提到的问题,并表示出了无限的信心。主要的见解反映出了这种信心并且有一个大致的期望,通过某种方式,圆晶体将变的更小,也许到45纳米或更小。
然而,花费将以很大的速率增长。也许将成为半导体停滞不前的最终原因。对于逐步增加的花费直到不能满足,这个精确的工业上达到一致意见的平衡点,依赖于经济的整体形势和半导体工业自身的财政状况。
最高级芯片的绝缘层厚度仅有5个原子的大小。除了找到更好的绝缘材料外,我们将寸步难行。对于此,我们没有任何办法。我们也不得不面对芯片的布线问题,线越来越细小了。还有散热问题和原子迁移问题。这些问题是相当基础性的。如果我们不能制作导线和绝缘层,我们就不能制造一台计算机。不论在CMOS加工工艺上和半导体材料上取得多么大的进步。更别指望有什么新的工艺或材料可以使得半导体集成度每18个月翻一番的美好时光了。
我在上文中说到,圆晶体继续缩小直到45纳米或更小是个大致的期望。在我的头脑中,从某点上来说,我们所知道的继续缩小CMOS是不可行的,但工业上需要超越它。
2001年以来,规划书中有一部分陈述了非传统形式CMOS的新兴研究设备。一些精力旺盛的人和一些投机者的探索无疑给了我们一些有益的途径,并且规划书明确分辨出了这些进步,在那些我们曾经使用的传统CMOS方面。
内存技术的进步
非传统的CMOS变革了存储器技术。直到现在,我们仍然依靠DRAM作为主要的存储体。不幸的是,随着芯片的缩小,只有芯片外围速度上的增长——处理器芯片和它相关的缓存速度每两年增加一倍。这就是存储器代沟并且是人们焦虑的根源。存储技术的一个可能突破是,使用一种非传统的CMOS管,在计算机整体性能上将导致一个很大的进步,将解决大存储器的需求,即缓存不能解决的问题。
也许这个,而不是外围电路达到基本处理器的速度将成为非传统CMOS的最终角色。 电子的不足
尽管目前为止,电子每表现出明显的不足,然而从长远看来,它最终会不能满足要求。也许这是我们开发非传统CMOS管的原因。在Cavendish实验室里,Haroon Amed已经作了很多有意义的工作,他们想通过一个单独电子或多或少的表现出0和1的区别。然而对于构造实用的计算机设备只取得了一点点进展。也许由于偶然的好运气,数十年后一台基于一个单独电子的计算机也许是可以实现的。
45
因篇幅问题不能全部显示,请点此查看更多更全内容