版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、淮阴工学院毕业设计说明书(论文)第3页共33页1绪论1. 1课题的意义单片机控制照明电路具有自动化,智能化等特点。这样 ,白炽灯就会按照人们设 计的程序工作,从而满足人们的要求。此外,单片机不仅便宜,适应性也强,广泛应 用于智能仪表,数据采集系统,控制系统等许多场合。在灯光控制方面,随着社会的 不断发展,人们希望灯光不仅作为一种单调的照明工具,还能有更多的变化。如灯光 亮度可调,自动定时开关灯,尽可能省电等等。本设计主要用于鸡舍的灯光控制。课 题涉及单片机,数字电路,电力电子等。这为我们运用所学知识提供了很好的磨练机 会。近年来,我国养殖业得到了快速发展。为使鸡多产蛋,肉鸡生长加速,除了精心
2、喂养外,鸡舍每天应保证16h的光照,仅靠自然光照不能满足需要。通常鸡舍在黎明 和傍晚开灯,以延长光照时间。目前,多数养鸡场鸡舍的灯光扔由人工用闸刀控制, 傍晚鸡舍光线变暗时开灯,晚上9点左右关灯,黎明前5点左右再开灯,天亮后再关灯, 依靠人工手动控制有不少弊端,现已有一些鸡场的灯光控制采用定时自动开关控制, 可节省人力,开关时刻也相对准确。1. 2单片机照明控制的应用前景及趋势单片机控制范围大,大多数用于大型场合,适用于集中控制可以节省大量的时间 和人力资源。对于普通用户而言,则实用性不高。首先,小型用户操作照明控制系统 就比较困难,不能充分发挥该系统的作用。其次,小型用户本身管理难度不大,即
3、使 使用手动开关也不会占用他们太多的时间。因此他们还是会选择普通开关,而不是单 片机控制的照明系统。单片机照明系统的应用依然不容乐观。这就要求该系统必须向 小型化、易操作的方向发展。进而满足广大用户的需求。2. 3课题研究方向本设计中使用mcs-51单片机实现对养鸡场灯光的夜间间歇控制,使其能满足白 天不亮,夜间亮,亮与灭是间歇的。另外,开灯,亮与灭以及渐熄的时间长短是可调的。这一系列功能是通过软件与硬件相结合方法来完成的。根据设计的不同要求,所 有的控制设定都可以进行相应地改变。这个设计的目的是用于鸡舍的灯光控制,因为 灯光对肉鸡的生长至关重要,因此控制好灯光可让鸡更好的生长。2总体设计2.
4、1 设计要求本设计利用单片机为控制核心,制作一个简易的灯光控制系统,实现时间参数的 实时显示,白天熄灯;夜间开关灯可交替。开灯时间可在15分钟到1小时之间可调;关灯时间在2小时到6小时之间可调。选才? at89s52作为核心控制系统、ds1302e片 提供时钟定时功能、四脚按键以及 4只数码管作为显示。设计要求:1、在手动控制状态,通过设在面板上的按钮可以随时进行手动控制开关灯、定 时等操作。2、在自动控制状态,系统会按照所设计的程序有条不紊的执行,不需要人工 24小 时看守。3. 2系统结构本系统主要是复位电路、时钟电路模块、键盘电路模块、显示电路、照明电路这 几个部分组成的。其中主要用到:
5、单片机、数码管、时钟芯片、按键、继电器等部件。 根据灯光控制器的功能要求,以 at89s5为核心控制电路系统。系统总体结构框图如 图1所示。(1)单片机芯片,at89s52所要求的电压比较低,能以3v的超底压工作,但性 能却很优越,可以编程也可以擦除。单片机的 eeprom擦除重复1000次,而cpus 诸多功能模块组合在一个闪存芯片里面,at89s52单片机则就显得更为轻巧,能为更多的嵌入式系统提供合适的解决方法。(2)时钟芯片,选择ds1302时钟芯片。单片机计时,要用到计数器占用硬件资 源,还要设置中断、查询等操作也会占用单片机资源。时钟芯片ds1302能很好的解 决这个问题。(3)显示
6、模块,选用由发光二极管和小数点形成的“8”字型数码管。它具有价格低、优良的配置、而且很方便与单片机接口等顺应人们需求的优点。驱动方式选择 动态显示。(4)按键模块,选择独立式按键。本设计用到五个按键,分别是选择键、加键、 减键、确定键以及定时开关键。图1系统结构框图3硬件设计4. 1芯片及元器件介绍3.1.1 at89s52单片机芯片单片机引脚功能介绍vcc电源电压。gnd接地。poo:此端口占有8位,而且不是单向的。如果内存芯片连接外部,可以用来作 为一种低8的地址线和数据线;在 ro蝙程状态下,它是输入的,而在验证状态下, 则是输出的。最多能够驱动8个lsttl门电路。p1 口:此端口占有
7、8位,而且不是单向的,既拥有上拉电阻又可以充当i/o 口在rom®程和验证的状态下,只占有低 8的地址。p2 口:此端口占有8位,而且不是单向的,既拥有上拉电阻又可以充当 i/o 口 如果单片机连接外部的存储器,它送出高 8位的地址。在ro蝙程和验证的状态下, 它将占有高8位的地址,同时还可以接受控制信号。能作用于 4个lsttl的门电路。淮阴工学院毕业设计说明书(论文)第5页共33页p3 口:此端口占有8位,而且不是单向的,既拥有上拉电阻又可以充当i/o 口能作用于4个lsttl的门电路。此引脚还有第二功能,在日常生活里,大多数情况下 都不会用第一功能。具体情况如下表所示:p3.0
8、 rxd(串行接收)p3.1 txd(串行发送)p3.2 into(外输0个中断)p3.3 int1(外中断1输入)p3.4 t0(定时0计输入)p3.5 t1(定时1计输入)p3.6 wr 非(外 ramw选)p3.7 rd 非(外 romft选)p3 口还可用于接板信号。rst复位输入接口,在高电平的时候才能工作。在振荡器启动的情况下,高电平 显示能够超过两个周期,就可以复位。当89c51能够工作后,ale端将放出只有正常振荡六分之一频率的正向脉冲,如 果示波器能够探查出,那么就可以确定该芯片是好的。51单片机连接外存储时,p0可以占有地址,也可以作用于数据信号。此时就要 看有没有ale信
9、号了,一旦有,那么低8位地址就是有用的。反之,则是传输的数据 信号。ale信号可在外部的情况下输出时钟或者是定时的信号。但要记住的是,如果接 到外存储,将会自动过滤掉一个 ale的脉冲。可以驱动8个lsttl门电路。pse阳上可以判断外程序存储的读选端口。当访问外部的程序存储器时,一旦取 得指令,一个机器周期内要有两次有效的输出信号。ea非/ vpp:内、外ro延择。只有此端口为高电平,cput会访问内程序存储; 当然超过容量的特殊情况下,会自动接到外程序存储。反之低电平时,cp必会去理会内部的程序存储,只会关注外部的程序指令。但要记住的是,如果是编程lb1的话, 在复位过程中会将此端口的状态
10、进行锁存。xtal1 一个可以接外晶和电容的端口。在外振荡的状态下,此引脚外部输入的 是时钟脉冲。xtal2另一个可以接外晶和电容的端口。在外振荡的状态下,此引脚是悬浮的。3.1.2继电器本系统中电磁继电器作为主要的控制器件。由于本系统中,照明电路中需要用到 继电器来控制电路。把继电器的一端接上一个可以发光的二极管和一个一千欧姆大小 的电阻,这里的电阻起到了限流的作用。如果在电路运行的时候,发光二极管发光, 此时继电器的线圈上有电流。同时,在电路中还需要并联一个普通的二极管。它的作 用主要是使得一些元器件能够正常工作。本电路采用5v大小的继电器。3. 2 时钟电路单片机系统里面都有晶振,他就好
11、比单片机的心脏,在单片机系统里面他是不可 缺少的一部分,它全称晶体振荡电路。把定时元件外接在xtal1 xtal卯脚上,使单片机内部的振荡电路产生自激振荡。 经常使用的内部时钟方式是选用电容和晶振组成 的并联谐振回路。振荡晶体可在1.212mhze围内选择电容大小可以起到频率微调的 作用。本系统中,选用30pf大小的电容,外接32. 7 6 8 khz晶振,vcc1为后备电源, vcc2为主电源。即使主电源关闭,时钟也能照常运行。vcc1或vcc2两者中较大的会自 动给ds1302s行供电。如果在传送过程中rsts为低电平,就会终止此次数据传送, i/o引脚变为高阻态。上电后,在 vcc>
12、;2v之前,rst要保持低电平。只有在sclk为 低电平时,才能将rsts为高电平。scl©时钟输入端。电路如图2所示。图2时钟电路3. 3复位电路单片机的初始化操作首先需要复位,然后才是程序初始化。它的主要是为了让程 序从at89s52的初始地址0000h处开始执行。除系统的正常初始化状态外,有时因为 操作的错误或者程序的运行发生错误,系统会发生死锁。这个时候就需要使用按复位键,重新启动系统,这样可以有效的解决死锁状态。at89s52单片机内部自带复位电路,resets脚是高电平的时候有效,可以通过自动复位或手动复位两种复位方式 来进行复位操作。本设计系统中是低电平有效复位,用户开
13、机的时候就启动复位操图3复位电路淮阴工学院毕业设计说明书(论文)第7页共33页3. 4键盘电路键盘电路如图4所示,单片机p2口用来信号输入,当s1,s2, s3, s4, s5开关 其中的任何一个按下时,其对应的 p2.0, p2.1 , p2.2, p23p2.4 口就会为低电平, 然后进行单片机相应的操作。具体实现的功能为:s1选择所需调整的时间参数,s2一加时间,s3 一减时间,s4 确定参数设定,s5 控制定时的开与关。按确定键将依次显示时间和各个定时时段, 接着按选择键就可以选择要调整的时 问(时、分、秒)按加(减)键就可以调整时间或重新定时。最后,按下确定键,就 完成了对参数的设定
14、。调整时间步骤如下:1按下确定键,数码管显示当前时间,并停留不动2 按下选择键,数码管显示所选时间,两位数字闪动。3 按加键或减键,自由调整时间,长按则加快增加或减少。调整定时和调整时间方法一样。3. 5数码管显示电路显示电路是时钟模块中最为重要的部分,因为端口的问题以及动态显示方式的优越性,本系统采用的一个四位数码管,使用共阳极接法以及动态显示,以三极管作为 驱动进行数码管的显示。在本设计中的数码管是显示当前时间和定时时间,因为按键设置有加键和减键, 所以先要对数据进行存储然后进行累加或减。我们把数码管先连接到74ls373锁存器上,然后把锁存器连接到单片机 at89s52上。在本系统中数码
15、管的所有段选码都由单片机的p1 口给出,位选信号由p0.0、p0.1、p0.左口p0.3口控制。在每一时刻,4位led 可能会显示相同的内容,所以要用扫描显示来使一位亮而其他三位暗,周期为2ms。由于采用的是共阳极方式,低电平才有效,则要其中一个基极为低电平,三极管导通, 集电极为低电平,位选打开,数码管显示。而段选码由p1 口8位i/o口控制,高电平时对应的段被点亮。在此瞬间,段选码由 p2口输出相应的字符电平,p0.0、p0.1、p0.2 和p0.3口输出位选码,来保证显示相应的字符。以此类推,每位进行显示后延时一会, 构成视觉暂留,这样看起来就像是一起显示出来的。如图5所示。3. 6照明
16、电路照明电路采用白炽灯进行照明,因为白炽灯额定电压为220v,可根据实际情 况并联多个。继电器k1受时钟电路控制。照明灯泡使用继电器作为开关驱动照明电路。 j1开关断开时,继电器工作;当j1导通时,继电器控制电路失效,实现人工手动控制。 三极管为使继电器工作股接在继电器的控制端。由于单片机输出的是低电平信号有效 股选用pnf®三极管,当单片机输出低电平是三极管导通,电流流入继电器,使继电器工作,从而控制照明电路的亮灭,其电路连接图如图 6所示:淮阴工学院毕业设计说明书(论文)第9页共33页3. 7单片机系统电源设计+5v电压源主要为元器件和工作电路提供稳压源。电源(vcc)是整个系统
17、正常 工作的根本。过大的电源电压会更大程度的缩短芯片的寿命,甚至会损坏芯片和其它 元器件;过小的电源又不能驱动电路工作。所以设定电源电压合适的值非常重要的。本电路主要芯片工作的电压都在+5v左右,因此在整个电路板中采用 w7800三端稳 压芯片将+12v的电压整形为+5v直流电压。用w7800设计的+5v稳压电源电路图如图7所示:图7供电直流电源淮阴工学院毕业设计说明书(论文)第#页共33页4软件设计4. 1主程序流程框图本设计采用c语言,在主程序中,主要实现程序初始化,按键处理,时间的动态 显示。当有键按下时,进入按键处理程序。4. 2延时子程序设计延时程序主要对数码管的显示和按键的扫描进行
18、延时操作。延时的时间可选5ms- 10ms具体程序如下:void delay(uint num)while( -num );4. 3 时间读取和显示子程序设计时间的读取和显用ds1302寸钟芯片来读取时间,然后依次显示在四位数码管上淮阴工学院毕业设计说明书(论文)第11页共33页示流程图,如图8和图9所示。图8 ds1302读取时间流程图图9 led显示时间流程图淮阴工学院毕业设计说明书(论文)第15页共33页4.3.1显示数据子程序 数码管显示初始化程序如下 void initlcm(void)初始化 delay_xms(10);/功能设置:一次送8位数据。 sendcmd(0x04);点设
19、定:显示字符/光标从左到右移动 sendcmd(0x0f);显示设定:开显示,显示光标和当前显示位并闪动 sendcmd(0x01);/ 清 ddram sendcmd(0x02);/ddramft 址归位 sendcmd(off_cursor);/ 关光标4. 4 ds1302驱动程序/寄存器宏定义#define write_second0x80#define write_minute0x82#define write_hour0x84#define read_second0x81#define read_minute0x83#define read_hour0x85#define writ
20、e_protect0x8e /初始化ds1302void 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 = acca7;/管脚定义sbit sclk = p3a5;sbit dio= p3a6;sbit ce = p3a
21、7;/ ds1302时钟信号/ ds1302数据信号/ ds1302 片选/地址、数据发送子程序void write1302 ( unsigned char addr,dat )(unsigned cha门,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;/发送数据for ( i
22、=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&0x01);/每次传输低字节addr >&g
23、t;= 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 (datl);4. 5扫描键盘子程序设计键盘的操作,无论是按键或键盘都是利用机械点的合、断作用。由于机械触点的 弹性作用,cpk能对键的一次闭合,做出两次键输入处理,此时必须消除抖动的影 响来防止这种错误发生。去除抖动有硬、软件两种方法。如果按键较多,最好不要
24、采用硬件去抖。而软件 去抖动可以节省硬件花费,实用性和有效性高,所以常采用软件的方法进行消抖。进行初始化后,实际键值参数变为1fh (连接的是p2 口的0,1,2,3 , 4,初始化即为此值),由于抖动的原因,为确保是有键按下,则必须进行两次比较。第一次扫 描,p2、1fh相等则说明没有按下键,不相等则用软件消除抖动,延迟10毫秒后进行第二次。若相等则说明之前的现象并不是按键所引发的,如果不相等则表明确实有按 键这个动作发生。具体代码为:void key()static uchar key_new;key_can = 20;p2 |= 0xf0;if(p2 & 0xf0) != 0xf
25、0)/ 按键按下(第一次)delay(10);if(p2 & 0xf0) != 0xf0) && (key_new = 1)/确次是按键按下(第二次)key_new = 0;switch(p2 & 0xf0)淮阴工学院毕业设计说明书(论文)第29页共33页case 0xe0: key_can = 1; break;case 0xd0: key_can = 2; break;case 0xb0: key_can = 3; break;case 0x70: key_can = 4; break;elsekey_new = 1;.键盘主要有独立式和矩阵式两种,独立式按
26、键电路配置灵活,弊端是 i/o 口浪费 较大,适用于键盘较少的电路。键盘程序作为主程序的一部分,通过查询方式读取键 盘动作,根据读取的值,键盘进行相应操作处理程序。 键盘扫描子程序流程图如图10 所示。图10键盘扫描子程序流程图4. 6时钟子程序#include <regx52.h>#define uchar unsigned char#define uint unsigned intuchar dispcode= 0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71,0x00
27、; /定义 0 至u 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;/定时器0工作方式2th0=0x06;/每250us中断一次tl0=0x06;tr0=1;/启动定时器0et
28、0=1;/定时器0中断允许ea=1;/cpu开中断while(1)if(p0_0=0)延时检查是否是p0_0被按下如果被按下秒就加1 for(i=5;i>0;i-) for(j=248;j>0;j-); / if(p0_0=0)/ second+; / if (second=60) second=0; dispbuf0 =second%10; / dispbuf1 =second/10; / while (p0_0=0);/if(p0_1=0) for(i=5;i>0;i-) for(j=248;j>0卜); if(p0_1=0)minite+;if (minite=6
29、0)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=0); void t0 (void) interrupt 1 using 0p1=dispcodedispbufdispbitcnt;p3=dispbitcodedispbitcnt;dispbi
30、tcnt+;if(dispbitcnt=8)dispbitcnt=0;存放秒的个位 存放秒的十位 等待p0_0变高/定时器0中断服务程序/为位选码/为段选码tcnt+;此时有一秒钟了( 4000*250us)if(tcnt=4000)/tcnt=0;second+;if(second=60)second=0;minite+;if(minite=60)minite=0;hour+;if(hour=24)hour=0;dispbuf0=second%10;dispbuf1=second/10;dispbuf3=minite%10;dispbuf4=minite/10;dispbuf6=hour%1
31、0;dispbuf7=hour/10;5原理图绘制和仿真本次论文设计的原理图绘制所采用的软件是protel99se ,而原理图仿真采用的是proteus 软件。5. 1电路实现的基本步骤查阅各种书籍及 网络.选择单片机 及方案4protel绘画 电路原理图图15电路设计步骤proteus仿真进行程序调试和 烧录1)查阅各种书籍及网络。首先查阅相关资料,对这个设计进行由浅至深的了解2)选择单片机及方案。对此课题进一步了解后,我开始考虑选择什么单片机及 用什么方案来做此设计。3)电路原理图:利用电路设计软件,将方案用标准的电路原理图表示,为电路板图的生成提供依据。4)仿真原理图:根据电路原理图,利
32、用电路仿真软件,画出仿真图。5 )程序的调试和烧录:根据仿真时的运行状态和过程,检查编写的程序是否存 在问题并进行调试,最终把已调试好的程序烧录到单片机里。5. 2原理图的绘制1)创建一个新的设计文件管理库。2)加载元件库3)绘制电路图4)修改元件参数5)保存原理图最后完成系统原理图的设计,见附录 a5. 3仿真原理图的绘制1)创建一个新的设计文件管理库2)加载元件3)绘制仿真电路图4)修改元件参数5)保存原理图6)仿真电路图调入已用keil软件编译好的目标代码文件:*hex,之后就可以在proteus的原 理图中看到模拟的实物运行状态和过程。结论本设计是基于单片机的灯光控制系统,核心器件采用
33、at89s52单片机芯片,实现对养鸡场灯光的夜间间歇控制,使其能满足白天不亮,夜间亮,亮与灭是间歇的。另 外,开灯,亮与灭以及渐熄的时间长短是可调的。ds130现供时钟电路,采用双电源供电,具有掉电自动保存功能。通过软件与硬件相结合方法来实现这一系列功能,控制比较灵活,所有的控制设 定都可根据设计的不同要求而有所改变。当然,由于时间的关系,本设计也存在很多的缺陷,时间显示未直接用液晶显示 屏,而是用了数码管和发光二级管显示,这些缺陷都有待改进。通过这次设计,我获益匪浅。态度决定高度,细节决定成败。在毕业设计过程中, 每天都会遇到这样那样的问题,不管是硬件设计,还是软件设计,哪怕一点点失误或 是
34、粗心就会导致整个设计功亏一簧。我们不仅需要努力学习相关知识,熟练掌握相关 技巧,还要注重培养科学严谨的工作态度,这是至关重要的。转瞬间,大学四年即将结束了,同时经过大半学期的努力,终于在此刻完成了大 学最后一门课-毕业设计。这门课是我大学所学的最难的一门课,以前我从没想到这门课学的这门艰难,我 比以前的课程都要努力和辛苦,这不是简简单单的一个课程,它体现了很多东西,勤 奋、辛劳与毅力。以前的课程大多是学理论,只要好好看书就可以考的好,可毕业设 计不一样,它不仅要你好好看书,更多的是要把大学所学的专业知识要融会贯通了才 能做出好的设计,通过这门课,我对大学所学知识有了更加深刻的理解,在这期间,
35、我受到了很多阻碍,专业知识不是很扎实,毅力不够,吃苦耐劳精神不够。通过这次 毕业设计,我相信自己更清楚的认识到自己的不足之处。在做毕业设计期间,我遇到了很多问题,在这里,我最要感谢我的导师王允龙 老师,在我毕业设计的每个阶段,他都认真的帮助我们。从查阅资料、设计方案的修 改和确定、中期检查、后期的硬件电路仿真到实物制作的整个过程中都给予我细心的 指导。王老师尽其所能来帮助我们,工作认真负责。其次要感谢张院长和各位指导老 师,毕业设计从选题、开题报告、中期检查到最后的答辩工作量繁琐而庞大,而这完 全离不开他们的悉心安排和指导。当然我还要感谢为我的毕业设计给予帮助的所有同学,他们给予了我很大帮助。
36、 要考虑的事情很多,遇到的问题也多。在我最困惑和无助时,我问他们问题,他们都 很耐心的教会了我很多专业知识,感谢他们无私的帮助。毕业设计是对我们知识运用能力的一次全面的考核,是大学里最重要的一门课。 相信这是我人生路上一笔宝贵的财富,助我扬帆起航。参考文献1、黄涛.鸡舍灯光控制器的正确使用j.现代畜牧兽医,2004第12期2、盛南岭,李士光.鸡舍电子智能补光器的制作j.电子制作,2007第9期3、丁元杰.单片微机原理及应用3.机械工业出版社,2010年3月4、刘湘涛,江世明.单片机原理与应用.电子工业出版社,2006年8月5、何立民.单片机高级教程.北京航空航天大学出版社,2004年7月6、刘
37、军,汪炜,吕红芳.单片机原路与接口技术.华东理工大学出版社,2006年8月7、刘文涛.单片机开发实例.清华大学出版社,2005年9月8、吴金戌,郭庭吉.8051单片机实践与应用.清华大学出版社,2002年9月附录a电路原理图lll-j“1型±1s小s力.与之二扫;后附录b课题程序清单/*/duan00-duan05依次存放的是年月日,时分秒开始时间存于24c02的0x10-0x15单元,关闭时间存于 0x20-0x25单/*/#include"reg52.h"#include"math.h"#include"intrins.h&quo
38、t;#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 1 sbit led_cs=p1a1;sbit clk=p2a5;sbit dat=p2a6;sbit key1=p0a7;sbit key2=p0a6;sbit key3=p0a5;sbit key4=p0a4;sbit key5
39、=p0a3;sbit key_cs=p2a7; sbit jdq=pw5;/0-9,a,b,c,d,e,g,.,p,i,d,t,s,c,u,black,0,l,p,h/*ucharcodeled_code=0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xd8,0x80,0x90,0xfe,0xfd,0xfb,0xf7,0xef,0xbf,0x7f,0x8c,0xf9,0xa1,0x87,0x92,0xc6,0xa1,0xff,0xc0,0xc7,0x8c,0x89,0xbf,0xa3,0xa7,0x87,0x86,0xb7;/"o","c
40、","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,0x8g0x89,0xbf, 0xc5,0xe5,0xe1,0x61,0xed;/"o","c",t",e,=,open-close 30,31,
41、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;f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f
42、f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f/ /tt7t7t7t7t7t7t7t7t7t7t7t7t7t7t7t7t7t7t,tt,tttt,tt,tt,tttt,“ tttnttttnttttttnttttnttttttttt/ / tf tf t7ff tf tf t7ff tf t7ff tf t7ff tf tf t7ff tf t7ff tf t7ff tf tf
43、 t7ff tf t7ff tf t7ff tf tf t7ff tf t7ff tf t7ff tf tf t7ff tf t7ff tf t7ff tfuchar 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;void delay(uint nn)while(nn-);void dlm
44、s(uchar nn)while(nn-) display。;/=/*void timer1(void) interrupt 3uchar tt;if(tt+>30)tt=0;sec_05+;sec_15+;second+;一 一*/iff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff / /tt7t7t7t7t7
45、t7t7t7t7t7t7t7t7t7t7t7t7t7t,tt,tttt,tt,tt,tttt,“ tttnttttnttttttnttttnttttttttt / / tf tf t7ff tf tf t7ff tf t7ff tf t7ff tf tf t7ff tf t7ff tf t7ff tf tf t7ff tf t7ff tf t7ff tf tf t7ff tf t7ff tf t7ff tf tf t7ff tf t7ff tf t7ff tfvoid dlms_1302(uint nn) while(nn-) dis_1302();.void dis_1302(void) u
46、char i,pp;p0=0xff;for(i=0;i<8;i+)switch(i)case 0: wx_164(0x7f); break;case 1: wx_164(0xbf); break;case 2: if(shift=0)pp+;if(pp<=d) wx_164(0xdf); elsewx_164(0xff);else if(pp=u) pp=0;else wx_164(0xdf);break;case 3: if(shift=0)pp+;if(pp<=d) wx_164(0xef); elsewx_164(0xff);else if(pp=u) pp=0;els
47、e wx_164(0xef);break;case 4: if(shift=1)pp+;if(pp<=d) wx_164(0xf7); elsewx_164(0xff);else if(pp=u) pp=0;else wx_164(0xf7);break;case 5: if(shift=1)pp+;if(pp<=d) wx_164(0xfb); elseif(pp>d)&&(pp<u)if(pp>d)&&(pp<u)if(pp>d)&&(pp<u)if(pp>d)&&(pp&
48、lt;u)wx_164(0xff);else if(pp=u) pp=0;)else wx_164(0xfb);break;)case 6: if(shift=2)pp+;if(pp>d)&&(pp<u)if(pp>d)&&(pp<u)if(pp<=d) wx_164(0xfd);elsewx_164(0xff);else if(pp=u) pp=0;)else wx_164(0xfd);break;)case 7: if(shift=2)pp+;if(pp<=d) wx_164(0xfe);elsewx_164(0xff);
49、else if(pp=u) pp=0;)else wx_164(0xfe);break;)p0=led_codegenei;delay(m);p0=0xff;wx_164(0xff);)void display(void) uchar i;p0=0xff;for(i=0;i<8;i+)wx_164(bit_csi);p0=led_codegenei;delay(d);p0=0xff;wx_164(0xff);)/*=timer0=*/void timer0(void) interrupt 1uchar tt;if(tt+>20)tt=0;sec_05+;sec+;淮阴工学院毕业设计
50、说明书(论文)第33页共33页/-void key_cl(void)if(key_value=2)shift+;if(shift>2) shift=0;middle=duanfuncshift+next;gene2*shift+2=middle/10;gene2*shift+3=middle%10; dlms_1302(50);else if(key_value=3) /next=0表示输入年月 日,/next=3表示输入时分秒。if(sec_05>5) sec_05=5; /5ss=25-sec_05*2; /11middle=duanfuncshift+next;middle+
51、;if(shift=0)if(next=0)if(middle>99) middle=0; else if(next=3)if(middle>23) middle=0;if(shift=1)if(next=0)if(middle>12) middle=1; else if(next=3)if(middle>59) middle=0;if(shift=2)if(next=0)if(duanfunc1=2) if(middle>29) middle=1; elseif(duanfunc1=4)|(duanfunc1=6)|(duanfunc1=9)|(duanfunc
52、 1=11)if(middle>30) middle=1; else if(middle>31) middle=1; else if(next=3)if(middle>59) middle=0; duanfuncshift+next=middle;gene2*shift+2=middle/10;gene2*shift+3=middle%10;for(i=0;i<ss;i+)dis_1302(); /*此句相当于防抖动 */表示输入年月日,表示输入时分秒。else if(key_value=4) /next=0/next=3if(sec_05>5) sec_05=5; /5ss=25-sec_05*2; /11 middle=duanfuncshift+next;middle-;if(shift=0)if(next=0)if(middle<0) middle=99; else if(next=3)if(middle<0) middle=23;if(shift=1)if(next=0)if(middle<1) middle=12;else if(next=3)if(middle<0) middle=59;if(shift=2)if(nex
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- T/SACE 004-2019苯酚焦油回收苯乙酮
- 财务助理会计核算绩效评定表
- 保险销售顾问保险产品销售策略手册
- 数据分析师数据分析准确性与时效性绩效衡量表
- 济南市历城区2026年中考数学模拟试题含解析
- 环境清洁消毒知识考试试题及答案
- 电商平台数据安全保护方案
- 聚氯乙烯塑料配制工安全意识模拟考核试卷含答案
- 游戏设计师及策划人员绩效评估表
- 音像制品和电子出版物复制员安全检查强化考核试卷含答案
- 2026-2027学年高二语文上册第一次月考试卷原卷解析
- 成年人幽门螺杆菌感染诊断、治疗与预防临床实践指南(2026版)
- 中国广电山东网络有限公司招聘笔试题库2026
- (一模)2026年河北省高三模拟考试生物试卷(含答案解析)
- 2026年国考公务员考试行测行政执法卷真题试题试卷及答案解析
- (2026年)宫颈癌放疗患者护理查房课件
- 骑楼介绍教学课件
- 2025年政工类职称面试题目答案
- 青岛大学课件
- 乡土文学课件
- 无人机装调与维护
评论
0/150
提交评论