单片机 滚动显示单个数字

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

单片机及DSP课程设计报告

专业:

班级:

姓名:

学号:

指导教师:

时间:

通信与电子工程学院

一、设计目的及内容

为了进一步巩固学习的理论知识,增强学生对所学知识的实际应用能力和运用所学的知识解决实际问题的能力,开始为期两周的课程设计。通过设计使学生在巩固所学知识的基础之上具有初步的单片机系统设计与应用能力。

1、通过本设计,使学生综合运用《单片机技术原理与应用》、《DSP原理与应

用》《C语言程序设计》以及《数字电路》、《模拟电路》等课程的内容,为以后从事电子产品设计、软件编程、系统控制等工作奠定一定的基础。

2、学会使用KEIL C和PROTEUS等软件,用C语言或汇编语言编写一个较完

整的实用程序,并仿真运行,保证设计的正确性。

3、了解单片机接口应用开发的全过程:分析需求、设计原理图、选用元器

件、布线、编程、调试、撰写报告等。

设计内容

让八位数码管滚动显示1、2、3、4、5、6、7、8,单片机控制8只数码管,依次滚动显示单个数字。

二、课题的分析、方案的提出、设计思路及原因

本课题设计的主要工作如下:

硬件设计的任务是根据总体设计要求,在选择的机型的基础上,具体确定系统中所要使用的元器件,设计出系统的原理框图、电路原理图。

单片机技术使我们可以利用软硬件实现数码管准确显示各种数码。以液晶显示技术的发展为背景,选择了比较常用的T6963C内置控制器型图形LCD(液晶显示器)模块,利用了单片机控制T6963CLCD模块的显示机理。

研究学习AT89C51单片机其功能,对学习过的单片机,C语言课程进行巩固,设计一款在8只数码管上流动显示单个数字的程序并用PROTEUS进行电路设计和实时仿真。

三、电路设计及功能说明,硬件原理框图及电路图

1、系统组成及总体框图

硬件设计的任务是根据总体设计要求,在选择的机型的基础上,具体确定系统中所要使用的元器件,设计出系统的原理框图、电路原理图。

系统结构图如电路图1所示。

2、硬件电路图

电路图1

89C51芯片

八位共阴极数码管7SEG-MPx8-CA-BLUE

排阻RX8

NPN三极管2N1711 电容电阻电解电容CAP-ELEC 3、元件清单

1.单片机:AT89C51

2.八位共阴极数码管:7SEG-MPX8-CA-BLUE

3.NPN型三极管8个

4.普通电容2个(22PF),电解电容1个(10UF)

5.排阻1个.220

6.电阻1个(220)

7.电源1个(5V)

4、AT89C51

该课程设计中我们选用的芯片是AT89C51。AT89C51是一种带4K字节闪烁

可编程可擦除只读存储器(FPEROM—falsh Programmable and Erasable Read Only Memory)的低电压,高性能CMOS8位微处理器,俗称单片机。AT89C2051是

一种带2K字节闪烁可编程可擦除只读存储器的单片机。单片机的可擦除只读存

储器可以反复擦除100次。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU

和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,AT89C2051是它的一种精简版本。AT89C单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。

AT89C51是一个低电压,高性能CMOS 8位单片机,片内含4k bytes的可反复擦写的Flash只读程序存储器和128 bytes的随机存取数据存储器(RAM),器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,片内置通用8位中央处理器和Flash存储单元,内置功能强大的微型计算机的AT89C51提供了高性价比的解决方案。

AT89C51是一个低功耗高性能单片机,40个引脚,32个外部双向输入/输出(I/O)端口,同时内含2个外中断口,2个16位可编程定时计数器,2个全双工串行通信口,AT89C51可以按照常规方法进行编程,也可以在线编程。其将通用的微处理器和Flash存储器结合在一起,特别是可反复擦写的Flash存储器可有效地降低开发成本。

四、软件部分的程序流程图

开始

声明变量,数码

管编码数组

声明子程序

数码管显示子程序

主程序

五、源程序清单

.1程序及程序描述

#include //52系列单片机头文件

#include

#define uchar unsigned char

#define uint unsigned int //定义

uchar code DSY_CODE[]=

{

0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80

}; //显示12345678

void DelayMS(uint x) //延时子程序{

uchar t;

while(x--)

{

for(t=120;t>0;t--);

}

}

void main()

{

uchar k,m=0x80;

P0=0xff //关闭显示

P2=0x00;

while(1) //循环

{

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

{

m=_crol_(m,1);

P2=m; //发送位码P0=DSY_CODE[k+1]; //发送数字段码

DelayMS(200); //延时

相关文档
最新文档