单片机智能电子钟(编辑修改稿)内容摘要:
是一句程序的修改或诞生,但那种收获的感觉很暖人心。 8 参考文献 《单片机原理与应用》 倪云峰 主编 《 51 单片机 c 语言教程》 郭天祥 主编 《 51 单片机原理与应用》 陈海宴 主编 《单片机 c 语言应用 100 历》 王东锋 主编 附录 项目设计 评 语 项目设计 成 绩 指导教师 (签字) 年 月 日 程序 include define uchar unsigned char define uint unsigned int define ulong unsigned long uchar code table[]=2020:01:01 000。 uchar code table1[]= 00:00:00 00:00。 uchar code table2[]=0123456789。 sbit lcd_rs =P3^3。 //定义 LCD 端口 sbit lcd_rw=P3^4。 sbit lcd_en=P3^5。 sbit Sclk=P2^6。 9 sbit Io=P2^7。 sbit Rst=P2^5。 sbit S1=P1^0。 //菜单键 sbit S2=P1^1。 //加键 sbit S3=P1^2。 //减键 sbit S4=P1^3。 //退出菜单键 sbit ss=P1^4。 //秒表键,第一次启动,第二次暂停,第三次清零 sbit FMQ=P2^3。 void yue31()。 //31 天的月份函数 void yue30()。 //30 天的月份函数 void yue29()。 //29 天的月份函数 void yue28()。 //28 天的月份函数 void Timing()。 //闹钟设置 void miaobiao()。 //秒表函数 uchar count, k1num。 //声明秒的变量 char shi,fen,miao。 //声明时分秒 uint nian, yue,ri,ji=0,mm=0。 //声明年月日,秒表计数,和秒表按键次数 uchar f,s。 //定时器 / void delay(uchar z)//延时函数 { uchar x,y。 for(x=z。 x0。 x) for(y=110。 y0。 y)。 } void write_(uchar )//lcd 写指令 { lcd_rs=0。 lcd_rw=0。 lcd_en=0。 P0=。 delay(5)。 lcd_en=1。 delay(5)。 lcd_en=0。 } void write_data(uchar date)//lcd 写数据 { lcd_rs=1。 lcd_rw=0。 10 lcd_en=0。 P0=date。 delay(5)。 lcd_en=1。 delay(5)。 lcd_en=0。 } void miaobiao(char kk)//秒表函数 { uchar biao_bai,biao_shi,biao_ge。 biao_bai=kk/100。 biao_shi=kk%100/10。 biao_ge=kk%100%10。 write_(0x80+13)。 write_data(table2[biao_bai])。 write_(0x80+14)。 write_data(table2[biao_shi])。 write_(0x80+15)。 write_data(table2[biao_ge])。 write_(0x0c)。 } void write_fsm(uchar add,uchar date)//计算时分秒位 { uchar shi,ge。 shi=date/10。 ge=date%10。 write_(0x80+0x40+add)。 write_data(0x30+shi)。 write_data(0x30+ge)。 } void write_nyr(uchar add,uchar date)//计算月日位 { uint shi,ge。 shi=date/10。 ge=date%10。 write_(0x80+0x00+add)。 write_data(0x30+shi)。 write_data(0x30+ge)。 } void write_nian(uchar add,uchar date)//计算年位,年是百位 11 { uint bai,shi,ge。 bai=date/100%10。 shi=date/10。 ge=date%10。 write_(0x80+0x00+add)。 write_data(0x30+bai)。 write_data(0x30+shi)。 write_data(0x30+ge)。 } void jiaxian()//设置键盘加显 { if(k1num!=0) { if(S2==0) { delay(10)。 if(S2==0) { while(!S2)。 //松手检测 if(k1num==1) { miao++。 if(miao==60) miao=0。 write_fsm(8,miao)。 //write_(0x0e)。 write_(0x80+0x40+8)。 } if(k1num==2) { fen++。 if(fen==60) fen=0。 write_fsm(5,fen)。 write_(0x80+0x40+5)。 } if(k1num==3) { shi++。 if(shi==24) shi=0。单片机智能电子钟(编辑修改稿)
相关推荐
硬件的设计 基本设计原理 本设计是基于 ATMEL 公司生产的 AT89C51 单片机为核心的数字频率计,是利用该 51 单片机内部的定时 /计数器来完成待测信号频率的测量。 AT89C51 单片机内部具有 2 个 16 位的定时 /计数器 T0 与 T1,其工作方法可以通过编程来实现所需的定时 /计数与产生计数溢出中断要求的功能。 定时 /计数器 T0 与 T1 的核心都是 16位的加 1
~+15V)。 GND:地。 2 V RE F8G ND3V C C20CS1W R 12DI 34DI 25DI 16D1 07RF B9G ND10IO UT 111IO UT 212DI 713DI 614DI 515DI 416X F E R17W R 218IL E (B Y 1 /B Y 2 )19U1DA C08 3 2 图 8 DAC0832 芯片图 ( 3) LM339 芯片
效,用完成单片机的复位初始化操作。 XTAL1 和 XTAL2:外接晶体引线端。 当使用芯片内部时钟时,此二 引线端用于外接石英晶体和微调电容;当使用外部时钟时,用于接外部时钟脉冲信号。 P0 口: P0 口为一个 8 位漏极开路双向 I/O 口,当作输出口使用时,必须接上拉电阻才能有高电平输出;当作输入口使用时,必须先向电路中的锁存器写入 “ 1” ,使 FET 截止,以避免锁存器为 “ 0”
经成熟,正在获得广泛应用。 目前在数字领域和通信领域正在发生一场数字化革命。 DSP 在其中扮演很重要的角色,它为新体制新算法和新原理提 供了最佳的实现条件。 主要研究内容: MATLAB 是主要适用于矩阵运算和信息处理领域的分析设计 ,它使用方便 ,输入简捷 ,运算高效 ,内容丰富 ,并且很容易由用户自行扩展 .MATLAB
灯控制,而加拿大多伦多市于 1964 年完成了计算机控制信号灯的实用化,建立了一套由 IBM650 型计算机控制的交通信号协调控制系统,成为世界上第一个具有电子数字计算机城市交通控制系统的城市。 这是道路交通控制技术发展的里程碑。 可以说,在近百年的发展中,道路交通信号控制系统经历了手动到自动,从固定配时到灵活配时,从无感应控制到有感应控制,从单点控制到干线控制,从区域控制到网络控制的长远过程。
程序 LINE 设定显示屏的主要参数 .让时间显示在上一行且只显示一个时分秒,如“ 12: 12: 12PMXQ1”,不造成显示多个的后果。 NCD 为常函数表,将 0 A、 P、 M、 X、 Q 数字 和字母 依次存放到以左边标号为起始地址的存储单元中。 TIME 中就是将时分秒的十位、各位分别赋予 R0, 还有判断 50H 中是 00H 还是 0FFH,如果是 00H 就显 示上午 AM