单片机秒表设计。
专业:电子信息工程。
班级: 电信一班。
姓名: 袁飞祥。
指导教师:王全。
学号: 11100540129
eda课程任务设计。
题目:秒表的设计。
一实验设计目的。
本次设计的目的就是通过实践深入了解单片机原理,了解eda技术,并掌握硬件描述语言的设方法和思路。通过学习结合电子电路的设计知识理论联系实际,掌握所学的课程和基本单元电路的综合设计应用。通过对秒表实验的设计,巩固和综合运用所学知识,提高分析、解决eda技术实际问题的独立工作能力。
二系统设计要求和任务。
设计要求。1、计时范围:0~59分59.59秒,整数四位数和小数两位数显示;
2、计时精度10毫。
3、复位按钮,计时器清零,并做好下次及时准备;
4、可以对三个对象(a、b)计时,具有启/停控制。
5、设开始、停止a、停止b、显示a、显示b、复位按钮。
设计任务。了解8051芯片的的工作原理和工作方式,使用该芯片对led数码管进行显示控制,实现用单片机的端口控制数码管,显示分、秒,并能用按钮实现秒表起动、停止、60秒、倒计时清零等功能,精确到0.1秒。
要求选用定时器的工作方式,画出使用单片机控制led数码管显示的电路图,并实现其硬件电路,并编程完成软件部分,最后调试秒表起动、停止、清零等功能。
三课程设计内容提要。
本课程利用单片机的定时器/计数器定时和记数的原理,结合集成电路芯片8051、led数码管以及实验箱上的按键来设计计时器。将软、硬件有机地结合起来,使得系统能够正确地进行计时,数码管能够正确地显示时间。其中本课程设计有四个开关按键:
其中key2按键按下去时开始计时,即秒表开始键(同时也用作暂停键),key1按键按下去时数码管清零,复位为“00.0”,key3按键按下去时数码管复位为“60.0”(用于倒计时),key4按键按下去则是数码管开始“逐渐自减”倒计时。
四设计思路及描述。
该课程设计要求进行计时并在数码管上显示时间,则可利用mcs-51系列单片机的芯片at89c52的p3.4,p3.5,p3.
6,p3.7作为按键的入口;定时器t0作为每0.1秒减一的定时器;定时器t1作为每0.
1秒加一的定时器。其中“开始”按键当开关由上向下拨时开始计时,此时若再拨“开始”按键则数码管暂停;“清零”按键当开关由上向下拨时数码管清零,此时若再拨“开始”按键则又可重新开始计时。方框图:
秒表设计导向图。
五系统硬件方案设计。
单片机应用系统由硬件系统和软件系统两部分组成。硬件系统是指单片机以及扩展的存储器、i\o接口、外围扩展的功能芯片以及接口电路。软件系统包括监控程序和各种应用程序。
在单片机应用系统中,单片机是整个系统的核心,对整个系统的信息输入、处理、信息输出进行控制。与单片机配套的有相应的复位电路、时钟电路以及扩展的存储器和i\o接口,使单片机应用系统能够运行。在一个单片机应用系统中,往往都会输入信息和显示信息,这就涉及键盘和显示器。
在单片机应用系统中,一般都根据系统的要求配置相应的键盘和显示器。配置键盘和显示器一般都没有统一的规定,有的系统功能复杂,需输入的信息和显示的信息量大,配置的键盘和显示器功能相对强大,而有些系统输入/输出的信息少,这时可能用几个按键和几个led指示灯就可以进行处理了。在单片机应用系统在中配置的键盘可以是独立键盘,也可能是矩阵键盘。
六实验源程序。
#include <>
#include <>
#define uchar unsigned char
#define uint unsigned int
uchar keycount=0;
sbit k3 = p3^6;
sbit k4 = p3^7;
sbit beep = p2^3蜂鸣器。
uchar code cdis1stopwatch 0 "}
uchar code cdis2[ ]
uchar code cdis3[ ]
uchar code cdis5[ ]
uchar code cdis6[ ]
uchar code cdis7[ ]
uchar code cdis8
sbit lcd_rs = p3^5
/sbit lcd_rw = p2^1;
sbit lcd_en = p3^4;
#define delaynop();
uchar display
uchar display2
延时函数。void delay(uint num)//延时函数。
while( -num );
蜂鸣器响一声。
void beep()
unsigned char y;
for (y=0;y<180;y++)
beep=1关闭蜂鸣器。
延时函数1void delay1(int ms)
unsigned char n;
while(ms--)
检查lcd忙状态。
lcd_busy为1时,忙,等待。
lcd-busy为0时,闲,可写指令与数据。
bit lcd_busy()
bit result;
lcd_rs = 0;
// lcd_rw = 1;
lcd_en = 1;
delaynop();
result = bit)(p0&0x80);
lcd_en = 0;
return(result);
写指令数据到lcd
rs=l,rw=l,e=高脉冲,d0-d7=指令码。
void lcd_wcmd(uchar cmd)
/ while(lcd_busy())
lcd_rs = 0;
/ lcd_rw = 0;
lcd_en = 0;
_nop_()
_nop_()
p0 = cmd;
EDA课程设计
题目一 数字钟设计 学号1 15 一 实验目的。学习并掌握数字钟的原理 设计方法。二 实验内容。计数始终由模60秒计数器 模60分计数器 模24小时计数器 报时模块 分 时设定模块及输出显示模块构成。可以采用同步计数器或异步计数器设计方法。三 实验要求。计时范围为0小时0分0秒至23小时59分59秒...
eda课程设计
哈尔滨工业大学 威海 信电学院电子信息工程。一 软硬件介绍。1软件部分介绍。1.1 quartus ii 是altera公司的综合性pld fpga开发软件,支持原理图 vhdl veriloghdl以及ahdl altera hardware description language 等多种设计输...
eda课程设计
目录。1 引言 2 1.1 课程设计的目的与任务 2 1.2 课程设计的内容 2 1.3课程设计仪器设备 2 1.4 课程设计的题目 2 1.5 方案的选择 2 2设计方案 3 2.1 设计原理 3 2.2各功能模块的原理及其源程序 3 2.2.1控制模块 3 2.2.2分频模块 4 2.2.3计时...