- 1、本文档共11页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
电子钟实验报告.c
2011-2012学年上半年工程实训实验报告
------电子钟制作
姓名:付攀
学号:8000609066
班级:计软092班
实验目的:通过编程与仿真,制作电子钟实物。电子钟实现时钟功能、时钟调整功能、秒表功能、闹钟功能。同时体会制作实物的过程,包括编程、仿真、和焊接。
实验器材:
器件名称
数量
单片机AT89C52
1
共阳极数码管(2个一排)
1
共阳极数码管(4个一排)
1
发光二极管
1
按键
4
晶振12M
1
30P电容
2
10μ电容
1
电阻200Ω
1
电阻5.1K
3
排阻200Ω*8
2
驱动芯片ULN2803
1
40脚IC插座
2
18脚IC插座
1
28脚IC插座
1
排座
180孔
插线
若干
按键说明:一个用于小时加,一个用于分钟加,一个用于功能切换,一个用于复位。
实验流程:总体步骤:1.编程与仿真
2.焊接制作实物。
流程说明:在protues仿真平台上画出仿真图,在keil平台上编写程序,编译运行生成hex文件,把hex文件灌入仿真图中,进行电子钟仿真。
仿真截图如下:
时钟显示
时间调整
秒表计时
闹钟设置
所编写的程序如下:
#include reg51.h
sbit thour=P1^0;
sbit tmin=P1^1;
sbit light=P1^2;
sbit rst=P1^4;
#define uchar unsigned char
#define uint unsigned int
int flag;
uint count1,count2;
uchar hour=0,min=0,sec=0;
uchar msec=0,se=0,mi=0;
uchar h=7,m=10,s=0;
uchar table[30]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90}; //共阳极数码管,分别表示0~9
void delay(uint k) //延时函数
{
uint i,j;
for(i=0;i120;i++)
for(j=0;jk;j++);
}
void display() //时钟显示函数
{
delay(1);P2=0xdf;P0=table[hour/10];
delay(1);P2=0xef;P0=table[hour%10];
delay(1);P2=0xf7;P0=table[min/10];
delay(1);P2=0xfb;P0=table[min%10];
delay(1);P2=0xfd;P0=table[sec/10];
delay(1);P2=0xfe;P0=table[sec%10];
}
void settime() //时间调整函数,小时加和分加
{
if (tmin==0)
{
delay(1);
if (tmin==0)
{
min++;
if(min=60) min=0;
}
while(tmin==0) display();
}
if (thour==0)
{
delay(1);
if (thour==0)
{
hour++;
if(hour=24) hour=0;
}
while(thour==0) display();
}
}
void init1() //定时计数器0的初始化
{
//TMOD=0x11;
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
TR0=1;
ET0=1;
EA=1;
}
void display2() //秒表显示函数
{
delay(1);P2=0xdf;P0=table[mi/10];
delay(1);P2=0xef;P0=table[mi%10];
delay(1);P2=0xf7;P0=table[se/10];
delay(1);P2=0xfb;P0=table[se%10];
delay(1);P2=0xfd;P0=table[msec/10];
delay(1);P2=0xfe;P0=table[msec%10];
}
void init2() //定时计数器1的初始化
{
//TMOD=0x11;
TH1=(65536-10000)/256;
TL1=(65536-10000)%256;
TR1=1;
ET1=1;
您可能关注的文档
- 现代大学英语精读3_unit_3---5课后答案.doc
- 现代大学英语精读4课后答案(外语教学).doc
- 现代控制作业及答案汇总.doc
- 现代普通测量学(清华大学第2版)课后习题参考答案.doc
- 现行实验《物理课程标准》与九年义务教育《初中物理教学大纲》的比较.doc
- 现行规范之公路工程施工监理规范JTG G10—2006.doc
- 现代设计方法课件讲稿.doc
- 班主任如何学习别人的先进经验.doc
- 班级管理中的25种心理效应.doc
- 理论热点面对面2011之五铺就13亿人的健康之路.doc
- KYMCO光阳摩托车赛艇ST250 纪念版说明书用户手册.pdf
- Aberdeen Group Report The Maturity of Remote Product Service说明书用户手册.pdf
- u1000系列控制器 产品手册.pdf
- 电动执行机构 用户指南.pdf
- 安川616PC5 P5中文说明书.pdf
- KENWOOD建伍KDC-1040U,KDC-130U,KDC-154UM,KDC-230UICD 收放机Arabic, English (Instruction manual) Asia说明书用户手册.pdf
- 日本吉永温控仪表-TP30系列 产品介绍.pdf
- COFDM密拍式移动视频传输系统 介绍.pdf
- 腾控科技--T-910S用户手册v1.2.0.pdf
- 腾控科技--SDP102安装使用手册.pdf
文档评论(0)