. . . . 基于单片机万年历设计摘要:本文介绍了基于STC89C52单片机的多功能电子万年历的硬件结构和软硬件设计方法本设计由数据显示模块、温度采集模块、时间处理模块和调整设置模块四个模块组成系统以STC89C52单片机为控制器,以串行时钟日历芯片DS1302记录日历和时间,它可以对年、月、日、时、分、秒进行计时,还具有闰年补偿等多种功能温度采集选用DS18B20芯片,万年历采用直观的数字显示,数据显示采用1602A液晶显示模块,可以在LCD上同时显示年、月、日、周日、时、分、秒,还具有时间校准等功能此万年历具有读取方便、显示直观、功能多样、电路简洁、成本低廉等诸多优点,具有广阔的市场前景关键字:万年历 温度计 液晶显示0 前言随着科技的快速发展,时间的流逝,从观太阳、摆钟到现在电子钟,人类不断研究,不断创新纪录它可以对年、月、日、时、分、秒进行计时,还具有闰年补偿等多种功能,而且DS1302的使用寿命长,误差小对于数字电子万年历采用直观的数字显示,可以同时显示年、月、日、时、分、秒和温度等信息,还具有时间校准等功能。
该电路采用STC89C52单片机作为核心,功耗小,能在3V的低压工作,电压可选用3~5V电压供电 此万年历具有读取方便、显示直观、功能多样、电路简洁、成本低廉等诸多优点,符合电子仪器仪表的发展趋势,具有广阔的市场前景1 总体方案设计单片机电子万年历的制作有多种方法,可供选择的器件和运用的技术也有很多种所以,系统的总体设计方案应在满足系统功能的前提下,充分考虑系统使用的环境,所选的结构要简单使用、易于实现,器件的选用着眼于适宜的参数、稳定的性能、较低的功耗以与低廉的成本系统的功能往往决定了系统采用的结构,经过成本,性能,功耗等多方面的考虑决定用三个8位74LS164串行接口外接LCD显示器,RESPACK-8对单片机STC89C52进行供电,时间芯片DS1302连接单片机STC89C52从而实现电子万年历的功能按照系统设计的要求,初步确定系统由电源模块、时钟模块、显示模块、键盘接口模块、温度测量模块和闹钟模块共六个模块组成,电路系统构成框图如图1所示闹钟模块独立按键显示模块始终模块STC89C52温度模块电源模块图1 硬件电路框图2 硬件电路设计2.1 单片机的选择2.1.1 51单片机与12单片机结构与功能单片机又称单片微控制器,可以完成复杂的运算、逻辑控制、通信等功能。
80C51单片机的时钟信号用来提供单片机各种位操作时间基准,80C52单片机的时钟信号通常有两种电路形式:部震荡方式和外部震荡方式由于80C52的系统性能满足系统数据采集与时间精度的要求,而且产品产量丰富来源广,应用也很成熟,故采用来作为控制核心单片机系统是实现环境电压多路采集功能的核心模块每次选通一路通道信号进行模拟量转换数字量和输出允许STC12C5A60AD/S2系列带A/D转换的单片机的A/D转换口在P1口,上电复位后P1口为弱上拉型IO口,用户可以通过软件设置将8路中的任何一路设置为A/D转换,不须作为A/D使用的口可继续作为IO口使用STC12C5A60AD/S2系列单片机与89C52单片机最小系统相同,而功能上较51单片机相比更为强大单片机最小系统电路如图2所示图2 单片机最小系统2.1.2时钟电路 89C51系列单片机的时钟信号通常有部振荡和外部振荡方式本最小系统采用外部晶振电路,利用11.0592MHZ的晶体振荡器和两个30pF的电容组成其中晶体振荡器起振荡作用,两电容起到去耦合的作用,具体设计图如图3所示:图3 时钟电路2.1.3复位电路本系统的复位电路是采用按键复位的电路,复位输入引脚RET为其提供了初始化的手段。
当其ALE与PSEN两引脚输出高电平,RET引脚高电平到时,单片机复位按下按钮,则直接把+5V加到了RET端从而复位称为手动复位复位后,P0到P3并行I/O口全为高电平,其它寄存器全部清零,只有SBUF寄存器状态不确定系统复位电路如图4所示图4 复位电路2.2时钟芯片DS1302接口设计与性能分析2.2.1DS1302性能简介DS1302是Dallas公司生产的一种实时时钟芯片它通过串行方式与单片机进行数据传送,能够向单片机提供包括秒、分、时、日、月、年等在的实时时间信息,并可对月末日期、闰年天数自动进行调整;它还拥有用于主电源和备份电源的双电源引脚,在主电源关闭的情况下,也能保持时钟的连续运行另外,它还能提供31字节的用于高速数据暂存的RAMDS1302时钟芯片主要包括移位寄存器、控制逻辑电路、振荡器DS1302与单片机系统的数据传送依靠RST,I/O,SCLK三根端线即可完成其工作过程可概括为:首先系统RST引脚驱动至高电平,然后在SCLK时钟脉冲的作用下,通过I/O引脚向DS1302输入地址/命令字节,随后再在SCLK时钟脉冲的配合下,从I/O引脚写入或读出相应的数据字节因此,其与单片机之间的数据传送是十分容易实现的,DS1302的引脚排列与部结构图如图4:DS1302引脚说明: X1,X2 32.768kHz晶振引脚GND 地线RST 复位端I/O 数据输入/输出端口SCLK 串行时钟端口VCC1 慢速充电引脚VCC2 电源引脚 图4 DS1302的引脚2.2.2DS1302接口电路设计1时钟芯片DS1302的接口电路与工作原理:图5 DS1302与MCU接口电路图5为DS1302的接口电路,其中Vcc1为后备电源,Vcc2为主电源。
VCC1在单电源与电池供电的系统中提供低电源并提供低功率的电池备份VCC2在双电源系统中提供主电源,在这种运用方式中VCC1连接到备份电源,以便在没有主电源的情况下能保存时间信息以与数据DS1302由VCC1或VCC2 两者中较大者供电当VCC2大于VCC1+0.2V时,VCC2给DS1302供电当VCC2小于VCC1时,DS1302由VCC1供电DS1302在每次进行读、写程序前都必须初始化,先把SCLK端置 “0”,接着把RST端置“1”,最后才给予SCLK脉冲;读/写时序如以下图6所示表-1为DS1302的控制字,此控制字的位7必须置1,若为0则不能对DS1302进行读写数据对于位6,若对时间进行读/写时,CK=0,对程序进行读/写时RAM=1位1至位5指操作单元的地址位0是读/写操作位,进行读操作时,该位为1;进行写操作时,该位为0控制字节总是从最低位开始输入/输出的表-2为DS1302的日历、时间寄存器容:“CH”是时钟暂停标志位,当该位为1时,时钟振荡器停止,DS1302处于低功耗状态;当该位为0时,时钟开始运行WP”是写保护位,在任何的对时钟和RAM的写操作之前,“WP”必须为0。
当“WP”为1时,写保护位防止对任一寄存器的写操作2、DS1302的控制字DS1302的控制字如表2所示控制字节的高有效位(位7)必须是逻辑1,如果它为0,则不能把数据写入DS1302中,位6如果0,则表示存取日历时钟数据,为1表示存取RAM数据;位5至位1指示操作单元的地址;最低有效位(位0)如为1表示进行读操作,为0表示进行写操作控制字节总是从最低位开始输出表2 DS1302的控制字格式 1 RAM/CKA4A3A2A1A0RD/WR3、数据输入输出(I/O)在控制指令字输入后的下一个SCLK时钟的上升沿时,数据被写入DS1302,数据输入从低位即位0开始同样,在紧跟8位的控制指令字后的下一个SCLK脉冲的下降沿读出DS1302的数据,读出数据时从低位0位到高位7如以下图6所示图6 DS1302读/写时序图4、DS1302的寄存器AMDS1302有12个寄存器,其中有7个寄存器与日历、时钟相关,存放的数据位为BCD码形式,其日历、时间寄存器与其控制字见表3 表3 DS1302的日历、时间寄存器写寄存器读寄存器Bit7Bit6Bit5Bit7Bit3Bit2Bit1Bit080H81HCH10秒秒82H83H10分分84H85H12/010时时/PM86H87H0010 日日88H89H00010月月8AH8BH00000星期8CH8DH 10年年8EH8FHWP0000000此外,DS1302 还有年份寄存器、控制寄存器、充电寄存器、时钟突发寄存器与与RAM相关的寄存器等。
时钟突发寄存器可一次性顺序读写除充电寄存器外的所有寄存器容 DS1302与RAM相关的寄存器分为两类:一类是单个RAM单元,共31个,每个单元组态为一个8位的字节,其命令控制字为C0H~FDH,其中奇数为读操作,偶数为写操作;另一类为突发方式下的RAM寄存器,此方式下可一次性读写所有的RAM的31个字节,命令控制字为FEH(写)、FFH(读)2.3温度芯片DS18B20接口设计与性能分析2.3.1 DS18B20性能简介1.DS18B20的主要特性DS18B20温度传感器是美国DALLAS半导体公司最新推出的一种改进型智能温度传感器,与传统的热敏电阻等元件相比,它能直接读出被测温度,并且可根据实际要求通过简单的编程实现9-12位的数字值读数方式现场温度直接以"一线总线"的数字方式传输,大大提高了系统的抗干扰性适合于恶劣环境的现场温度测量,如:环境控制、设备或过程控制、测温类消费电子产品等与前一代产品不同,新的产品支持3V~5.5V的电压围,使系统设计更灵活、方便其性能特点可归纳如下:1独特的单线接口仅需要一个端口引脚进行通信;2测温围在-55℃到125℃,分辨率最大可达0.0625℃;3采用了3线制与单片机相连,减少了外部硬件电路;4零待机功耗;5可通过数据线供电,电压围在3.0V-5.5V;6用户可定义的非易失性温度报警设置;7报警搜索命令识别并标志超过程序限定温度(温度报警条件)的器件; 8负电压特性,电源极性接反时,温度计不会因发热烧毁,只是不能正常工作。
2.DS18B20工作原理 DS18B20的读写时序和测温原理与DS1820相同,只是得到的温度值的位数因分辨率不同而不同,且温度转换时的延时时间由2s减为750ms DS18B20测温原理如图5所示图中低温度系数晶振的振荡频率受温度影响很小,用于产生固定频率的脉冲信号送给计数器1高温度系数晶振随温度变化其振荡率明显改变,所产生的信号作为计数器2的脉冲输入计数器1和温度寄存器被预置在-55℃所对应的一个基数值计数器1对低温度系数晶振产生的脉冲信号进行减法计数,当计数器1的预置值减到0时,温度寄存器的值将加1,计数器1的预置将重新被装入,计数器1重新开始对低温度系数晶振产生的脉冲信号进行计数,如此循环直到计数器2计数到0时,停止温度寄存器值的累加,此时温度寄存器中的数值即为所测温度图7中的斜率累加器用于补偿和修正测温过程中的非线性,其输出用于修正计数器1的预置值LSB位置/清除增加计数器1斜率累加器计数比较器温度寄存器减到0预置计数器2减到0停止预置低温度系数晶振高温度系数晶振图7 DS18B20测温原理2.3.2 DS18B20接口电路设计如8图所示,该系统中采用数字式温度传感器DS18B20,具有测量精度高,电路连接简单特点,此类传感器仅需要一条数据线进行数据传输,用P3.7与DS18B20的DQ口连接,Vcc接电源,GND接地。
图8温度传感器DS18B20接口电路2.3.3 DS18B20的工作时序 1、复位时序图图9复位时序图2、读时序图图10读时序图3、写时序图图11 写时序图 4、工作时序 1)总线时序图12 总线时序2)写周期时序图13写周期时序3)起始/停止时序图14 起始/停止时序4)应答时序图15 应答时序5)立即地址读时序图16 立即地址读时序2.4 LCD显示模块2.4.1LCM1602的特性与使用说明1.LCM1602的接口信号说明如表4:表4 LCM1602的接口信号编号引脚符号功能说明编号引脚符号功能说明1VSS电源地9D2DATA I/O2VDD电源正极10D3DATA I/O3VL液晶显示偏压信号11D4DATA I/O4RS数据/命令选择端(H/L)12D5DATA I/O5R/W读/写选择端(H/L)13D6DATA I/O6E使能信号14D7DATA I/O7D0DATA I/O15BLA背光正极8D1DATA I/O16BLK背光负极2、基本操作时序如下:1)读状态:RS=L,RW=H,E=H2)写指令:RS=L,RW=L,D0~D7=指令码,E=高脉冲3)读数据:RS=H,RW=H,E=H4)写数据:RS=H,RW=L,D0~D7=数据,E=高脉冲3、初始化设置 1)显示模式设置如表5:表5显示模式设置指令码功能00111000设置16*2显示,5*7点阵,8位数据接口2) 显示开/关与光标设置如表6:表6 显示开/关与光标设置指令码功能00001DCBD=1开显示;D=0关显示C=1显示光标;C=0不显示光标B=1光标闪烁;B=0光标不显示000001NSN=1当读或写一个字符后地址指针加一,且光标加一N=0当读或写一个字符后地址指针减一,且光标减一S=1当写一个字符,整屏显示左移(N=1)2.4.2LCM1602与MCU的接口电路 LCD的D0~D7分别接单片机的的P2口,作为数据线,因为P0口部没有上拉电阻,所以外部另外加上10K的上拉电阻;P1.0—P1.2分别接LCD的RS、RW、E三个控制管脚;RV1用来调节LCD的显示灰度;BLK、BLA为背光的阴极和阳极,接上相应电平即点亮背光灯。
2.5按键模块设计 本系统用到了5个按键,其中一个用作系统手动复位,另外4个采用独立按键,该种接法查询简单,程序处理简单,可节省CPU资源,按键电路如图17所示,4个独立按键分别与STC89C52的P3.4、P3.5、P3.6、P3.7接口相连图17 按键电路 对以上4个按键作简要说明:S4——SET 键,S3——UP键,S2——DOWN键,S5——OUT/STOP键SET 键:按下SET键进入时间校准状态,按一下进入秒调整,两下分调整,依此类推可进行各年月日,时分秒以与星期的校准;UP键:当SET键按下时,UP进行SET选定项(如:小时)的加操作;DOWN键:当SET键按下时,DOWN进行SET选定项(如:小时)的减操作;OUT键:当OUT键按下时,此键功能为退出校准功能,进入下一模式,显示温度值和上下限的温度值2.6复位电路的设计 当STC89C52单片机的复位引脚RST(全称RESET)出现2个机器周期以上的高电平时,单片机就完成了复位操作如果RST持续为高电平,单片机就处于循环复位状态,而无法执行程序因此要求单片机复位后能脱离复位状态而本系统选用的是12MHz的晶振,因此一个机器周期为1μs,那么复位脉冲宽度最小应为2μs。
在实际应用系统中,考虑到电源的稳定时间,参数漂移,晶振稳定时间以与复位的可靠性等因素,必须有足够的余量 根据应用的要求,复位操作通常有两种基本形式:上电复位、手动复位上电复位要求接通电源后,自动实现复位操作STC89C52单片机的上电复位POR(Power On Reset)实质上就是上电延时复位,也就是在上电延时期间把单片机锁定在复位状态上在单片机每次初始加电时,首先投入工作的功能部件是复位电路复位电路把单片机锁定在复位状态上并且维持一个延时(记作TRST),以便给予电源电压从上升到稳定的一个等待时间;在电源电压稳定之后,再插入一个延时,给予时钟振荡器从起振到稳定的一个等待时间;在单片机开始进入运行状态之前,还要至少推迟2个机器周期的延时 本设计采用上电且开关复位电路,如图18所示上电后,由于电容充电,使RST持续一段高电平时间当单片机已在运行之中时,按下复位键也能使RST持续一段时间的高电平,从而实现上电且开关复位的操作通常选择C=10~30μF,本设计采用的电容值为10μF的电容和电阻为4.7K的电阻图18 复位电路3 系统的软件设计电子万年历的功能是在程序控制下实现的。
该系统的软件设计方法与硬件设计相对应,按整体功能分成多个不同的程序模块,分别进行设计、编程和调试,最后通过主程序将各程序模块连接起来这样有利于程序修改和调试,增强了程序的可移植性本系统的软件部分主要要进行公历计算程序设计,温度测量程序设计,按键的扫描输入等程序开始运行后首先要进行初始化,把单片机的各引脚的状态按程序里面的初始化命令进行初始化,初始化完成后运行温度测量程序,读取出温度传感器测量出来的温度,然后运行公历计算程序,得到公历的时间、日期信息,再运行按键扫描程序,检测有无按键按下,如果没有按键按下则直接调用节日计算程序,根据得到的公历日期信息计算出节日,如果有按键按下则更新按键修改后的变量后送给节日计算程序,由节日计算程序根据修改后的变量计算出对应的节假日,计算完成后运行显示程序,显示程序将得到的温度数据、公历信息、节假日信息送给对应的数码管让其显示3.1主程序流程图的设计主程序流程图:开始DS1302初始化设置DS1302读年月日星期时分秒将读取的数据处理后送液晶屏显示返回图19 主程序流程图3.2 程序设计3.2.1 DS1302读写程序设计本系统的时间读取主要来源于单片机对DS1302的操作,在硬件上时钟芯片DS1302与单片机的连接需要三条线,即SCLK(7)、I/O(6)、RST(5),具体连接图见系统硬件设计原理图。
读取写程序设计如下:sbit clk = P1^3; //ds1302时钟线定义sbit io = P1^4; //数据线sbit rst = P1^5; //复位线 //秒 分 时 日 月 年 星期 uchar code write_add[]={0x80,0x82,0x84,0x86,0x88,0x8c,0x8a}; //写地址uchar code read_add[] ={0x81,0x83,0x85,0x87,0x89,0x8d,0x8b}; //读地址uchar code init_ds[] ={0x58,0x00,0x00,0x01,0x01,0x13,0x1}; uchar miao,fen,shi,ri,yue,week,nian;uchar i;uchar fen1=0x11,shi1=0; //两个闹钟变量的定义bit open1;/*************写一个数据到对应的地址里***************/void write_ds1302(uchar add,uchar dat){ rst = 1; //把复位线拿高 for(i=0;i<8;i++) { //低位在前 clk = 0; //时钟线拿低开始写数据 io = add & 0x01; add >>= 1; //把地址右移一位 clk = 1; //时钟线拿高 } for(i=0;i<8;i++) { clk = 0; //时钟线拿低开始写数据 io = dat & 0x01; dat >>= 1; //把数据右移一位 clk = 1; //时钟线拿高 } rst = 0; //复位线合低 clk = 0; io = 0;}/*************从对应的地址读一个数据出来***************/uchar read_ds1302(uchar add){ uchar value,i; rst = 1; //把复位线拿高 for(i=0;i<8;i++) { //低位在前 clk = 0; //时钟线拿低开始写数据 io = add & 0x01; add >>= 1; //把地址右移一位 clk = 1; //时钟线拿高 } for(i=0;i<8;i++) { clk = 0; //时钟线拿低开始读数据 value >>= 1; if(io == 1) value |= 0x80; clk = 1; //时钟线拿高 } rst = 0; //复位线合低 clk = 0; io = 0; return value; //返回读出来的数据}/*************把要的时间 年月日 都读出来***************/void read_time(){ miao = read_ds1302(read_add[0]); //读秒 fen = read_ds1302(read_add[1]); //读分 shi = read_ds1302(read_add[2]); //读时 ri = read_ds1302(read_add[3]); //读日 yue = read_ds1302(read_add[4]); //读月 nian = read_ds1302(read_add[5]); //读年 week = read_ds1302(read_add[6]); //读星期 Conversion(0,nian,yue,ri); //农历转换 n_nian = year_moon ; n_yue = month_moon ; n_ri = day_moon ;}/*************把要写的时间 年月日 都写入ds1302里***************/void write_time(){ write_ds1302(0x8e,0x00); //打开写保护 write_ds1302(write_add[0],miao); //写秒 write_ds1302(write_add[1],fen); //写分 write_ds1302(write_add[2],shi); //写时 write_ds1302(write_add[3],ri); //写日 write_ds1302(write_add[4],yue); //写月 write_ds1302(write_add[5],nian); //写星期 write_ds1302(write_add[6],week); //写年 write_ds1302(0x8e,0x80); //关闭写保护}/*************把数据保存到ds1302 RAM中**0-31*************/void write_ds1302ram(uchar add,uchar dat){ add <<= 1; //地址是从第二位开始的 add &= 0xfe; //把最低位清零 是写的命令 add |= 0xc0; //地址最高两位为 1 write_ds1302(0x8e,0x00); write_ds1302(add,dat); write_ds1302(0x8e,0x80);}/*************把数据从ds1302 RAM读出来**0-31*************/uchar read_ds1302ram(uchar add){ add <<= 1; //地址是从第二位开始的 add |= 0x01; //把最高位置1 是读命令 add |= 0xc0; //地址最高两位为 1 return(read_ds1302(add)); }/*************初始化ds1302时间***************/void init_ds1302(){ uchar i; rst = 0; //第一次读写数据时要把IO品拿低 clk = 0; io = 0; i = read_ds1302ram(30); if(i != 3) { i = 3; write_ds1302ram(30,i); //4050 4100 3080 write_ds1302(0x8e,0x00); //打开写保护 for(i=0;i<7;i++) write_ds1302(write_add[i],init_ds[i]); //把最高位值0 允许ds1302工作 write_ds1302(0x8e,0x80); //关写保护 }}DS1302与微处理器进行数据交换时,首先由微处理器向电路发送命令字节,命令字节最高位MSB(D7)必须为逻辑 1,如果D7=0,则禁止写DS1302,即写保护;D6=0,指定时钟数据,D6=1,指定RAM数据;D5~D1指定输入或输出的特定寄存器;最低位LSB(D0)为逻辑0,指定写操作(输入),D0=1,指定读操作(输出) 。
3.2.2 温度程序设计单总线上最基本的操作有初始化、写和读3种,所有其它的操作都由这3种基本操作组合而成,初始化用于对总线上的器件进行状态复位,写用于主节点向总线上写入一位数据,读用于主节点从总线上读取一位数据在这3种操作中,只有写操作是单向的,初始化操作和读操作都是双向的具体程序设计如下:byte ow_reset(void){ byte presence; DQ = 0; //拉低总线 delay(29); // 保持 480us DQ = 1; // 释放总线 delay(3); // 等待回复 presence = DQ; // 读取信号 delay(25); // 等待完毕信号 return(presence); // 返回 0:正常 1:不存在} //从 1-wire 总线上读取一个字节byte read_byte(void){ byte i; byte value = 0; for (i=8;i>0;i--) { value>>=1; DQ = 0; DQ = 1; delay(1); if(DQ)value|=0x80; delay(6); } return(value);}//向 1-WIRE 总线上写一个字节void write_byte(char val){ byte i; for (i=8; i>0; i--) // 一次写一位 { DQ = 0; // DQ = val&0x01; delay(5); // DQ = 1; val=val/2; } delay(5);}4 调试分析在protues上进行仿真实验。
首先使用Keil uVsion 2将编写完成的程序编译生成HEX文件,将HEX文件烧录到两片单片机中,进行仿真实验,结果如图20所示图20 仿真图5 结论在整个设计过程中,硬件方面主要设计了STC89C52单片机的最小系统、DS1302接口电路、DS18B20接口电路、闹钟与LCD显示;软件方面借助各个渠道的资料,主要设计了阳历数据读取程序、阳历转阴历程序、温度采集程序、闹铃程序以与LCD显示程序;系统的调试主要是通过一块STC89C52开发板,再借助于Keil、STC以与少许自己搭建的外围电路实现的;再此过程中,分步调试时显示出了阳历的日期与时间,还有实时温度,集中调试时没有达到预期效果此万年历具有读显示直观、功能多样、电路简洁、成本低廉等诸多优点,符合电子仪器仪表的发展趋势,具有广阔的市场前景在整个设计过程中学到了许多没学到的知识,在电路焊接时虽然没什么大问题,但从中也知道了焊接在整个作品中的重要性,电路工程量大,不能心急,一个个慢慢来不能急于求成反而达到事半功倍的效果对电路的设计、布局要先有一个好的构思,才显得电路板美观、大方程序编写中,由于思路不清晰,开始时遇到了很多的问题,经过静下心来思考,理清了思路,反而得心应手。
在此次设计中,知道了做事要有一颗平常的心,不要想着走捷径,一步一脚印也练就了我的耐心,做什么事都要有耐心在本次设计中学到了很多很多东西,这是最重要的总之,此次毕业设计使我的能力得到了全方位的提高,次设计的电子万年历也存在的不足的地方,有待于以后的改进参考文献[1]明荧. 8051单片机课程设计实训教程[M].:清华大学[2]平.单片机的原理与接口技术[M].:电子工业,2006:1-113.[3]王忠民.微型计算机原理[M].:科技大学,2003:15-55.[4]何立民.单片机高级教程[M].:航空航天大学,2003年[5]纪宗南.单片机外围器件使用手册[M].:航空航天大学,622-655.[6]周雪.模拟电子技术[M]: 电子科技大学,2005:81-95.[7]左金生.电子与模拟电子技术[M].:电子工业,2004:105-131.[8]勇.单片机开发环境μVision2的开发指南[M]. :航空航天大学,2004:173-199.[9]马忠梅,籍顺心等.单片机的C语言应用程序设计[M].航空航天大学, 2001年[10]新编单片机原理与应用(第二版).电子科技大学,2007.2[11]萌.单片机应用系统开发综合实例[M]. :清华大学,2007.7[12]楼然苗.单片机课程设计指导[M]. :航空航天大学,2007.7[13]朱思荣.51单片机实现公历与农历、星期的转换[Z].当当电子网[14]广弟. 单片机原理与应用[M] 航空航天大学,2004年课设体会课程设计是培养学生综合运用所学知识,发现,提出,分析和解决实际问题,锻炼实践能力的重要环节,是对学生实际工作能力的具体训练和考察过程,随着科学技术发展的日新月异,单片机已经成为当今计算机应用中空前活跃的领域,在生活中可以说是无处不在。
因此作为二十一世纪的大学来说掌握单片机的开发技术是十分重要的通过三周的课程设计,巩固了课堂上所学的知识期间不断的查阅资料,加深了我对单片机的理解之后焊接硬件过程中出现各种问题,最后在老师和同学的帮助下成功的解决了问题这让我懂得了光有课本上的知识是不够的,一定要理论结合实践,在实践中把理论知识具体化,这样才能更好的掌握好知识而且通过和同学的合作,让我更明白相互之间的协调的重要性因为我们学的都是单片机理论方面的东西,实际应用方面较少,所以在设计过程中遇到了各种各样的问题,可以说困难重重比如说Proteus软件的仿真电路连接,刚开始使用的时候比较陌生,器件的选取都存在问题经过上网搜索资料,这个问题很快解决了这期间难免会遇到过各种各样的问题,同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固这次实习让我受益匪浅,无论从知识上还是其他的各个方面上课的时候学习的单片机只是从理论的角度去理解枯燥乏味但在实习中见过甚至使用了单片机与其系统,能够理论联系实际的学习,开阔了眼界,提高了单片机知识的理解和水平在这次课程设计中又让我体会到了合作与团队的力量,当遇到不会的地方就会和同学互相讨论。
最后感老师和同学对我的帮助附录1 电路原理图25 / 25。