- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
电子电气工程学院学生实验报告
电子信息科学与技术 专业 2011 级 S 班 1 组 姓名 叶博 学号 201108059020
课程名称 电子设计 指导教师 廖长荣 成绩
一、实验预习
实验序号 四 实验题目 简易数字钟设计 预习日期 要求:1.实验步骤;2.实验数据、波形、现象的记录;3.数据分析、处理(分析、讨论实验结果,说明实验结果与理论值的比较误差;讨论实验中存在的问题与解决方法。);4.实验操作注意事项;5.实验习题;6.心得体会。
实验步骤:
任务目的
掌握Keil C51中断服务程序的编写方法;
掌握8051单片机中断及定时器的使用方法;
掌握矩阵键盘的扩展及使用方法;
掌握数字钟的设计方法。
实验内容
在任务三电路图的基础上,通过8155扩展一块4×4矩阵键盘;
用C51编写代码,实现一个数字钟的基本功能;
采用Keil和Proteus联合调试代码,查看仿真结果;
将编程代码通过STC-ISP程序下载到MCU Flash中运行,并观察运行结果。
实验步骤
(1)、在Proteus中绘制电路图
注释:控制键的功能为停止,开始和光标移动
(2)仿真效果
控制键效果
(3)程序:
程序见源代码。
#includereg51.h
#define uchar unsigned char
#define uint unsigned int
#define Lcd_date P3 //LCD1602数据端
uchar k1num,k2num,k3num;
uchar shi,fen,miao,yue,ri;
uint nian;
uchar num;
sbit RS=P2^0;
sbit RW=P2^1;
sbit EN=P2^2;
sbit K1=P1^4;
sbit K2=P1^5;
sbit K3=P1^6;
/***********查忙函数**********/
void Read_busy()
{
Lcd_date=0x00;
RS=0;
RW=1;
EN=1;
while((Lcd_date0x80)==0x80);
EN=0;
}
/***********查忙函数***********/
void Delayms(uint x)
{
uchar i;
while(x--)
{
for(i=120;i0;i--);
}
}
/***********写命令函数********/
void Write_add(uchar add)
{
Read_busy();
RS=0;
RW=0;
EN=1;
Lcd_date=add;
Delayms(10);
EN=0;
}
/*******写命令函数********/
/*******写数据函数*******/
void Write_date(uchar date)
{
RS=1;
RW=0;
EN=1;
Lcd_date=date;
Delayms(10);
EN=0;
}
/*******写数据函数********/
/**********写时分秒函数************/
void Write_shijian(uchar add,uchar date)
{ uchar shi,ge;
shi=date/10;
ge=date%10;
Write_add(0x80+add);
Write_date(0x30+shi);
Write_date(0x30+ge);
}
/***LCD1602数据初始化*****/
void Init_lcd1602()
{
Delayms(15);
Write_add(0x38);
Delayms(5);
Write_add(0x38);
Delayms(5);
Write_add(0x38);
Read_busy();
Write_add(0x38);
Read_busy();
Write_add(0x08);
Read_busy();
Write_add(0x01);
Read_busy();
Write_add(0x06);
Read_busy();
Write_add(0x0c);
Read_busy();
nian=14;
yue=4;
ri=29;
shi=12;
fen=0 ;
miao=0;
Write_add(0x80+0x05);
Write_date(-);
Write_add(0x80+0x08);
Write_date(-);
Write_add(0x80+0x46);
Write
您可能关注的文档
- 本科设计-基于51单片机的电子琴的设计与开发(整理版).doc
- 本科设计-基于51单片机的电子琴的设计与开发.doc
- 本科设计-基于51单片机的电子琴课程的设计与实现(整理版).doc
- 本科设计-基于51单片机的电子琴课程的设计与实现.doc
- 本科设计-基于51单片机的电子时钟的设计与开发(整理版).doc
- 本科设计-基于51单片机的电子时钟的设计与开发.doc
- 本科设计-基于51单片机的电子数字钟的设计与实现的外文翻译.doc
- 本科设计-基于51单片机的电子万年历的设计与开发(整理版).doc
- 本科设计-基于51单片机的电子万年历的设计与开发.doc
- 本科设计-基于51单片机的多功能波形发生器的设计与开发.doc
- 本科毕设-基于2051自行车里程表自行车里程表的设计(整理版).doc
- 本科毕设-基于2051自行车里程表自行车里程表的设计.doc
- 本科毕设-基于8051单片机的数字钟的设计与开发[附图+源码+中英文文献].doc
- 本科毕设-基于8051单片机的数字钟的设计与开发报告终极版.doc
- 本科毕设-基于8051单片机数字钟[附图+源码+中英文文献].doc
- 本科毕设-基于8086微处理器的温度测控系统的设计与实现23633512.doc
- 本科毕设-基于8086微处理器的温度测控系统设计4641480.doc
- 本科毕设-基于8086微处理器的温度测控系统设计与开发.doc
- 本科毕设-基于74160的电子钟的设计与开发.doc
- 本科毕设-基于74160计数器的电子时钟的设计与开发.doc
文档评论(0)