作者:佚名 来源:网络
概 述
单片机具有体积小、功能强可靠性高、价格低廉等一系列优点,不仅已成为工业测控领域普遍采用的智能化控制工具,而且已渗入到人们工作和和生活的各个角落,有力地推动了各行业的技术改造和产品的更新换代,应用前景广阔。
C语言是一种编译型程序设计语言,它兼顾了多种高级语言的特点,并具备汇编语言的功能。此外,C语言程序具有完善的模块程序结构,从而为软件开发中采用模块化程序设计方法提供了有力的保障。因此,使用C语言进行程序设计已成为软件开发的一个主流。C语言来编写目标系统软件,会大大缩短开发周期,且明显地增加软件的可靠性,便于改进和扩展,从而研制出规模更大、性能更完备的系统。因此,用C语言进行8051单片机程序设计是单片机开发与应用的必然趋势。
本课程的目的是学习运用C语言开发单片机应用系统软件。为将来从事单片机应用系统的开发打下坚实的基础。
一、题目
电子钟
二、课程设计目的
(1)巩固、加深和扩大单片机应用的知识面,提高综合及灵活运用所学知识解决工业控制的能力;
(2)培养针对课题需要,选择和查阅有关手册、图表及文献资料的自学能力,提高组成系统、编程、调试的动手能力;
(3)过对课题设计方案的分析、选择、比较、熟悉单片机用系统开发、研制的过程,软硬件设计的方法、内容及步骤。
三、课程设计系统环境
(1)ADEK5196ET;
(2)AEDK机电实验平台;
(3)Keil c51软件调试环境;
四、课程设计要求
(1)掌握ADEK5196实验开发系统中的实验模块原理;
(2)综合运用实验模块,用C51开发设计具有一定功能的单片机控制系统,进行软、硬件设计及调试;
(3)写出完整的设计任务书:课题的名称、系统的功能、硬件原理图、软件框图、程序清单、参考资料;
五、系统功能说明
利用8279键盘显示接口电路。使用8279可实现对键盘/显示器的自动扫描,以减轻CPU负担,其具有显示稳定、程序简单、不会出现误动作等特点。
电子钟的格式为:XX XX XX,由左向右分别为:时、分、秒。完成显示由秒01一直加1至59,再恢复为00;分加1,由00至01,一直加1至59,再恢复00;时加1,时由00加至23之后秒、分、时全部清清零。该钟使用T1作50ms的定时中断。
六、原理图
七、程序框图
八、源程序
#include<reg51.h>
#define u8279z(*(char data)(oxf900))
#define u8279d(*(char data)(oxf800)
unsigned char table[30]=
{0x3f,0x06,0x5b,0x4f,0x66,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71,0x80,0x70,
0x38,0x6d,0x31,0x73,0x0e};
unsigned char idata diss[8]_at_0x30;
unsigned char idata hh,mm,ss,flag;
unsigned char idata aa,bb;
void delay(int n)
{
int I,j;
for(I=0;I<n;I++)
for(I=0;j<300;j++);
}
void init8279()
{
delay(20);
u8279z=0x00;
u8279z=0x38;
u8279z=0xd1;
delay(20);
}
void initimer()
{
TMOD=0x10;
TH1=0x4d;
TL1=0x00;
TR1=1;
ET1=1;
EA=1;
}
void display()
{
unsigned char idata I;
diss[0]=hh/10&(0x0f);
diss[1]=hh%10&(0x0f);
diss[2]=0x00;
diss[3]=mm/10&(0x0f);
diss[4]=mm%10&(0x0f);
diss[5]=0x00;
diss[6]=ss/10&(0x0f);
diss[7]=ss%10&(0x0f);
for(I=0;I<8;I++)
{
u8279z=0x90+I;
u8279d=table[diss[I]];
}
}
main()
{
P1=0;aa=0x14;hh=0x00;
mm=0x00;ss=0x00;flag=0xff;
init8279();initimer();
for(;;)
{
if(flag==0xff)
{
dispay();
flag=0;
}
}
}
void timer1(void) interrupt 3
{
while((aa--)==0)
{
P1=~P1;
flag=0xff;
if(ss==59)
{
ss=0;
if(mm=59)
{
mm=0;
if(hh==23) hh=0;
else hh=hh+1;
}
else mm=mm+1;
}
else ss=ss+1;
aa=0x14;
}
TH1=0x4b;
TL1=0x00;
}
九、参考资料
《C51控制技术》
十、运用软件
Word、Prtel99、Visio Trial、Keil C51 V6.0