版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、淮阴工学院毕业设计说明书(论文)第 34 页 共 34页1 绪论11 课题的意义单片机控制照明电路具有自动化,智能化等特点。这样,白炽灯就会按照人们设计的程序工作,从而满足人们的要求。此外,单片机不仅便宜,适应性也强,广泛应用于智能仪表,数据采集系统,控制系统等许多场合。在灯光控制方面,随着社会的不断发展,人们希望灯光不仅作为一种单调的照明工具,还能有更多的变化。如灯光亮度可调,自动定时开关灯,尽可能省电等等。本设计主要用于鸡舍的灯光控制。课题涉及单片机,数字电路,电力电子等。这为我们运用所学知识提供了很好的磨练机会。近年来,我国养殖业得到了快速发展。为使鸡多产蛋,肉鸡生长加速,除了精心喂养外
2、,鸡舍每天应保证16h的光照,仅靠自然光照不能满足需要。通常鸡舍在黎明和傍晚开灯,以延长光照时间。目前,多数养鸡场鸡舍的灯光扔由人工用闸刀控制,傍晚鸡舍光线变暗时开灯,晚上9点左右关灯,黎明前5点左右再开灯,天亮后再关灯。依靠人工手动控制有不少弊端,现已有一些鸡场的灯光控制采用定时自动开关控制,可节省人力,开关时刻也相对准确。12 单片机照明控制的应用前景及趋势单片机控制范围大,大多数用于大型场合,适用于集中控制可以节省大量的时间和人力资源。对于普通用户而言,则实用性不高。首先,小型用户操作照明控制系统就比较困难,不能充分发挥该系统的作用。其次,小型用户本身管理难度不大,即使使用手动开关也不会
3、占用他们太多的时间。因此他们还是会选择普通开关,而不是单片机控制的照明系统。单片机照明系统的应用依然不容乐观。这就要求该系统必须向小型化、易操作的方向发展。进而满足广大用户的需求。13 课题研究方向本设计中使用MCS-51单片机实现对养鸡场灯光的夜间间歇控制,使其能满足白天不亮,夜间亮,亮与灭是间歇的。另外,开灯,亮与灭以及渐熄的时间长短是可调的。这一系列功能是通过软件与硬件相结合方法来完成的。根据设计的不同要求,所有的控制设定都可以进行相应地改变。这个设计的目的是用于鸡舍的灯光控制,因为灯光对肉鸡的生长至关重要,因此控制好灯光可让鸡更好的生长。2 总体设计21 设计要求本设计利用单片机为控制
4、核心,制作一个简易的灯光控制系统,实现时间参数的实时显示,白天熄灯;夜间开关灯可交替。开灯时间可在15分钟到1小时之间可调;关灯时间在2小时到6小时之间可调。选择AT89S52作为核心控制系统、DS1302芯片提供时钟定时功能、四脚按键以及4只数码管作为显示。设计要求:1、在手动控制状态,通过设在面板上的按钮可以随时进行手动控制开关灯、定时等操作。2、在自动控制状态,系统会按照所设计的程序有条不紊的执行,不需要人工24小时看守。22 系统结构本系统主要是复位电路、时钟电路模块、键盘电路模块、显示电路、照明电路这几个部分组成的。其中主要用到:单片机、数码管、时钟芯片、按键、继电器等部件。根据灯光
5、控制器的功能要求,以AT89S52为核心控制电路系统。系统总体结构框图如图1所示。 (1) 单片机芯片,AT89S52所要求的电压比较低,能以3V的超底压工作,但性能却很优越,可以编程也可以擦除。单片机的EEPROM可擦除重复1000次,而CPU和诸多功能模块组合在一个闪存芯片里面,AT89S52单片机则就显得更为轻巧,能为更多的嵌入式系统提供合适的解决方法。(2) 时钟芯片,选择DS1302时钟芯片。单片机计时,要用到计数器占用硬件资源,还要设置中断、查询等操作也会占用单片机资源。时钟芯片DS1302能很好的解决这个问题。(3) 显示模块,选用由发光二极管和小数点形成的“8”字型数码管。它具
6、有价格低、优良的配置、而且很方便与单片机接口等顺应人们需求的优点。驱动方式选择动态显示。(4) 按键模块,选择独立式按键。本设计用到五个按键,分别是选择键、加键、减键、确定键以及定时开关键。 白炽灯键盘模块 AT89S52 主控制 模块数码管显示模块DS1302时钟模块复位电路 图 1系统结构框图3 硬件设计31 芯片及元器件介绍3.1.1 AT89S52单片机芯片单片机引脚功能介绍VCC:电源电压。GND:接地。PO口:此端口占有8位,而且不是单向的。如果内存芯片连接外部,可以用来作为一种低8的地址线和数据线;在ROM编程状态下,它是输入的,而在验证状态下,则是输出的。最多能够驱动8个LST
7、TL门电路。P1口:此端口占有8位,而且不是单向的,既拥有上拉电阻又可以充当I/O口。在ROM编程和验证的状态下,只占有低8的地址。P2口:此端口占有8位,而且不是单向的,既拥有上拉电阻又可以充当I/O口。如果单片机连接外部的存储器,它送出高8位的地址。在ROM编程和验证的状态下,它将占有高8位的地址,同时还可以接受控制信号。能作用于4个LSTTL的门电路。P3口:此端口占有8位,而且不是单向的,既拥有上拉电阻又可以充当I/O口。能作用于4个LSTTL的门电路。此引脚还有第二功能,在日常生活里,大多数情况下都不会用第一功能。具体情况如下表所示:P3.0 RXD(串行接收)P3.1 TXD(串行
8、发送)P3.2 INTO(外输0个中断)P3.3 INT1(外中断1输入)P3.4 T0(定时0计输入)P3.5 T1(定时1计输入)P3.6 WR非(外RAM写选)P3.7 RD非(外ROM读选)P3口还可用于接板信号。RST:复位输入接口,在高电平的时候才能工作。在振荡器启动的情况下,高电平显示能够超过两个周期,就可以复位。当89C51能够工作后,ALE端将放出只有正常振荡六分之一频率的正向脉冲,如果示波器能够探查出,那么就可以确定该芯片是好的。51单片机连接外存储时,P0可以占有地址,也可以作用于数据信号。此时就要看有没有ALE信号了,一旦有,那么低8位地址就是有用的。反之,则是传输的数
9、据信号。ALE信号可在外部的情况下输出时钟或者是定时的信号。但要记住的是,如果接到外存储,将会自动过滤掉一个ALE的脉冲。可以驱动8个LSTTL门电路。PSEN非:可以判断外程序存储的读选端口。当访问外部的程序存储器时,一旦取得指令,一个机器周期内要有两次有效的输出信号。EA非/ VPP:内、外ROM选择。只有此端口为高电平,CPU才会访问内程序存储;当然超过容量的特殊情况下,会自动接到外程序存储。反之低电平时,CPU不会去理会内部的程序存储,只会关注外部的程序指令。但要记住的是,如果是编程LB1的话,在复位过程中会将此端口的状态进行锁存。XTAL1:一个可以接外晶和电容的端口。在外振荡的状态
10、下,此引脚外部输入的是时钟脉冲。XTAL2:另一个可以接外晶和电容的端口。在外振荡的状态下,此引脚是悬浮的。3.1.2 继电器本系统中电磁继电器作为主要的控制器件。由于本系统中,照明电路中需要用到继电器来控制电路。把继电器的一端接上一个可以发光的二极管和一个一千欧姆大小的电阻,这里的电阻起到了限流的作用。如果在电路运行的时候,发光二极管发光,此时继电器的线圈上有电流。同时,在电路中还需要并联一个普通的二极管。它的作用主要是使得一些元器件能够正常工作。本电路采用5V大小的继电器。32 时钟电路单片机系统里面都有晶振,他就好比单片机的心脏,在单片机系统里面他是不可缺少的一部分,它全称晶体振荡电路。
11、把定时元件外接在XTAL1、XTAL2引脚上,使单片机内部的振荡电路产生自激振荡。经常使用的内部时钟方式是选用电容和晶振组成的并联谐振回路。振荡晶体可在1.212MHz范围内选择电容大小可以起到频率微调的作用。本系统中,选用30pF大小的电容,外接32.KHz晶振,Vcc1为后备电源,Vcc2为主电源。即使主电源关闭,时钟也能照常运行。Vcc1或Vcc2两者中较大的会自动给DS1302进行供电。如果在传送过程中RSTS置为低电平,就会终止此次数据传送,I/O引脚变为高阻态。上电后,在Vcc>2V之前,RST要保持低电平。只有在SCLK 为低电平时,才能将RST置为高电平。SCLK为时钟输
12、入端。电路如图2所示。 图2 时钟电路33 复位电路单片机的初始化操作首先需要复位,然后才是程序初始化。它的主要是为了让程序从AT89S52的初始地址0000H处开始执行。除系统的正常初始化状态外,有时因为操作的错误或者程序的运行发生错误,系统会发生死锁。 这个时候就需要使用按复位键,重新启动系统,这样可以有效的解决死锁状态。 AT89S52单片机内部自带复位电路,RESET引脚是高电平的时候有效,可以通过自动复位或手动复位两种复位方式来进行复位操作。本设计系统中是低电平有效复位,用户开机的时候就启动复位操作,在+5伏时进入工作状态。 复位电路如图3所示。 图3 复位电路34 键盘电路 键盘电
13、路如图4所示,单片机P2口用来信号输入,当S1,S2,S3,S4,S5开关其中的任何一个按下时,其对应的P2.0,P2.1,P2.2,P2.3,P2.4口就会为低电平,然后进行单片机相应的操作。具体实现的功能为:S1选择所需调整的时间参数,S2加时间,S3减时间,S4确定参数设定,S5控制定时的开与关。按确定键将依次显示时间和各个定时时段,接着按选择键就可以选择要调整的时间(时、分、秒)按加(减)键就可以调整时间或重新定时。最后,按下确定键,就完成了对参数的设定。调整时间步骤如下:1按下确定键,数码管显示当前时间,并停留不动 2按下选择键,数码管显示所选时间,两位数字闪动。 3按加键或减键,自
14、由调整时间,长按则加快增加或减少。调整定时和调整时间方法一样。图4键盘电路35 数码管显示电路显示电路是时钟模块中最为重要的部分,因为端口的问题以及动态显示方式的优越性,本系统采用的一个四位数码管,使用共阳极接法以及动态显示,以三极管作为驱动进行数码管的显示。在本设计中的数码管是显示当前时间和定时时间,因为按键设置有加键和减键,所以先要对数据进行存储然后进行累加或减。我们把数码管先连接到74LS373锁存器上,然后把锁存器连接到单片机AT89S52上。在本系统中数码管的所有段选码都由单片机的P1口给出,位选信号由P0.0、P0.1、P0.2和P0.3口控制。在每一时刻,4位LED可能会显示相同
15、的内容,所以要用扫描显示来使一位亮而其他三位暗,周期为2ms。由于采用的是共阳极方式,低电平才有效,则要其中一个基极为低电平,三极管导通,集电极为低电平,位选打开,数码管显示。而段选码由P1口8位I/O口控制,高电平时对应的段被点亮。在此瞬间,段选码由P2口输出相应的字符电平,P0.0、P0.1、P0.2和P0.3口输出位选码,来保证显示相应的字符。以此类推,每位进行显示后延时一会,构成视觉暂留,这样看起来就像是一起显示出来的。如图5所示。图5显示电路36 照明电路 照明电路采用白炽灯进行照明,因为白炽灯额定电压为220V,可根据实际情况并联多个。继电器K1受时钟电路控制。照明灯泡使用继电器作
16、为开关驱动照明电路。J1开关断开时,继电器工作;当J1导通时,继电器控制电路失效,实现人工手动控制。三极管为使继电器工作股接在继电器的控制端。由于单片机输出的是低电平信号有效股选用PNP型三极管,当单片机输出低电平是三极管导通,电流流入继电器,使继电器工作,从而控制照明电路的亮灭,其电路连接图如图6所示:图6照明电路37 单片机系统电源设计+5V电压源主要为元器件和工作电路提供稳压源。电源(VCC)是整个系统正常工作的根本。过大的电源电压会更大程度的缩短芯片的寿命,甚至会损坏芯片和其它元器件;过小的电源又不能驱动电路工作。所以设定电源电压合适的值非常重要的。本电路主要芯片工作的电压都在+5V左
17、右,因此在整个电路板中采用W7800三端稳压芯片将+12V的电压整形为+5V直流电压。用W7800设计的+5V稳压电源电路图如图7所示:图7供电直流电源4 软件设计41 主程序流程框图 本设计采用C语言,在主程序中,主要实现程序初始化,按键处理,时间的动态显示。当有键按下时,进入按键处理程序。开始程序初始化 显示时间定时到?结束显示是哪组 点亮 照明设施 Y N42 延时子程序设计 延时程序主要对数码管的显示和按键的扫描进行延时操作。延时的时间可选5ms10ms,具体程序如下:void Delay(uint num)while( -num );43 时间读取和显示子程序设计用DS1302时钟芯
18、片来读取时间,然后依次显示在四位数码管上。时间的读取和显示流程图,如图8和图9所示。显示数据写1302地址复位产生一个高电平延时向该地址写数据地址增加数据写完?开始地址增加初始化使DS1302没写保护复位产生一个高电平写1302地址延时向该地址写数据数据写完? Y Y N N图8 DS1302读取时间流程图初始化开始读取DS1302显示分显示时结束 图9 LED显示时间流程图4.3.1 显示数据子程序数码管显示初始化程序如下Void initlcm(void)/初始化Delay_xMs(10);/功能设置:一次送8位数据。sendCMD(0x04);/点设定:显示字符/光标从左到右移动send
19、CMD(0x0f);显示设定:开显示,显示光标和当前显示位并闪动sendCMD(0x01);/清DDRAMsendCMD(0x02);/DDRAM地址归位sendCMD(off_cursor);/关光标44 DS1302驱动程序/寄存器宏定义#define WRITE_SECOND 0x80#define WRITE_MINUTE 0x82#define WRITE_HOUR 0x84#define READ_SECOND 0x81#define READ_MINUTE 0x83#define READ_HOUR 0x85#define WRITE_PROTECT 0x8E/初始化DS1302
20、void Initial(void) Write1302 (WRITE_PROTECT,0X00); /禁止写保护 Write1302 (WRITE_SECOND,0x56); /秒位初始化 Write1302 (WRITE_MINUTE,0x34); /分钟初始化 Write1302 (WRITE_HOUR,0x12); /小时初始化 Write1302 (WRITE_PROTECT,0x80); /允许写保护/位寻址寄存器定义SBIT ACC_7 = ACC7;/管脚定义SBIT SCLK = P35; / DS1302时钟信号 7脚SBIT DIO= P36; / DS1302数据信号
21、6脚SBIT CE = P37; / DS1302片选 5脚 /地址、数据发送子程序void Write1302 ( unsigned char addr,dat ) unsigned char i,temp; CE=0; /CE引脚为低,数据传送中止 SCLK=0; /清零时钟总线 CE = 1; /CE引脚为高,逻辑控制有效 /发送地址 for ( i=8; i>0; i- ) /循环8次移位 SCLK = 0; temp = addr; DIO = (bit)(temp&0x01); /每次传输低字节 addr >>= 1; /右移一位 SCLK = 1; /发
22、送数据 for ( i=8; i>0; i- ) SCLK = 0; temp = dat; DIO = (bit)(temp&0x01); dat >>= 1; SCLK = 1; CE = 0; /数据读取子程序unsigned char Read1302 ( unsigned char addr ) unsigned char i,temp,dat1,dat2; CE=0; SCLK=0; CE = 1; /发送地址 for ( i=8; i>0; i- ) /循环8次移位 SCLK = 0; temp = addr; DIO = (bit)(temp&a
23、mp;0x01); /每次传输低字节 addr >>= 1; /右移一位 SCLK = 1; /读取数据 for ( i=8; i>0; i- ) ACC_7=DIO; SCLK = 1; ACC>>=1; SCLK = 0; CE=0; dat1=ACC; dat2=dat1/16; /数据进制转换 dat1=dat1%16; /十六进制转十进制 dat1=dat1+dat2*10; return (dat1);45 扫描键盘子程序设计键盘的操作,无论是按键或键盘都是利用机械点的合、断作用。由于机械触点的弹性作用,CPU可能对键的一次闭合,做出两次键输入处理,此
24、时必须消除抖动的影响来防止这种错误发生。去除抖动有硬、软件两种方法。如果按键较多,最好不要采用硬件去抖。而软件去抖动可以节省硬件花费,实用性和有效性高,所以常采用软件的方法进行消抖。进行初始化后,实际键值参数变为1FH(连接的是P2口的0,1,2,3,4,初始化即为此值),由于抖动的原因,为确保是有键按下,则必须进行两次比较。第一次扫描,P2、1FH相等则说明没有按下键,不相等则用软件消除抖动,延迟10毫秒后进行第二次。若相等则说明之前的现象并不是按键所引发的,如果不相等则表明确实有按键这个动作发生。具体代码为:void key()static uchar key_new;key_can =
25、20;P2 |= 0xf0; if(P2 & 0xf0) != 0xf0)/按键按下(第一次)Delay(10);if(P2 & 0xf0) != 0xf0) && (key_new = 1)/确认是按键按下(第二次)key_new = 0;switch(P2 & 0xf0)case 0xe0: key_can = 1; break; case 0xd0: key_can = 2; break; case 0xb0: key_can = 3; break; case 0x70: key_can = 4; break; else key_new = 1;键
26、盘主要有独立式和矩阵式两种,独立式按键电路配置灵活,弊端是I/O口浪费较大,适用于键盘较少的电路。键盘程序作为主程序的一部分,通过查询方式读取键盘动作,根据读取的值,键盘进行相应操作处理程序。键盘扫描子程序流程图如图10所示。开始结束扫描键值延时去抖动提取键值调用键盘处理程序有键按下?有键按下? N Y N Y 图10 键盘扫描子程序流程图46 时钟子程序#include <regx52.h>#define uchar unsigned char#define uint unsigned intuchar dispcode= 0x3f,0x06,0x5b,0x4f, 0x66,0x
27、6d,0x7d,0x07, 0x7f,0x6f,0x77,0x7c, 0x39,0x5e,0x79,0x71,0x00; /定义0到F的段选码uchar dispbitcode=0xfe,0xfd,0xfb,0xf7, 0xef,0xdf,0xbf,0x7f; /数码管的位选码 uchar dispbuf8= 0,0,16,0,0,16,0,0; /定义一个缓冲区uchar dispbitcnt;uchar second;uchar minite;uchar hour;uint tcnt;uchar mstcnt;uchar i,j;void main(void) TMOD=0x02; /定时
28、器0工作方式2 TH0=0x06; /每250us中断一次 TL0=0x06; TR0=1; /启动定时器0 ET0=1; /定时器0中断允许 EA=1; /CPU开中断 while(1) if(P0_0=0) for(i=5;i>0;i-) for(j=248;j>0;j-); /延时检查是否是P0_0被按下 if(P0_0=0) /如果被按下 second+; /秒就加1 if (second=60) second=0; dispbuf0 =second%10; /存放秒的个位 dispbuf1 =second/10; /存放秒的十位 while (P0_0=0); /等待P0
29、_0变高 if(P0_1=0) for(i=5;i>0;i-) for(j=248;j>0;j-); if(P0_1=0) minite+; if (minite=60) minite=0; dispbuf3 =minite%10; dispbuf4 =minite/10; while (P0_1=0); if(P0_2=0) for(i=5;i>0;i-) for(j=248;j>0;j-); if(P0_2=0) hour+; if(hour=24) hour=0; dispbuf6 =hour%10; dispbuf7 =hour/10; while (P0_2=
30、0); void t0 (void) interrupt 1 using 0 /定时器0中断服务程序 P1=dispcodedispbufdispbitcnt; /为位选码 P3=dispbitcodedispbitcnt; /为段选码 dispbitcnt+; if(dispbitcnt=8) dispbitcnt=0; tcnt+; if(tcnt=4000) /此时有一秒钟了(4000*250us) tcnt=0; second+; if(second=60) second=0; minite+; if(minite=60) minite=0; hour+; if(hour=24) ho
31、ur=0; dispbuf0=second%10; dispbuf1=second/10; dispbuf3=minite%10; dispbuf4=minite/10; dispbuf6=hour%10; dispbuf7=hour/10; 5 原理图绘制和仿真本次论文设计的原理图绘制所采用的软件是protel99se,而原理图仿真采用的是 proteus软件。51 电路实现的基本步骤查阅各种书籍及网络选择单片机及方案Protel绘画电路原理图Proteus仿真进行程序调试和烧录 图15 电路设计步骤1) 查阅各种书籍及网络。首先查阅相关资料,对这个设计进行由浅至深的了解。2) 选择单片机及
32、方案。对此课题进一步了解后,我开始考虑选择什么单片机及用什么方案来做此设计。3)电路原理图:利用电路设计软件,将方案用标准的电路原理图表示,为电路板图的生成提供依据。4)仿真原理图:根据电路原理图,利用电路仿真软件,画出仿真图。 5)程序的调试和烧录:根据仿真时的运行状态和过程,检查编写的程序是否存在问题并进行调试,最终把已调试好的程序烧录到单片机里。 52 原理图的绘制1) 创建一个新的设计文件管理库 。 2) 加载元件库 3) 绘制电路图 4) 修改元件参数 5) 保存原理图 最后完成系统原理图的设计,见附录A。53 仿真原理图的绘制1) 创建一个新的设计文件管理库 2) 加载元件 3)
33、绘制仿真电路图 4)修改元件参数 5) 保存原理图6) 仿真电路图 调入已用Keil软件编译好的目标代码文件:*.HEX,之后就可以在proteus的原理图中看到模拟的实物运行状态和过程。结 论本设计是基于单片机的灯光控制系统,核心器件采用AT89S52单片机芯片,实现对养鸡场灯光的夜间间歇控制,使其能满足白天不亮,夜间亮,亮与灭是间歇的。另外,开灯,亮与灭以及渐熄的时间长短是可调的。DS1302提供时钟电路,采用双电源供电,具有掉电自动保存功能。通过软件与硬件相结合方法来实现这一系列功能,控制比较灵活,所有的控制设定都可根据设计的不同要求而有所改变。当然,由于时间的关系,本设计也存在很多的缺
34、陷,时间显示未直接用液晶显示屏,而是用了数码管和发光二级管显示,这些缺陷都有待改进。通过这次设计,我获益匪浅。态度决定高度,细节决定成败。在毕业设计过程中,每天都会遇到这样那样的问题,不管是硬件设计,还是软件设计,哪怕一点点失误或是粗心就会导致整个设计功亏一篑。我们不仅需要努力学习相关知识,熟练掌握相关技巧,还要注重培养科学严谨的工作态度,这是至关重要的。致 谢转瞬间,大学四年即将结束了,同时经过大半学期的努力,终于在此刻完成了大学最后一门课-毕业设计。这门课是我大学所学的最难的一门课,以前我从没想到这门课学的这门艰难,我比以前的课程都要努力和辛苦,这不是简简单单的一个课程,它体现了很多东西,
35、勤奋、辛劳与毅力。以前的课程大多是学理论,只要好好看书就可以考的好,可毕业设计不一样,它不仅要你好好看书,更多的是要把大学所学的专业知识要融会贯通了才能做出好的设计,通过这门课,我对大学所学知识有了更加深刻的理解,在这期间,我受到了很多阻碍,专业知识不是很扎实,毅力不够,吃苦耐劳精神不够。通过这次毕业设计,我相信自己更清楚的认识到自己的不足之处。 在做毕业设计期间,我遇到了很多问题,在这里,我最要感谢我的导师王允龙老师,在我毕业设计的每个阶段,他都认真的帮助我们。从查阅资料、设计方案的修改和确定、中期检查、后期的硬件电路仿真到实物制作的整个过程中都给予我细心的指导。王老师尽其所能来帮助我们,工
36、作认真负责。其次要感谢张院长和各位指导老师,毕业设计从选题、开题报告、中期检查到最后的答辩工作量繁琐而庞大,而这完全离不开他们的悉心安排和指导。当然我还要感谢为我的毕业设计给予帮助的所有同学,他们给予了我很大帮助。要考虑的事情很多,遇到的问题也多。在我最困惑和无助时,我问他们问题,他们都很耐心的教会了我很多专业知识,感谢他们无私的帮助。毕业设计是对我们知识运用能力的一次全面的考核,是大学里最重要的一门课。相信这是我人生路上一笔宝贵的财富,助我扬帆起航。参 考 文 献1、 黄涛鸡舍灯光控制器的正确使用J. 现代畜牧兽医,2004第12期2、 盛南岭,李士光.鸡舍电子智能补光器
37、的制作J. 电子制作, 2007第9期3、丁元杰单片微机原理及应用3. 机械工业出版社,2010年3月4、 刘湘涛,江世明单片机原理与应用电子工业出版社,2006年8月5、 何立民单片机高级教程北京航空航天大学出版社,2004年7月6、 刘军,汪烨,吕红芳单片机原路与接口技术华东理工大学出版社,2006年8月7、 刘文涛.单片机开发实例清华大学出版社,2005年9月8、 吴金戌,郭庭吉8051单片机实践与应用清华大学出版社,2002年9月附录A 电路原理图附录B课题程序清单/*/duan00-duan05 依次存放的是年月日,时分秒开始时间存于24c02的0x10-0x15
38、单元,关闭时间存于0x20-0x25单/*/#include"reg52.h"#include"math.h"#include"intrins.h"#include"clock.h"#include"eeprom.h"#define uchar unsigned char#define uint unsigned int#define M 100#define N 50#define D 130#define U 200#define ON 0#define OFF 1sbit led_cs=P
39、11;sbit clk=P25;sbit dat=P26;sbit key1=P07;sbit key2=P06;sbit key3=P05;sbit key4=P04;sbit key5=P03;sbit key_cs=P27;sbit jdq=P15;/0-9,a,b,c,d,e,g,.,p,i,d,t,s,c,u,black,0,L,p,h/*uchar code led_code=0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xd8,0x80,0x90, 0xfe,0xfd,0xfb,0xf7,0xef,0xbf,0x7f,0x8c,0xf9,0xa1, 0x
40、87,0x92,0xc6,0xa1,0xff,0xc0,0xc7,0x8c,0x89,0xbf, 0xa3,0xa7,0x87,0x86,0xb7; /"o","c"," t",E,=,open-close 30,31,32*/uchar code led_code=0x03,0x9f,0x25,0x0d,0x99,0x49,0x41,0x1b,0x01,0x09, 0xfe,0xfd,0xfb,0xf7,0xef,0xbf,0x7f,0x8c,0xf9,0xa1, 0x87,0x92,0xc6,0xa1,0xff,0xc0,0xc7
41、,0x8c,0x89,0xbf, 0xc5,0xe5,0xe1,0x61,0xed; /"o","c"," t",E,=,open-close 30,31,32uchar code bit_cs=0xff,0xff,0xff,0xef,0xf7,0xfb,0xfd,0xfe;bit alte;uchar i,j;uchar shift=3,next,gene8;uchar idata sec_05,ss,key_value;char idata middle;uchar idata duan36;/duan用来存放设置的各工作时段?uchar idata addr; /#uchar idata sec,func;void dis_1302();void display();void scankey();void dis_time();void Wx_164(uchar m) uchar i;for(i=0;i<8;i+)clk=0; if(m&0x01) dat=1; else dat=0; clk=1; m>>=1
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- AutoCAD机械制图应用教程(2024版)课件 项目2 图形的绘制与编辑
- 长期卧床患者褥疮的预防策略
- 捣谷平台AI创作挑战每月主题参与赢取积分奖励
- 2024-2025学年公务员考试《常识》自我提分评估【模拟题】附答案详解
- 2024-2025学年度燃气职业技能鉴定考前冲刺测试卷(培优A卷)附答案详解
- 2024-2025学年临床执业医师每日一练试卷及完整答案详解(名师系列)
- 2024-2025学年度公务员考试《常识》高频难、易错点题附答案详解(能力提升)
- 2024-2025学年园林绿化作业人员通关考试题库及1套完整答案详解
- 2024-2025学年全国统考教师资格考试《教育教学知识与能力(小学)》预测复习含答案详解(新)
- 2024-2025学年度信阳航空职业学院单招考试文化素质物理复习提分资料及完整答案详解【夺冠系列】
- 胸膜疾病讲解
- LY/T 1278-2011电工层压木板
- GB/T 6422-2009用能设备能量测试导则
- 人工智能的决策支持和智能决策支持系统课件
- 发展汉语初级读写2第一课-一学就会课件
- 红曲的发展与研究课件
- 中国个省级行政区轮廓图
- 微积分学课件:3-1微分中值定理
- 第二语言习得入门完整共7units课件
- 多媒体技术ppt课件(完整版)
- 碳中和承诺对化工意味着什么
评论
0/150
提交评论