单片机课程设计2.docx

上传人:b****3 文档编号:4897414 上传时间:2023-05-07 格式:DOCX 页数:10 大小:117.11KB
下载 相关 举报
单片机课程设计2.docx_第1页
第1页 / 共10页
单片机课程设计2.docx_第2页
第2页 / 共10页
单片机课程设计2.docx_第3页
第3页 / 共10页
单片机课程设计2.docx_第4页
第4页 / 共10页
单片机课程设计2.docx_第5页
第5页 / 共10页
单片机课程设计2.docx_第6页
第6页 / 共10页
单片机课程设计2.docx_第7页
第7页 / 共10页
单片机课程设计2.docx_第8页
第8页 / 共10页
单片机课程设计2.docx_第9页
第9页 / 共10页
单片机课程设计2.docx_第10页
第10页 / 共10页
亲,该文档总共10页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

单片机课程设计2.docx

《单片机课程设计2.docx》由会员分享,可在线阅读,更多相关《单片机课程设计2.docx(10页珍藏版)》请在冰点文库上搜索。

单片机课程设计2.docx

单片机课程设计2

中北大学信息商务学院

课程设计任务书

11/12学年第二学期

 

系别:

信息与通信工程

专业:

自动化

学生姓名:

刘波学号:

09050542X45

课程设计题目:

矩阵键盘控制七段数码管显示

十六进制数

起迄日期:

6月11日~6月17日

指导教师:

刘长明

系主任:

王明泉

 

下达任务书日期:

2012年6月11日

课程设计任务书

1.设计目的:

设计一个根据单片机及接口技术课程中所学的知识,熟练AT89C51单片及的性能和编程原理,设计一个简单的硬件电路,画出电路图,编写控制程序,进一步提高综合运用知识的能力。

2.设计内容和要求

●矩阵键盘控制七段数码管显示十六进制数:

一片单片机,16个按键,一个7段数码管,其他元件若干。

4*4的矩阵键盘,每一个键对应一个十六进制数字0~F,当按下其中一个按键后在数码管上显示相应的数字。

●8*8LED灯点阵显示:

一片单片机,一个8*8LED点阵模块(或64个发光二极管),其他元件若干。

在8*8 LED(发光二极管)点阵上显示柱形,让其先从左到右平滑移动三次,其次从右到左平滑移动三次,再次从上到下平滑移动三次,最后从下到上平滑移动三次,如此循环下去。

●两位跑马表设计:

一片单片机,两个7段数码管,一个按键,其他元件若干。

开始数码管显示“00”,当按下按键1次开始计时,按下按键2次停止计时,按下按键3次清零。

●双机串口通信:

两片单片机,两个串口9针D型插头,两片MAX232芯片,发光二极管8个,其他元件若干。

两个单片机通过串口进行数据传输,一个发送8位二进制数,一个接收,当接收端接收到相应的数据,通过8个发光二极管的亮灭显示其接收数值。

以上题目任选一个做。

3.设计工作任务及工作量的要求〔包括课程设计计算说明书(论文)、图纸、实物样品等〕:

(1)查阅资料,确定程序方案

(2)画出流程图,设计电路,编写程序

(3)撰写课程设计说明书

 

课程设计任务书

4.主要参考文献:

[1]张靖武周灵彬.单片机原理、应用与PROTEUS仿真,[M]北京:

电子工业出版社,2007年4月.P73-87

[2]高卫东辛友顺韩彦征.51单片机原理与实践,[M]北京:

北京航空航天大学出版社,2008年.P95-99

[3]张红润刘秀英张亚凡.单片机应用设计200例,[M]北京:

北京航空航天大学出版社,2006年.P120-125

 

5.设计成果形式及要求:

课程设计说明书1份

流程图1份

电路图1份

程序清单1份

6.工作计划及进度:

12年6月11日~6月12日收集整理资料,确定控制方案

6月13日~6月14日画出流程图,编写程序

6月15日~6月16日撰写课程设计说明书

6月22日答辩

系主任审查意见:

签字:

年月日

1、电路图

AT89C51单片机对4*4矩阵键盘进行动态扫描,当有按键盘的键时,可将相应按键值(0~F)实时显示在数码管上。

4*4矩阵键盘原理图:

最常见键盘布局如下图1.1所示。

一般由16个按键组成,在单片机中正好可以用一个p口实现16个按键功能,这也是单片机系统中最常见的形式,本设计就采用这个键盘模式。

 

绘制原理图:

1)打开protrus仿真软件,进入主界面,然后新建一个图纸文件,软件默认为A4纸张,符合我们的要求,所以不需要修改。

2)开始绘图,点击按钮P,弹出选择添加的器件框图,在Keywords里直接输入所需器件的名称或者在Category的下面各个选项里一次查找所需的器件名称,然后点击ok将所需器件添加进去。

3)依次添加AT89C51芯片,共阳极的7段数码管,16个按键,8个电阻R0~R7,一个晶片,3个电容,地及电源。

4)按照设计的要求正确的连接电路,连接时注意管脚的分配及AT89C51的工作原理。

5)对连接好的电路图进行仿真,如果有错误要先按下暂停,然后对电路进一步的调整与修改,再进行仿真,保存原理图文件。

电路图如下:

 

2、流程图

3、程序仿真

源程序如下:

#include

#defineucharunsignedchar//数据类型的宏定义

#defineuintunsignedint//数据类型的宏定义

sbitP07=P2^1;

Unsigned;chartcode

table[]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90,0x88,0x83,0xC6,0xA1,0x86,0x8E,0xBF};

//共阳数码管显示字型码数组10111111"-"

voiddelay1ms(uinti)

{

ucharj;

while(i--)

{

for(j=0;j<115;j++)//1ms基准延时程序

{

;

}

}

}

voiddisplay(unsignedchari)

{

P07=1;//选通最有端的数码管显示

P0=~table[i];//显示i参数传来的字型码

}

voidmain(void)

{

unsignedchartemp;

display(16);//初始显示"-"

while

(1)

{

//P1=0xff;//先向P1口写1;端口读状态

P1=0xf0;

temp=P1;

if(temp!

=0xf0)

{

delay1ms(15);

if(temp!

=0xf0)

{

P1=0xfe;

temp=P1;

switch(temp)

{

case(0xee):

display(0);break;

case(0xde):

display(4);break;

case(0xbe):

display(8);break;

case(0x7e):

display(12);break;

}

P1=0xfd;

temp=P1;

switch(temp)

{

case(0xed):

display

(1);break;

case(0xdd):

display(5);break;

case(0xbd):

display(9);break;

case(0x7d):

display(13);break;

}

P1=0xfb;

temp=P1;

switch(temp)

{

case(0xeb):

display

(2);break;

case(0xdb):

display(6);break;

case(0xbb):

display(10);break;

case(0x7b):

display(14);break;

}

P1=0xf7;

temp=P1;

switch(temp)

{

case(0xe7):

display(3);break;

case(0xd7):

display(7);break;

case(0xb7):

display(11);break;

case(0x77):

display(15);break;

}

}

}

}

}

 

仿真结果:

将此程序在汇编器中生成的“.hex”文件,导入AT89C51芯片中,用鼠标右键点击AT89C51,然后点鼠标左键,弹出编辑元件的框图,在programfile里添加.hex文件,再点OK。

点击“开始”按键,进行仿真,点击右边4*4按键,则数码管显示0~F,仿真结果符合实验要求,仿真结果如下图所示:

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 解决方案 > 学习计划

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2