- 1、本文档共25页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
单片机技术-课程设计报告(数码管电子时钟)大学学位论文
单片机课程设计
题 目: 数码管电子时钟
班 级:
姓 名:
学 号:
学 校:
时 间:2015年10月18日
目录
1?摘要? 3
2??设计要求? 3
2.1??功能需求? 3
2.2??设计要求? 3
3??硬件设计及描述? 5
3.1??总体描述? 5
3.2??系统总体框图? 6
3.3??Proteus电路图 6
3.4??各部分硬件介绍?? 6
4??软件设计流程及描述? 9
4.1??程序流程图? 9
4.2函数模块及功能??? 9
5??功能实现(功能介绍+照片) 19
6?心得体会? 19
7?源程序??? 20
1?摘要?
? 通过本课程设计使学生进一步巩固单片机原理与技术的基本概念、理论,分析问题的基本方法;增强学生的软件编程实现能力和解决实际问题的能力,使学生能有效的将理论和实际紧密结合,拓展学生在工程实践方面的专业知识和相关技能。
图3.2 Proteus电路图
3.4??各部分硬件介绍??
1、数码管显示模块,P0^0~P0^7通过排阻控制数码管显示的数字,P2^0~P2^2通过74HC138进行位选。连接图如下:
图3.3 时钟显示模块
2、独立键盘模块,由三个按钮分别连接P3.2、P3.3、P3.4口作为外部中断0,外部中断1。
图3.4 独立键盘模块
3、矩阵键盘模块,用4*4的按钮分别连接P1.0~P1.7口作为键盘输入端。
图3.5 矩阵键盘模块
4、AT89C51简介:?AT89C51是一种带4K 字节FLASH 存储器(FPEROM—Flash Programmable and Erasable Read Only Memory)的低电压、高性能CMOS 8位 微处理器,俗称 单片机。AT89C2051是一种带2K 字节闪存可编程可擦除 只读存储器的 单片机。 单片机的可擦除 只读存储器可以反复擦除1000次。该器件采用ATMEL高密度非易失 存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁 存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,AT89C2051是它的一种精简版本。AT89C51 单片机为很多 嵌入式控制系统提供了一种灵活性高且价廉的方案。
图3.5 AT89C51
4??软件设计流程及描述?
4.1??程序流程图?
图4.1 程序流程图
4.2函数模块及功能???
delay(unint k)
{ unint i,j,x;
for(x=1;x=k;x++)
for(i=0;i10;i++)
for(j=0;j17;j++);
}
功能说明:用于时间的延迟。
Scan_keyboard()
{
unsigned char h_code,l_code,key_code;
P1=0xf0;
h_code =P1;
h_code = h_code 0xf0;
P1=0x0f;
l_code =P1;
l_code = l_code 0x0f;
key_code = h_code | l_code;
return key_code;
}
功能说明:用于矩阵键盘的按键扫描,返回按键键值。
timer0_int(void) interrupt 1
{ count++;
if(count==14)
{ ss--;
if(ss0)
{
SS1--;
ss=9;
}
if(SS10)
{
mm--;
SS1=5;
}
if(mm0)
{
MM1--;
mm=9;
}
if(MM10)
{
hh--;
MM1=5;
}
if(hh0HH10)
{
HH1--;
hh=9;
}
if(HH1==0hh0)
{
HH1=2;
hh=3;
}
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
count=0;
}
}
功能说明:定时中断0,用于实现时间的跳动。
set()
{
unsigned char keynumber;
keynumber=Scan_keyboard();
if(keynumber!=0xff)
{
switch(keynumber)
{
case 0xe7: //left
if(wh0)
wh--;
break;
case 0xd7://right
if(wh5)
wh+
您可能关注的文档
最近下载
- 中国华电集团公司电力安全工作规程(水力机械部分山东审定稿)20121116.doc
- CAAC无人机理论考试题库及答案(2024修订版).docx
- 《通往夏天的隧道 再见的出口》读书笔记思维导图.pptx VIP
- 近五年天津中考英语真题及答案2024.docx VIP
- 附件2:汽车专访.pdf VIP
- 二值的黑白图像(教学设计)-2024-2025学年人教版(2024)小学信息技术四年级全一册.docx VIP
- 小学文言文教学的基本策略.ppt
- 2024年10月自考00908网络营销与策划试题及答案含评分参考.pdf
- 2024年中考模拟试卷语文(北京卷).docx VIP
- 社区全职妈妈赋能项目方案设计.pdf
文档评论(0)