单片机实验报告_实时时钟

单片机实验报告_实时时钟
单片机实验报告_实时时钟

姓名:姓名:学号:学号:

一、实验要求:

1. 设计一个实时时钟,四个八段数码管显示格式为:XX.XX(小时/分钟,24小时计时法);使用一个LED用来显示秒的状态,显示规则为:以1Hz频率闪烁,既亮灭一次为一秒钟,500毫秒亮、500毫秒灭。

2. 实时时钟可以通过3x4键盘设置初始值。数字键用于输入数值,sfb0键为设置键,sfb1键为开关键。

3. 设置初始值的流程:先按下sfb0键,四个数码管显示内容变为全“0”,并以1HZ频率开始闪烁并等待键盘输入小时、分钟数值(其中小时2位数,分钟2位数),输入完毕后,实时时钟开始以新输入的时间值开始计时。

4. 开关键的使用方法:在计时模式下按sfb1键一次,时钟停止计时,时间数值停留在按键那刻;在停止计时模式下,按sfb1键一次时钟开始继续计时。

5. 定时闹铃功能(加分功能,可选做):按sgp0_key键,进入闹铃值设置模式,四个数码管显示内容变为全“0”,并以1HZ频率开始闪烁并等待键盘输入小时、分钟数值(其中小时2位数,分钟2位数),此时计时仍然运行,输入完毕后,显示内容恢复为计时值。当时钟计时到达闹铃值,驱动蜂鸣器鸣响8次。

6. 增加通过RS232接口,更改时钟当前时间的功能。

二、实验程序说明:

对实验按键和存储位置的说明语句:

1.创建一个新工程,在该工程的器件编辑器(Device Editor)中选择定时器模块,然后将其按要求放置,如图所示。

图定时器模块放置图

2.配置全局资源。单击参数内容方框里的下拉箭头,选择合适的参数值,便可以更改工程中默认的全局资源。此实验配置的全局资源如图所示。

图全局资源配置

3.按图配置Timer8定时器模块的参数。

4.按图配置管脚驱动模式。

图管脚驱动模式的参数配置

5.程实现3×4矩阵键盘扫描功能,将按下键的键值显示在数码管上。相应的按键管脚配置如图如示。

按键管脚配置

实验程序:

//----------------------------------------------------------------------------

//文件名:main.c

//----------------------------------------------------------------------------

#include // part specific constants and macros

#include "PSoCAPI.h" // PSoC API definitions for all User Modules #pragma interrupt_handler KeyScan

#pragma interrupt_handler timer1_ISR

//void KeyScan();

void delay10ms(unsigned char time);

void Dispaly(unsigned char k);

unsigned char key=1,temp, stopCount;

BYTE byte_Period,byte_Duty;

#define DATA PRT3DR

#define SEL PRT4DR

#define LED1 0b11111110

#define LED2 0b11111101

#define LED3 0b11111011

#define LED4 0b11110111

#define dp 0b11111110

#define sfb0 10

#define sfb1 11

#define STOP 12

#define RESET 13

#define CLOCK 14

#define sgp0_key 0

/*common anode LED,therefore the LED will light when the pin is low*/ unsigned char num[17] =

{0x03,0x9f,0x25,0x0d,0x99,0x49,0x41,0x1f,0x01,0x09,0x11,0xc1,

0x63,0x85 ,0x61,0x71,0xff};

unsigned char

reg[]={0x03,0x9f,0x25,0x0d,0x99,0x49,0x41,0x1f,0x01,0x09,0x11,0xc1,0 x63,0x85,0x61,0x71,0xff};

unsigned char led1_dig=0,led2_dig=0,led3_dig=0,led4_dig=0;//分别是

1,2,3,4数码管现在的数

unsigned char led1=0,led2=0,led3=0,led4=0; //????

//当做缓存的数,设置的时候用到。

unsigned char led_count=1;

unsigned char led_dp=0, setnum=1;

//setnum表示当前设置的是第几位

unsigned char flag0, flag1, i, j;//flag0设置当前显示的是时钟还是设置的数,flag1设置时钟是停下来还是走

unsigned int count = 0, dpcount = 0;

//count就是一个计数的,dpcount是专门针对秒钟的点设置的计数的,根据实验的要求要分开

unsigned char clock1,clock2,clock3,clock4;

/******************************************************************* ***/

void timer1_ISR()

{

if(led_count==5)

led_count=1;//从第一位开始

dpcount++;

if( flag1 == 0 && count++ == 200)

/*频率是五十赫兹,要求四个数码管都显示一边,乘以四,就是200*/

{

count = 0;

if(led4_dig++ == 9)//if函数设置进制的问题,考虑时间不是十进制,所以对每位分别设置

{

led4_dig = 0;

if(led3_dig++ == 5)

{

led3_dig = 0;

if(led2_dig == 3 && led1_dig == 2 || led2_dig == 9)

{

led2_dig = 0;

if(led1_dig++ == 2)

led1_dig = 0;

}

else

led2_dig++;

}

}

}

if( flag0 == 0 )

{

led1 = led1_dig;

led2 = led2_dig;

led3 = led3_dig;

led4 = led4_dig;

}

switch(led_count)

{

case 1:

if(setnum==1 && dpcount %200 >99)//在设置的时候控制LED1灯的闪烁,半秒时间亮半秒时间灭

SEL=0xff&LED1,DATA=0xff;//LED1灯灭高电平熄灭,低电平点亮

else

SEL=0xff&LED1,DATA=reg[led1];//LED1灯亮,sel就是设置的地址,data就是置数

break;

case 2:

if(setnum==2 && dpcount %200 >99)

SEL=0xff&LED2,DATA=0xff;

else if(flag1 || led_dp==2 && dpcount % 200 < 100)

SEL=0xff&LED2,DATA=reg[led2]&dp;//秒钟的点额外分配, else

SEL=0xff&LED2,DATA=reg[led2];

break;

case 3:

if(setnum==3 && dpcount %200 >99)

SEL=0xff&LED3,DATA=0xff;

else

SEL=0xff&LED3,DATA=reg[led3];

break;

case 4:

if(setnum==4 && dpcount %200 >99)

SEL=0xff&LED4,DATA=0xff;

else

SEL=0xff&LED4,DATA=reg[led4];

break;

default:

break;

}

++led_count;//设置的时候第几位闪烁

}

void KeyScan() //键盘中断程序

{

PRT5DR=0b11111110;//assign p5[0]=0

temp=PRT5DR;

temp&=0xF0; //

if(temp !=0xF0)

{

delay10ms(1);

temp=PRT5DR;

temp&=0xF0;

if(temp !=0xF0)

{

temp=PRT5DR;

temp&=0xF0;

switch(temp)

{

case 0X70:

key=7;

break;

case 0XB0:

key=4;

break;

case 0XD0:

key=1;

break;

case 0XE0:

key=0;

break;

}

}

}

PRT5DR=0b11111101;//assign p5[1]=0 temp=PRT5DR;

temp&=0xF0;

if(temp !=0xF0)

{

delay10ms(1);

temp=PRT5DR;

temp&=0xF0;

if(temp !=0xF0)

{

temp=PRT5DR;

temp&=0xF0;

switch(temp)

{

case 0x70:

key=8;

break;

case 0b10110000:

key=5;

break;

case 0b11010000:

key=2;

break;

case 0b11100000:

key=sfb0;

break;

}

}

}

PRT5DR=0b11111011; //assign p5[2]=0

temp=PRT5DR;

temp&=0xF0;

if(temp !=0xF0)

{

delay10ms(1);

temp=PRT5DR;

temp&=0xF0;

if(temp !=0xF0)

{

temp=PRT5DR;

temp&=0xF0;

switch(temp)

{

case 0x70:

key=9;

break;

case 0b10110000:

key=6;

break;

case 0b11010000:

key=3;

break;

case 0b11100000:

key=sfb1;

break;

}

}

}

PRT5DR=0xf0;

}

void delay10ms( unsigned char time)//延时函数

{

unsigned char a,b,c;

for(a=0;a

for(b=0;b<10;b++)

for(c=0;c<120;c++);

}

void Reset()//选择重置时间,内容跟设置闹钟差不多。{

flag1 = 1;

key = STOP;

led1_dig = led2_dig = led3_dig = led4_dig = 0;

setnum = 1;

while(key != sfb0)

{

if(key != STOP)

{

if(key < 3)

led1_dig = key;

key = STOP;

}

delay10ms(1);

}

setnum = 2;

key = STOP;

while(key != sfb0)

{

if(key != STOP)

{

if(key < 4 || key < 10 && led1_dig < 2)

led2_dig = key;

key = STOP;

}

delay10ms(1);

}

setnum = 3;

key = STOP;

while(key != sfb0)

{

if(key != STOP)

{

if(key < 6)

led3_dig = key;

key = STOP;

}

delay10ms(1);

}

setnum = 4;

key = STOP;

while(key != sfb0)

{

if(key != STOP)

{

if(key < 10)

led4_dig = key;

key = STOP;

}

delay10ms(1);

}

setnum = 0;

count = 0;

key = 1;

flag1 = 0;//启动开始计时

}

void ClockSet()

{

flag0 = 1;

key = CLOCK;

led1 = clock1;

led2 = clock2;

led3 = clock3;

led4 = clock4;

setnum = 1;

while(key != sfb0)//设置第一个数,{

if(key != CLOCK)

{

if(key < 3)

led1 = key;

key = CLOCK;

}

delay10ms(1);

}

key = CLOCK;

setnum = 2;

while(key != sfb0)

{

if(key != CLOCK)

{

if(key < 4 || key < 10 && led1 < 2)//设置第二位当第一位等于2时,第二位小于4

led2 = key;

key = CLOCK;

}

delay10ms(1);

}

key = CLOCK;

setnum = 3;

while(key != sfb0)

{

if(key != CLOCK)

{

if(key < 6)

led3 = key;

key = CLOCK;

}

delay10ms(1);

}

key = CLOCK;

setnum = 4;

while(key != sfb0)

{

if(key != CLOCK)

{

if(key < 10)

led4 = key;

key = CLOCK;

}

delay10ms(1);

}

key = 1;

setnum = 0;

clock1 = led1;

clock2 = led2;

clock3 = led3;

clock4 = led4;

flag0 = 0;

}

void delay()//就是一个延时

{

BYTE tmp1,tmp2;

for(tmp1=0;tmp1<255;tmp1++)

for(tmp2=0;tmp2<255;tmp2++);

}

void main()

{

INT_MSK0 = 0x0;

PRT5DR &=0xf0;

PRT1DR=0x0f;

PRT5IE = 0xf0;

INT_MSK0 |= 0x20;

M8C_EnableGInt;

stopCount = 0;//1:停止计时0:正常计时

setnum = 0;// 从左往右分别是第几个数码管

Timer8_1_EnableInt();

M8C_EnableGInt;

Timer8_1_Start();//Timer8中断开启

led_dp=2;//小数点位置

byte_Period = 99;

byte_Duty = 99;

PWM8_1_WritePeriod(byte_Period);

PWM8_1_WritePulseWidth(byte_Duty);

clock1 = clock2 = clock3 = clock4 = 9;//设置闹钟的初始值,确保在没有设定的情况下不会响

key = 1;

while(1)

{

if(key==sfb1)//第1次按下sfb1

{

//Timer8_1_Stop();

key = STOP;

flag1 = 1;//flag1表示时钟暂停

while(key != sfb1 );//第二次按下sfb1

flag1 = 0;

key = 1;

}

else if(key==sfb0)//重新设定时间

{

Reset();

}

else if(key == sgp0_key)//设置闹钟

{

ClockSet();

}

else

{

Timer8_1_Start();//启动开始计时

}

if(led1_dig == clock1 && led2_dig == clock2 && led3_dig == clock3 && led4_dig == clock4)

{

for(i = 0; i <8; i ++ )//判断是不是闹钟时间到了。如果是的话,蜂鸣器响八次

{

PWM8_1_Start();//调用蜂鸣器

delay();

PWM8_1_Stop();

delay();

}

//clock1 = clock2 = clock3 = clock4 = 8;

}

}

}

三、实验总结

此次单片机实验让我收获很多。一开始,由于自己的编程能力不好,只有时间设置和秒表有自己研究编写的足迹,所以从语句运用到寄存器的定义和使用,都存在很多问题。经过同学的指点,对问题的不断发掘和思考,对单片机和编程语言的理解和使用能力有了明显的提高。

实时时钟设计实验报告

实验报告

源代码: #pragma sfr //使用特殊功能寄存器 #pragma EI //开中断 #pragma DI //关中断 #pragma access //使用绝对地址指令 #pragma interrupt INTTM000 Time //定义时间中断函数为Time #pragma interrupt INTKR OnKeyPress //定义按键中断为OnKeyPress #pragma interrupt INTP5 OnKeyOver //定义INT中断为OnKeyOver void Init_Led(); void InitKey_INTKR(); void Init_Lcd(); void Init_Inter(); void LightOneLed(unsigned char ucNum); void LightOff(); int Count_Day(int month); char i=0; //定义变量i,是切换时间的标志 int key=0; //定义key=0 int temp=1; //用于存放当前月的天数 int temp1=1; int second=0; //默认的秒second=0 int minute=0; //默认的分minute=0 int hour=12; //默认的时hour=12 int day=1; //默认的天day=1 int month=5; //默认的月month=5 int year=2014; //默认的年year=2014 int c_hour=1; //默认的闹钟时=1 int c_minute=1; //默认的闹钟分=1 int buffs[2]; //秒的数码显示缓存区 int buffm[2]; //分的数码显示缓存区 int buffh[2]; //时的数码显示缓存区 int buffday[2]; //天的数码显示缓存区 int buffmonth[2]; //月的数码显示缓存区 int buffyear[4]; //年的数码显示缓存区 int buffmd[4]; //月,天的数码显示缓存区 int buffhm[4]; //时,分的数码显示缓存区 int buffms[4]; //分,秒的数码显示缓存区 int buffch[2]; //闹钟时的数码显示缓存区 int buffcm[2]; //闹钟分的数码显示缓存区 unsigned char Que = 0; //INT中断中间变量 int LCD_num[10]={0X070d,0x0600,0x030e,0x070a,0x0603,0x050b,0x050f,0x0700,0x070f,0x070b};// 数字0~~9的显示码 unsigned char Scond; //…………………………延时函数1……………………// void Delay(int k){ i nt i,j; f or(i=0;i

基于单片机的倒计时器(计数器)课程设计)

湖南文理学院课程设计报告 课程名称:单片机原理课程设计 学院:电信学院 专业班级:自动化07101 学生姓名: 指导老师: 完成时间: 报告成绩:

倒计时器设计

目录 目录 (1) 摘要 (3) ABSTRACT (4) 第一章设计要求与方案确定 (5) 1.1设计意义 (5) 1.2设计要求 (5) 1.3方案确定 (5) 第二章硬件电路 (6) 2.1单片机概述 (6) 2.1.1 单片机基础 (6) 2.1.2单片机与单片机系统 (7) 2.1.3 单片机的产生与发展 (7) 2.2MCS-51系列单片机介绍 (8) 2.2.1 80C51 芯片介绍 (8) 2.2.3 最小系统 (9) 2.2.4 定时与中断的概念 (10) 2.4LED显示电路设计与器件选择 (12) 2.4.1.LED显示器的选择 (13) 2.4.2LED驱动芯片选择 (13) 2.5按键电路设计 (13) 2.6蜂鸣器电路的设计 (14) 第三章倒计时器的设计 (15) 3.1倒计时器系统设计方案及框图 (15) 3.2程序设计 (15) 3.2.1主程序设计 (15) 3.2.2倒计时模块设计 (17) 3.2.3键盘扫描数码管显示程序 (17)

第四章倒计时器设计仿真 (18) 4.1设置倒计时初值 (18) 4.2开始倒计时 (18) 4.3倒计时结束并报警 (18) 总结 (20) 参考文献 (21) 致谢 (22) 附录1 倒计时器设计源程序 (23) 附录2 所用元器件清单 (23)

摘要 近年来随着计算机在社会领域的渗透,单片机的应用正在不断的走向深入,同时带动传统控制检测日新月异更新。在实时控制和自动控制的单片机应用系统中,单片机往往是作为一个核心部件来使用,仅单片机方面知识是不够的,还应根据具体硬件结构,以及针对具体应用对象特点的软件结合,以作完善。 本系统由单片机系统、矩阵式键盘、蜂鸣器和LED数码管显示系统组成。装置利用AT89C51单片机与74LS245驱动器驱动LED数码管显示。通过按键控制设定倒计时时间,再通过中断控制系统开始倒计时。当倒计时时间到时,由P1.0口驱动蜂鸣器发声报警。为了简化电路,降低成本,采用以软件为主的的接口方法。 该系统实用、功能灵活多样,可以对计时时间进行实时控制,可以广泛的应用于各种场所的控制设备。 【关键词】单片机;LED数码管显示器;倒计时;报警

实验4指导书 555定时器电路设计

实验4 555定时器电路设计 预习内容 阅读《电工电子实验教程》第6.5节中555集成定时器应用的内容。 预习实验的内容,自拟实验步骤和数据表格,完成理论设计,画出原理电路,选择所用元件名称、数量,熟悉元件引脚,手写预习报告。 一、实验目的 1.熟悉集成定时器555的工作原理及应用。 2.熟悉时钟信号产生电路的设计方法。 3.掌握使用定时器555设计多谐振荡器的方法。 二、知识要点 时钟信号在电子电路中有着非常重要的作用,而生成周期时钟信号的方法也有多种。比较常用的方法就是使用555定时器构成多谐振荡器。此电路广泛应用于仪器仪表、家用电器、电子测量及自动控制等方面。 555定时器是一种模拟和数字功能相结合的中规模集成器件。一般用双极性工艺制作的称为555,用CMOS工艺制作的称为7555。555定时器的电源电压范围宽,可在4.5V~16V 工作,7555可在3~18V工作,输出驱动电流约为200mA,因而其输出可与TTL、CMOS或者模拟电路电平兼容。555定时器成本低,性能可靠,只需要外接几个电阻、电容,就可以实现多谐振荡器、单稳态触发器及施密特触发器等脉冲产生与变换电路。 图5-1 555定时器的结构图和引脚分布图 1脚-GND,接地脚; 2脚-Trigger,低电平触发端; 3脚-Output,输出端; 4脚-Reset,复位端,低电平有效; 5脚-Control V oltage,电压控制端; 6脚-Threshold,阈值输入端; 7脚-Discharge,放电端; 8脚-V CC,电源端。 三、实验内容 题目:时钟信号发生电路设计 设计一个电路,能够产生时钟信号,要求信号频率可调,设计范围不小于500Hz~1000Hz,

基于单片机的LED数字倒计时器设计(精)

编号 毕 业设计技术报告课题名称: 学生姓名: 学号: 专业: 班级: 指导教师: 2012年月 摘要:随着社会的发展、科技的进步以及人们生活水平的逐步提高,各种方便生活的自动控制系统进入了人们的生活,以单片机为核心的自动门控制系统就是其中之一,也标志自动控制领域成为了数字化时代的一员。本文介绍了一种利用单片机设计的秒倒计时器, 具体介绍了硬件的电路设计、接口技术和软件的设计方法。该方案具有一定的实用性和使用上的方便性。其优点是硬件电路简单,软件功能完善,控制系统可靠,性价比较高等,具有一定的使用和参考价值。 关键词: 自动控制系统单片机秒倒计时 Abstract :With the development of society, science and technology progress and gradually improve the living standards of people, all sorts of convenient life of automatic control system into people's life, based on single-chip automatic control system is one of them, also marks the automatic control field became a member of the digital age.This paper introduces a design of second countdown timer by using single-chip microcomputer as well as the methods of designing its hardware circuit , connector and

实时时钟实验报告

嵌入式系统开发实验报告 实验四:实时时钟实验 班级:应电112 姓名:张志可 学号: 110415151 指导教师:李静 实验日期: 2013年9月25日

实验四:实时时钟实验 一、实验目的 1. 了解实时时钟的硬件控制原理及设计方法。 2. 掌握 S3C2410X 处理器的 RTC 模块程序设计方法。 二、实验设备 硬件:Embest ARM 教学实验系统,ULINK USB-JTAG 仿真器套件,PC 机。 软件:MDK 集成开发环境,Windows 98/2000/NT/XP。 三、实验原理 1. 实时时钟(RTC) 实时时钟(RTC)器件是一种能提供日历/时钟、数据存储等功能的专用集成电路,常用作各种计算机系统的时钟信号源和参数设置存储电路。RTC 具有计时准确、耗电低和体积小等特点,特别是在各种嵌入式系统中用于记录事件发生的时间和相关信息,如通信工程、电力自动化、工业控制等自动化程度高的领域的无人值守环境。随着集成电路技术的不断发展,RTC 器件的新品也不断推出,这些新品不仅具有准确的 RTC,还有大容量的存储器、温度传感器和 A/D 数据采集通道等,已成为集 RTC、数据采集和存储于一体的综合功能器件,特别适用于以微控制器为核心的嵌入式系统。 RTC 器件与微控制器之间的接口大都采用连线简单的串行接口,诸如 I2C、SPI、MICROWIRE 和CAN 等串行总线接口。这些串口由2~3 根线连接,分为同步和异步。 2. S3C2410X 实时时钟(RTC)单元 S3C2410X 实时时钟(RTC)单元是处理器集成的片内外设。由开发板上的后备电池供电,可以在系统电源关闭的情况下运行。RTC 发送8 位BCD 码数据到CPU。传送的数据包括秒、分、小时、星期、日期、月份和年份。RTC 单元时钟源由外部32.768KHz 晶振提供,可以实现闹钟(报警)功能。 四、实验内容 学习和掌握 Embest ARM 教学实验平台中 RTC 模块的使用,编写应用程序,修改时钟日期及时间的设置,以及使用 EMBEST ARM 教学系统的串口,在超级终端显示当前系统时间。

实验三++555定时器的应用仿真实验

电子技术仿真实验报告实验题目: 3 555定时器的应用仿真实验 班级: 姓名: 学号: 实验日期: 实验成绩:

实验三 555定时器的应用仿真实验 一、实验目的: 1、熟悉555定时器的工作原理。 2、掌握555定时器的典型应用。 3、掌握基于multisim 10.0的555定时器应用仿真。 二、实验原理: 555定时器是一种常见的集数字与模拟功能于一体的集成电路。通常只要外接少量的外围元件就可以很方便地构成施密特触发器、单稳态触发器和多谐振荡器等多种电路。其中: (1) 构成施密特触发器,用于TTL 系统的接口,整形电路或脉冲鉴幅等; (2)构成多谐振荡器,组成信号产生电路; (3)构成单稳态触发器,用于定时延时整形及一些定时开关中。 555应用电路采用这3种方式中的1种或多种组合起来可以组成各种实用的电子电路。 U1 LM555CM GND 1DIS 7OUT 3 RST 4VCC 8THR 6CON 5 TRI 2 GND ——1脚,接地;TRI ——2脚,触发输入;OUT ——3脚,输出;RES ——4脚,复 位(低电平有效);CON ——5脚,控制电压(不用时一般通过一个0.01F 的电容接地);THR ——6脚,阈值输入;DIS ——7脚,放电端;VCC ——8脚,+电源

1、 由555定时器构成多谐振荡器 (1) 接通电源时,设电容的初始电压0=c V ,此时TR V \TH V 均小于1/3Vcc ,放电截止, 输出端电压为高电平,Vcc 通过1R 和2R 对C 充电,Vc 按照指数规律逐步上升。 (2) 当Vc 上升到2/3Vcc 时,放电管导通,输出端电压为低电平,电容C 通过2R 放电,Vc 按照指数规律逐步下降。 (3) 当Vc 下降到1/3Vcc 时,放电管截止,输出端电压由低电平翻转为高电平,电容C 又开始充电。当电容C 充到Vc=2/3Vcc 时,又开始放电,如此周而复始,在输出端即可产生矩形波信号。 矩形波信号的周期取决于电容器充、放电回路的时间常数,输出矩形脉冲信号的周期 C R R T )2(7.021+≈ 2、 施密特触发器是脉冲波形整形和变换电路中经常使用的一种电路。其具有两个稳定 状态,两个稳定状态的维持和相互转换取决于输入电压的高低和,属于电平触发,具有两个不同的触发电平,存在回差电压。由555定时器构成的施密特触发器将555定时器的THR 和TRI 两个输入端连在一起作为信号输入端即可得到施密特触发器。 (1) 当Vi<1/3Vcc 时,输出Vo 为高电平。随着Vi 的上升,只要Vi<2/3Vcc ,输出 信号将维持原状态不变,设此状态为第一稳定状态。 (2) 当Vi 上升到Vi ≥2/3Vcc 时,输出Vo 为低电平。电路由第一稳定状态翻转为第 二稳定状态,电路的正向阈值电压为+T V =2/3Vcc 。随着Vi 上升后又下降的情况,只要Vi 〉1/3Vcc ,电路将维持在第二稳定状态不变。 (3) 当Vi 下降到Vi ≤1/3Vcc 时,电路又翻转到第一稳态,电路的负向阈值电压为 -T V =1/3Vcc 。 三、实验内容: 1、555定时器构成多谐振荡器仿真实验

基于单片机的倒计时器(计数器)课程设计)

基于单片机的倒计时器(计数器)课程设计) 湖南文理学院课程设计报告 课程名称:单片机原理课程设计 学院:电信学院 专业班级:自动化07101 学生姓名:王维 指导老师:张晓虎 完成时间: 报告成绩: 评阅意见: 评阅教师日期 I 倒 计 时 器 设 计 II 倒计时器 目录目录1 摘要3

ABSTRACT ........................................................... (4) 第一章设计要求与方案确 定 (5) 1.1设计意 义 (5) 1.2 设计要 求 (5) 1.3方案确 定 (5) 第二章硬件电路6 2.1 单片机概 述 (6) 2.1.1 单片机基 础 (6) 2.1.2单片机与单片机系 统 (7) 2.1.3 单片机的产生与发 展 (7) 2.2 MCS-51 系列单片机介 绍 (8) 2.2.1 80C51 芯片介 绍 (8)

2.2.3 最小系 统 (9) 2.2.4 定时与中断的概 念 (10) 2.4LED显示电路设计与器件选 择 (12) 2.4.1.LED显示器的选 择 (13) 2.4.2LED驱动芯片选 择 (13) 2.5按键电路设 计 (13) 2.6蜂鸣器电路的设 计 (14) 第三章倒计时器的设计15 3.1倒计时器系统设计方案及框 图 ........................................... 15 3.2程序设 计 (15) 3.2.1主程序设 计 (15) 3.2.2倒计时模块设 计 (17) 3.2.3键盘扫描数码管显示程 序 ............................................ 17 1

嵌入式ARM实时时钟实验报告

嵌入式ARM实时时钟实验报告 实验二实时时钟实验1 实验目的(1) 了解实时时钟在嵌入式系统中的作用;(2) 掌握实时时钟的使用。 2 实验设备(1) S3C2410嵌入式开发板,JTAG仿真器。 (2) 软件:PC机操作系统Win98、Win2000或Windows XP,集成开发环境,仿真器驱动程序,超级终端通讯程序。 3 实验内容(1) 编程实现实时时钟功能,每秒显示实时时钟;(2) 编程实现实时时钟告警功能。 4 实验步骤(1) 参照模板工程,新建一个工程RTC,添加相应的文件,并修改RTC 的工程设置;(2) 创建并加入到工程RTC中;(3) 编写程序每秒钟读取时钟滴答;关键代码如下:old_index=led_index; Uart_Printf; While{ /*每隔1秒更新一次数据*/ if { rtc_get_data;

old_index=led_index; /*实时时钟数据为BCD码格式,以16进制显示*/ Uart_Printf; } }; (4) 编写程序实现时间告警功能;关键代码如下; a.首先设置告警时间,如下例程设置每分钟的第5秒告警m_=0x05; rtc_alalm_set; 模式0x41表示使能RTC告警,以及使能秒时钟告警b.注册中断例程,打开中断install_isr_handlerrtc_int_isr); rINTMSK=; c.中断服务例程中清除中断事件rI_ISPC=BIT_RTC; if *0x20000000=0x0f; else *0x20000000=0xff; alarm_count++; (5) 编译RTC;(6) 运行超级终端,选择正确的串口号,并将串口设置位:波特率、奇偶校验、数据位数和停止位数,无流控,打开串口;(7) 装载程序并运行,如果运行正确,在超级终端中将会显示如图所示内容。图运行结果 5 实验总结通过这次实验我进一步掌握了RTCCON控制

数字电路实验报告555定时器及应用

姓名:xxxxxxxxxxxxxxx学号:xxxxxxxxxx . 学院:计算机与电子信息学院专业:计算机类. 班级:xxxxxxxxxxxxxxxxxx时间:2019年10月18 日. 指导教师:xxxxxxxx . 实验名称:555定时器及应用. 一、实验目的 1、熟悉掌握555定时器的基本工作原理及功能; 2、掌握555定时器构成多谐震荡器的工作原理和使用方法; 3、熟悉数字系统的分析和应用。 二、实验原理 1、555定时器原理简介 555定时器是共仪器、仪表、自动化装置、各种民用电器的定时器、时间延时器等电子控制电路用的时间功能电路,也可以做自激多谐振荡器、脉冲调制电路、脉冲相位调谐电路、脉冲丢失指示器、报警器以及单稳态、双稳态等各种电路,应用范围十分广泛。 (1)555定时器的特点 ①外部连接几个阻容元件,可以方便的构成施密特触发器、多谐振荡器和单稳态 触发器等脉冲产生与整形回路。 ②具有一定的输出功率,因此可直接驱动微电机、指示灯和扬声器等。该器件有 双极型和COMS型两类产品,双极型产品型号最后三位为555,COMS型产品 型号最后四位为7555,它们的功能及外部引线排列完全相同。 ③电源电压范围宽(3~18V),双极型的电源电压为5~15V,COMS型的电源电 压为3~18V,能够提供与TTL及COMS型的数字电路兼容的逻辑电平。 (2)555定时器的电路结构及功能 图6-1是555定时器的电路结构图和管脚排列图,它的八个引脚的名称及作用如下: 1脚:芯片的地端2脚:芯片的触发输入端TR’(也叫低触发端)3脚:芯片的输出端4脚:芯片的复位端RD’ 5脚:芯片的控制电压输入Vco 6脚:芯片的阈值输入端TH(也叫高触发端)7脚:芯片的放电端DISC 8脚:芯片的电源Vcc

数字时钟设计实验报告

电子课程设计题目:数字时钟

数字时钟设计实验报告 一、设计要求: 设计一个24小时制的数字时钟。 要求:计时、显示精度到秒;有校时功能。采用中小规模集成电路设计。 发挥:增加闹钟功能。 二、设计方案: 由秒时钟信号发生器、计时电路和校时电路构成电路。 秒时钟信号发生器可由振荡器和分频器构成。 计时电路中采用两个60进制计数器分别完成秒计时和分计时;24进制计数器完成时计时;采用译码器将计数器的输出译码后送七段数码管显示。 校时电路采用开关控制时、分、秒计数器的时钟信号为校时脉冲以完成校时。 三、电路框图: 图一 数字时钟电路框图 译码器 译码器 译码器 时计数器 (24进制) 分计数器 (60进制) 秒计数器 (60进制) 校 时 电 路 秒信号发生器

四、电路原理图: (一)秒脉冲信号发生器 秒脉冲信号发生器是数字电子钟的核心部分,它的精度和稳定度决定了数字钟的质量。由振荡器与分频器组合产生秒脉冲信号。 ?振荡器: 通常用555定时器与RC构成的多谐振荡器,经过调整输出1000Hz 脉冲。 ?分频器: 分频器功能主要有两个,一是产生标准秒脉冲信号,一是提供功能 扩展电路所需要的信号,选用三片74LS290进行级联,因为每片为1/10分频器,三片级联好获得1Hz标准秒脉冲。其电路图如下: 图二秒脉冲信号发生器 (二)秒、分、时计时器电路设计 秒、分计数器为60进制计数器,小时计数器为24进制计数器。 ?60进制——秒计数器 秒的个位部分为逢十进一,十位部分为逢六进一,从而共同完成60进制计数器。当计数到59时清零并重新开始计数。秒的个位部分的设计:利用十进制计数器CD40110设计10进制计数器显示秒的个位。个位计数器由0增加到9时产生进位,连在十位部计数器脉冲输入端CP,从而实现10进制计数和进位功能。利用74LS161和74LS11设计6进制计数器显示秒的十位,当十位计数器由0增加到5时利用74LS11与门产生一个高电平接到个位、十位的CD40110的清零端,同时产生一个脉冲给分的个位。其电路图如下:

嵌入式软件开发基础实验报告 实时时钟

上海电力学院 嵌入式软件开发基础实验报告 题目:【ARM】实时时钟实验 专业:电子科学与技术 年级: 姓名: 学号:

一、实验目的 1、了解实时时钟的硬件控制原理及设计方法。 2、掌握S3C44B0X 处理器的RTC 模块程序设计方法。 二、实验设备 1、硬件:Embest EduKit-III 实验平台,Embest ARM 标准/增强型仿真器套件,PC 机。 2、软件:Embest IDE Pro ARM 集成开发环境,Windows 98/2000/NT/XP。 三、实验内容 学习和掌握 Embest EduKit-III 实验平台中RTC 模块的使用,进行以下操作: 1、编写应用程序,修改时钟日期及时间的设置。 2、使用EMBEST ARM 教学系统的串口,在超级终端显示当前系统时间。 四、实验原理 1. 实时时钟(RTC) 实时时钟(RTC)器件是一种能提供日历/时钟、数据存储等功能的专用集成电路,常用作各种计算机系统的时钟信号源和参数设置存储电路。RTC 具有计时准确、耗电低和体积小等特点,特别是在各种嵌入式系统中用于记录事件发生的时间和相关信息,如通信工程、电力自动化、工业控制等自动化程度高的领域的无人值守环境。随着集成电路技术的不断发展,RTC 器件的新品也不断推出,这些新品不仅具有准确的RTC,还有大容量的存储器、温度传感器和A/D 数据采集通道等,已成为集RTC、数据采集和存储于一体的综合功能器件,特别适用于以微控制器为核心的嵌入式系统。 RTC 器件与微控制器之间的接口大都采用连线简单的串行接口,诸如I2C、SPI、MICROWIRE和CAN 等串行总线接口。这些串口由2~3 根线连接,分为同步和异步。 2. S3C44B0X 实时时钟(RTC)单元 S3C44B0X 实时时钟(RTC)单元是处理器集成的片内外设。由开发板上的后备电池供电,可以在系统电源关闭的情况下运行。RTC 发送8 位BCD 码数据到CPU。传送的数据包括秒、分、小时、星期、日期、月份和年份。RTC 单元时钟源由外部32.768KHz 晶振提供,可以实现闹钟(报警)功能。 S3C44B0X 实时时钟(RTC)单元特性: BCD 数据:秒、分、小时、星期、日期、月份和年份 1、闹钟(报警)功能:产生定时中断或激活系统 2、自动计算闰年 3、无2000 年问题 4、独立的电源输入 5、支持毫秒级时间片中断,为RTOS 提供时间基准 读/写寄存器 访问 RTC 模块的寄存器,首先要设RTCCON 的bit0 为1。CPU 通过读取RTC 模块中寄存器BCDSEC、BCDMIN、BCDHOUR、BCDDAY、BCDDATE、BCDMON 和 BCDYEAR 的值,得到当前的相应时间值。然而,由于多个寄存器依次读出,所以有可能产生错误。比如:用户依次读取年(1989)、月(12)、日(31)、时(23)、分(59)、秒(59)。当秒数为1 到59 时,没有任何问题,但是,当秒数为0 时,当前时间和日期就变成了1990 年1 月1 日0 时0 分。这种情况下(秒数为0),用户应该重新读取年份到分钟的值(参考程序设计)。

555定时器多谐波电路Multisim仿真

数字电子技术仿真实验报告 实验名称:555定时器 学生姓名:刘佳璇学号:20152523 指导教师:金丹 院系:电气工程学院班级:201502D 2017 年11 月29 日

555定时器 一、实验目的 1、学会使用 MULTISIM 软件进行数字电子实验仿真。 2、学习了解555定时器的工作原理。 二、实验内容 多谐振荡器 三、实验原理 555定时器的内部电路图及引脚排列见下图,功能表见下表。

555定时器的功能主要由两个比较器决定。两个比较器的输出电压控制RS 触发器和放电管的状态。在电源与地之间加上电压,当5脚悬空时,则电压比较器C1的同相输入端的电压为3/2CC V ,C2的反相输入端的电压为VCC 若触发输入端TR 的电压小于3/CC V ,则比较器C2的输出0,可使RS 触发器置1,使输出端OUT=1。如果阈值输入端TH 的电压大于3/2CC V ,同时TR 端的电压大于3/CC V ,则C1的输出为0,C2的输出为1,可将RS 触发器置0,使输出为0电平。

多谐振荡器又称为无稳态触发器,它没有稳定的输出状态,只有两个暂稳态。在电路处于某一暂稳态后,经过一段时间可以自行触发翻转到另一暂稳态。 两个暂稳态自行相互转换而输出一系列矩形波。多谐振荡器可用作方波发生器。电路如图。 四、 实验设计与仿真 构建仿真电路如图所示,其中Ω=k R 21,Ω=k R 12,F C μ1.0=。接通V 5电源,用示波器观察c u 和o u 的波形。

波形如下图: 仿真结果与实验结果一致。 五、实验小结

这次的仿真实验是 555 定时器(多谐振荡器)电路,实验连线较简单,但是原理并不简单,通过实验我更加深刻的理解了555定时器的工作原理。

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

单片机电子时钟课程设 计实验报告 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)完成整个系统的设计、调试和制作。

单片机系统设计-基于proteus的百天倒计时

单片机系统 课程设计 课程设计名称:基于89C51的倒计时牌设计专业班级: 学生姓名: 学号: 指导教师: 课程设计地点: 课程设计时间:2013-12-16~2013-12-27 单片机系统课程设计任务书

目录 1 概述 (1) 1.1 研究背景 (1) 1.2 设计思想及基本功能 (1) 2 总体方案设计 (2) 2.1 方案选取 (2) 2.2 系统框图 (3) 2.3 总体方案设计 (3) 3 硬件电路设计 (4) 3.1 电源电路设计 (4) 3.2 晶振电路 (5) 3.3 复位电路 (6) 3.4 键盘电路 (7) 3.5 显示电路 (7) 3.6 蜂鸣器及LED电路 (12) 4 系统软件设计 (12) 4.1 主程序软件设计 (12) 4.2 键盘程序设计 (13) 4.3 定时程序设计 (13) 4.4 报警程序设计 (15) 5 Proteus仿真 (15) 6 总结 (18) 参考文献 (19) 附录A系统原理图 (19) 附录B程序清单 (181) 附录C机器码清单 (23)

1概述 1.1研究背景 随着2014年新年钟声的临近,一年一度的全球华人文化盛宴春节联欢晚会也正式进入了紧张的倒计时。诚如你所发现的那样,各式各样的倒计时牌开始逐渐的走进人们的视野。我们现实的工作学习中也不可避免的接触到形形色色的倒计时牌,作为学生的我们记忆犹新的恐怕非高考百天倒计时牌莫属了,而最让国人觉得自豪的就是1997年香港回归的倒计时了,当倒计时牌归零的那一刻,冉冉升起的中国国旗再一次点燃国人沸腾的热血。诸如此类的倒计时牌不胜枚举:2008北京奥运会倒计时、2010上海世博会倒计时牌等等。 日常生活中,我们不可避免的接触到各式各样的倒计时牌,当你开车时红路灯的短暂倒计时,当你玩游戏时游戏时间结束的倒计时…..,而这些不同功能不同含义的倒计时牌引起了我极大的兴趣,学完单片机后,让做出一个属于自己的倒计时牌成为可能。 在智能化产品中,单片机的应用已经越来越广泛,单片机以它体积小、质量轻、耗电省、可靠性高、价格低等优点,开始不断发展,AT89C51单片机是一款非常典型且实用的51单片机,网上资源和参考书比较多,所以我此次采用此型号的单片机作为倒计时牌的控制器件。 1.2设计思想及基本功能 该倒计时牌采用廉价可靠的LED数码管显示,能够根据使用者的要求,结合实际情况设置不同时间长度的倒计时,在设定的倒计时时间结束时能够自动启动报警装置,并且显示恢复到初始状态。利用专业的单片机仿真软件Proteus7.8来进行仿真,以验证设计的正确性同时达到降低设计周期的目的。 可设设置倒计时时间的倒计时牌系统具有以下几个基本功能: (1)利用8位数码管能够显示日、时、分、秒倒计时。 (2)通过按键来实现倒计时时间的设定。 (3)倒计时时间到时,蜂鸣器报警并使LED点亮。

555定时器实验报告

一、实验目的 二、实验原理 555 定时器成本低,性能可靠,只需要外接几个电阻、电容,就可以实现多谐振荡器、单稳态触发器及施密特触发器等脉冲产生与变换电路。它也常作为定时器广泛应用于仪器仪表、家用电器、电子测量及自动控制等方面。555 定时器的内部电路框图和外引脚排列图分别如图 2.9.1 和图2.9.2 所示。它内部包括两个电压比较器,三个等值串联电阻,一个 RS 触发器,一个放电管T 及功率输出级。它提供两个基准电压VCC /3 和 2VCC /3 555 定时器的功能主要由两个比较器决定。两个比较器的输出电压控制RS 触发器和放电管的状态。在电源与地之间加上电压,当 5 脚悬空时,则电压比较器 C1 的同相输入端的电压为2VCC /3,C2 的反相输入端的电压为VCC /3。若触发输入端 TR 的电压小于VCC /3,则比较器 C2 的输出为0,可使RS 触发器置1,使输出端OUT=1。如果阈值输入端 TH 的电压大于2VCC/3,同时 TR 端的电压大于VCC /3,则C1 的输出为 0,C2 的输出为1,可将RS 触发器置 0,使输出为 0 电平。 它的各个引脚功能如下: 1脚:外接电源负端VSS或接地,一般情况下接地。

8脚:外接电源VCC,双极型时基电路VCC的范围是4.5 ~ 16V,CMOS 型时基电路VCC的范围为3 ~ 18V。一般用5V。 3脚:输出端Vo 2脚:低触发端 6脚:TH高触发端 4脚:是直接清零端。当端接低电平,则时基电路不工作,此时不论、TH处于何电平,时基电路输出为“0”,该端不用时应接高电平。 5脚:VC为控制电压端。若此端外接电压,则可改变内部两个比较器的基准电压,当该端不用时,应将该端串入一只0.01μF电容接地,以防引入干扰。 7脚:放电端。该端与放电管集电极相连,用做定时器时电容的放电。 在1脚接地,5脚未外接电压,两个比较器A1、A2基准电压分别为的情况下,555时基电路的功能表如表6—1示。 三、实验内容 四、思考题

基于单片机的倒计时器(计数器)设计

目录 目录 (1) 摘要 (3) ABSTRACT (4) 第一章设计要求与方案确定 (5) 1.1设计意义 (5) 1.2设计要求 (5) 1.3方案确定 (5) 第二章硬件电路 (6) 2.1单片机概述 (6) 2.1.1 单片机基础 (6) 2.1.2单片机与单片机系统 (7) 2.1.3 单片机的产生与发展 (7) 2.2MCS-51系列单片机介绍 (8) 2.2.1 80C51 芯片介绍 (8) 2.2.3 最小系统 (9) 2.2.4 定时与中断的概念 (10) 2.4LED显示电路设计与器件选择 (12) 2.4.1.LED显示器的选择 (13) 2.4.2LED驱动芯片选择 (13) 2.5按键电路设计 (13) 2.6蜂鸣器电路的设计 (14) 第三章倒计时器的设计 (15) 3.1倒计时器系统设计方案及框图 (15) 3.2程序设计 (15) 3.2.1主程序设计 (15) 3.2.2倒计时模块设计 (17) 3.2.3键盘扫描数码管显示程序 (17)

第四章倒计时器设计仿真 (18) 4.1设置倒计时初值 (18) 4.2开始倒计时 (18) 4.3倒计时结束并报警 (18) 总结 (20) 参考文献 (21) 致谢 (22) 附录1 倒计时器设计源程序 (23) 附录2 所用元器件清单 (23)

摘要 近年来随着计算机在社会领域的渗透,单片机的应用正在不断的走向深入,同时带动传统控制检测日新月异更新。在实时控制和自动控制的单片机应用系统中,单片机往往是作为一个核心部件来使用,仅单片机方面知识是不够的,还应根据具体硬件结构,以及针对具体应用对象特点的软件结合,以作完善。 本系统由单片机系统、矩阵式键盘、蜂鸣器和LED数码管显示系统组成。装置利用AT89C51单片机与74LS245驱动器驱动LED数码管显示。通过按键控制设定倒计时时间,再通过中断控制系统开始倒计时。当倒计时时间到时,由P1.0口驱动蜂鸣器发声报警。为了简化电路,降低成本,采用以软件为主的的接口方法。 该系统实用、功能灵活多样,可以对计时时间进行实时控制,可以广泛的应用于各种场所的控制设备。 【关键词】单片机;LED数码管显示器;倒计时;报警

FPGA可调数字时钟实验报告

一、实验要求 1、用vhdl编程,实现10进制计数器 2、用vhdl编程,实现60进制计数器 3、用vhdl编程,实现数字时钟,时、分、秒、毫秒分别显示在数码管上。 4、实现可调数字时钟的程序设计,用按键实现时、分、秒、毫秒的调整。 二、实验原理 用VHDL,行为级描述语言实现实验要求。思路如下: 1、分频部分:由50MHZ分频实现1ms的技术,需要对50MHZ采取500000分 频。 2、计数部分:采用低级影响高级的想法,类似进位加1的思路。对8个寄存器进 行计数,同步数码管输出。 3、数码管输出部分:用一个拨码开关控制显示,当sw0=0时,四位数码管显示 秒、毫秒的计数。当sw0=1时,四位数码管显示时、分得计数。 4、调整部分:分别用四个按键控制时、分、秒、毫秒的数值。先由一个开关控制 计数暂停,然后,当按键按下一次,对应的数码管相对之前的数值加1,,通过按键实现时间控制,最后开关控制恢复计数,完成时间调整。 5、整个实现过程由一个文件实现。 三、实验过程 各个引脚说明: Clk:50MHZ SW:数码管切换,SW=’0’时,数码管显示为秒,毫秒。SW=’1’时,数码管显示为时,分。 SW1:暂停与启动。SW1=’0’时,时钟启动,SW=’1’时,时钟暂停。 SW2:时钟调整接通按钮,当SW2=’0’时,不进行调整,当SW=’1’时,通过按键调整时间。 KEY0:毫秒调整,按一次实现+1功能 KEY1:秒调整,按一次实现+1功能

KEY2:分调整,按一次实现+1功能 KEY3:时调整,按一次实现+1功能 Q0;第一个数码管 Q1; 第二个数码管 Q2: 第三个数码管 Q3: 第四个数码管 1、源代码如下: library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_arith.all; use ieee.std_logic_unsigned.all; entity paobiao is port(clk,sw,key0,key1,key2,key3,sw1,sw2:in std_logic; q0:out std_logic_vector(6 downto 0); q1:out std_logic_vector(6 downto 0); q2:out std_logic_vector(6 downto 0); q3:out std_logic_vector(6 downto 0)); end paobiao; architecture behave of paobiao is signal cntt1 :integer range 0 to 10; signal cntt2 :integer range 0 to 10; signal cntt3 :integer range 0 to 10; signal cntt4 :integer range 0 to 6; signal cntt5 :integer range 0 to 10; signal cntt6 :integer range 0 to 10; signal cntt7 :integer range 0 to 10; signal cntt8 :integer range 0 to 6;

555定时器电路数电实验报告

实验报告 课程名称:数字电子技术实验姓名: 学号: 专业: 开课学期: 指导教师:

实验课安全知识须知 1.须知1:规范着装。为保证实验操作过程安全、避免实验过程中意外发生,学生禁止穿拖 鞋进入实验室,女生尽量避免穿裙子参加实验。 2.须知2:实验前必须熟悉实验设备参数、掌握设备的技术性能以及操作规程。 3.须知3:实验时人体不可接触带电线路,接线或拆线都必须在切断电源的情况下进行。 4.须知4:学生独立完成接线或改接线路后必须经指导教师检查和允许,并使组内其他同学 引起注意后方可接通电源。实验中如设备发生故障,应立即切断电源,经查清问题和妥善处理故障后,才能继续进行实验。 5.须知5:接通电源前应先检查功率表及电流表的电流量程是否符合要求,有否短路回路存 在,以免损坏仪表或电源。 特别提醒:实验过程中违反以上任一须知,需再次进行预习后方可再来参加实验;课程中违反三次及以上,直接重修。 实验报告撰写要求 1.要求1:预习报告部分列出该次实验使用组件名称或者设备额定参数;绘制实验线路图, 并注明仪表量程、电阻器阻值、电源端编号等。绘制数据记录表格,并注明相关的实验环境参数与要求。 2.要求2:分析报告部分一方面参考思考题要求,对实验数据进行分析和整理,说明实验结 果与理论是否符合;另一方面根据实测数据和在实验中观察和发现的问题,经过自己研究或分析讨论后写出的心得体会。 3.要求3:在数据处理中,曲线的绘制必须用坐标纸画出曲线,曲线要用曲线尺或曲线板连 成光滑曲线,不在曲线上的点仍按实际数据标出其具体坐标。 4.要求4:本课程实验结束后,将各次的实验报告按要求装订,并在首页写上序号(实验课 上签到表对应的序号)。请班长按照序号排序,并在课程结束后按要求上交实验报告。 温馨提示:实验报告撰写过程中如遇预留空白不足,请在该页背面空白接续。

单片机综合实验报告51电子时钟

一、实验内容: 设计一个数字时钟,显示范围为00:00:00~23:59:59。通过5个开关进行控制,其中开关K1用于切换时间设置(调节时钟)和时钟运行(正常运行)状态;开关K2用于切换修改时、分、秒数值;开关K3用于使相应数值加1调节;开关K4用于减1调节;开关K5用于设定闹钟,闹钟同样可以设定初值,并且设定好后到时间通过蜂鸣器发声作为闹铃。 选做增加项目:还可增加秒表功能(精确到0.01s)或年月日设定功能。 二、实验电路及功能说明 1602显示器电路(不需接线) 电子音响电路 按键说明: 按键键名功能说明 K1 切换键进入设定状态 K2 校时依次进入闹钟功能是否启用,闹钟时,分秒, 年,月,日及时间时,分,秒的设置,直到退出 设置状态 K3 加1键调整是否起用闹钟和调节闹钟时,分,秒, 年,月,日,时间的时,分,秒的数字三、实验程序流程图:

四、实验结果分析 定时程序设计: 单片机的定时功能也是通过计数器的计数来实现的,此时的计数脉冲来自单片机的内部,即每个机器周期产生一个计数脉冲,也就是每经过1个机器周期的时间,计数器加1。如果MCS-51采用的12MHz晶体,则计数频率为1MHz,即每过1us的时间计数器加1。这样可以根据计数值计算出定时时间,也可以根据定时时间的要求计算出计数器的初值。MCS-51单片机的定时器/计数器具有4种工作方式,其控制字均在相应的特殊功能寄存器中,通过对特殊功能寄存器的编程,可以方便的选择定时器/

计数器两种工作模式和4种工作方式。 定时器/计数器工作在方式0时,为13位的计数器,由TLX(X=0、1)的低5位和THX的高8位所构成。TLX低5位溢出则向THX进位,THX计数溢出则置位TCON中的溢出标志位TFX. 当定时器/计数器工作于方式1,为16位的计数器。本设计师单片机多功能定时器,所以MCS-51内部的定时器/计数器被选定为定时器工作模式,计数输入信号是内部时钟脉冲,每个机器周期产生一个脉冲使计数器增1。 实时时钟实现的基本方法: 这次设计通过对单片机的学习、应用,以A T89S51芯片为核心,辅以必要的电路,设计了一个简易的电子时钟,它主要通过51单片机综合仿真实验仪实现,通过1602能够准确显示时间,调整时间,它的计时周期为24小时,从而到达学习、设计、开发软、硬件的能力。主要实现功能为显示时间,时间校准调时(采用手动按键调时),闹铃功能(设置定时时间,到点后闹铃发出响声)。通过键盘可以进行校时、定时。闹铃功能使用I/O 口定时翻转电平驱动的无源蜂鸣器。本文主要介绍了工作原理及调试实现。 四个按键K1、K2、K3、K4、一个蜂鸣器。 1602显示时钟、跑表。 时钟的最小计时单位是秒,但使用定时器的方式1,最大的定时时间也只能达到131ms。我们可把定时器的定时时间定为50ms。这样,计数溢出20次即可得到时钟的最小计时单位:秒。而计数20次可以用软件实现。 秒计时是采用中断方式进行溢出次数的累积,计满20次,即得到秒计时。从秒到分,从分到时是通过软件累加并进行比较的方法来实现的。要求每满1秒,则“秒”单元中的内容加1;“秒”单元满60,则“分”单元中的内容加1;“分”单元满60,则“时”单元中的内容加1;“时”单元满24,则将时、分、秒的内容全部清零。 实时时钟程序设计步骤: 先对系统进行初始化,如:LCD1602初始化,DS1302初始化等,然后才能进入主显示模块,即可在LCD1602上看到相应的信息。对于LCD1602的初始化,主要是对开启显示屏,清屏,设置显示初始行等操作。DS1302的初始化主要是先开启写功能,然后写入一个初始值。 本系统采用的是LCD1602液晶显示器,由于其是本身带有驱动模块的液晶屏,所以对于LCD1602操作程序可分为开显示、设置显示初始行、写数据和清屏等部分。LCD1602的写命令程序和写数据程序分别以子程序的形式写在程序里,以便主程序中的调用。 (1)选择工作方式,计算初值; (2)采用中断方式进行溢出次数累计; (3)计时是通过累加和数值比较实现的; (4)时钟显示缓冲区:时钟时间在方位数码管上进行显示,为此在内部RAM中要设置显示缓冲区,共6个地址单元。显示缓冲区从左到右依次存放时、分、秒数值; (5)主程序:主要进行定时器/计数器的初始化编程,然后反复调用显示子程序的方法等待中断的到来; (6)中断服务程序:进行计时操作; (7)加1子程序:用于完成对时、分、秒的加操作,中断服务程序在秒、分、时加1时共有三种条调用加1子程序,包括三项内容:合字、加1并进行十进制调整、分字。 程序说明: 按K1按键进入设定状态 按K2,依次进入闹钟功能是否启用,闹钟时,分秒,年,月,日及时间时,分,秒的设置,直到退出设置状态按K3,调整是否起用闹钟和调节闹钟时,分,秒,年,月,日,时间的时,分,秒的数字 LCD第二排中间显示小喇叭,表示启用闹钟功能,无则禁止闹钟功能(可在调整状态进行设置)正常状态,LCD上排最前面显示自定义字符,LCD下排最前面闪动"_" 设置状态,LCD上排最前面显示"P",下排最前面在设置闹钟时间时显示"alarm_",其它状态显示

相关文档
最新文档