资源描述
存档资料 成绩: 华东交通大学理工学院 课 程 设 计 报 告 书 所属课程名称 单片机原理与应用 题 目 万年 电子历 分 院 电 信分院 专业班级 2007 级计算机科学与技术( 2)班 学 号 学生姓名 指导教师 2010 年 7 月 16 日 第 2 页 共 25 页 华东交通大学理工学院 课 程 设 计( 论 文 )任 务 书 专 业 07 计算机科学与技术 班 级 ( 2)班 姓名 一、 课程设计(论文)题目 二、 课程设计(论文)工作:自 2010 年 7 月 5 日起至 2010 年 7 月 16 日止。 三、 课程设计(论文)的目的要求和任务内容: 一 .实验目的 通过本次课 程设计达到如下目的: 1、熟悉 AT89C51 单片机与时钟芯片 DS1302 的应用。 2、熟悉时钟时、分、秒计时方法,掌握编程技巧。 3、掌握键盘的基本工作原理,键的识别,键抖动和重键问题的解决,键盘工作方式和键盘程序的编程。 4、掌握七段码 LED 显示器的结构,七段码 LED 显示器的工作方式和显示程序的编程。 5、掌握串行通信程序的编写。 二 .设计要求 华东交通大学理工学院课程设计报告 第 3 页 共 25 页 利用 AT89C51 单片机 , 时钟芯片 DS1302、七段码 LED 显示器、按键、MAX7219 及常用外围器件,设计一个具有动态 显示 功能的电子万年历,具体要求 如下: 1、设计实现电子万年历的 电路系统构成框图 。 2、 能 动态 显示年、月、 日、星期、小时、分钟、秒 。 3、可用键盘进行校对时间,以及日期时间的修改。 学生签名: _ 2010 年 7 月 16 日 课程设计(论文)评阅意见 华东交通大学理工学院课程设计报告 第 4 页 共 25 页 评阅人 职称 2010 年 7 月 16 日 序号 项 目 等 级 优秀 良好 中等 及格 不及格 1 课程设计态度评价 2 出勤情况评价 3 任务难度评价 4 工作量饱满评价 5 任务难度评价 6 设计中创新性评 价 7 论文书写规范化评价 8 综合应用能力评价 综合评定等级 华东交通大学理工学院课程设计报告 第 5 页 共 25 页 目 录 第一章 课程设计任务书 .2 第二章 设计方案 . .6 第三章 硬件设计 .7 第四章 软件设计 .15 第五章 程序清单 .17 第六章 课程设计心得 .24 第七章 参考文献 .25 华东交通大学理工学院课程设计报告 第 6 页 共 25 页 第二章 设计方案 按照系统设计功能的要求,初步确定系统由主控模块、时控模块、显示驱动及显示 模块和键盘接口模块共 4 个模块组成,电路系统构成框图如图所示。 图 2.1 电子万年历电路系统构成框图 主控芯片使用 51 系列 AT89C51 单片机, 时钟芯片使用美国 DALLAS公司推出的一种高性能、低功耗、带 RAM的实时时钟 DS1302。采用 DS1302作为计时芯片,可以做到计时准确。更重要的是, DS1302 可以在很小电流的后备电源( 2.5 5.5V 电源,再 2.5V 时耗电小于 300nA),而且 DS1302 可以编程选择多种充电电流来队后备电源进行慢速充电,可以保证后备电源基本不耗电。 显示驱动采用 MAX7219, MAX7219 是微处理器和共阴极八段八位 LED 数码管显示、图条 /柱图显示或 64 点阵显示接口的小型串行输入 /输出芯片。片内包括 BCD 译码器 、多路扫描控制器、字和位驱动器和 8 8 静态 RAM。外部只需要一个电阻设置所有 LED 显示器字段电流。 MAX7219 和微处理器只需三根导线连接,每位显示数字有一个地址由微处理器写入。允许使用者选择每位是 BCD 译码或不译码。使用者还可选择停机模式、数字亮度控制、从 1 8 选择扫描位数和对所有 LED 显示器的测试模式。 显示模块采用普通的 共阴极四位一体八段 LED 数码管 。 华东交通大学理工学院课程设计报告 第 7 页 共 25 页 第三章 硬件设计 3.1 系统硬件概述 3.1.1 主控制器 AT89C51 ATMEL 公司生产的 AT89C51 单片机采用高性能的 静态 80C51 设计,并 采用先进工艺制造,还带有非易失性 Flash 程序存储器。它是一种高性能、低功耗的 8 位 CMOS 微处理芯片,市场应用最多。其主要特点如下: 8KB Flash ROM,可以擦除 1000 次以上,数据保存 10 年。 华东交通大学理工学院课程设计报告 第 8 页 共 25 页 256 字节内部 RAM; 电源控制模式 ; 时钟可停止和恢复; 空闲模式 ; 掉电模式 ; 6 个中断源 ; 4 个中断优先级 ; 4 个 8 位 I/O 口 ; 全双工增强型 TUAR; 3 个 16 位定时 /计数器: T0、 T1(标准 80C51)和增加的 T2(捕获和比较) 全静态工作方式: 0 24MHZ 3.1.2 时钟电路 DS1302 DS1302 的性能特性 : 实时时钟,可对秒、分、时、日、周、月以及带闰年补偿的年进行比较; 用于高速数据暂存的 31*8 位 RAM; 最少引脚的串行 I/O; 2.5 5.5V 电压工作范围; 2.5V 时耗小于 300nA; 用于时钟或 RAM 数据读 /写的单字节或多字节(脉冲方式)数据传送方式; 简单的三线接口; 可选的慢速充电(至 Vcc1)的能力。 DS1302 在任何数据传送时必须先初始化,把 RST 脚置为高电平,然后把 8 位地址和命令字装入移位寄存器,数据在 SCLK 的上升沿被访问到。在开始 8 个时钟周期,把命令字节装入移位寄存器后,另外的时钟周期在读操作时输出数据,在写操作时写入数据。时钟脉冲的个数在单字节方式下为 8+8,在多字节方式下为 8+字节数,最大可达 248 字节数。如果在传送过程中置 RST 脚为低电平,则会终止本次数据传送,并且 I/O 引脚变为华东交通大学理工学院课程设计报告 第 9 页 共 25 页 高阻态。上电运行时,在 Vcc2.5V 之前, RST 脚必须保持低电平。只有在SCLK 为低电平时,才能将 RST 置为高电平。 DS1302 的控制字如 表 所示。控制字节的最高有效位(位 7)必须是逻辑 1,如果它为 0,则不能把数据写入到 DS1302 中。位 6 如果为 0, 则表示存取日历时钟数据;为 1 则表示存取 RAM 数据。位 5 1( A4 A0)指示操作单元的地址。最低有效位(位 0)如果为 0,则表示药进行写操作;为 1 表示进行读操作。控制字节总是从最低位开始输入 /输出 。 为了提高对 32 个地址寻址能力(地址 /命令位 1 5=逻辑 1) ,可以把时钟 /日历或 RAM 寄存器规定为多字节( burst)方式。位 6 规定时钟或 RAM,而位 0 规定读或写。在时钟 /日历寄存器中的地址 9 31 或 RAM 寄存器中的地址 31 不能存储数据。在多字节方式下,读或写从地址 0 的位 0 开始。必须按数据传送的次序写最先的 8 个寄存 器。但是,当以多字节方式写 RAM时,为了传送数据不必写所有的 31 字节,不管是否谢了全部 31 字节,所写的每一字节都将传送至 RAM。 表 3.1 DS1302 控制字 DS1302 共有 12 个寄存器,其中有 7 个寄存器与日历、时钟相关,存放的数据位为 BCD 码形式。其日历、时间寄存器及其控制字如 上 表所示,其中奇数为读操作,偶数为写操作。 时钟暂停:秒寄存器的位 7 定义位时钟暂停位。当它为 1 时, DS1302停止振荡,进入低功耗的备份方式,通常在对 DS1302 进行写操作时(如进入时钟调整程序) ,停止振荡。当它为 0 时, 时钟将开始启动。 AM-PM/12-24 小时方式:小时寄存器的位 7 定义为 12 或 24 小时方式选择位。它为高电平时,选择 12 小时方式。在此方式下,位 5 为第二个 10小时位( 20 23h)。 DS1302 的晶振选用 32768Hz,电容推荐值为 6pF。因为振荡频率较低,华东交通大学理工学院课程设计报告 第 10 页 共 25 页 也可以不接电容,对计时精度影响不大。 3.1.3 显示驱动 MAX7219 MAX7219 和单片计算机连接有三条引线( DIN、 CLK、 LOAD),采用 16 位数据串行移位接收方式 八位 LED 显示、图条 /柱图显示或 64 点阵显示 包括 BCD 译码器、多路扫描控制器、字和位驱动器和 8 8 静态RAM 可选择停机模式、数字亮度控制、从 1 8 选择扫描位数和对所有LED 显示器的测试模式 最多能驱动 8 位 LED 显示器 内部 RAM 地址 01 08H 分别对应于 DIG0 DIG7。 扫描界限寄存器(地址 0BH):该寄存器中 D0 D3 位数据设定值为 0 7H,设定值表示显示器动态扫描个数位 1 8。 停机寄存器(地址 0CH):当 D0=0 时, MAX721 处于停机状态;当 D0=1 时,处于正常工作状态。 显示测试寄存 器(地址 0FH):当 D0=0 时, MAX7219 按设定模式正常工作;当 D0=1 时,处于测试状态。在该状态下,不管MAX7219 处于什么模式,全部 LED 将按最大亮度显示。 亮度寄存器(地址 0AH):亮度可以用硬件和软件两种方法调节亮度寄存器中的 D0 D3 位可以控制 LED 显示器的亮度。 MAX7219 通过 D11 D84 位地址位译码 ,可寻址 14 个内部寄存器 ,分别是 8 个 LED 显示位寄存器 ,5 个控制寄存器和 1 个空操作寄存器。 LED 显示寄存器由内部 8 8 静态 RAM 构成 ,操作者可直接 对位寄存器 进行个别寻址 , 以刷新和保持数据 , 只要 V 超过 2 V(一般为 5V)。 控制寄存器包括 : 译码模式 , 显示亮度调节 , 扫描限制 (选择扫描位数 ),关断和显示测试寄存器。 MAX7219 的驱动程序首先必须对 5 个控制寄存器初始设置即初始化 , 各控制寄存器设置含义如下 :译码模式选择寄存器 (地址 F9H);MAX7219 有两种译码方式 :B 译码方式和不译码方式。当选择不译码时 , 8 个数据为分别一一对应 7 个段和小数点位 ;B 译码方式是 BCD 译码 ,直接送数据就华东交通大学理工学院课程设计报告 第 11 页 共 25 页 可以显示。实际应用中可以按位设 置选择 B 译码或是不译码方式。 扫描限制寄存器 : 地址 FBH;用于设置显示的 LED 个数 ( 1 8 ) , 比如当设置为 0 xX4 时 ,LED 05 显示。 亮度调节寄存器 : 地址 FAH;共有 16 级选择 ,用于 LED 显示亮度的强弱设置。 关断模式寄存器 :地址 FCH;有两种模式选择 :一种是关断状态模式(D0 0);一种是正常操作状态 (D0 1),通常选择正常操作状态。 显示测试寄存器 :地址 FFH;有两种选择用于设置 LED 是测试状态还是正常操作状态 :当在测试状态时 (D0 1)各 位全应亮 ,一般选择正常操作状态( D0 0)。 3.2 主要单元电路的设计 3.2.1 显示电路 显示部分采用普通的共 阴 数码管显示,采用动态扫描,以减少硬件电 表 3.2 MAX7219 引脚功能 路。 年月日时分秒星期共需要 17 位数码显示, 考虑到一次扫描 17 位数码 管显示时会出现闪烁情况, 故采用动态扫描,可将数码管数量减少至 9 位, 也就是两个四位一体八段 LED 显示数码管和一个一位 LED 数码管 设计时数码管同时扫描,显示时采用串行口输出段码,用 MAX7219 驱动数码管 。 华东交通大学理工学院课程设计报告 第 12 页 共 25 页 图 3.2 MAX7219 主要引脚 3.2.2 键盘接口 键盘在单片机系统中是一个很重要的部件。为了输入数据、查询和控制系统的工作状态,都要用到键盘,键盘是人工干预计算机的主要手段。 键盘可分为编码和非编码键盘两种。编码键盘采用硬件线线路来实现键盘编码,每按下一个键,键盘能自动生成按键代码,键数较多,而且还具有去抖动功能。这种键盘使用方便,但硬件较复杂, PC 机所用的键盘就属于这种。非编码键盘仅提供按键开关工作状态,其他工作由软件完成,这种键盘键数较少,硬件简单,一般在单片机应用系统中广泛使用。此处主要介绍该类非编码键盘及其与 MCS 51 型单片机的接口。 3.2.3 时钟电路 3.2.3.1 DS1302 工作方式简介及 数据操作原理 DS1302可以对年、月、日、星期、时、分、秒进行计时 , 且具有闰年补偿功能 , 工作电压宽达 2.55.5V。采用三线接口与 CPU进行同步通信 , 并可采用突发方式一次传送多个字节的时钟信号或 RAM数据。 DS1302内部有一个 33x8的用于临时性存放数据的 RAM寄存器。 DS1302是的 DS1202升级产品 , 与 DS1202兼容 , 但增加了主电源 /后背电源双电源引脚 , 同时提供了对后背电源进行涓细电流充电的能力。 DS1302 时钟芯片包括实时时钟 /日历和 31 字节的静态 RAM。它经过一个简单的串行接口与微处理器通信。实时时钟 /日历提供秒、分、时、日、周、月和年等信息。对于小于 31 天的月和月末的日期自动进行调整,还包括闰年校正的功能。时钟的运行可以采用 24时或带 AM/PM 的 12 小时华东交通大学理工学院课程设计报告 第 13 页 共 25 页 格式。采用三线接口与 CPU 进行同步通信,并可采用突发方式一次传送多字节的时钟信号或 RAM 数据。 DS1302 有主电源 /后备电源双电源引脚: Vcc1 在单电源与电池供电的系统中提供低电源,并提供低功率的电磁备份; Vcc1 在双电池系统中提供主电源。在这种运行方式中, Vcc1 里连接到后备电源,以便在没有主电源的情况下能保存时间信息以及数据。 DS1302 由 Vcc1 或 Vcc2 中较打大者供电。当 Vcc2( Vcc1+0.2V) 时, Vcc2 给 DS1302 供电;当 Vcc2 Vcc1时, DS1302 由 Vcc1 供电。 图 3.5 DS1302 DS1302 在任何数据传送时必须先初始化,把 RST 脚置为高电平,然后把 8 位地址和命令字装入移位寄存器,数据在 SCLK 的上升沿被访问到。在开始 8 个时钟周期,把命令字 节装入移位寄存器后,另外的时钟周期在读操作时输出数据,在写操作时写入数据。时钟脉冲的个数在单字节方式下为 8+8,在多字节方式下为 8+字节数,最大可达 248 字节数。如果在传送过程中置 RST 脚为低电平,则会终止本次数据传送,并且 I/O 引脚变为高阻态。上电运行时,在 Vcc2.5V 之前, RST 脚必须保持低电平。只有在SCLK 为低电平时,才能将 RST 置为高电平。 DS1302 的控制字如图所示。控制字节的最高有效位(位 7)必须是逻辑 1,如果它为 0,则不能把数据写入到 DS1302 中。位 6 如果为 0,则表示存取日历时钟数据 ;为 1 则表示存取 RAM 数据。位 5 1( A4 A0)指示操作单元的地址。最低有效位(位 0)如果为 0,则表示药进行写操作;为 1 表示进行读操作。控制字节总是从最低位开始输入 /输出 。 为了提高对 32 个地址寻址能力(地址 /命令位 1 5=逻辑 1) ,可以把时钟 /日历或 RAM 寄存器规定为多字节( burst)方式。位 6 规定时钟或 RAM,而位 0 规定读或写。在时钟 /日历寄存器中的地址 9 31 或 RAM 寄存器中华东交通大学理工学院课程设计报告 第 14 页 共 25 页 的地址 31 不能存储数据。在多字节方式下,读或写从地址 0 的位 0 开始。必须按数据传送的次序写最先的 8 个寄存器。但是,当以多字节方 式写 RAM时,为了传送数据不必写所有的 31 字节,不管是否谢了全部 31 字节,所写的每一字节都将传送至 RAM。 DS1302 共有 12 个寄存器,其中有 7 个寄存器与日历、时钟相关,存放的数据位为 BCD 码形式。其日历、时间寄存器及其控制字如下表所示,其中奇数为读操作,偶数为写操作。 表 3.3 DS1302 控制字 时钟暂停:秒寄存器的位 7 定义位时钟暂停位。当它为 1 时, DS1302停止振荡,进入低功耗的备份方式,通常在对 DS1302 进行写操作时(如进入时钟调整程序) ,停 止振荡。当它为 0 时,时钟将开始启动。 AM-PM/12-24 小时方式:小时寄存器的位 7 定义为 12 或 24 小时方式选择位。它为高电平时,选择 12 小时方式。在此方式下,位 5 为第二个 10小时位( 20 23h)。 DS1302 的晶振选用 32768Hz,电容推荐值为 6pF。因为振荡频率较低,也可以不接电容,对计时精度影响不大。 华东交通大学理工学院课程设计报告 第 15 页 共 25 页 第四章 软件设计 4.1 程序设计 电子万年历的程序主要包括 3 个方面的内容:一是 DS1302 从单片机中读取数据进行计数,二是利用按键进行时间的调整,三是 MAX7219 从单片机中读取数据驱动 LED 数码管显示时间。 AT89C51 单片机主要 I/O 口的分配, P2.0-P2.2 分别接 MAX7219 的DIN,LOAD,CLK 三个功能端, P3 接查询式按键, P1.0-P1.2 分别接 DS1302 的CLK, IO, RST 端。 4.2 程序流程图 4.2.1 显示驱动程序流程图 图 4. 1 MAX7219 显示驱动程序流程图 华东交通大学理工学院课程设计报告 第 16 页 共 25 页 4.2.2 时间控制流程图 图 4.2 DS1302 时控流程图 华东交通大学理工学院课程设计报告 第 17 页 共 25 页 第五章 程序清单 #include #include intrins.h #define uint unsigned char #define uint unsigned int uchar xingqi,nian,yue,ri,xiaoshi,fen,miao; uchar nianh,nianl,yueh,yuel,rih,ril,xiaoshih,xiaoshil,fenh,fenl,miaoh,miaol; uchar dd=2;sbit clk=p10; sbit dat=p11;sbit rst=p12; sbitA0=ACC0;sbitA1=ACC1; sbitA2=ACC2;sbitA3=ACC3; sbitA4=ACC4;sbitA5=ACC5; sbitA6=ACC6;sbitA7=ACC7; sbit p30=p30; sbit p31=p31; sbit p32=p32; sbit p33=p33; sbit p34=p34; sbit p35=p35; sbit p36=p36; sbit p37=p37; sbit date=p20; sbit load=p21;sbit clkk=p22; uchar bdata bitmsb; sbit m7=bitmsb7; uchar x,y,c; bit flag=0; bit flagh=1; uchar code tab=0 xff, /任意数 0 x06,/*1*/ /共阴数码管 0 x5B,/*2*/ 0 x4F,/*3*/ 0 x66,/*4*/ 0 x6D,/*5*/ 0 x7D,/*6*/ 0 x07,/*7*/ 华东交通大学理工学院课程设计报告 第 18 页 共 25 页 ; uchar code tab2=0 x7e,ox30,ox6d,ox7,ox33, ox5b,ox5f,ox70,ox7f,ox7b; /max7219,09 的字库 uchar code tab1=ox00,ox01,ox02,ox03,ox04,ox05,ox06,ox07, ox08,ox09,ox010,ox11,ox12,ox13,ox14,ox15,ox16,ox17,ox18,ox19,ox20,ox21,ox22,ox23,ox24,ox25,ox26,ox27,ox28,ox29,ox30,ox31,ox32,ox33,ox34,ox35,ox36,ox37,ox38,ox39,ox40,ox41,ox42,ox43,ox44,ox45,ox46,ox47,ox48,ox49,ox50,ox51,ox52,ox53,ox54,ox55,ox56,ox57,ox58,ox59,ox60; void send(void) uchar count; bitmsb=x; for(count=0;count8;count+) if(m7) clkk=0; date=1; -nop-(); clkk=1; else clkk=0; date=0; nop-(); clkk=1; bitmsb0; i-) dat=A0; clk=1; clk=0; ACC=ACC=1; void OutputByte(void) /从 DS1302 中读出 i 个数据 uchar i; dat=1; for(i=8;i0;i-) ACC=ACC1; A7=dat; clk=1; clk=0; dd=ACC; 华东交通大学理工学院课程设计报告 第 20 页 共 25 页 void Write(uchar addr,uchar num) rst=0; clk=0; rst=1; InputByte(addr); /写地址 InputByte(num); /写数据 clk=1; rst=0; rst=0; clk=0; rst=1; InputByte(); clk=1; rst=0; /初始化设置时间, 2008 年 5 月 27 号, 23 时 58 分 00 秒 void main(void) uchar i; uint xt=0; uchar fen1,fen2,fen3,fen4; p3=oxff; Disable WP(); /非写保护 WriteSec(ox00); /秒 WriteMin(ox58); /分 WriteHr(ox23); /时 WriteDay(ox27); /日 WriteMn(ox05); /月 WriteYs(ox08); /年 WriteWe(ox02); /星期 /7219 设置 ready(); for(i=0;i222;i+); for(i=0;i=4; nian=fen3*10+fen2; nianh=nian/10; nianl=nian%10; Read(ox89); /读月数据 fen1=dd; fen2=fen1&oxof; fen3=fen1&oxfo; fen34; yue=fen3*10+fen2; yueh=yue/10; yuel=yue%10; Read(ox87); /读日数据 fen1=dd; fen2=fen1&oxof; fen3=4; ri=fen3*10+fen2; rih=ri/10; ril=ri%10; Read(ox85); /读小时数据 fen1=dd; fen2=fen1&oxof; fen3=fen1&oxfo; fen3=4; xiaoshi=fen3*10+fen2; xiaoshih=xiaoshi/10; xiaoshil=xiaoshi%10; Read(ox83); /读分数据 fen1=dd; fen2=fen1&oxof; fen3=fen1&oxfo; 华东交通大学理工学院课程设计报告 第 22 页 共 25 页 fen34; fen=fen3*10+fen2; fenh=fen/10; fenl=fen%10; Read(ox81); /读秒数据 fen1=dd; miaoh=miao/10; miaol=miao%10; xingqi+; if(flag) Read(ox89); /读月数据 fen1=dd; fen2=fen1&oxof; fen3=fen1&oxf0; fen34; yue=fen3*10+fen2; yue+; if(yue=13) yue=1; WriteMn( tab1yue); while(p32=0); if(p33=0) /日 if(flag) Read(ox87); /读日数据 fen1=dd; fen2=fen1&oxof; fen3=fen1&oxf0; fen3=4; ri=fen3*10+fen2; ri+; if(ri=32) ri=1; WriteDay(tab1ri);/ri while(p33=0) ; 华东交通大学理工学院课程设计报告 第 23 页 共 25 页 if(p34=0) /小时 if(flag) Read(ox85); /读小时数据 fen1=dd; fen2=fen1&oxf0; fen3=fen1&oxf0; fen3=4; WriteHr(tab1xiaoshi); while(p34=0); if(p35=0) /分 if(flag) Read(ox83); /读分数据 fen1=dd; if(p37=0) /调整标志 flag=flag; if(flag) WriteSec(ox80); else WriteSec(ox800); while(p37=0); if(p36=0) /调整标志 flagh=flagh; while(p36=0); 华东交通大学理工学院课程设计报告 第 24 页 共 25 页 第六章 程序设计心得 本次实验主要涉及了单片机 I/O 的使用、七段码 LED 显示、按键识别以及双机串行通信方面的知识。 首先设计实现电子万年历并不困难,之前有过类似的实验。实现串行通信是这次的难点,我们在实验中首先实验了单工通信,解决了这方面的困难后在进一步进行双工的实现,最终完成了实验。 21 世纪是计算机全面应用的时代,很多 人不是在制造计算机而是在使用计算机。在使用计算机的人群中只有从事嵌入式系统应用的人才真正地进入到计算机系统内部软硬件体系中,才能真正领会计算机的智能化本质并掌握智能化设计的知识。通过这次难得的实践机会给了我很大收获,不仅巩固了原有的知识,并增强了动手能力,培养了面对问题的分析能力以及遇到困难如何应对。 短暂的课程设计很快就要过去了,在本次单片机课程设计过程中我有了新的成长和收获,通过单片机课程设计,我不仅加深了对单片机理论的理解,将理论很好地应用到实际当中去,而且我还学会了如何去培养我们的创新精神,从而不断 地战胜自己,超越自己。 华东交通大学理工学院课程设计报告 第 25 页 共 25 页 第七章 参考文献 1 王新颖 单片机原理及应用 .北京大学出版社 2008 2 陈忠平 单片机基础与最小系统实践 .北京航空航天大学出版社 3 窦振中 单片机外围器件实用手册存储器分册 .北京航空航天大学出版 4 沈庆阳,郭庭吉 8051 单片机实践与应用 .清华大学出版社 5 侯玉宝,李成群 基于 Proteus 的 51 系列单片机设计与仿真 电子工业出版社 6 陈明荧 8051 单片机课程设计实训教程 M北京:清华大学出版 7 郁慧娣微机系统及其接口技术 M 南京 :东南大学出版社, 1999 年 8 何立民单片机高级教程 M北京 :北京航空航天大学出版社, 2003年 9 王毓银数字电路逻辑设计 M北京:高等教育出版社 10 李广弟 . 单片机原理及应用 M 北京航空航天大学出版社 ,2004 年 . 11 谢嘉奎电子线路 M.高等教育出版社 ,1999 年 .
展开阅读全文