单片机实训内容1602的运用Word文件下载.docx

上传人:b****6 文档编号:17721777 上传时间:2022-12-08 格式:DOCX 页数:12 大小:241.70KB
下载 相关 举报
单片机实训内容1602的运用Word文件下载.docx_第1页
第1页 / 共12页
单片机实训内容1602的运用Word文件下载.docx_第2页
第2页 / 共12页
单片机实训内容1602的运用Word文件下载.docx_第3页
第3页 / 共12页
单片机实训内容1602的运用Word文件下载.docx_第4页
第4页 / 共12页
单片机实训内容1602的运用Word文件下载.docx_第5页
第5页 / 共12页
点击查看更多>>
下载资源
资源描述

单片机实训内容1602的运用Word文件下载.docx

《单片机实训内容1602的运用Word文件下载.docx》由会员分享,可在线阅读,更多相关《单片机实训内容1602的运用Word文件下载.docx(12页珍藏版)》请在冰豆网上搜索。

单片机实训内容1602的运用Word文件下载.docx

三、电路的设计与分析

上图所示为产生五伏电压的电路图。

通过整流滤波所产生的5V电压供给单片机和显示器。

上图所示为单片机控制原理图电路,对单片机89c51写入程序。

进而进行显示时间和通过按钮调节输入的高低电平来调节时间的加减。

程序验证图

四、程序流程图

附录1602的程序:

主函数Main.c

#include<

reg51.h>

#include"

clock.h"

main()

{

lcd_init();

T0_init();

while

(1)

{

CharToAscii();

display();

KeyScan();

}

}

voidT0_ISR()interrupt1

TH0=(65536-50000)/256;

TL0=(65536-50000)%256;

ucCount_ms++;

if(ucCount_ms==10)

flag_flash=0;

if(ucCount_ms>

=20)

ucCount_ms=0;

flag_flash=1;

SecondAdd();

副函数Clock.h

#defineucharunsignedchar

#defineuintunsignedint

sbitRS=P2^0;

sbitRW=P2^1;

sbitE=P2^2;

ucharCanl[16]={"

2011-03-24"

};

ucharTime[16]={"

12:

30:

00"

ucharucHour;

ucharucMinute;

ucharucSecond;

ucharucCount_ms;

ucharucWX=0;

bitflag_flash;

voiddelay(uintx)

while(x--);

voiddelay_ms(ucharx)

uchari;

while(x--)

for(i=0;

i<

125;

i++);

voidwrcommand(uchartemp)

delay(300);

RS=0;

RW=0;

E=1;

P0=temp;

E=0;

voidwrdata(uchartemp)

RS=1;

voidlcd_init()

wrcommand(0x01);

wrcommand(0x38);

wrcommand(0x06);

wrcommand(0x0c);

voidCharToAscii()

if(flag_flash)

Time[4]=ucHour/10+0x30;

Time[5]=ucHour%10+0x30;

Time[7]=ucMinute/10+0x30;

Time[8]=ucMinute%10+0x30;

Time[10]=ucSecond/10+0x30;

Time[11]=ucSecond%10+0x30;

else

switch(ucWX)

case1:

Time[4]='

'

;

Time[5]='

break;

case2:

Time[7]='

Time[8]='

case3:

Time[10]='

Time[11]='

voidlcd_string(uchar*p,ucharflag)

ucharaddr;

if(flag==1)

addr=0x80;

while(*p!

='

\0'

wrcommand(addr);

wrdata(*p);

addr++;

p++;

if(flag==2)

addr=0xc0;

}

voiddisplay()

lcd_string(Canl,1);

lcd_string(Time,2);

voidT0_init()

TMOD=0x01;

ET0=1;

EA=1;

TR0=1;

voidHourAdd()

ucHour++;

if(ucHour>

=24)

ucHour=0;

//DayAdd();

//WeekAdd();

voidHourDec()

if(ucHour==0)

ucHour=23;

ucHour--;

voidMinuteAdd()

ucMinute++;

if(ucMinute>

=60)

ucMinute=0;

HourAdd();

voidMinuteDec()

if(ucMinute==0)

ucMinute=59;

ucMinute--;

voidSecondAdd()

ucSecond++;

if(ucSecond>

ucSecond=0;

MinuteAdd();

voidSecondDec()

if(ucSecond==0)

ucSecond=59;

ucSecond--;

voidB_add()

switch(ucWX)

HourAdd();

break;

case2:

MinuteAdd();

case3:

SecondAdd();

voidB_dec()

HourDec();

MinuteDec();

SecondDec();

voidKeyScan()

ucharKeyValue;

P1=0xff;

KeyValue=P1;

if(KeyValue!

=0xff)

delay_ms(20);

switch(KeyValue)

{

case0xfe:

ucWX++;

if(ucWX>

=4)

ucWX=0;

case0xfd:

B_add();

case0xfb:

B_dec();

case0xf7:

TR0=!

TR0;

}

五、课程设计收获:

2周的课程设计快结束了,通过这次对数字电子钟的设计作,让我了解了电路设计的基本步骤,也让我了解了关于电子时钟的原理和设计理念。

电子课程设计是电类专业学生重要基础实践课是工科专业的必修课。

经过查资料、选方案、设计电路、撰写设计报告、使我得到一次较全面的实践训练。

理论联系实际,提高和培养创新能力,为后续课程的学习,打下基础。

并且在此次的单片机设计过程中,更进一步地熟悉了芯片的结构及掌握了芯片的工作原理和具体的使用方法。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 法律文书 > 起诉状

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1