8只数码管滚动显示单个数字

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

九江职业技术学院课题:8只数码管滚动显示单个数字

班级:电气综1001

学号:20101531

姓名:李剑林

指导老师:倪志莲

目录

一.课题要求 (3)

二.设计思路 (4)

三.硬件设计 (5)

四.软件设计 (6)

五.调试过程 (7)

六.个人总结 (8)

一.课题要求

基本要求:数码管从左往右依次滚动显示0~7一次,每次仅循环选通一只数码管。

拓展要求:数码管从左往右一次显示0~7,数码管被选通数量也逐渐从1~8。

二.设计思路

首先要明确程序的设计要求和思路,才用总线驱动器提供LED数码管的段驱动,同时我们也要明确采用的是共阴极还是共阳极的数码管。若采用的是共阳极的数码管,则要输出底电平时才有效,输入分别接P2口和P0口。

单片机最小系统电路由单片机(A T89C51)、外围晶振电路及复位电路组成;键盘输入电路由独立式键盘构成(独立式键盘就是各个按键相互独立,每个按键各接一个I/O接线口线,每个I/O接线口线上的按扭互不影响,来实现对LED灯的控制)。显示电路由八位共阳极数码管构成,当有软件调试启动时,就会出现相应的显示,如:启动时,数码管当即显示数字‘0’,间隔1S后,数字从“0-7”开始跳

动,依次循环。

八只数码管滚动显示单个数字程序是用C语言编写的,当中用到了循环语句、判断语句以及可用的函数。程序如下:

#include

#include

#define uchar unsigned char

#define uint unsigned int

Uchar code DSY_CODE[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x 80,0x90};

void DelayMS(uint x)

{

uchar t;

while(x--) for(t=0;t<120;t++);

}

void main()

{

uchar i,wei=0x80;

while(1)

{

for(i=0;i<8;i++)

{

P2=0xff;

wei=_crol_(wei,1);

P0=DSY_CODE[i];

P2=wei;

DelayMS(300);

}

}

}

五.调试过程

执行“工程”——“编译”命令,就可以对当前文件进行编译了,若程序有错误,则会出现错误信息的提示,双击可以定位到错误行,修改完成,若无错误,便可进行仿真调试,执行“调试”——“开始/停止”命令,可以进入调试状态,当程序在运行时,数码管便开始从左到右依次显示0——7。

六.个人总结

由于是第一次在没有老师的情况下做作品,缺少实战经验的我不能够很好的把理论用到经验中去,不过后来终于有所进展。

这次单片机课程设计,在我们看来不仅仅是单纯的一个单片机的应用,而是多学科多领域的综合设计。做完这次设计,我有以下几点心得体会:

1、做这个设计不是光靠学好单片机这一门课就可以的。

在这个课程项目的设计过程中,我充分体会到了要全面发展,各个学科都要学好,知识的全面性很重要。比如在编写程序时,我们就明显感觉到了C语言的基础不够扎实,当初学C语言的时候并没有意识到它的重要性,而当我们真正开始做设计的时候才发现一个课程的项目设计是需要其他许多项目来给它做基础的。

2、做这个设计不是光靠学好书本上的知识就够的。

设计的灵魂便在于它的理念,要做出一个好的设计作品来,需要你平时对生活有足够的观察和了解,古话说,学以致用,及时你设计出来的东西原理再高深,但在实际生活中却无处可用,那也是没有任何价值的。所以在刻苦学习的同时,也要关注社会动态,了解人民生活所需,有一个正确的设计理念才能使自己走对第一步棋。

相关文档
最新文档