c单片机定时器及数码管控制实验报告

c单片机定时器及数码管控制实验报告
c单片机定时器及数码管控制实验报告

昆明理工大学信息工程与自动化学院学生实验报告

(201—201学年第1学期)

课程名称:单片机技术

开课实验室:年月日

一、实验目的

1.掌握定时器T0、T1的方式选择和编程方法,了解中断服务程序的设计方法,学会实时程序的调试技巧。

2.掌握LED数码管动态显示程序设计方法。

二、实验原理

1.89C51单片机有五个中断源(89C52有六个),分别是外部中断请求0、外部中断请求1、定时器/计数器0溢出中断请求、定时器/计数器0溢出中断请求及串行口中断请求。每个中断源都对应一个中断请求位,它们设置在特殊功能寄存器TCON和SCON中。当中断源请求中断时,相应标志分别由TCON和SCON的相应位来锁寄。五个中断源有二个中断优先级,每个中断源可以编程为高优先级或低优先级中断,可以实现二级中断服务程序嵌套。在同一优先级别中,靠内部的查询逻辑来确定响应顺序。不同的中断源有不同的中断矢量地址。

中断的控制用四个特殊功能寄存器IE、IP、TCON(用六位)和SCON(用二位),分别用于控制中断的类型、中断的开/关和各种中断源的优先级别。中断程序由中断控制程序(主程序)和中断服务程序两部分组成:

1)中断控制程序用于实现对中断的控制;

2)中断服务程序用于完成中断源所要求的中断处理的各种操作。

C51的中断函数必须通过interruptm进行修饰。在C51程序设计中,当函数定义时用了interruptm修饰符,系统编译时把对应函数转化为中断函数,自动加上程序头段和尾段,并按MCS-51系统中断的处理方式自动把它安排在程序存储器中的相应位置。

在该修饰符中,m的取值为0~31,对应的中断情况如下:

0——外部中断0

1——定时/计数器T0

2——外部中断1

3——定时/计数器T1

4——串行口中断

5——定时/计数器T2

其它值预留。

89C51单片机内设置了两个可编程的16位定时器T0和T1,通过编程,可以设定为定时器和外部计数方式。T1还可以作为其串行口的波特率发生器。

2.定时器T0由特殊功能寄存器TL0和TH0构成,定时器T1由TH1和TL1构成,特殊功能寄存器TMOD控制定时器的工作方式,TCON控制其运行。定时器的中断由中断允许寄存器IE,中断优先权寄存器IP中的相应位进行控制。定时器T0的中断入口地址为000BH,T1的中断入口地址为001BH。

定时器的编程包括:

1)置工作方式。

2)置计数初值。

3)中断设置。

4)启动定时器。

定时器/计数器由四种工作方式,所用的计数位数不同,因此,定时计数常

数也就不同。

3.单片机的拉电流比较小(100~200uA),灌电流比较大(最大是25mA,一般不能超过10mA),不能直接驱动数码管,需要扩流电路。可以用三级管来驱动,但是51单片机只有32个I/O口,可能需要外接多种器件,I/O口是不够用的。故可选用

74HC573锁存器来解决这个问题,开发板上数码管的硬件设计电路图,如图1所示。

TX-1C实验开发板用两个74HC573锁存器(输出电流较大,接口简单),通过P0口控制六个数码管的段选及位选,其中控制锁存器U1(DULA),控制锁存器U2(WELA)。单片机控制锁存器的锁存端,进而控制锁存器的输出,这种分时控制的方法可方便地控制任意数码管显示任意数字。

图1LED数码管电路原理图

三、实验内容

利用动态扫描和定时器1在数码管上显示出从765432开始以1/10秒的速度往下递减直至765398并保持显示此数,与此同时利用定时器0以500MS速度进行流水灯从上至下移动,当数码管上数减到停止时,实验板上流水灯也停止然后全部开始闪烁,3秒后(用T0定时)流水灯全部关闭、数码管上显示出“HELLO”。到此保持住。

计算初值公式

定时模式1th0=(216-定时时间)/256tl0=(216-定时时间)%256

四、实验步骤

1、按实验要求在KeilC中创建项目,编辑、编译程序。

2、将编译生成的目标码文件(后缀为.Hex)下载到实验板电路中。

3、在实验板中运行程序,观察实验运行结果并记录。

五、实验结果

开始时数码管的数字是765432,随后是765429,流水灯显示的是第一个灯,实验结果如下图所示:

当数码管显示765406时,流水灯显示是第六个灯,实现现象如下图所示:

当数码管显示765398时,流水灯显示的是第七个灯,由于LED灯变化快,难以捕捉到此时刻,以下图片是随后LED闪烁,数码管保持765398的现象:最后流水灯全部关闭,数码管显示HELLO字样的现象:

六、心得体会

通过这次实验,巩固了流水灯的操作,在此之上,加深了八段数码管的动态显示的理解,对定时器中断的理解和运用,虽然在实验的的过程中遇到了各种各样的问题,但是在老师和同学们的帮助下,我失算顺利的完成了这次实验,为后续的学习打下了坚实的基础。

七、思考

1.若用定时器1方式2,程序如何修?

答:对定时器/计数器的工作方式进行修改,即:

TMOD=0x21;//0010’0001

2.若显示从“99”开始递减,程序如何修改?

答:只需选择第一个和第二个数码管即可,当递减到0时停止,或者继改回数字99,程序的其他部分基本不变。

八、源代码

#include<>

#include<>

#defineucharunsignedchar

#defineuintunsignedint

sbitled1=P1^0;

sbitdula=P2^6;

sbitwela=P2^7;

ucharcodetable[]={//建一张table数组,元素是0~F字样

0x3f,0x06,0x5b,0x4f,

0x66,0x6d,0x7d,0x07,

0x7f,0x6f,0x77,0x7c,

0x39,0x5e,0x79,0x71};

ucharcodeHello[]={//建一张HELLO数组,元素是H,E,L,L,O字样

0x76,0x79,0x38,0x38,0x3f};

voidinit();//main()函数初始化的函数的声名

voiddelayms(uint); //延时函数声名

voiddisplay(uchar,uchar,uchar);//数码管显示函数声名

voiddisHello();//HELLO显示函数声名

ucharnum1,num2,bai,shi,ge; //定义全局变量

intcount,temp;

voidmain()

{

init();

while(1)

{

if(num1==10)//定时器每次计时50ms,当计满500ms时,LED灯流动

{

num1=0;

P1=_crol_(P1,1);//循环左移

}

if(num2==2)//当计满时,数码管的值减1

{

num2=0;

count--;

if(count==398)//当数码管减到765398时,保持该数,8个LED灯闪//烁

{

TR1=0;

TR0=0;

bai=count/100;//获得398的个、十、百位

shi=count/10%10;

ge=count%10;

display(bai,shi,ge);//显示数码管的六位数

P1=0x00; //8个LED闪烁的初始状态

num1=0;//重新启动定时器T0时,num1重新初始化为0

TR0=1;

while(1)

{

if(num1%10==0) //8个LED每隔500ms闪烁

P1=~P1;//LED灯取反

if(num1==60)//当计满3s时,关闭LED灯,在数码管上显//示HELLO

{

TR0=0;//关闭定时器T0

P1=0xff;//关闭LED灯

disHello(); //显示HELLO

}

else

display(bai,shi,ge);//当没计满3s时,继续显示之前的6位数}

}

bai=count/100;

shi=count/10%10;

ge=count%10;

}

display(bai,shi,ge);

}

}

voidinit() //main()函数的初始化

{

TMOD=0x11; //定时器T0,T1的工作方式都是1

TH0=(65536-45872)/256;//T0计数寄存器的初始化

TL0=(65536-45872)%256;

TH1=(65536-45872)/256;//T1计数寄存器的初始化

TL1=(65536-45872)%256;

P1=0xfe; //LED的初始化

count=432; //计数器的初始化,因为只有后三位变化EA=1; //打开总中断

ET0=1;//打开计时器T0

TR0=1;//打开计时器T1

ET1=1;//开启计时器T0

TR1=1;//开启计时器T1

}

voiddisHello()//HELLO显示程序

{

wela=1;

P0=0xfe;

wela=0;

P0=0xff;

dula=1;

P0=Hello[0];

dula=0;

delayms(5);

wela=1;

P0=0xfd;

wela=0;

P0=0xff;

dula=1;

P0=Hello[1];

dula=0;

delayms(5);

wela=1;

P0=0xfb;

wela=0;

P0=0xff;

dula=1;

P0=Hello[2];

dula=0;

delayms(5);

wela=1;

P0=0xf7;

P0=0xff;

dula=1;

P0=Hello[3];

dula=0;

delayms(5);

wela=1;

P0=0xef;

wela=0;

P0=0xff;

dula=1;

P0=Hello[4];

dula=0;

delayms(5);

}

voiddisplay(ucharbai,ucharshi,ucharge)//数码管显示程序{

wela=1;

P0=0xfe;

wela=0;

P0=0xff;

dula=1;

P0=table[7];

dula=0;

delayms(5);

wela=1;

P0=0xfd;

wela=0;

P0=0xff;

dula=1;

P0=table[6];

dula=0;

delayms(5);

wela=1;

P0=0xfb;

wela=0;

P0=0xff;

dula=1;

P0=table[5];

dula=0;

delayms(5);

wela=1;

P0=0xf7;

P0=0xff;

dula=1;

P0=table[bai];

dula=0;

delayms(5);

wela=1;

P0=0xef;

wela=0;

P0=0xff;

dula=1;

P0=table[shi];

dula=0;

delayms(5);

wela=1;

P0=0xdf;

wela=0;

P0=0xff;

dula=1;

P0=table[ge];

dula=0;

delayms(5);

}

voiddelayms(uintxms)

{

uinti,j;

for(i=0;i

for(j=0;j<110;j++);

}

voidT0_time()interrupt1 //定时器T0程序{

TH0=(65536-45872)/256;

TL0=(65536-45872)%256;

num1++;

}

voidT1_time()interrupt3 //定时器T1程序{

TH1=(65536-45872)/256;

TL1=(65536-45872)%256;

num2++;

}

微控制器实验报告

微控制器技术实验报告 班级: 姓名: 学号:

微控制器技术实验说明 一、实验目的及要求: 1、学习Keil C51集成开发工具的操作及调试程序的方法,包括:仿真调试 与脱机运行间的切换方法; 2、熟悉TD-51单片机系统板及实验系统的结构及使用; 3、进行MCS51单片机指令系统软件编程设计与硬件接口功能设计; 4、学习并掌握Keil C51与Proteus仿真软件联机进行单片机接口电路的设 计与编程调试; 5、完成指定MCS51单片机综合设计题 二、实验基本内容(TD-51单片机实验系统实现) 实验一清零程序与拆字程序设计 根据实验指导书之“第二章单片机原理实验”(P17~P23页)内容,熟悉实验环境及方法,完成思考题1、2(P23)基础实验项目。 实验二拼字程序与数据传送程序设计 汇编语言完成实验指导书P24思考题3、4题的基础实验项目。 实验三排序程序与散转程序设计 汇编语言完成实验指导书P24思考题5、6题的基础实验项目。 实验四静态存储器扩展实验 基本部分:阅读、验证C语言程序功能。使用汇编语言编程,完成实验指导书之“4.1 静态存储器扩展实验”基本实验项目(P57)。 提高部分:阅读、验证C语言程序功能。使用汇编语言编程,完成实验指导书之“4.2 FLASH存储器扩展实验”实验项目(P60)。 实验五数字量输入输出实验 基本部分:阅读、验证C语言程序功能。使用汇编语言编程,完成实验指导书之“3.1 数字量输入输出实验”基本实验项目(P36),。 提高部分:(任选一题) 题目一:LED交通灯控制(使用8255接口芯片) 要求:使用汇编语言编程,功能为:通过开关实现LED灯工作方式即时控 制,完成LED交通灯的开关控制显示功能和LED交通灯自动循环显示功能。 题目二:LED灯控制(使用8255接口芯片) 要求:使用汇编语言编程,功能为:通过KK1实现LED灯工作方式即时控 制,完成LED开关控制显示和LED灯左循环、右循环、间隔闪烁功能。 题目三:键盘扫描与数码管显示设计( 要求:阅读、验证P69上的C 语言参考程序功能。使用汇编语言完成编程与功能调试。

单片机课设数码管计时器

第1章设计方案 (1) 1.1 设计目的 (1) 1.2 设计要求 (1) 1.3 设计原理 (1) 第2章硬件设计 (2) 2.1 器件说明 (2) 2.1.1 51单片机简述 (2) 2.1.2 DS12C887实时时钟芯片简介 (4) 2.1.3 MAX7219共阴极数码管显示驱动芯片简介 (6) 2.2 硬件构造说明 (7) 2.2.1复位及震荡电路 (8) 2.2.2 时间获取电路 (8) 2.2.3 显示驱动电路 (9) 第3章软件设计 (10) 3.1 软件设计简要思路 (10) 3.2 时间获取及定时计数器程序 (11) 3.2.1定时/计数器初值计算 (11) 3.2.2 计数运算程序 (11) 3.3 显示驱动程序 (12) 3.4利用数码管显示的倒计时装置设计程序 (14) 3.5 软件调试仿真 (18) 3.5.1 系统调试工具keil C51 (18) 3.5.2 系统调试工具PROTEUS (19) 第4章课程设计总结 (20) 致谢 (21) 参考文献: (22)

1.1 设计目的 本次课程设计的主要概况是了解单片机控制15秒倒计时的过程与MAX7219基本工作原理及软件设计方法,是利用时钟芯片和定时计数器的原理将倒计时过程显示在MAX7219芯片驱动的八位共阴LED数码管上;最后应用Profassional软件设计,仿真基于AT89c51单片机的倒计时实验。以到达进一步熟悉和掌握单片机的结构及工作原理;掌握单片机的接口技术及相关外围芯片的外特性与控制方法;掌握以单片机核心的电路设计的基本方法和技术;通过实际程序设计和调试,逐步掌握模块化程序设计方法和调试技术以及通过完成一个包括电路设计和程序开发的完整过程,了解开发一单片机应用系统的全过程,为今后从事相应开发打下基础的目的。 1.2 设计要求 STC12C5A60S2(引脚排序及基本功能同AT89S51)作为主控芯片,设计利用数码管显示的倒计时时间装置。一是扩展DS12C887时钟电路设计;二是利用MAX7219驱动LG3641AH(或同型号共阴极)数码管,显示倒计时剩余时间;三是在倒计时时间减为零以后,进行加1时间显示。 1.3 设计原理 在单片机获取DS12C887时钟芯片中的秒时间后,进行数据处理和驱动MAX7219芯片驱动数码管完成显示倒计时功能。

实验三 数码管显示实验

实验十九数码管显示实验 一、实验目的 1、了解数码管的显示原理; 2、掌握数码管显示的编程方法。 二、实验内容 1、编写数码管显示程序,循环显示0-F字符 三、实验设备 1、硬件: JX44B0实验板; PC机; JTAG仿真器; 2、软件: PC机操作系统(WINDOWS 2000); ARM Developer Suite v1.2; Multi-ICE V2.2.5(Build1319); 四、基础知识 1、掌握在ADS集成开发环境中编写和调试程序的基本过程。 2、了解ARM 应用程序的框架结构; 3、了解数码管的显示原理; 五、实验说明 1、LED显示原理 发光二极管数码显示器简称LED显示器。LED显示器具有耗电低、成本低、配置简单灵活、安装方便、耐震动、寿命长等优点,目前广泛应用于各类电子设备之中。 7段LED由7个发光二极管按“日”字排列。所有发光二极管的阳极连接在一起称共阳极接法,阴极连接在一起称为共阴极接法。一般共阴极可以不需要外接电阻。 其中各二极管的排列如上图在共阳极接法中,如果显示数字“5”,需要在a、c、d、f、g端加上高电压,其它加低电压。这样如果按照dp、g、fe、d、c、b、a的顺序排列的话对应的码段是:6DH。其它的字符同理可以得到。

2、数码管显示驱动 数码管的显示一般有动态显示和静态显示两大类,另外按照驱动方式又分串行驱动和并行驱动两种方式。串行驱动主要是提供串-并转换,减少控制线数量;并行驱动对每一个段提供单独的驱动,电路相对简单。这方面参看数字电路相关内容。 下面主要介绍静态显示和动态显示: 1)静态显示: LED数码管采用静态接口时,共阴极或共阳极节点连接在一起地或者接高电平。每个显示位的段选线与一个8位并行口线相连,只要在显示位上的段选位保持段码电平不变,则该位就能保持相应的显示字符。这里的8位并行口可以直接采用并行I/O口,也可以采用串行驱动。相应的电路如下: 很明显采用静态显示方式要求有较多的控制端(并行)或较复杂的电路(串行)。但是在设计中对器件的要求低。

单片机c语言版数码管动态显示实验报告

数码管动态显示实验 一、实验要求 1.在Proteus软件中画好51单片机最小核心电路,包括复位电路和晶振电路 2.在电路中增加四个7段数码管(共阳/共阴自选),将P1口作数据输出口与7段数码 管数据引脚相连,P2.0~P2.3引脚输出选控制信号 3.在Keil软件中编写程序,采用动态显示法,实现数码管显示变量unsigned int show_value的值(show_value的值范围为0000~9999),即把show_value的千百 十个位的值用数码管显示出来。 二、实验目的 1.巩固Proteus软件和Keil软件的使用方法 2.学习端口输入输出的高级应用 3.掌握7段数码管的连接方式和动态显示法 4.掌握查表程序和延时等子程序的设计 三.实验说明 (条理清晰,含程序的一些功能分析计算) 如下图(五)所示,由P1口将要显示的数字输给七段数码管;再由P2第四位输给数码管的公共端,作为扫描输入信号;用外部中断P3.2和P3.3分别接PB1与PB2,实现数字的增减。所要实现的功能是,开始运行电路功能图时,四个数码管分别显示0000,按下PB1增1,直到9999回到0000,相反按下PB2减1,直到0000回到9999。 在算相关数据时,由于要显示个十百千的不同数字,要调用disp函数, disp[0]=show/1000; //显示千位的值 disp[1]=show%1000/100; //显示百位的值 disp[2]=show%100/10; //显示十位的值 disp[3]=show%10; //显示个位的值 本实验需要用到IE寄存器与TCON寄存器。 四、硬件原理图及程序设计 (一)硬件原理图设计

单片机实验报告书

并行I/O接口实验 一、实验目的 熟悉掌握单片机并行I/O接口输入和输出的应用方法。 二、实验设备及器件 个人计算机1台,装载了Keil C51集成开发环境软件。https://www.360docs.net/doc/af3513044.html,单片机仿真器、编程器、实验仪三合一综合开发平台1台。 三、实验内容 (1)P1口做输出口,接八只发光二极管,编写程序,使发光二极管延时(0.5-1秒)循环点亮。实验原理图如图3.2-1所示。 图3.2-1单片机并行输出原理图 实验程序及仿真 ORG 0000H LJMP START ORG 0100H START:MOV R2,#8 MOV A,#0FEH LOOP:MOV P1,A LCALL DELAY RL A

DJNZ R2,LOOP LJMP START DELAY:MOV R5,#20 D1:MOV R6,#20 D2:MOV R7,#248 D3:DJNZ R7,D3 DJNZ R6,D2 DJNZ R5,D1 RET END 中断实验 一、实验目的 熟悉并掌握单片机中断系统的使用方法,包括初始化方法和中断服务程序的编写方法。 二、实验设备及器件

个人计算机1台,装载了Keil C51集成开发环境软件。 https://www.360docs.net/doc/af3513044.html,单片机仿真器、编程器、实验仪三合一综合开发平台1台。 三、实验内容 (2)用P1口输出控制8个发光二极管LED1~LED8,实现未中断前8个LED闪烁,响应中断时循环点亮。 实验程序及仿真 ORG 0000H LJMP MAIN ORG 0003H LJMP INT00 ORG 0010H MAIN: A1:MOV A,#00H MOV P1,A MOV A,#0FFH MOV P1,A SETB EX0 JB P3.2,B1 SETB IT0 SJMP C1 B1:CLR IT0 C1:SETB EA NOP SJMP A1 INT00:PUSH Acc PUSH PSW MOV R2,#8 MOV A,#0FEH LOOP: MOV P1,A LCALL DELAY RL A DJNZ R2,LOOP

C51单片机定时器及数码管控制实验报告

理工大学信息工程与自动化学院学生实验报告 (201 — 201学年第1 学期) 课程名称:单片机技术

一、实验目的 1.掌握定时器T0、T1 的方式选择和编程方法,了解中断服务程序的设计方法,学会实时程序的调试技巧。 2.掌握LED 数码管动态显示程序设计方法。 二、实验原理 1.89C51 单片机有五个中断源(89C52 有六个),分别是外部中断请求0、外部中断请求1、定时器/计数器0 溢出中断请求、定时器/计数器0 溢出中断请求及串行口中断请求。每个中断源都对应一个中断请求位,它们设置在特殊功能寄存器TCON 和SCON 中。当中断源请求中断时,相应标志分别由TCON 和SCON 的相应位来锁寄。五个中断源有二个中断优先级,每个中断源可以编程为高优先级或低优先级中断,可以实现二级中断服务程序嵌套。在

同一优先级别中,靠部的查询逻辑来确定响应顺序。不同的中断源有不同的中断矢量地址。 中断的控制用四个特殊功能寄存器IE、IP、TCON (用六位)和SCON(用二位),分别用于控制中断的类型、中断的开/关和各种中断源的优先级别。中断程序由中断控制程序(主程序)和中断服务程序两部分组成: 1)中断控制程序用于实现对中断的控制; 2)中断服务程序用于完成中断源所要求的中断处理的各种操作。 C51 的中断函数必须通过interrupt m 进行修饰。在C51 程序设计中,当函数定义时用了interrupt m 修饰符,系统编译时把对应函数转化为中断函数,自动加上程序头段和尾段,并按MCS-51 系统中断的处理方式自动把它安排在程序存储器中的相应位置。 在该修饰符中,m 的取值为0~31,对应的中断情况如下: 0——外部中断0 1——定时/计数器T0 2——外部中断1 3——定时/计数器T1 4——串行口中断 5——定时/计数器T2 其它值预留。 89C51 单片机设置了两个可编程的16 位定时器T0 和T1,通过编程,可以设定为定时器和外部计数方式。T1 还可以作为其串行口的波特率发生器。

实验报告七-键盘扫描及显示实验

信息工程学院实验报告 课程名称:微机原理与接口技术 实验项目名称:键盘扫描及显示实验 实验时间: 班级: 姓名: 学号: 一、实 验 目 的 1. 掌握 8254 的工作方式及应用编程。 2. 掌握 8254 典型应用电路的接法。 二、实 验 设 备 了解键盘扫描及数码显示的基本原理,熟悉 8255 的编程。 三、实 验 原 理 将 8255 单元与键盘及数码管显示单元连接,编写实验程序,扫描键盘输入,并将扫描结果送数码管显示。键盘采用 4×4 键盘,每个数码管显示值可为 0~F 共 16 个数。实验具体内容如下:将键盘进行编号,记作 0~F ,当按下其中一个按键时,将该按键对应的编号在一个数码管上显示出来,当再按下一个按键时,便将这个按键的编号在下一个数码管上显示出来,数码管上可以显示最近 6 次按下的按键编号。 键盘及数码管显示单元电路图如图 7-1 和 7-2 所示。8255 键盘及显示实验参考接线图如图 7-3 所示。 图 7-1 键盘及数码管显示单元 4×4 键盘矩阵电路图 成 绩: 指导老师(签名):

图 7-2 键盘及数码管显示单元 6 组数码管电路图 图 7-3 8255 键盘扫描及数码管显示实验线路图 四、实验内容与步骤 1. 实验接线图如图 7-3 所示,按图连接实验线路图。

图 7-4 8255 键盘扫描及数码管显示实验实物连接图 2.运行 Tdpit 集成操作软件,根据实验内容,编写实验程序,编译、链接。 图 7-5 8255 键盘扫描及数码管显示实验程序编辑界面 3. 运行程序,按下按键,观察数码管的显示,验证程序功能。 五、实验结果及分析: 1. 运行程序,按下按键,观察数码管的显示。

单片机电子时钟课程设计实验报告

单片机电子时钟课程设 计实验报告 Pleasure Group Office【T985AB-B866SYT-B182C-BS682T-STT18】

《单片机原理与应用》课程设计 总结报告 题目:单片机电子时钟(带秒表)的设计 设计人员:张保江江润洲 学号: 班级:自动化1211 指导老师:阮海容 目录 1.题目与主要功能要求 (2) 2.整体设计框图及整机概述 (3) 3.各硬件单元电路的设计、参数分析及原理说明 (3) 4.软件流程图和流程说明 (4) 5.总结设计及调试的体会 (10) 附录 1.图一:系统电路原理图 (11) 2.图二:系统电路 PCB (12) 3.表一:元器件清单 (13) 4.时钟程序源码 (14)

题目:单片机电子时钟的设计与实现 课程设计的目的和意义 课程设计的目的与意义在于让我们将理论与实践相结合。培养我们综合运用电子课程中的理论知识解决实际性问题的能力。让我们对电子电路、电子元器件、印制电路板等方面的知识进一步加深认识,同时在软件编程、排错调试、焊接技术、相关仪器设备的使用技能等方面得到较全面的锻炼和提高,为今后能够独立完成某些单片机应用系统的开发和设计打下一个坚实的基础。 课程设计的基本任务 利用89C51单片机最小系统,综合应用单片机定时器、中断、数码显示、键盘输入等知识,设计一款单片机和简单外设控制的电子时钟。 主要功能要求 最基本要求 1)使用MCS-51单片机设计一个时钟。要求具有6位LED显示、3个按键输入。 2)完成硬件实物制作或使用Pruteus仿真(注意位驱动应能提供足够的电流)。 3)6位LED数码管从左到右分别显示时、分、秒(各占用2位),采用24小时标准计时制。开始计时时为000000,到235959后又变成000000。 4)使用3个键分别作为小时、分、秒的调校键。每按一次键,对应的显示值便加1。分、秒加到59后再按键即变为00;小时加到23后再按键即变为00。在调校时均不向上一单位进位 (例如分加到59后变为00,但小时不发生改变)。 5) 软件设计必须使用MCS-51片内定时器,采用定时中断结构,不得使用软件延时法,也不得使用其他时钟芯片。 6)设计八段数码管显示电路并编写驱动程序,输入并调试拆字程序和数码显示程序。7)掌握硬件和软件联合调试的方法。 8)完成系统硬件电路的设计和制作。 9)完成系统程序的设计。 10)完成整个系统的设计、调试和制作。

微控制器技术实验报告

《微控制器技术》 实验报告 指导老师: 专业: 班级: 姓名: 学号:

“微控制器技术”实验任务说明 实验目的与要求: 1、熟练掌握Keil C51集成开发工具的操作及调试程序的方法,包括:仿真调试与脱机运行间的切换方法; 2、熟练使用SST89C554RC单片机核心板及I/O扩展实验系统; 3、熟练掌握在Keil C51与Proteus仿真软件虚拟联机环境下,基于51单片机控制器数字接口电路的硬件、软件设计与功能调试; 4、完成MCS51单片机指令系统软件编程设计和硬件接口功能设计题;

实验一数字量输入输出实验 基本部分:阅读、验证C语言程序功能。使用汇编语言编程,完成实验指导书之“3.1 数字量输入输出实验”基本实验项目(P36)。 提高部分:(任选一题) 题目一:LED交通灯控制(使用8255接口芯片) 要求:使用汇编语言编程,功能为:通过开关实现LED灯工作方式即时控制,完成LED交通灯的开关控 制显示功能和LED交通灯自动循环显示功能。 题目二:LED灯控制(使用8255接口芯片) 要求:使用汇编语言编程,功能为:通过KK1实现LED灯工作方式即时控制,完成LED开关控制显示和LED灯左循环、右循环、间 隔闪烁功能。 题目三:键盘扫描与数码管显示设计(使用8255接口芯片)要求:阅读、验证C语言参考程序功能。使用汇编语言完成编程与功能调试(P69)。 1、实验目的 了解P1口作为输入输出方式使用时,CPU对P1口的操作方式。 2、实验内容: P1口是8位准双向口,每一位均可独立定义为输入输出。编 写实验程序,将P1口的低4位定义为输出,高4位定义为输 入,数字量从P1口的高4位输入,从P1口的低4位输出控 制发光二极管的亮灭。

单片机实验——数码管显示

单片机实验——数码管显示

数码管显示 一、数码管静态显示 1、电路图 图1 2、电路分析 该电路采用串行口工作方式进行串行显示实验,串行传输数据为8位,只能从RXD端输

入输出,TXD端用于输出同步移位脉冲。当CPU 执行一条写入发送缓冲器SBUF的指令时,产生一个正脉冲,串行口开始将发送缓冲器SBUF 中的8位数据按照从低位到高位依次发送出去,8位数据发送完毕,发送结束标志TI置1,必须由软件对它清0后才能启动发送下一帧数据。 因此,当输完8个脉冲后,再一次来8个脉冲时,第一帧的8位数据就移到了与之相连的第二个74LS164中,其他数据依此类推。 3、流程图

发送数据 二、数码管动态显示 1、电路图

图2 2、电路分析 R1-R7电阻值计算:一个7-seg 数码管内部由8段LED 组成,因此导通电压和电流与LED 灯相同,LED 导通压降大概在 1.5V-2.2V ,电流3mA-30mA ,单片机的工作电压是5V , 所以 一般取Rmin 和Rmax 中间值,330Ω、470Ω、510Ω。 由于P0口内部没有上拉电阻,所以在P0 口接1003025Im min 1325Im max =-===-==mA V V an U R K mA V V in U R

排阻,上拉电压。如果没有排阻的话,接上拉电阻时需要考虑数码管的电流,如果太小的话,是驱动不了数码管的。如图3: 发现电流大于5mA时,数码管才能亮,与前面电流最小3mA不符,因此计算数码管电流时使其在10mA-20mA之间,确保能驱动数码管亮。 两个74HC573实现对六位数码管的段选和位选,控制端为LE(第11脚)。 3、思路分析 先使第一个573输出同步,把数据送入573中,然后锁存,第二个573输出同步,打开第一个数

实验六 使用单片机定时器的数码管动态显示驱动实验

实验六使用单片机定时器的数码管动态显示驱动实验 一、实验目的 ●掌握数码管动态驱动方式的工作原理; ●掌握单片机定时器中断服务程序的编写方法; ●掌握基于单片机定时器中断调度方式的数码管动态显示驱动程序的编写方法。二、实验要求 ●单片机通过P1 端口连接数码管组的字型码(段码)控制端; ●单片机通过P0 端口连接数码管组的位置码(位码)控制端; ●根据电路连接方式和数码管驱动方式,设计显示0~9,A~F 的字型码; ●设置8 个字节的显示缓冲区,通过数码管动态显示驱动的方法,将显示缓冲区内容 显示在8 位数码管上。 三、实验设备 ●硬件:PC 机,nKDE-51 单片机实验教学系统; ●软件:Keil C51 集成开发环境,FlashMagic 单片机程序烧写软件。 四、实验原理 1. MCS-51 定时器/计数器的结构及功能 MCS-51 单片机内部提供两个16 位定时器/计数器,分别是定时器/计数器0(T0)和定时器/计数器1(T1)。虽然它们被称为定时器/计数器,但本质上它们都计数器。当选择单片机的机器周期作为计数对象时,由于机器周期出现的频率和晶振频率之间的关系是固定的,对固定频率的信号进行计数实际上就是定时器;当对通过T0 引脚(P3.4)或T1 引脚(P3.5)引入的外部脉冲作为计数对象时,它们是计数器。 图6-1 MCS-51 单片机定时器/计数器0、1 结构框图 定时器/计数器的基本结构如图6-1 所示。它是由6 个特殊功能寄存器组成的。其中,定时器T0 由TH0 和TL0 两个8 位计数器组成;定时器T1 由TH1 和TL1 两个8 位计数器组成。 当它们用做定时器时,其计数脉冲来源于晶振时钟输出信号的12 分频,即每个机器周期使计数器加1,所以说定时器本质上是针对机器周期的计数器,一旦单片机的晶振频率选定,机器周期也就随之确定,从而使对机器周期的计数转换为对确定时间的计数。例如,当单片机晶振频率选择为12MHz 时,一个机器周期就是1μs,即计数器对机器周期每计数一次,就是1μs,具体的定时时长可通过简单的换算变换成相应的计数值。 当它们用做计数器时,只要T0 或T1 的引脚上有一个从1 到0 的负跳变,相应的计数器就加1。由于单片机在每个机器周期的S5P2状态对T0 及T1 引脚的电平进行一次采样,因此单片机需要用两个机器周期来识别一次负跳变,所以单片机计数器的最高计数频率为晶

51单片机实验报告94890

《单片机与接口技术》实验报告 信息工程学院 2016年9月

辽东学院信息技术学院 《单片机与接口技术》实验报告 姓名:王瑛 学号: 0913140319 班级: B1403 专业:网络工程 层次:本科 2016年9月

目录 实验题目:实验环境的初识、使用及调试方法(第一章) 实验题目:单片机工程初步实验(第二章) 实验题目:基本指令实验(第三章)4 实验题目:定时器/计数器实验(第五章)4 实验题目:中断实验(第六章)4 实验题目:输入接口实验(第八章)4 实验题目:I/O口扩展实验(第九章)4 实验题目:串行通信实验(第十一章)4 实验题目:A/D,D/A转换实验(第十七章)4

实验题目:实验环境的初识、使用及调试方法实验 实验类型:验证性实验课时: 1 时间:2016年10月24日 一、实验内容和要求 了解单片机的基础知识 了解51单片机的组成和工作方法 掌握项目工程的建立、编辑、编译和下载的过程方法 熟练单片机开发调试工具和方法 二、实验结果及分析 单片机最小系统的构成: Keil集成开发环境:

STC-ISP:

实验题目:单片机工程初步实验 实验类型:验证性实验课时: 1 时间:2016 年10 月24 日一、实验内容和要求 点亮一个LED小灯 程序下载到单片机中 二、实验结果及分析 1、点亮一个LED小灯 点亮LED小灯的程序: #include //包含特殊功能寄存器定义的头文件 sbit LED = P0^0; sbit ADDR0 = P1^0; //sbit必须小写,P必须大写 sbit ADDR1 = P1^1; sbit ADDR2 = P1^2; sbit ADDR3 = P1^3; sbit ENLED = P1^4; void main() { ENLED = 0; ADDR3 = 1; ADDR2 = 1; ADDR1 = 1; ADDR0 = 0; LED = 0; //点亮小灯 while (1); //程序停止 } 2、程序下载 首先,我们要把硬件连接好,把板子插到我们的电脑上,打开设备管理器查看所使用的COM 口,如图所示:

C51单片机定时器及数码管控制实验报告

昆明理工大学信息工程与自动化学院学生实验报告 ( 201 —201学年第1 学期) 课程名称:单片机技术 开课实验室: 年月日

一、实验目的 1. 掌握定时器 T0、T1 的方式选择与编程方法,了解中断服务程序的设计方法, 学会实时程序的调试技巧。 2. 掌握 LED 数码管动态显示程序设计方法。 二、实验原理 1.89C51 单片机有五个中断源(89C52 有六个),分别就是外部中断请求 0、外部中断请求 1、定时器/计数器 0 溢出中断请求、定时器/计数器 0 溢出中断请求及串行口中断请求。每个中断源都对应一个中断请求位,它们设置在特殊功能寄存器 TCON 与 SCON 中。当中断源请求中断时,相应标志分别由 TCON 与SCON 的相应位来锁寄。五个中断源有二个中断优先级,每个中断源可以编程为高优先级或低优先级中断,可以实现二级中断服务程序嵌套。在同一优先级别中,靠内部的查询逻辑来确定响应顺序。不同的中断源有不同的中断矢量地址。 中断的控制用四个特殊功能寄存器 IE、IP、TCON (用六位)与 SCON(用二位), 分别用于控制中断的类型、中断的开/关与各种中断源的优先级别。中断程序由中断控制程序(主程序)与中断服务程序两部分组成: 1)中断控制程序用于实现对中断的控制; 2)中断服务程序用于完成中断源所要求的中断处理的各种操作。 C51 的中断函数必须通过 interrupt m 进行修饰。在 C51 程序设计中,当函数定义时用了 interrupt m 修饰符,系统编译时把对应函数转化为中断函数,自动加上程序头段与尾段,并按 MCS-51 系统中断的处理方式自动把它安排在 程序存储器中的相应位置。 在该修饰符中,m 的取值为 0~31,对应的中断情况如下: 0——外部中断 0 1——定时/计数器 T0 2——外部中断 1 3——定时/计数器 T1 4——串行口中断 5——定时/计数器 T2 其它值预留。 89C51 单片机内设置了两个可编程的 16 位定时器 T0 与 T1,通过编程,可以设定为定时器与外部计数方式。T1 还可以作为其串行口的波特率发生器。 2. 定时器 T0 由特殊功能寄存器 TL0 与 TH0 构成,定时器 T1 由 TH1 与TL1 构成, 特殊功能寄存器 TMOD 控制定时器的工作方式,TCON 控制其运行。定时器的中断由中断允许寄存器 IE,中断优先权寄存器 IP 中的相应位进行控制。定时器 T0 的中断入口地址为 000BH,T1 的中断入口地址为 001BH。 定时器的编程包括: 1) 置工作方式。 2) 置计数初值。

拨码开关输入数码管显示实验

综合课程设计实验报告 班级: 姓名: 学号:11 指导老师:

实验名称: 拨码开关输入数码管显示实验 实验要求: 1. 掌握数码管显示原理 2. 掌握拨码开关工作原理 3. 通过FPGA用拨码开关控制数码管显示 实验目标: 4位拨码开关分别对应4位数码管,拨动任意1位开关,对应的数码管将显示数字1,否则显示数字0。 实验设计软件 Quartus II 实验原理 1.数码管显示模块 电路原理图:

如图所示,数码管中a,b,c,d,e,f,g,dp分别由一个引脚引出,给对应的引脚高电平,则对应引脚的LED点亮,故我们在程序中可以设定一个8位的二进制数reg【7:0】h,每一位对应一个相应的引脚输出,那么我们就可以通过对x的赋值,控制对应的8个LED亮灭的状态进行数字显示。例如,如果我们显示数字2,则在数码管中,a、b、d、e、g亮,c、f、dp不亮,则显示的是数字2,即h=’b代表显示数字2。 2.拨码开关模块 电路原理图: 拨码开关有8个引脚,每个引脚对应于数码管的一个LED灯,当拨码开关的一个引脚是高电平时,则对应的数码管一个LED灯亮,其他7个LED等不亮。通过此原理来实现数码管的LED灯亮暗情况从而实现数码管的数字显示。例如当第一个拨码接通时,此时输入信号为8'b对应的数码管的输出信号为out=8'b,此时相当于数码管a,b,c,d,e,f,g亮,7段数码管全部显示,显示的数字为8。 程序代码 module bomakaiguan(out,key_in,clk); assign p='b1111; output[7:0] out=8'b; input[7:0] key_in; input clk; reg[7:0] out; always @(posedge clk) begin case(key_in) 8'b: out=8'b;

单片机实验报告

课程设计课程名称单片机原理及应用 课题名称基于1602电子时钟设计 专业电子信息工程 班级 学号 姓名 指导老师 2017年12月21日 电气信息学院

课程设计任务书 课题名称基于1602电子时钟设计 姓名专业电子信息工程班级学号 指导老师 课程设计时间2017年12月4日-2017年12月15日(14、15周) 教研室意见意见:审核人: 一、任务及要求 设计任务: 以单片机为核心设计一个电子时钟。能焊接开发板的同学,在开发板上进行调试。 (1)时间显示在1602液晶上,并且按秒实时更新。 (2)使用按键随时调节时钟的时、分、秒,按键可设计三个有效键,分别为功能选择键、数值增大键和数值减小键。 (3)每次有键按下时地,蜂鸣器都以短“滴”声报警。 (4)如何继续断电前的时间。 设计要求: (1)确定系统设计方案; (2)进行系统的硬件设计; (3)完成必要的参数计算与元器件选择; (4)开发板焊接及测试 (5)完成应用程序设计; (6)应用系统的硬件和软件的调试。

二、进度安排 第一周: 周一:集中布置课程设计相关事宜,并查阅、收集相关设计资料。 周二:系统方案设计。 周三~周五:实验室进行硬件设计,软件设计及调试。 第二周: 周一~周二:实验室系统仿真及硬件调试。 周三:实验室检查调试结果。 周四:撰写设计报告。 周五:进行答辩和上交设计说明书。 三、参考资料 1、周向红.51系列单片机应用与实践教程.北京航空航天大学出版社.2008.5 2、周向红.51单片机课程设计.华中科技大学出版社.2011.1 3、王迎旭.单片机原理及应用(第2版).机械工业出版社.2012.2 4、郭天祥.51单片机C语言教程(入门提高开发拓展全攻略).电子工业出版社.2012.1 5、樊思奇.80C51单片机C语言程序设计完全手册.电子工业出版社.2014.5 6、彭伟.单片机C语言程序设计实训100例基于8051+Proteus仿真.电子工业出版社.2009.6 7、孙安青.MCS-51单片机C语言编程100例(第二版).中国电力出版社.2017.6 8、赵建领.零基础学单片机C语言程序设计.机械工业出版社.2012.9

EDA设计课程实验报告数码管动态显示实验报告

EDA设计课程实验报告 实验题目:数码管动态显示实验 学院名称: 专业:电子信息工程 班级: 姓名:高胜学号 小组成员: 指导教师: 一、实验目的 学习动态扫描显示的原理;利用数码管动态扫描显示的原理编写程序,实现自己的学号的显示。 二、设计任务及要求

1、在SmartSOPC实验箱上完成数码管动态显示自己学号的后八个数字。 2、放慢扫描速度演示动态显示的原理过程。 三、系统设计 1、整体设计方案 数码管的八个段a,b,c,d,e,f,g,h(h是小数点)都分别连接到SEG0~SEG7,8个数码管分别由八个选通信号DIG0~DIG7来选择,被选通的数码管显示数据,其余关闭。如果希望8个数码管显示希望的数据,就必须使得8个选通信号DIG0~DIG7分别被单独选通,并在此同时,在段信号输入口SEG0~SEG7加上该对应数码管上显示的数据,于是随着选通信号的扫描就能实现动态扫描显示的目的。虽然每次只有1个数码管显示,但只要扫描显示速率足够快,利用人眼的视觉余辉效应,我们仍会感觉所有的数码管都在同时显示。 2、功能模块电路设 (1)输入输出模块框图(见图1) 图1 (2)模块逻辑表达(见表1) 表1(数码管显示真值表) clk_1k dig seg ↑01111111 C0 ↑10111111 F9

注:数码管显示为01180121 (3)算法流程图(见图2) (4)Verilog源代码 module scan_led(clk_1k,d,dig,seg); //模块名scan_led input clk_1k; //输入时钟 input[31:0] d; //输入要显示的数据output[7:0] dig; //数码管选择输出引脚

数码管实验报告

篇一:实验八数码管led实验报告 苏州大学实验报告 院、系年级专业姓名学号课程名称成绩指导教师同组实验者实验日期 实验名称:数码管led实验 一.实验目的 理解8段数码管的基本原理,理解8段数码管的显示和编程方法,理解4连排共阴极8段数码管lg5641ah与mcu的接线图。二.实验内容 理解8段数码管原理,运行与理解各子程序,编制一个4连排8段数码管程序,mcu的排8段数码管显示mcu复位后的开始到现在的运行时间。由于只有四个数码管,所以只显示mcu 运行到目前为止的分钟和秒,当计时达到一个小时,就重新从00:00开始计时。另外,也可以通过pc方的串口通信程序,指定计时的开始值。三.实验过程(一)原理图 图8-2数码管外形 dp a b c e f g dp 图8-1 数码管(二)接线图 图8-3 mcu与4连排8段数码管的连接第1页 (三)基本原理 8段数码管一般由8个发光二极管(llight-emitting diode,led)组成,每一个位段就是一个发光二极管。一个8段数码管分别由a、b、c、d、e、f、g位段,外加上一个小数点的位段h(或记为dp)组成。根据公共端所接电平的高低,可分为共阳极和共阴极两种。有时数码管不需要小数点,只有7个位段,称7段数码管。共阴极8段数码管的信号端高电平有效,只要在各个位段上加上相应的信号即可使相应的位段发光,比如:要使a段发光,则在发光。 四.编程 (一)流程图 图8-4 数码管led显示流程图(及其中断子程序) (二)所用寄存器名称及其各个位 程序中没有使用与led显示相关的控制和状态寄存器,仅仅使用了通用i/o口a口和b口。(三)主要代码段 1第2页第3页 2.c 第4页 第5页 篇二:数码管实验报告 单片机实验报告 一、实验名称 数码管动态扫描显示01234567(实验五) 二、实验目的 (1)掌握数码管显示数字的原理。 (2)通过不同的编程实现灵活运用数码管。 三、实验原理 四、相关原理图 五、实验内容

单片机实验报告

本科生实验报告 实验课程单片机原理及应用 学院名称核技术与自动化工程学院 专业名称电气工程及其自动化 学生姓名 学生学号 指导教师任家富 实验地点6C902 实验成绩 二〇一五年三月二〇一五年六月 单片机最小系统设计及应用 摘要 目前,单片机以其高可靠性,在工业控制系统、数据采集系统、智能化仪器仪表等领域得到极其广泛的应用。因此对于在校的大学生熟练的掌握和使用单片机是具有深远的意义。通过本次课程设计掌握单片机硬件和软件方面的知识,更深入的了解单片机的实际应用,本次设计课程采用STC89C52单片机和ADC0804,LED显示,键盘,RS232等设计一个单片机开发板系统。进行了LED显示程序设计,键盘程序设计,RS232通信程序设计等。实现了单片机的各个程序的各个功能。对仿真软件keil的应用提升了一个新的高度。单片机体积小、成本低、使用方便,所以被广

泛地应用于仪器仪表、现场数据的采集和控制。通过本实验的学习,可以让学生掌握单片机原理、接口技术及自动控制技术,并能设计一些小型的、综合性的控制系统,以达到真正对单片机应用的理解。 关键词:单片机;智能;最小系统;ADC;RS232;显示;STC89C52 第1章概述 单片机又称单片微控制器,它不是完成某一个逻辑功能的芯片,而是把一个计算机系统集成到一个芯片上。相当于一个微型的计算机,和计算机相比,单片机只缺少了I/O设备。单片机采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计时器等功能(可能还包括显示驱动电路、脉宽调制电路、模拟多路转换器、A/D转换器等电路)集成到一块硅片上构成的一个小而完善的微型计算机系统。概括的讲:一块芯片就成了一台计算机。它的体积小、质量轻、价格便宜、为学习、应用和开发提供了便利条件。同时,学习使用单片机是了解计算机原理与结构的最佳选择。 它最早是被用在工业控制领域,由于单片机在工业控制领域的广泛应用,单片机由芯片内仅有CPU的专用处理器发展而来。最早的设计理念是通过将大量外围设备和CPU集成在一个芯片中,使计算机系统更小,更容易集成进复杂的而对体积要求严格的控制设备当中。 现代人类生活中所用的几乎每件电子和机械产品中都会集成有单片机。手机、电话、计算器、家用电器、电子玩具、掌上电脑以及鼠标等电脑配件中都配有1-2部单片机。汽车上一般配备40多部单片机,复杂的工业控制系统上甚至可能有数百台单片机在同时工作!单片机的数量不仅远超过PC机和其他计算的总和,甚至比人类的数量还要多。单片机的使用领域已十分广泛,如智能仪表、实时工控、通讯设备、导航系统、家用电器等。各种产品一旦用上了单片机,就能起到使产品升级换代的功效,常在产品名称前冠以形容词——“智能型”,如智能型洗衣机等。 第2章实验内容 2.1单片机集成开发环境应用

单片机实验四 I O显示控制实验(数码管显示实验)

电子信息工程学系实验报告 课程名称:单片微型计算机与接口技术Array 实验项目名称:实验四 I/O显示控制实验实验时间: 班级: **** 姓名:**** 学号:******** 一、实验目的: 1、熟悉keil仿真软件、proteus仿真软件、软件仿真板的使用。 2、了解并熟悉一位数码管与多位LED数码管的电路结构、与单片机的连接方法及其应用原理。 3、学习proteus构建LED数码管显示电路的方法,掌握C51中单片机控制LED数码管动态显示的原理与编程方法。 二、实验环境: 1、Windows XP系统; 2、Keil uVision2、proteus系列仿真调试软件 三、实验原理: 1、LED数码管的结构和原理 LED显示器是由发光二极管显示字段的显示器件。在单片机应用系统中通常使用的是七段LED,这种显示器有共阴极与共阳极两种。 (a)共阴极LED显示器的发光二极管阴极共地,当某个发光二极管的阳极为高电平时,该发光二极管则点亮; (b)共阳极LED显示器的发光二极管阳极并接。 2、七段显示器与单片机接口:只要将一个8位并行输出口与显示器的发光二极管引脚相连即可。8位并行输出口输出不同的字节数据即可获得不同的数字或字符,如下表所示。通常将控制发光二极管的8位字节数据称为段选码。 八段选码(显示码)的推导(以共阳数码管显示C为例): 要显示C则a、f、e、d四个灯亮2.为是共阳数码管,则a、f、e、d应送0时亮3.dp-a为11000110B 3、多位数码管的显示:电路结构、动态静态两种实现原理: LED显示器有静态显示与动态显示两种方式。 (1) LED静态显示方式 各位LED的位选线连在一起接地或接+5V;每位LED的段选线(a-dp)各与一个八位并行口相连; 在同一时间里每一位显示的字符可以各不相同。

单片机课程设计--定时器

单片机课程设计--定时器

题目名称:定时器时钟数码管显示姓名: 班级: 学号: 日期:2012年6月29日

单片机时钟 1.摘要: 时钟是人类生活中必不可少的的工具,本设计从日常生活中的事物入手,通过对时钟计时器的设计,让我们认识到单片机已经深入到我们生活的每个领域,该设计不仅可以锻炼我们的动手能力,而且可以加深我们对单片机的认识和激发我们队位置科学领域的探索。 利用单片机实现教学数字时钟计时的主要功能,采用独立式按键进行时间调整,其中AT89C52是核心元件同是采用数码管LED动态显示“时”,“分”,“秒”的现代计时装置。与传统机械表相比,它具有走时精确,显示直观等特点。它的计时周期为24小时,显满刻度为“23时59分59秒”。该系统同时具有硬件设计简单,工作稳定性高,价格低廉等优点。 1.1. 关键词 AT89C52 、LED显示 1.2. 功能要求 1)七位数码管显示时、分、秒,以24小时运算 2)可实现时分调整 1.3. 主要硬件元器件的介绍 1.3.1 51单片机芯片 根据初步这几方案的分析,设计这样一个简单的应用系统,可以选择带有EPROM的单片机,应用程序直接存储在片内,不用在外部扩展程序存储器,电路可以简化。该系统的设计我们采用8051芯片。 下图所示为双列直插式封装的8051AH芯片的管脚图,功能如下:

8051AH芯片的管脚图 1.电源管脚 Vcc(40脚):接+5V;Vss(20)脚:接地。 2.时钟信号管脚 X1(19脚), X2(18脚):外部时钟信号的两个管脚。 3.控制线 1)RESET(9脚):用作复位输入端。 2)EA’/VP(31脚):EA’为访问内部或外部程序存储器的选择信号。对片内EPROM编程时,此管脚(作VP)接入21V编程电压。 3)ALE/P’(30脚):当访问外部存储器时,ALE信号的负跳变将P0口上的低8位地址送入锁存器。当对内EPROM编程时,该管脚(P’)用于输入编程脉冲。 4)PSEN’(29脚):外部程序存储器读选通控制信号。 4.输入/输出口线 1)P0口(32-39脚):8路漏极开路型双向并行I/O口。在访问外部存储器时,P0口作为低8位地址/数据总线复用口,通过分时操作,先传送低8位地址,利用ALE信号的下降沿将地址锁存,然后作为8位数据总线使用,用来传送8位数据。在对片内EPROM编程时,P0口接受指令代码;而在内部程序校验时,则输出指令代码,并要求外接上拉电阻。外部不拓展位单片应用,则作双向I/O口用,P0口能以吸收电流的方式驱动8个LSTTL 负载。 2)P1口(1-8脚):具有内部上拉电阻的8位准双向I/O口。在对片内EPROM编程及校验时,它接收低8位地址。P1口能驱动4个LETTL负载。

相关文档
最新文档