当前位置:文档之家› 8位数码管计数器

8位数码管计数器

8位数码管计数器
8位数码管计数器

C:\Documents and Settings\Administrator\桌面\new\1.c

/* 单片机52系列,

功能描述:8位数码管显示0~0-9~9 加1计数,数码管使用共阴极,数码管通过2片74HC573接到P0口,P2^6段选择,P2^7位选择

*/

#include< reg52.H>

#define uchar unsigned char //宏定义uchar 为无符号字符

#define N 1 //宏定义N=1,用于动态显示位

uchar code duan[]={ 0x3f, 0x06, 0x5b, 0x4f, 0x66, 0x6d, 0x7d,

0x07,

0x7f, 0x6f/* 0x77,0x7c,0x39,0x5e,0x79,0x71*/ }; //共阴段码表uchar code wei[]={ 0xfe, 0xfd, 0xfb, 0xf7, 0xef, 0xdf, 0xbf, 0x7f}; //8个位的开通表

uchar

ge=0,shi=0,bai=0,qian=0,wan=0,swan=0,bwan=0,qwan=0,num=0; //定义变量及初始化

sbit dula= P2^6; //段变量定义

sbit wela= P2^7; //位变量定义

void delayxms(uchar x); //延时子函数声明

void main() //主函数

Page: 1

C:\Documents and Settings\Administrator\桌面\new\1.c

{

P0=duan[0]; // 装载初值

dula=1;

dula=0;

P0=wei[0]; // 装载初值

wela=1;

wela=0;

/* 中断设置*/

EA=1; //中断总允许

ET0=1; //定时器0中断允许

TMOD= 0x01; // 定时器器0工作方式1

TH0=-10000/256;// 定时10000高8位,可以直接写成TH0=-10000/256

TL0=-10000%256;// 定时10000低8位,可以直接写成TL0=-10000%256

TR0=1; // 启动定时器0

/* 程序跳转去执行定时中断程序,然后返回此处*/ while(1) //大循环

{

P0=duan[qwan]; //送千万位段码

if(qwan==0) // 如果千万位等于0,关闭段选、位选{

wela=0;

Page: 2

C:\Documents and Settings\Administrator\桌面\new\1.c }

else

{

dula=1;

dula=0;

P0=wei[7];

wela=1;

wela=0;

delayxms(N);

}

P0=duan[bwan]; //送百万位段码

if(qwan==0&&bwan==0)

{

dula=0;

wela=0;

}

else

{

dula=0;

P0=wei[6];

wela=1;

wela=0;

delayxms(N);

}

Page: 3

C:\Documents and Settings\Administrator\桌面\new\1.c P0=duan[swan]; //送十万位段码

if(qwan==0&&bwan==0&&swan==0)

{

dula=0;

wela=0;

}

else

{

dula=1;

dula=0;

P0=wei[5];

wela=1;

wela=0;

delayxms(N);

}

P0=duan[wan]; //送万位段码

if(qwan==0&&bwan==0&&swan==0&&wan==0)

{

dula=0;

wela=0;

}

else

{

Page: 4

C:\Documents and Settings\Administrator\桌面\new\1.c dula=1;

dula=0;

P0=wei[4];

wela=1;

wela=0;

delayxms(N);

}

P0=duan[qian]; // 送千位段码

if(qwan==0&&bwan==0&&swan==0&&wan==0&&qian==0) {

dula=0;

wela=0;

}

else // 千位不为0,则送段码

{

dula=1;

dula=0;

P0=wei[3]; // 选通千位

wela=1;

wela=0;

delayxms(N);

}

P0=duan[bai]; // 百位

if(qwan==0&&bwan==0&&swan==0&&wan==0&&qian==0&&bai== 0)

Page: 5

C:\Documents and Settings\Administrator\桌面\new\1.c

{

dula=0;

wela=0;

}

else

{

dula=1;

dula=0;

P0=wei[2];

wela=1;

wela=0;

delayxms(N);

}

P0=duan[shi]; // 十位

if(qwan==0&&bwan==0&&swan==0&&wan==0&&qian==0&&bai== 0&&shi==0)

{

dula=0;

wela=0;

}

else

{

dula=1;

dula=0;

P0=wei[1];

wela=1;

Page: 6

C:\Documents and Settings\Administrator\桌面\new\1.c wela=0;

delayxms(N);

}

P0=duan[ge]; // 个位

dula=1;

dula=0;

P0=wei[0];

wela=1;

wela=0;

delayxms(N);

}

}

/* 定时中断程序*/

void timer0() interrupt 1

{

TH0=-10000/256; //重载高位初值

TL0=-10000%256; //重载低位初值

num++; // 计数

if(num==20) // 计20次,个位值加1

{

ge++;

if(ge==10) // 个位值满10,进位到十位

{

Page: 7

C:\Documents and Settings\Administrator\桌面\new\1.c shi++;

if(shi==10) // 十位值满10,进位到百位

{

bai++;

if(bai==10) //百位值满10,进位到千位

{

qian++;

if(qian==10) /* 千位值满10,进位到万位*/

{

wan++;

if(wan==10)

/*往左移动书写位置*/

{

swan++;

if(swan==10)

{

bwan++;

if(bwan==10)

qwan++;

if(qwan==10) /* 千万位值满10,清空各位*/

{ qwan=0; }

bwan=0;

}

swan=0;

Page: 8

C:\Documents and Settings\Administrator\桌面\new\1.c }

wan=0;

}

qian=0;

}

bai=0;

}

shi=0;

}

ge=0;

}

num=0;

} /* 为了不出错,清0 阶段最好由后面一级级往上写*/

void delayxms(uchar x) //延时子函数定义{

uchar i,j,k;

for(i=x;i>0;i--)

for(k=4;k>0;k--)

for(j=198;j>0;j--);

}

Page: 9

七段数码管及其驱动七段数码管及其驱动原理,

[转]7段数码管管脚顺序及译码驱动集成电路74LS47,48 7段数码管管脚顺序及译码驱动集成电路74LS47,48 这里介绍一下7段数码管见下图7段数码管又分共阴和共阳两种显示方式。如果把7段数码管的每一段都等效成发光二极管的正负两个极,那共阴就是把abcdefg 这7个发光二极管的负极连接在一起并接地;它们的7个正极接到7段译码驱动电路74LS48的相对应的驱动端上(也是abcdefg)!此时若显示数字1,那么译码驱动电路输出段bc为高电平,其他段扫描输出端为低电平,以此类推。如果7段数码管是共阳显示电路,那就需要选用74LS47译码驱动集成电路。共阳就是把abcdefg的7个发光二极管的正极连接在一起并接到5V电源上,其余的7个负极接到74LS47相应的abcdefg输出端上。无论共阴共阳7段显示电路,都需要加限流电阻,否则通电后就把7段译码管烧坏了!限流电阻的选取是:5V电源电压减去发光二极管的工作电压除上10ma到15ma得数即为限流电阻的值。发光二极管的工作电压一般在1.8V--2.2V,为计算方便,通常选2V即可!发光二极管的工作电流选取在10-20ma,电流选小了,7段数码管不太亮,选大了工作时间长了发光管易烧坏!对于大功率7段数码管可根据实际情况来选取限流电阻及电阻的瓦数!74ls48引脚图管脚功能表 74LS48芯片是一种常用的七段数码管译码器驱动器,常用在各种数字电路和单片机系统的显示系统中,下面我就给大家介绍一下这个元件的一些参数与应用技术等资料。74ls48引脚功能表—七段译码驱动器功能表http://www.51hei. com/chip/312.html74LS47引脚图管脚功能表:

基于msc51单片机实现的四位4乘4矩阵键盘计算器的C语言程序及其PROTUES电路和仿真

单片机原理及接口技术 课程设计报告 设计题目:计算器设计 学号:100230205 姓名:费博文 指导教师:张扬 信息与电气工程学院 二零一三年七月

计算器设计 单片机体积小,功耗小,价格低,用途灵活,无处不在,属专用计算机。是一种特殊器件,需经过专门学习方能掌握应用,应用中要设计专用的硬件和软件。近年来,单片机以其体积小、价格廉、面向控制等独特优点,在各种工业控制、仪器仪表、设备、产品的自动化、智能化方面获得了广泛的应用。与此同时,单片机应用系统的可靠性成为人们越来越关注的重要课题。影响可靠性的因素是多方面的,如构成系统的元器件本身的可靠性、系统本身各部分之间的相互耦合因素等。其中系统的抗干扰性能是系统可靠性的重要指标。 数学是科技进步的重要工具,数据的运算也随着科技的进步越发变得繁琐复杂,计算器的出现可以大大解放人在设计计算过程中的工作量,使计算的精度、速度得到改善,通过msc51单片机,矩阵键盘和LED数码管可以实现简单的四位数的四则运算和显示,并当运算结果超出范围时予以报错。 注:这一部分主要描述题目的背景和意义,对设计所采取的主要方法做一下简要描述。字数不要太多,300-500字。 另注:本文要当做模板使用,不要随意更改字体、字号、行间距等,学会使用格式刷。文中给出的各项内容都要在大家的报告中体现,可采用填空的方式使用本模板。 1. 设计任务 结合实际情况,基于AT89C51单片机设计一个计算器。该系统应满足的功能要求为: (1) 实现简单的四位十进制数字的四则运算; (2) 按键输入数字,运算法则; (3) LED数码管移位显示每次输入的数据和运算结果; (4) 当运算结果超出范围时实现报错。 主要硬件设备:AT89C51单片机、LED数码管、矩阵键盘。 注:这一部分需要写明系统功能需求,用到的主要硬件(参考实验箱的说明书)。

8位数码管计数器

C:\Documents and Settings\Administrator\桌面\new\1.c /* 单片机52系列, 功能描述:8位数码管显示0~0-9~9 加1计数,数码管使用共阴极,数码管通过2片74HC573接到P0口,P2^6段选择,P2^7位选择 */ #include< reg52.H> #define uchar unsigned char //宏定义uchar 为无符号字符 #define N 1 //宏定义N=1,用于动态显示位 uchar code duan[]={ 0x3f, 0x06, 0x5b, 0x4f, 0x66, 0x6d, 0x7d, 0x07, 0x7f, 0x6f/* 0x77,0x7c,0x39,0x5e,0x79,0x71*/ }; //共阴段码表uchar code wei[]={ 0xfe, 0xfd, 0xfb, 0xf7, 0xef, 0xdf, 0xbf, 0x7f}; //8个位的开通表 uchar ge=0,shi=0,bai=0,qian=0,wan=0,swan=0,bwan=0,qwan=0,num=0; //定义变量及初始化 sbit dula= P2^6; //段变量定义 sbit wela= P2^7; //位变量定义 void delayxms(uchar x); //延时子函数声明 void main() //主函数 Page: 1 C:\Documents and Settings\Administrator\桌面\new\1.c

{ P0=duan[0]; // 装载初值 dula=1; dula=0; P0=wei[0]; // 装载初值 wela=1; wela=0; /* 中断设置*/ EA=1; //中断总允许 ET0=1; //定时器0中断允许 TMOD= 0x01; // 定时器器0工作方式1 TH0=-10000/256;// 定时10000高8位,可以直接写成TH0=-10000/256 TL0=-10000%256;// 定时10000低8位,可以直接写成TL0=-10000%256 TR0=1; // 启动定时器0 /* 程序跳转去执行定时中断程序,然后返回此处*/ while(1) //大循环 { P0=duan[qwan]; //送千万位段码 if(qwan==0) // 如果千万位等于0,关闭段选、位选{

2位十进制高精度数字频率计设计

广州大学学生实验报告 实验室:电子信息楼 317EDA 2017 年 10 月 2 日 学院机电学院年级、专 业、班 电信 151 姓名苏伟强学号1507400051 实验课 程名称 可编程逻辑器件及硬件描述语言实验成绩 实验项 目名称 实验4 2位十进制高精度数字频率计设计指导老师 秦剑 一实验目的 1 熟悉原理图输入法中74系列等宏功能元件的使用方法,掌握更复杂的原理图层次化设计技术和数字系统设计方法。 2 完成2位十进制频率计的设计,学会利用实验系统上的FPGA/CPLD验证较复杂设计项目的方法。 二实验原理 1 若某一信号在T秒时间里重复变化了N 次,则根据频率的定义可知该信号的频率fs 为:fs=N/T 通常测量时间T取1秒或它的十进制时间。 三实验设备 1 FPGA 实验箱,quarteus软件 四实验内容和结果 1 2位十进制计数器设计 1.1 设计原理图:新建quarteus工程,新建block diagram/schematic File文件,绘制原理图,命名为conter8,如图1,保存,编译,注意:ql[3..0]输出的低4位(十进制的个位), qh[3..0]输出的高4位(十进制的十位) 图片11.2 系统仿真:如图2建立波形图进行波形仿真,如图可以看到完全符合设计要求,当clk输入时钟信号时,clr有清零功能,当enb高电平时允许计数,低电平禁止计数,当低4位计数到9时向高4位进1 图2 1.3 生成元件符号:File->create/updata->create symbol file for current file,保存,命名为conter8,如图3为元件符号(block symbol file 文件): 图3 2 频率计主结构电路设计 2.1 绘制原理图:关闭原理的工程,新建工程,命名为ft_top,新建原理图文件,在project navigator的file 选项卡,右键file->add file to the project->libraries->project library name添加之前conters8工程的目录在该目录下,这样做的目的是因为我们会用到里面的conters8进行原理图绘制,绘制原理图,如图4,为了显示更多的过程信息,我们将74374的输出也作为output,重新绘制了原理图,图5 图4

4位按键控制下的LED、数码管SOPC计数

4位按键控制下的LED、数码管SOPC计数 要求:在Altera公司的FPGA开发板上,利用Nios II CPU软核,实现使用按键进行LED、数码管及在Nios II IDE下Console栏里计数的方法。 实验仪器:SOPC核心板、USB-Blaster下载线、开发实验底板、电源、PC。 //将库函数包含进入 #include"system.h"//SOPC生成的系统库函数 #include //中断库函数 #include"alt_types.h"//类型定义库函数 #include //io端口库函数 #include"altera_avalon_pio_regs.h"//io端口寄存器库函数 #include"altera_avalon_timer_regs.h"//定时器端口寄存器库函数 #include #define TIMER_BASE 0x00011000 #define PIO_KEY_BASE 0x00011020 #define PIO_HIGH_BASE 0x00011030 #define PIO_LOW_BASE 0x00011050 #define PIO_LED_BASE 0x00011040 #define KEY *(alt_u8 *)PIO_KEY_BASE //将按键接口寄存器的按键值取得 //计数函数 static void counter_add(alt_u8 cnt) { IOWR(TIMER_BASE,0,0); if (cnt>= 0x63)//当计数到99 进行清零 cnt= 0x00; else//当没有计数到99 将秒针加1 cnt = cnt+ 1; } //清零函数 static void counter_reset(alt_u8 cnt) {

基于FPGA的8位十进制数字频率计设计

宝鸡文理学院学报(自然科学版),第33卷,第1期,第-页,2013年3月 J o u r n a l o f B a o j iU n i v e r s i t y o fA r t s a n dS c i e n c e s (N a t u r a l S c i e n c e ),V o l .33,N o .1,p p .-,M a r .2013D O I :C N K I :61-1290/N. h t t p ://w w w.c n k i .n e t /k c m s /d e t a i l /61.1290.N.基于F P G A 的8位十进制数字频率计设计 *1 韩芝侠 (宝鸡文理学院电子电气工程系,陕西宝鸡721016 )摘 要:目的 研究复杂数字电路在E D A 开发系统上的实现方法。方法 在介绍E D A 特征及设 计方法基础上,针对具体的C P L D /F P G A 开发系统,在Q u a r t u s 环境下设计了一款8位十进制数字频 率计。结果 下载/配置到实验板的目标器件上,经实际电路测试验证,达到了预期的设计要求。结论 与传统设计方法相比, 该方案具有外围电路简单,程序修改灵活和调试容易等特点;设计的数字频率计测量范围大,精度高,读数直观清晰,可用于频率测量、机械转速测量等领域。 关键词:E D A ;C P L D /F P G A ;Q u a r t u s ;数字频率计;复杂数字系统;仿真中图分类号:T P 391.9 文献标志码:A 文章编号:1007-1261(2013)01-0000-04D e s i g no f 8-b i t d e c i m a l s y s t e md i g i t a l f r e q u e n c y m e t e rb a s e do nF P G A HA NZ h i -x i a (D e p t .E l e c t r o n i c s&E l e c t .E n g n .,B a o j iU n i v .A r t s&S c i .,B a o j i 721016,S h a a n x i ,C h i n a )A b s t r a c t :A i m T os t u d i e dt h em e t h o dt or e a l i z ead i g i t a l c i r c u i t i nE D A d e v e l o p m e n t s y s t e m.M e t h o d s B a s e do ni n t r o d u c i n g t h ec h a r a c t e r i s t i c sa n dd e s i g n m e t h o d so fE D A ,t oa i m a ts p e c i f i c C P L D /F P G Ad e v e l o p m e n t s y s t e m ,A8-b i t d e c i m a l s y s t e md i g i t a l f r e q u e n c y m e t e r i s d e s i g n e d i nQ u -a r t u s e n v i r o n m e n t .R e s u l t s I t i sd o w n l o a d /c o n f i g u r a t i o nt o t h e t a r g e td e v i c eo f e x p e r i m e n t a l p l a t e ,a f t e r a c t u a l c i r c u i t t e s t i n g a n dv e r i f y i n g ,t h ee x p e c t e dd e s i g nr e q u i r e m e n t i sa c h i e v e d .C o n c l u s i o n C o m p a r i n g w i t h t r a d i t i o n a l d e s i g nm e t h o d ,t h i s d e s i g nh a s c h a r a c t e r i s t i c s o f s i m p l e p e r i p h e r a l c i r c u i t ,f l e x i b l e p r o g r a m m o d i f i c a t i o nw a y a n d e a s y d e b u g m o d e ;T h i s f r e q u e n c y m e t e r a l s oh a s c h a r a c t e r i s t i c s o fw i d em e a s u r e m e n t r a n g e ,h i g ha c c u r a c y ,c l e a r a n d i n t u i t i v e r e a d i n g ,a n d c a nb e u s e d f o r f r e q u e n c y m e a s u r e m e n t ,m e c h a n i c a l s p e e dm e a s u r e m e n t ,e t c .K e y w o r d s :E D A ;C P L D /F P G A ;Q u a r t u s ;d i g i t a l f r e q u e n c y m e t e r ;c o m p l e xd i g i t a l c i r c u i t ;s i m -u l a t i o n 1 E D A 技术应用 随着计算机技术和集成电路技术的快速发展,电子技术设计面临着复杂度不断提高而设计周期不断缩短的矛盾。为了解决这个问题,就必须采用新的设计方法和使用高层次的设计工具,于是E D A 技术应运而生。E D A 遵循从上到下的设计原则。首先从系统设计入手,在顶层进行功 能划分和结构设计,顶层电路中的每个次层模块均可完成一个较为独立的功能,次模块在调试成 功后可生成一个默认符号,供上一层模块调用。而高密度可编程逻辑器件F P G A 是E D A 设计所必须的一种编程下载技术,具有易失性,每次重新加电,都要重新装入配置数据,突出优点是可反复编程,系统上电时,给F P G A 加载不同的配置数 *收稿日期:2012-09-19,修回日期:2012-10-02 基金项目:宝鸡文理学院科研项目(J G 0831 )作者简介:韩芝侠(1970-),女,陕西扶风人,副教授,硕士,研究方向:检测技术及自动化装置.E m a i l :h a n _z h i _x i a 999@163.c o m 网络出版时间:2012-10-11 17:25 网络出版地址:https://www.doczj.com/doc/0f11517756.html,/kcms/detail/61.1290.N.20121011.1725.001.html

0-99手动计数器的设计要点

┊┊┊┊┊┊┊┊┊┊┊┊┊装┊┊┊┊┊订┊┊┊┊┊线┊┊┊┊┊┊┊┊┊┊┊┊┊ 第1章绪论 1.1 计数器介绍 本设计是根据我们所学习的单片机课程,按照课程要求进行的课程设计。单片机技术是一个不可或缺的技术,尤其是对于我们电气专业来说它是我们必须要掌握的技能之一,使我们未来工作和生活的根本。现在的社会是一个信息科技高速发展的社会,也是一个电子技术和微机计算机迅速发展的时代,单片机的档次和水平在不断的提高,其应用的领域和范围也越来越广,成为现代电子系统中最重要的智能化核心部分。 随着计数器技术的不断发展与进步,计数器的种类越来越多,应用的范围越来越广,随之而来的竞争也越来越激烈。过硬的技术也成为众多生产厂商竞争的焦点之一。厂商为了在竞争中处于不败之地,从而不断地改进技术,增加产品的种类。 现计数器的种类以增加到:电磁计数器、电子计数器、机械计数器(拉动机械计数器、转动机械计数器、按动机械计数器、测长机械计数器)、液晶计数器等。计数器的应用范围也遍布印刷、纺织、印染、针织、电缆、电讯、军工、轻工、机械、开关、断路器、矿山、实行多班制的纺织行业的织布机、织带机、制线、制带、造纸、制革、薄膜、高压开关电器产品、试验设备,印刷设备、短路器、医疗、纺织、机械、仓库和码头的货运、行人及车辆过往的数量计数、冶金、食品、国防、包装、配料、石油、化工、发电、机床、仪表、自动化控制等行业。 1.2 本次设计的要求 1) 上电时,数码管显示为00。 2) 利用单片机来制作一个手动计数器,在单片机的管脚上接一个轻触开关,作为手动计数的按钮,用单片机的I/O口接数码管,作为计数器,进行加计数显示。 3) 计数器计数到99后,再按计数按钮,则数码管从00重新开始计数。 1.3 本次设计的目的 1) 学习基本理论在实践中综合运用的初步经验,掌握电路设计的基本方法、设计步骤,培养综合设计与调试能力。 2) 掌握汇编语言程序设计方法。 3) 培养实践技能,提高分析和解决实际问题的能力。

模拟计算器数字输入及显示课程设计

摘要 本设计是一个实现加、减、乘、除的计算器,它的硬件主要由四部分组成,一个AT89C51单片机芯片,一个八位共阳极的数码管,一个4*4的键盘,一个排阻(10K)做P0口的上拉电阻(接线图在附录2),它可以实现结果低于65535的加、减、乘、除运算。 显示部分:采用动态显示,由八位共阳极数码管通过P0口,P2口与单片机相连,数码管的A,B,C,D,E,F,G,DP分别依次与单片机的P0.0—P0.7相连,P0口做为单片机的字码控制端,数码管的1,2,3,4,5,6,7,8各引脚分别与单片机的P2.0—P2.7相连,P2口作为数码管的位控制端。 按键部分:采用4*4键盘。采用软件识别键值并执行相应的操作,键盘的第0行到第3行依次与单片机的P3.4—P3.7管脚相连,键盘的第0列到第3列依次与单片机的P1.0—P1.3管脚相连,程序运行时依次扫描各行,查询是否有键按下,如果有则进入键盘识别处理程序,实现相应的运算,然后通过数码管输出结果,如果没有按键就调用显示程序显示一个0,等待按键按下,在进入按键扫描程序。 执行过程:开机即显示0,等待键入数值,当键入数字,将通过数码管显示出来,在键入+、-、*、/运算符,计算器在内部执行数值转换和存储,并等待再次键入数值,当在键入数值后将显示键入的数值,按等号就会在数码管上输出运算结果。注:结果不能超出65535。(具体操作见后面仿真图)

目录 1 概述 1.1MCS-51单片机在自动化仪表中的作用 (3) 1.2掌握单片机仿真软件Proteus的使用方法 (3) 1.3设计方法 (3) 1.4基本功能 (4) 2 系统总体方案及硬件设计 2.1计算器总体思想 (5) 2.2硬件的选择与连接 (6) 3 软件设计 3.1显示程序设计 (7) 3.2键盘识别程序设计 (8) 3.3运算程序设计 (10) 3.4风鸣器程序设计 (10) 4 Proteus软件仿真 (12) 5课程设计体会 (16) 参考文献 (18) 附1:源程序代码 (19) 附2:计算器模拟系统电路图 (31)

8位数码管动态显示电路设计.

电子课程设计 — 8位数码管动态显示电路设计 学院:电子信息工程学院 专业、班级: 姓名: 学号: 指导老师: 2014年12月

目录 一、设计任务与要求 (3) 二、总体框图 (3) 三、选择器件 (3) 四、功能模块 (9) 五、总体设计电路图 (10) 六、心得体会 (12)

8位数码管动态显示电路设计 一、设计任务与要求 1. 设计个8位数码管动态显示电路,动态显示1、2、3、4、5、6、7、8。 2. 要求在某一时刻,仅有一个LED 数码管发光。 3. 该数码管发光一段时间后,下一个LED 发光,这样8只数码管循环发光。 4. 当循环扫描速度足够快时,由于视觉暂留的原因,就会感觉8只数码管是在持续发光。 5、研究循环地址码发生器的时钟频率和显示闪烁的关系。 二、总体框图 设计的总体框图如图2-1所示。 图2-1总体框图 三、选择器件 1、数码管 数码管是一种由发光二极管组成的断码型显示器件,如图1所示。 U13 DCD_HEX 图1 数码管 数码管里有八个小LED 发光二极管,通过控制不同的LED 的亮灭来显示出 不同的字形。数码管又分为共阴极和共阳极两种类型,其实共阴极就是将八个 74LS161计数器 74LS138译码 器 数码管

LED的阴极连在一起,让其接地,这样给任何一个LED的另一端高电平,它便能点亮。而共阳极就是将八个LED的阳极连在一起。 2、非门 非门又称为反相器,是实现逻辑非运算的逻辑电路。非门有输入和输出两个端,电路符号如图2所示,其输出端的圆圈代表反相的意思,当其输入端为高电平时输出端为低电平,当其输入端为低电平时输出端为高电平。也就是说,输入端和输出端的电平状态总是反相的。其真值表如表1所示。 图2 非门 表1 真值表 输入输出 A Y 0 1 1 0 3、5V电源 5V VCC电源如图3所示。 图3 5V电源

八位十进制数字频率计

EDA课程设计报告书 题目:8位十进制数字频率计的设计姓名: 学号: 所属学院: 专业年级: 指导教师: 完成时间:

8位十进制数字频率计的设计 一、设计介绍 数字频率计是采用数字电路制做成的能实现对周期性变化信号频率测量的仪器。频率计主要用于测量正弦波、矩形波、三角波和尖脉冲等周期信号的频率值。其扩展功能可以测量信号的周期和脉冲宽度。通常说的,数字频率计是指电子计数式频率计。频率计主要由四个部分构成:输入电路、时基(T)电路、计数显示电路以及控制电路。在电子技术领域,频率是一个最基本的参数。数字频率计作为一种最基本的测量仪器以其测量精度高、速度快、操作简便、数字显示等特点被广泛应用。许多物理量,例如温度、压力、流量、液位、PH值、振动、位移、速度等通过传感器转换成信号频率,可用数字频率计来测量。尤其是将数字频率计与微处理器相结合,可实现测量仪器的多功能化、程控化和智能化.随着现代科技的发展,基于数字式频率计组成的各种测量仪器、控制设备、实时监测系统已应用到国际民生的各个方面。 二、设计目的 (1)熟悉Quatus 11软件的基本使用方法。 (2)熟悉EDA实验开发系统的使用方法。 (3)学习时序电路的设计、仿真和硬件设计,进一步熟悉VHDL设计技术。 三、数字频率计的基本原理 数字频率计的基本原理是用一个频率稳定度高的频率源作为基准时钟,通常情况下计算每秒待测信号的脉冲个数,此时我们称闸门时间为1秒。闸门时间也可以大于或小于一秒。闸门时间越长,得到的频率值就越准确,但闸门时间越长则每测一次频率的间隔就越长。闸门时间越短,测的频率值刷新就越快,但测得的频率精度就受影响。数字频率计的主要功能是测量周期信号的频率。频率是单位时间(1S)信号发生周期变化的次数。如果我们能在给定的1S时间对信号波形计数,并将计数结果显示出来,就能读取被测信号的频率。数字频率计首先必须获得相对稳定与准确的时间,同时将被测信号转换成幅度与波形均能被数字电路识别的脉冲信号,然后通过计数器计算这一段时间间隔的脉冲个数,将其换算后显示出来。这就是数字频率计的基本原理。频率计测量频率需要设计整形电路使被测周期性信号整形成脉冲,然后设计计数器对整形后的脉冲在单位时间重复变化的次数进行计数,计数器计出的数字经锁存器锁存后送往译码驱动显示电路用数码管将数字显示出来,需要设计控制电路产生允许产生的门匣信号,计数器的清零信号和锁存器的锁存信号使电路正常工作,再设计一个量程自动转换使测量围更广。 四系统总体框架

基于51单片机的红外数码管计算器

基于51单片机的数码管应用 一、设计要求 1、基本要求 (1)焊接一个单片机最小系统,接通电源后,至少能在四位数码管上同时显示四个非0的相同的数字。 (2)至少四位数码管能动态显示出[0,1,2,3],达到一定的效果。 (3)能用按键改变显示的数字。 2、发挥部分 (1)增加数码管至8位。 (2)增加4*4矩阵按键,实现简易的8位计算器功能。 (3)增加红外接收模块,实现遥控功能。 (4)增加蜂鸣器,当有按键按下时发声。 (5)利用遥控器实现倒计时功能。

二、系统硬件配置 本系统采用STC89C52RC单片机作为微控制器,分为6个模块(如下图所示):按键电路,红外感应电路,蜂鸣器响应电路,数码管显示电路,晶振以及复位电路。 下面是电路图部分 :

三、系统软件设计 1、主程序模块 主程序需要调用5 个子程序,各模块程序功能如下: ●数码管显示程序:向数码的显示送数,控制系统的显示部分。 ●按键消抖程序:采用检验连续四次按键状态的方式软件消抖。 ●矩阵按键扫描程序:每4*4 ms扫描一次按键。 ●中断设定程序:实现定时功能。 ●数值计算程序:实现8位计算四则运算功能。 主程序流程见图如下:

四、系统源代码 Main.c部分代码如下: #include sbit BUZZ = P3^3; sbit KEY_IN_1 = P2^3; sbit KEY_IN_2 = P2^2; sbit KEY_IN_3 = P2^1; sbit KEY_IN_4 = P2^0; sbit KEY_OUT_1 = P2^4; sbit KEY_OUT_2 = P2^5; sbit KEY_OUT_3 = P2^6; sbit KEY_OUT_4 = P2^7; unsigned char code LedChar[]={ 0xC0, 0xF9, 0xA4, 0xB0, 0x99, 0x92, 0x82, 0xF8, 0x80, 0x90, 0x88, 0x83, 0xC6, 0xA1, 0x86, 0x8E }; unsigned char code KeyCodeMap[4][4]={ {0x31,0x32,0x33,0x25}, {0x34,0x35,0x36,0x26}, {0x37,0x38,0x39,0x27}, {0x1B,0x30,0x0D,0x28} }; unsigned char KeySta[4][4]={ {1,1,1,1}, {1,1,1,1}, {1,1,1,1}, {1,1,1,1} };

设计一个四位二进制计数器

1、要求:设计一个四位二进制计数器,将计数结果由数码管显示,显示结果为十进制数。数码管选通为低电平有效,段码为高电平有效。 分析:VHDL 描述包含五部分:计数器、将四位二进制数拆分成十进制数的个位和十位、二选一的数据选择器、七段译码、数码管选通控制信号 线定义为信号 library IEEE; use IEEE.STD_LOGIC_1164.ALL; use IEEE.STD_LOGIC_ARITH.ALL; use IEEE.STD_LOGIC_UNSIGNED.ALL; entity counter3 is Port ( clk:in STD_LOGIC; clk1 : in STD_LOGIC; clr : in STD_LOGIC; en : in STD_LOGIC; co : out STD_LOGIC; scanout:out std_logic_vector(1 downto 0); ledout:out std_logic_vector(6 downto 0)); end counter3; architecture Behavioral of counter3 is signal cnt:std_logic_vector(3 downto 0); signal cnt1:std_logic_vector(3 downto 0); signal cnt2:std_logic_vector(3 downto 0); signal hex:std_logic_vector(3 downto 0); signal scan:std_logic_vector(1 downto 0); en clr

8位十进制频率计_EDA课程设计报告

EDA课程设计报告 名称: 8位十进制频率计 学号: 姓名: 年级专业: 2011级电子信息工程 学院: 物电学院 指导老师: 日期: 2014年6月2日 安徽师范大学物理与电子信息学院 College of Physics and Electronic Information, Anhui Normal University

目录 一、设计目的 (2) 二、设计要求 (2) 三、设计思路 (3) 四、设计原理 (3) 五、设计仿真 (3) 六、实验现象 (4) 七、设计源码 (4) 八、总结 (9) 参考书目 (9) 引言 数字频率计是数字电路中的一个典型应用,实际的硬件设计用到的器件教多,连线比较复杂,而且会产生比较大的延时,造成测量误差、可靠性差。随着现场可编程阵列FPGA的应用,以EDA工具作为开发手段,运用VHDL等硬件描述语言语言,将使整个系统大大简化,提高了系统的整体性能和可靠性。 一、课程设计目的 1)巩固和加深对“EDA技术”、“数字电子技术”的基本知识的理解,提高综合运用本课程所学知识的能力。 2)培养学生根据课题需要选学参考书籍、查阅手册、图表和文献资料的自学能力。通过独立思考,深入钻研相关问题,学会自己分析解决问题的方法。 3)培养硬件设计、软件设计及系统软、硬件调试的基本思路、方法和技巧,并能熟练使用当前较流行的一些有关电路设计与分析的软件和硬件。 二、课程设计要求 1)脉冲信号的频率就是在单位时间内所产生的脉冲个数,其表达式为,f为被测信号的频率,N 为计数器所累积的脉冲个数,T为产生N个脉冲所需的时间。所以,在1秒时间内计数器所记录的结果,就是被测信号的频率。 2)被测频率信号取自实验箱晶体振荡器输出信号,加到主控室的输入端。 3)再取晶体振荡器的另一标准频率信号,经分频后产生各种时基脉冲:1ms,10ms,0.1s,1s等,时基信号的选择可以控制,即量程可以改变。 4)时基信号经控制电路产生闸门信号至主控门,只有在闸门信号采样期间内(时基信号的一个周期),输入信号才通过主控门。 5)f=N/T,改变时基信号的周期T,即可得到不同的测频范围。 6)当主控门关闭时,计数器停止计数,显示器显示记录结果,此时控制电路输出一个置零信号,将计数器和所有触发器复位,为新一次采样做好准备 三、课程设计思路 频率测量的基本原理是计算每秒钟内待测信号的脉冲个数。这就要求TESTCTL的计数使能信号TSTEN能产生一个1秒脉宽的周期信号,并对频率计的每一计数器CNT10的ENA使能端进行同步控制。当TSTEN高电平时,允许计数;低电平时,停止计数,并保持其所计的数。在停止计数期间,首先需要一个锁存信号LOAD的上跳沿将计数器在前1秒钟的计数值锁存进32位锁存器REG32B中,并由外部的7段译码器译出并稳定显示。锁存信号之后,必须有一清零信号CLR_CNT对计数器进行清零,为下1秒钟的计数操作作准备。 寄存器REG32B设计要求是:若已有32位BCD码存在于此模块的输入口,在信号LOAD的上升沿后即被锁存到寄存器REG32B内部,并由REG32B的输出端输出,然后由7段译码器译者成能在数码管上显示输出的相应数值。

单片机数码管计数器

MAIN: NOP CALL DISPLAY0;LED动态显示刷新 CALL DELAY100 JNB B_T1IF,MAIN;每50ms处理一次。 ;====================================== CLR B_T1IF MOV A,TIMES_50MS CJNE A,#20,NO_1S JMP YES_1S; 满20次即为一秒钟 ;===================================== NO_1S: MOV A,TIMES_50MS CJNE A,#1,NO_1S_END ;TIMES_50MS不为1,返回 ;当TIMES_50MS为1时,判断当前所选档位是否过高或者过低 ;若计数器BUF大于100,则说明满1秒时必然大于2000,则提前调高频率衰减档位, ;并清零各计数值,重新在新档位测量 MOV A,COUNTER_BUF_H JNZ NO_1S_1;计数器高位不为0,说明超100 MOV A,COUNTER_BUF_L CJNE A,#100,NO_1S_0 NO_1S_0:JC NO_1S_LOW;计数器BUF小于100,继续跳转到NO_1S_LOW判断是否需要调低档位 NO_1S_1: MOV A,FREQ_LOSS;超量程,判断当前频率衰减档位,若小于3则加一档 CJNE A,#3,NO_1S_2 JMP NO_1S_END NO_1S_2:JC NO_1S_3 MOV A,#3 MOV FREQ_LOSS,A;档位大于3,则修正为3 NO_1S_3: INC FREQ_LOSS;频率衰减档位加1 MOV A,FREQ_LOSS CJNE A,#1,NO_1S_4 SETB P153_B;FREQ_LOSS=1 CLR P153_A JMP NO_1S_20 NO_1S_4:CJNE A,#2,NO_1S_5 CLR P153_B;FREQ_LOSS=2 SETB P153_A

数字电路设计——加法计算器

姓名罗银贵班级1208105 学号1120810501 实验日期节次教师签字成绩 加法计算器 1.实验目的 通过对加法计算器的设计,掌握组合逻辑电路、时序逻辑电路的分析和设计方法; 了解及掌握中规模集成电路以及各个芯片的管脚图及结构图。 掌握全加器、计数器等芯片的功能及实现方法; 锻炼动手实践能力,提高自身设计能力。 2.总体设计方案或技术路线 设计一个简单的加法计算器,能实现简单的加法运算,计算结果为0—16的和数,并输出到数码管。加法运算的实现要求:用四个开关代表四位二进制数,操纵开关,输入二进制数码,则在相应的数码管上显示出相应的十进制数,即代表被加数;用同样的方法在另外的四个开关上输入二进制数,则在相应的数码管上显示相应的十进制数,即代表加数;当加数与被加数都输入后,在另外的两个数码管上出现两数的和。

3.实验电路图 4.仪器设备名称、型号和技术指标 直流稳压电源、试验箱、万用表; 2个74LS00D、1个74LS283D、1个74LS04D、2个74LS08D、1个74LS20D; 单刀双掷开关9个、导线若干。

5.理论分析或仿真分析结果 开关9置0,闭合J1、J2、J3、J4相应开关输入被加数: 开关9置0,闭合J5、J6、J7、J8相应开关输入加数:

开关9置1,输入相应的被加数和加数,并求和,输出到另外两个数码管上: 6.详细实验步骤及实验测量数据记录 根据实验电路图连接好电路; 检查实验电路无误后,开关9置0; 闭合J1、J2、J3、J4相应开关输入被加数; 闭合J5、J6、J7、J8相应开关输入加数; 开关9置1,输出相应被加数与加数的和。

实验四八位七段数码管动态显示电路的设计

实验四八位七段数码管 动态显示电路的设计 Document serial number【KK89K-LLS98YT-SS8CB-SSUT-SST108】

八位七段数码管动态显示电路的设计 一、实验目的 1、了解数码管的工作原理。 2、学习七段数码管显示译码器的设计。 3、学习VHDL的CASE语句及多层次设计方法。 二、实验原理 七段数码管是电子开发过程中常用的输出显示设备。在实验系统中使用的是两个四位一体、共阴极型七段数码管。其单个静态数码管如下图4-4-1所示。 图4-1 静态七段数码管 由于七段数码管公共端连接到GND(共阴极型),当数码管的中的那一个段被输入高电平,则相应的这一段被点亮。反之则不亮。共阳极性的数码管与之相么。四位一体的七段数码管在单个静态数码管的基础上加入了用于选择哪一位数码管的位选信号端口。八个数码管的a、b、c、d、e、f、g、h、dp都连在了一起,8个数码管分别由各自的位选信号来控制,被选通的数码管显示数据,其余关闭。 三、实验内容 本实验要求完成的任务是在时钟信号的作用下,通过输入的键值在数码管上显示相应的键值。在实验中时,数字时钟选择1024HZ作为扫描时钟,用四个拨动开关做为输入,当四个拨动开关置为一个二进制数时,在数码管上显示其十六进制的值。 四、实验步骤 1、打开QUARTUSII软件,新建一个工程。 2、建完工程之后,再新建一个VHDL File,打开VHDL编辑器对话框。 3、按照实验原理和自己的想法,在VHDL编辑窗口编写VHDL程序,用户可参照光盘中 提供的示例程序。 4、编写完VHDL程序后,保存起来。方法同实验一。 5、对自己编写的VHDL程序进行编译并仿真,对程序的错误进行修改。 6、编译仿真无误后,根据用户自己的要求进行管脚分配。分配完成后,再进行全编译 一次,以使管脚分配生效。 7、根据实验内容用实验导线将上面管脚分配的FPGA管脚与对应的模块连接起来。 如果是调用的本书提供的VHDL代码,则实验连线如下: CLK:FPGA时钟信号,接数字时钟CLOCK3,并将这组时钟设为1024HZ。

最新多功能8位十进制频率计数器的设计

多功能8位十进制频率计数器的设计

多功能8位十进制频率计数器的设计 设计题目:多功能8位十进制计数器的设计学生学号: 08060311205 学生姓名:孔文尧 专业班级:电信 112 指导教师:邓茜

摘要 使用VHDL 语言来设计,画出流程图和仿真图,让设计的电路通过硬件仿真,再在下到相关器件上,指导满足要求,能实现电子自动化的过程。使用该仪器测试所得到的信号的频率,有正弦波,有方波但是其信号必须按周期性变化,否则一定是机器坏了和操作不得当。因此这个毕业设计,不但有力于让数字频率计的功能更强,也可以让成本降低和增加其实际作用。所有的科研院所,学校,实验室,车间等商业机构都使用了大量的数字频率器或其相关产品。因为它的使用性,价格也相当的低廉所以被人们广泛的使用和研究。在这被人们所注意到,而且仿真可以提供更好的测量频率也会让实验的结果更加的精确,他能满足了数字频率计自动清零需求,当然也能满足自动化功能测试要求。 现在我们对他的研究途径它不仅仅在于容易阅读,也在于我可以控制精度,这也是很牛逼的。最重要的是数字频率计,在高科技设备研发和数字卫星领域,数字通信应用等领域中有不俗的贡献。 [关键词]:VHDL 语言仿真频率计数器。

Summary Use c language to design, draw a flowchart and simulation map, so the design of the circuit by hardware emulation, and then next to the relevant device guidance to meet the requirements, to achieve the electronic automated process. Frequency signal obtained by the instrument test with a sine wave, but their well-wave signal must be periodically changed, the machine must be broken and the operation shall not be treated. So this graduation design, not only to make powerful digital frequency meter more powerful, but also allows cost reduction and increase its practical effect. All research institutes, schools, laboratories, workshops and other business organizations are using a lot of digital frequency or its related products. Because of its use, the price is quite low so been widely used and studied. In this been noticed, and simulation can provide better measurement frequency also make experimental results more accurate, he can meet the needs of the digital frequency meter is automatically cleared, of course, but also to meet the requirements of automated functional testing, Now we study the way for him it's not just that it is easy to read, but also that I can control precision, it is also very fast hardware. The most important is the digital frequency meter, high-tech equipment in the field of research and development and digital satellite, digital communications applications in other fields have good contributions. [Keywords]: c language simulation frequency meter.

相关主题
文本预览
相关文档 最新文档