天津科技大学《微机原理及接口技术》期末结课论文.docx
- 文档编号:12474846
- 上传时间:2023-04-19
- 格式:DOCX
- 页数:13
- 大小:102.16KB
天津科技大学《微机原理及接口技术》期末结课论文.docx
《天津科技大学《微机原理及接口技术》期末结课论文.docx》由会员分享,可在线阅读,更多相关《天津科技大学《微机原理及接口技术》期末结课论文.docx(13页珍藏版)》请在冰豆网上搜索。
天津科技大学《微机原理及接口技术》期末结课论文
2016-2017学年第一学期
《微机原理及接口技术》期末结课论文
学院:
计算机科学与信息工程学院
专业:
计算机科学与技术
学号:
姓名:
日期:
2016年12月12日
电子时钟的设计
一、设计要求及目的
1.电子时钟主控芯片采用AT89C51单片机进行设计;
2.显示采用液晶LCD1602;
3.采用四路独立按键进行时钟设置;
4.通过单片机的定时器配置1秒定时中断。
图1-1整体结构框图
二、实验环境
软件程序编写实验Keil4ForC51,仿真程序使用Proteus7.8。
3、元器件列表
类型
数量
蜂鸣器
1
10uF电容
1
30pF电容
2
LED
1
LCD1602
2
9012
9
10K
1
开关
1
SW-PB按键
4
STC89C52
1
12M
1
表1-1
四、实验原理
在本次设计中,时钟的设置是相当重要的,通过时钟的设置才能获得良好的时钟频率,这个时钟频率是整个软件系统是否能正常有序地运行的关键。
时钟实现可以通过使用时钟芯片或通过单片机内部的定时器来实现。
下面为具体方案:
方案一:
时钟使用时钟芯片实现。
许多类型的时钟芯片,具有相同的原理,内置晶体振荡器和充电电池,同时也有外置晶振的。
现在流行的时钟芯片DS1302,DS1307等时钟芯片可以得到一个准确的时钟走时,用简单的程序来实现具有定时功能的智能开关。
方案二:
由单片机定时器实现。
单片机内部定时器可以实现更准确的时钟时间,1ms的最小定时误差率,可以满足一个电子秒表实现的要求。
虽然增加了编程难度,但是简化了电路、降低了成本。
本次设计中对于时钟精度要求不太高,省去时钟芯片还可以降低成本,虽然编程的难度提高,但为了更好地性价比,采用方案二。
本次设计的计数核心采用AT89C51单片机的定时器中断,采用LCD1602液晶显示器显示信息。
按键设置电子时钟的分钟小时。
图1-2整体原理图
LCD1602电路图
本次设计液晶LCD1602显示部分电路图如图1-3所示,显示器的数据端D0-D7连到单片机上,RW,RS,EB分别与单片机的P2^7,P2^5,P2^6相连,单片机驱动LCD1602将电子时钟信息显示出来。
图1-3显示部分原理图
按键电路图
图1-4按键部分原理图
本设计需要外加按键来设置电子时钟的时间,按键采用低电平有效的方式进行识别,功能键K1~K4功能如下:
K1—进入设置现在的时间K2—设置小时。
K3—设置分钟K4—确认完成设置。
AT89C51电路图
图1-5AT89C51原理图
片机控制模块是整个设计方案的核心。
AT89C51芯片作为该系统的控制部件,它控制了1602液晶显示的内容以及液晶动态显示方式。
单片机最小系统由时钟电路和复位电路构成,这样就可以在接入其他器件,用单片机编程实现对外部器件的控制。
全局复位电路、晶振时钟电路和控制器AT89C51组成了单片机的最小系统,如图1-5所示。
5、程序源代码
#include
#include
#defineucharunsignedchar
#defineuintunsignedint
voidLcd_WrData1(ucharrow,ucharcol,uchar*dat);
uintflag_1ms_value=0;
//按键
sbit_Key_1=P1^0;//设置
sbit_Key_2=P1^1;//小时
sbit_Key_3=P1^2;//分钟
sbit_Key_4=P1^3;//确认
//运行指示灯
sbitLED_R=P3^4;//确认
unsignedcharHour=0;
unsignedcharMinute=0;
unsignedcharSecond=0;
voidLED_Dis_Value(void);
/*---------------------------------------------------
延时函数
-----------------------------------------------------*/
voiddelay(unsignedcharms)//延时子程序
{
unsignedchari;
while(ms--)
{
for(i=0;i<120;i++);
}
}
ucharSet_Flag=0;
voidScan_Key(void)
{
if(!
_Key_1)
{
delay(10);
if(!
_Key_1)
{
Set_Flag=1;
}
while(!
_Key_1);
}
if(!
_Key_2)
{
delay(10);
if(!
_Key_2)
{
Set_Flag=2;
if(Hour<=24)Hour++;
elseHour=0;
}
while(!
_Key_2);
}
if(!
_Key_3)
{
delay(10);
if(!
_Key_3)
{
Set_Flag=3;
if(Minute<=60)Minute++;
elseMinute=0;
}
while(!
_Key_3);
}
if(!
_Key_4)
{
delay(10);
if(!
_Key_4)
{
Set_Flag=0;
}
while(!
_Key_4);
}
}
ucharLED_D[6];
voidLED_Dis_Value(void)
{
if(!
Set_Flag)
{
LED_D[0]=(Second/10)+0x30;
LED_D[1]=(Second%10)+0x30;
LED_D[2]=(Minute/10)+0x30;
LED_D[3]=(Minute%10)+0x30;
LED_D[4]=(Hour/10)+0x30;
LED_D[5]=(Hour%10)+0x30;
Lcd_WrData1(1,4,&LED_D[4]);
Lcd_WrData1(1,5,&LED_D[5]);
Lcd_WrData1(1,6,":
");
Lcd_WrData1(1,7,&LED_D[2]);
Lcd_WrData1(1,8,&LED_D[3]);
Lcd_WrData1(1,9,":
");
Lcd_WrData1(1,10,&LED_D[0]);
Lcd_WrData1(1,11,&LED_D[1]);
}
else
{
LED_D[0]=(Second/10)+0x30;
LED_D[1]=(Second%10)+0x30;
LED_D[2]=(Minute/10)+0x30;
LED_D[3]=(Minute%10)+0x30;
LED_D[4]=(Hour/10)+0x30;
LED_D[5]=(Hour%10)+0x30;
if(Set_Flag==2)
{
Lcd_WrData1(1,4,&LED_D[4]);
Lcd_WrData1(1,5,&LED_D[5]);
}
elseif(Set_Flag==3)
{
Lcd_WrData1(1,7,&LED_D[2]);
Lcd_WrData1(1,8,&LED_D[3]);
}
}
}
/*********************定时器0、定时器1初始化******************/
voidTimer_Init(void)
{
TMOD=0x01;//定时器0、定时器1工作方式1
TH0=0xfc;
TL0=0x18;
EA=1;
ET0=1;//开定时器0中断
TR0=1;//允许定时器0定时
}
voidmain(void)
{
Timer_Init();
lcd_init();
while
(1)
{
Scan_Key();
}
}
/*********************定时器0中断服务程序************************/
voidtime0_int()interrupt1
{
TH0=0xfc;
TL0=0x18;//1ms
if(flag_1ms_value>=999)
{
if(Second>=59)
{
Second=0;
if(Minute>=59)
{
Minute=0;
if(Hour>=23)
{
Hour=0;
}
else
{
Hour++;
}
}
else
{
Minute++;
}
}
else
{
Second++;
}
LED_R=!
LED_R;
flag_1ms_value=0;
LED_Dis_Value();
}
else
{
flag_1ms_value++;
}
}
6、实验结果
图1-6
七、总结
本设计主要包括两大部分:
硬件设计部分和软件设计部分,硬件部分包括了单片机处理模块、LCD显示模块,软件部分主要包括主程序模块、定时器计数程序模块、LCD显示程序模块。
单片机负责控制红外测温把接收到的温度数据经处理后送LCD1602显示模块显示。
通过对硬件电路的设计我对Proteus软件的使用更加熟练,并且运用Keil进行软件编程的设计,使我的编程和调试能力也有很大的提高。
不仅使我对课本上所学的知识在实践中运用,有了更进一步的了解,而且也提高了我的动手能力、理论联系实际能力。
为今后的学习和工作打下了很好的基础。
但同时也明显感觉到还有很多地方需要完善和提高,设计的产品与实际应用还有一定的差距。
且功能方面还可以进行扩展。
例如可以加入按键电路,能够实现更灵活的控制测温,还可以加上语音播报功能,可以直接播报温度及报警就更加完善了。
所以在今后的工作中,还要不断的学习充电,掌握更多的技能。
争取能够在此基础上设计出更先进、功能更强大、结构更简单的智能化仪器。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 微机原理及接口技术 天津 科技大学 微机 原理 接口 技术 期末 论文