频率计的设计报告(含详细原理,流程图,c语言程序,proteus图等)

频率计的设计报告(含详细原理,流程图,c语言程序,proteus图等)
频率计的设计报告(含详细原理,流程图,c语言程序,proteus图等)

学校名称:合肥工业大学

队员姓名:田中贺,汤旭,梁植程,黄传帮,杨骜,刘伟,王佩,徐国瑞,周冀,王槐铭,贾根发,陈明,林仁斌,张卫强

2012年7月10日

基于52单片机的频率计

摘要:以A TMEL单片机为核心,利用单片机的外部中断、定时器的计数模式和定时器的功能对信号发生器产生的脉冲频率进行计数。且可以根据频率的不同,单片机控制选择测周法或者测频法对产生的脉冲波形进行计数,以进行更加精确的频率测量。而且可以通过按键来进行频率测量方法的选择。

关键字:A T89s52,外部中断、定时器的计数模式和定时器,测周法、测频法。

设计题目及要求:

(1):被测频率fx小于110Hz采用测周法,显示频率XXX。XXX;fx大于110Hz采用测频法,显示频率XXXXXX;

(2):可利用键盘分段测量和自动分段测量;

(3):可完成单脉冲测量,输入脉冲宽度范围是100微秒--0.1秒;

(4):自由发挥其他功能.

(5):要求有单片机硬件系统框图,电路原理图,软件流程图

一、原理:

1基本设计原理

运用单片机TO,T1计数功能来完成对输入信号的计数。其T1为

计数器,T1为计时器。

为T1装入初值19466,定时300ms,重复20次即为1s,与此同时将同时计数的T0里的值取出,即为该频率信号1s的频率示数

2系统主要功能

利用单片机的T0,T1计数定时器功能,来完成对输入信号进行率计数,计数结果通过8位动态数码管显示出来,。

特点1,由开关控制启动。

特点2,可利用键盘分段测量和自动分段测量;

特点3,可以多次测量,自动刷新 1s一次。

特点4,使用溢出标志T0count,防止20ms内计数超过65536次的频率信号溢出造成的示数错误

3.系统原理框图:

二频率计的硬件结构设计

1单元电路

(1)单片机电路:

(2)矩阵键盘

(3)数码管显示

(4)排阻(用于提高P0口电位)

(5)模拟的信号发生器:

2

原理

选择AT89S52单片机芯片,选用两位8段共阴极LED数码管实现频率显示,利用8279作I/O口扩展,连接数码管。通过定时器1计时方式,定时器0计数方式,定时每秒钟对外部频率计数,把计数值在数码管上显示

四、软件设计

1 程序流程图

2程序设计:

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

*器件名:频率器;

*设计要求1:被测频率fx小于110Hz采用测周法,显示频率XXX。XXX;fx大于110Hz 采用测频法,显示频率XXXXXX;

*设计要求2:可利用键盘分段测量和自动分段测量;

*设计要求3:可完成单脉冲测量,输入脉冲宽度范围是100微秒--0.1秒;

*设计要求4:自由发挥其他功能.

*设计要求5:要求有单片机硬件系统框图,电路原理图,软件流程图。

*功能说明:频率计,利用T0计数模式测频率

*接线说明:P2控制位选,P1控制段选

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

#include

#define S P2

#define uchar unsigned char

#define uint unsigned int

uint temp0,temp1,m,n,k,wei,num,t;

unsigned long int temp;

unsigned long int count;

uchar code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6D,0x7D,0x07,0x7f,0x6f,0x00}; //共阳数码管

/*延时*/

void delay(unsigned char delaytime)

{

while(delaytime--);

}

/*数码管显示函数*/

void display()

{

S=0xfe;delay(5);P1=table[temp1/1000];delay(500);

S=0xfd;delay(5);P1=table[temp1/100%10];delay(500);

S=0xfb;delay(5);P1=table[temp1/10%10];delay(500);

S=0xf7;delay(5);P1=table[temp1%10];delay(500);

S=0xef;delay(5);P1=table[temp0/1000];delay(500);

S=0xdf;delay(5);P1=table[temp0/100%10];delay(500);

S=0xbf;delay(5);P1=table[temp0/10%10];delay(500);

S=0x7f;delay(5);P1=table[temp0%10];delay(500);

}

/*数码管显示函数1*/

void display1()

{

S=0xfe;delay(5);P1=~0x40;delay(500);

S=0xfd;delay(5);P1=~0x40;delay(500);

S=0xfb;delay(5);P1=~0x40;delay(500);

S=0xf7;delay(5);P1=~0x40;delay(500);

S=0xef;delay(5);P1=~0x40;delay(500);

S=0xdf;delay(5);P1=~0x40;delay(500);

S=0xbf;delay(5);P1=~0x40;delay(500);

S=0x7f;delay(5);P1=~0x40;delay(500);

}

//---------------------初始化-------------------------------//

void inital()

{

TMOD=0x15;//字节寻址,00010101,T1 16位定时器(T0、T1定时模式,对内部机器周期计数),T0 16位计数器 (T0、T1计数模式,对外部脉冲计数) TH1=(65535-1000)/256;

//C/T置0则用作定时器(从内部系统时钟输入),置1则用作计数器(从T0/P3^4脚输入)

TL1=(65535-1000)%256;

////C/T置0则用作定时器(从内部系统时钟输入),置1则用作计数器(从T0/P3^5脚输入)

TH0=0;

TL0=0;

ET1=1; //开启定时器1中断,中断允许标志位

TR1=1; // 开启定时器1,中断运行控制位

ET0=1; //开启定时器/计数器0中断,中断允许标志位

TR0=1; // 开启定时器/计数器0,中断运行控制位

IT0=1; //边沿触发方式

EX0=0; //外部中断0允许位

EA=1; //开启CPU中断

}

//------------------键盘扫描-----------------------------//

void keyscan()

{

P0=0xfe; //检测第一行

temp=P0;

temp=temp&0xf0;

while(temp!=0xf0) //初始列置高电平,行置底电平

{

delay(5);//消抖

temp=P0;

temp=temp&0xf0;

while(temp!=0xf0)

{ //确认按键按下

temp=P1;

switch(temp)

{

case 0xee:num=7;

break;

case 0xde:num=8;

break;

case 0xbe:num=9;

break;

case 0x7e:

break;

}

while(temp!=0xf0)

{

temp=P0; //检验是否释放

temp=temp&0xf0;

}

}

}

P0=0xfd; //检测第二行

temp=P0;

temp=temp&0xf0;

while(temp!=0xf0)

{

delay(5);

temp=P0;

temp=temp&0xf0;

while(temp!=0xf0)

{

temp=P0;

switch(temp)

{

case 0xed:num=4;

break;

case 0xdd:num=5;

break;

case 0xbd:num=6;

break;

case 0x7d:

break;

}

while(temp!=0xf0)

{

temp=P0;

temp=temp&0xf0;

}

}

}

P0=0xfb; //检测第三行temp=P0;

temp=temp&0xf0;

while(temp!=0xf0)

{

delay(5);

temp=P0;

temp=temp&0xf0;

while(temp!=0xf0)

{

temp=P0;

switch(temp)

{

case 0xeb:num=1;

break;

case 0xdb:num=2;

break;

case 0xbb:num=3;

break;

case 0x7b:

break;

}

while(temp!=0xf0)

{

temp=P0;

temp=temp&0xf0;

}

}

}

P0=0xf7; //检测第四行

temp=P0;

temp=temp&0xf0;

while(temp!=0xf0)

{

delay(5);

temp=P0;

temp=temp&0xf0;

while(temp!=0xf0)

{

temp=P0;

switch(temp)

{

case 0xe7:

break;

case 0xd7:num=0;

break;

case 0xb7:

break;

case 0x77:

break;

}

while(temp!=0xf0)

{

temp=P0;

temp=temp&0xf0;

}

}

}

}

void main()

{

inital();

while(1)

{

keyscan();

if(num==2&&EX0!=0) //测频法

{

EX0=0;

TR1=1;

TR0=1;

count=0;

}

if(num==1) //测周法

{

EX0=1;

TR0=0;

}

display();

}

}

//-----------------测周法--------------//

void exter0() interrupt 0

{

n++;

if(n==1) //开始计时

{

TH1=(65535-1000)/256;

TL1=(65535-1000)%256;

TR1=1;

}

if(n==2) //停止计时

{

TR1=0;

temp=1000/(count+1);

temp1=temp/10000;

temp0=temp%10000;

t++;

if(temp0>111&&t>10) //选择测频法

{

while(num!=2)

{

keyscan();

display1();

}

t=0;

}

count=0;

n=0;

}

}

//---------------------计数----------------------------// void count0() interrupt 1

{

m++;

TH0=0;

TL0=0;

}

//---------------------定时-----------------------------// void timer1() interrupt 3

{

TH1=(65535-50000)/256;

TL1=(65535-50000)%256;

if(num==1||num==2)

count++;

if(num==1) //测周法

{

TH1=(65535-1000)/256;

TL1=(65535-1000)%256;

k++ ;

if(k==1) //防止TR1不断置0

{

EX0=1;

TR1=0;

TR0=0;

}

}

if(count==20&&num==2) //测频法

{

count=0;

temp=m*65535+TH0*256+TL0;

if(temp>=110)

{

temp1=temp/10000;

temp0=temp%10000;

m=0;

TH0=0;

TL0=0;

}

else //选择测周法

{

while(num!=1)

{

keyscan();

display1();

}

}

}

}

附录:

1.参考文献:

[1] 杜洋工作室https://www.360docs.net/doc/5f14913988.html,

[2] 21IC论坛

[3] 谭浩强《C语言程序设计第二版》清华大学

[4] 合肥工业大学电子创新实验室https://www.360docs.net/doc/5f14913988.html, 2.总电路图

电气原理图设计规范

电气原理图设计规范 目录 ●电器原理图及其构成●设计制图的一般规则●电原理图的幅面及其格式●简图的绘制步骤●电原理图设计的基本要求●电路图的组成要素●元器件的标注方法●电路原理图的设计●图纸的更改●文件名及图号编号规则●对电原理图的审核 电器原理图及其构成 电器电路图有原理图、方框图、元件装配以及符号标记图等: ●原理图 电器原理图是用来表明设备的工作原理及各电器元件间的作用,一般由主电路、控制执行电路、检测与保护电路、配电电路等几大部分组成。这种图,由于它直接体现了电子电路与电气结构以及其相互间的逻辑关系,所以一般用在设计、分析电路中。分析电路时,通过识别图纸上所画各种电路元件符号,以及它们之间的连接方式,就可以了解电路的实际工作时情况。 电原理图又可分为整机原理图,单元部分电路原理图,整机原理图是指所有电路集合在一起的分部电路图。 ●方框图(框图) 方框图是一种用方框和连线来表示电路工作原理和构成概况的电路图。从某种程度上说,它也是一种原理图,不过在这种图纸中,除了方框和连线,几乎就没有别的符号了。它和上面的原理图主要的区别就在于原理图上具体地绘制了电路的全部的元器件和它们的连接方式,而方框图只是简朴地将电路按照功能划分为几个部分,将每一个部分描绘成一个方框,在方框中加上简朴的文字说明,在方框间用连线(有时用带箭头的连线)说明各个方框之间的关系。所以方框图只能用来体现电路的大致工作原理,而原理图除了具体地表明电路的工作原理之外,还可以用来作为采集元件、制作电路的依据。 ●元件装配以及符号标记图 它是为了进行电路装配而采用的一种图纸,图上的符号往往是电路元件的实物的形状图。这种电路图一般是供原理和实物对照时使用的。印刷电路板是在一块绝缘板上先覆上一层金属箔,再将电路不需要的金属箔腐蚀掉,剩下的部分金属箔作为电路元器件之间的连接线,然后将电路中的元器件安装在这块绝缘板上,利用板上剩余的导电金属箔作为元器件之间导电的连线,完成电路的连接。元器件装配图和原理图中大不一样。它主要考虑所有元件的分布和连接是否合理,要考虑元件体积、散热、抗干扰、抗耦合等等诸多因素,综合这些因素设计出来的印刷电路板,从外观看很难和原理图完全一致。 ● 电器原理图幅面及其格式

单片机简易频率计课程设计

前言 (3) 一、总体设计 (4) 二、硬件设计 (6) AT89C51单片机及其引脚说明: (6) 显示原理 (8) 技术参数 (10) 电参数表 (10) 时序特性表 (11) 模块引脚功能表 (12) 三、软件设计 (12) 四、调试说明 (15) 五、使用说明 (17) 结论 (17) 参考文献 (18)

附录 (19) Ⅰ、系统电路图 (19) Ⅱ、程序清单 (20)

前言 单片机渗透到我们生活的各个领域,几乎很难找到哪个领域没有单片机的踪迹。导弹的导航装置,飞机上各种仪表的控制,计算机的网络通讯与数据传输,工业自动化过程的实时控制和数据处理,广泛使用的各种智能IC卡,民用豪华轿车的安全保障系统,录像机、摄像机、全自动洗衣机的控制,以及程控玩具、电子宠物等等,这些都离不开单片机。更不用说自动控制领域的机器人、智能仪表、医疗器械以及各种智能机械了。因此,单片机的学习、开发与应用在生活中至关重要。 随着电子信息产业的不断发展,信号频率的测量在科技研究和实际应用中的作用日益重要。传统的频率计通常是用很多的逻辑电路和时序电路来实现的,这种电路一般运行缓慢,而且测量频率的范围比较小.考虑到上述问题,本论文设计一个基于单片机技术的数字频率计。首先,我们把待测信号经过放大整形;然后把信号送入单片机的定时计数器里进行计数,获得频率值;最后把测得的频率数值送入显示电路里进行显示。本文从频率计的原理出发,介绍了基于单片机的数字频率计的设计方案,选择了实现系统得各种电路元器件,并对硬件电路进行了仿真。

一、总体设计 用十进制数字显示被测信号频率的一种测量装置。它以测量周期的方法对正弦波、方波、三角波的频率进行自动的测量. 所谓“频率”,就是周期性信号在单位时间(1s)内变化的次数。若在一定时间间隔T内测得这个周期性信号的重复变化次数N,则其频率可表示为f=N/T。其中脉冲形成电路的作用是将被测信号变成脉冲信号,其重复频率等于被测频率f x。时间基准信号发生器提供标准的时间脉冲信号,若其周期为1s,则门控电路的输出信号持续时间亦准确地等于1s.闸门电路由标准秒信号进行控制,当秒信号来到时,闸门开通,被测脉冲信号通过闸门送到计数译码显示电路。秒信号结束时闸门关闭,计数器停止计数。由于计数器计得的脉冲数N是在1秒时间内的累计数,所以被测频率fx=NHz。 本系统采用测量频率法,可将频率脉冲直接连接到AT89C51的T0端,将T/C1用做定时器。T/C0用做计数器。在T/C1定时的时间里,对频率脉冲进行计数。在1S定时内所计脉冲数即是该脉冲的频率。见图1: 图1测量时序图 由于T0并不与T1同步,并且有可能造成脉冲丢失,所以对计数器T0做一定的延时,以矫正误差。具体延时时间根据具体实验确定。 根据频率的定义,频率是单位时间内信号波的个数,因此采用上述各种方案

C语言程序设计报告

河南理工大学万方科技学院 C语言课程设计报告题目简单计算器编程 姓名何美美 学号072130026 专业07通信 班级一班 指导教师董玉杰 2008年09 月05日

目录 一、设计目的 (1) 二、本组课题及本人任务 (2) 三、主体内容 (3) (1)流程图 (2)源程序 (3)上机调试 (4)实验结果 四、设计体会 (6)

设计目的 1 复习、巩固C语言的基础知识,进一步加深对C语言的理解和掌握; 2 课程设计为学生提供了一个既动手又动脑,独立实践的机会,将课本上的理论知识和实际有机的结合起来,锻炼学生的分析解决实际问题的能力。提高学生适应实际,实践编程的能力; 3 培养学生在项目开发中团队合作精神、创新意识及能力 本组课题及本人任务 1 设计一个简单计算器能完成基本的加、减、乘、除计算,尽量模仿Windows计算器。系统界面不做强制要求。 2在本次设计中,由何永美、刘艳玲、贺清隆三人共同完成,由于知识掌握不牢,因此每一步都要共同商量,其中源程序由我们参考大量资料而成。 3本人负责程序调试及其他有关工作。

流程图主要内容 简单计算器

程序代码如下: /*代码文件名:E4_6.C*/ /*计算器的模拟*/ #include #include double add (double a,double b) {return a+b;} double sub (double a,double b) {return a-b;} double multi(double a,double b) {return a*b;} double divis(double a,double b) {return a/b;} Void main() { double x,y; int select; printf("input two numbers:"); scanf("%lf,%lf",&x,&y); printf("1------add\n"); printf("2------sub\n"); printf("3------multi\n");

C语言程序设计习题答案(1-5章)

C 语言程序设计习题答案 习题一 C 语言程序设计概述 一、名词解释 (1)程序P1 (2)程序设计P1 (3)机器语言P1 (4)汇编程序P2 (5)高级语言P2 (6)编译程序P3 (7)解释程序P3 (8)算法P4 (9)结构化的程序设计P9 二、简述题 1. 设计程序时应遵循哪些基本原则?P4 答:正确性、可靠性、简明性、有效性、可维护性、可移植性。 2. 算法的要素是什么?算法具有哪些特点? 答:算法的要素是:操作与控制结构;算法的特点有:有穷性、确定性、有效性、有零个或多个输入、有一个或多个输出。 3. 算法的表示形式有哪几种? 答:算法的表示形式有:自然语言、传统流程图、伪代码、结构化的流程图(N_S 流程图,盒图)。 4. 有哪三种基本结构? 答:三种基本结构是:顺序结构、选择结构和循环结构。 5. 传统流程图与N-S 流程图最大的区别是什么? 答:N-S 流程图去掉了在传统流程图中常用的流程线,使得程序的结构显得更加清晰、简单。 三、用传统流程图、N-S 图分别表示求解以下问题的算法。 1. 有3个数a ,b ,c ,要求按由大到小的顺序把它们输出。 2. 依次将10个数输入,求出其中最大的数 和最小的数并输出。 3. 求1+2+3+…+100的值。 4. 求1×2×3×…×10的值。

5. 求下列分段函数的值。 6. 求100~200之间的所有素数。 7. 求一元二次方程ax 2+bx+c=0的根。分别考虑d=b 2-4ac 大于0、等于0和小于0三种情况。 四、注释下面C 程序的各个组成部分。 main() /*主函数 */ { /*程序开始 */ int a,k,m; /*定义三个用来存放整数的变量 */ a=10; /*将整数10赋值给变量a */ k=2; /*将整数2赋值给变量k */ m=1; /*将整数1赋值给变量1 */ a=(k+m)*k/(k-m); /*先求出算术表达式的值,并将其赋值给变量a */ printf("%d\n",a); /*在屏幕上打印出变量a 的值 */ } /*程序结束 */ 习题二 数据类型、运算符与表达式 一、选择题 1~10:BCDCB DDBCA 11~20: ADDAA DBADC 21~28: DABAD CDD 3X (X<1) 4X-1 (X=1) 5(X-1)+6 (1

电路原理图设计规范

C 电路原理图设计规范 Hardware

Revision List

一、Purpose/ 目的 本规范规定了公司硬件电路原理图的设计流程和设计原则,主要的目的是为电路原理图设计者提供必须遵守的规则和约定。 提高原理图的设计质量和设计效率,提高原理图的可读性,可维护性,为PCB Layout做好基础。 二、Scope/ 适用范围 本规范适用于研发部硬件人员使用Altium Designer 工具绘制电路原理图,亦可作为其他工具参考规范。 三、Glossary/ 名词解释 图幅 网络标号 网络表 标称值 元器件库 图形符号 四、Necessary Equipment/ 必须文件 设计需求分析。 系统方案说明。 主要零件的datasheet,参考设计,注意事项。 产品机构图(可选) 五、Procedure/ 流程规范细则 确定图纸尺寸、标题规范 根据实际需要,电路的复杂程度选择图纸尺寸,常用的图纸尺寸有A2,A3,A4. 每个图纸可根据实际情况分为纵向和横向排版,一般选用横向。 在选用图纸时,应该能准确清晰的表达该区域电路的完整功能。 标题栏规范 项目名称宋体三号 图纸名称宋体四号 版次宋体四号 页数/页码宋体四号 设计人员宋体四号 分页规范 当同一块PCB上的电路原理图,由于内容太多,无法在同一张图纸上画完,这时需分多页绘制原理图,分页绘制的原理图,在结构属性上各页之间是同级平等的,相互可以拼接成一张图。分页绘制的首要规则是同一个子功能单元电路必须绘制在同一页上。

当分页绘制时,要注意此时网络标号和项目代号是全局变量,不同网络不能用相同的网络标号,即此时网络标号和项目代号在总图中是唯一的,不得有重复。 元器件标识规范 元器件标注的基本信息,即是显示在原理图上的信息,应包括元器件的编号和标称值。 其中元器件的编号一般根据元器件种类以不同的英文字母表示,后面加注流水编号。注意:元器件编号要连续,中间不要间断,不要出现重复。 标称值规范 标称值是器件的电器特性的必要描述,标称值的标注原则是能准确反映该器件的特征,只要选用了满足该参数的同类器件,就可以保证正常的电气性能,不会因为其它未标明的参数改变而造成原理图错误或导致电路故障。 电阻类 ≤1ohm 以小数表示,而不以毫欧表示0RXX,例如0R47,0R033 ;包含小数表示为XRX,例如4R7,4R99,49R9 ;包含小数表示为XKX,例如4K7,4K99,49K9 ;包含小数表示为XMX,例如4M7,2M2

基于单片机的数字频率计设计

江阴职业技术学院 毕业论文 课题:基于单片机的数字频率计的设计 专业电子信息工程 学生姓名冯海洋 班级08电子信息工程(1)班 学号20080305107 指导教师张文洁 完成日期

目录 摘要?错误!未定义书签。 前言................................................................................................... 错误!未定义书签。第一章绪论............................................................................................... 错误!未定义书签。 1.1课题背景?错误!未定义书签。 1.2 课题研究的目的和意义 ................................................................. 错误!未定义书签。 1.4数字频率计设计的任务与要求?错误!未定义书签。 第二章数字频率计总体方案设计............................................................... 错误!未定义书签。 1.1方案比较 .......................................................................................... 错误!未定义书签。 1.2方案论证......................................................................................... 错误!未定义书签。 1.3方案选择......................................................................................... 错误!未定义书签。 第三章数字频率计的硬件系统设计........................................................... 错误!未定义书签。 3.1数字频率计的硬件系统框架...................................................... 错误!未定义书签。 3.2 数字频率计的主机电路设计?错误!未定义书签。 3.3数字频率计的信号输入电路设计................................................... 错误!未定义书签。 3.4数字频率计显示电路的设计 ........................................................... 错误!未定义书签。 3.5数字频率计的计数电路的设计?错误!未定义书签。 3.6数字频率计电源模块的设计?错误!未定义书签。 第四章数字频率计软件系统设计?错误!未定义书签。 4.1 软件设计规划................................................................................. 错误!未定义书签。 4.1.1信号处理............................................................................ 错误!未定义书签。 4.1.2中断控制................................................................................. 错误!未定义书签。 4.2.1定时器/计数器?错误!未定义书签。 4.2.2定时工作方式0..................................................................... 错误!未定义书签。 4.3程序流程图设计................................................................................ 错误!未定义书签。

C语言程序设计实验报告(数组)

C语言程序设计实验报告(数组) 1实验目的 (1)熟练掌握一维数组,二维数组的定义,初始化和输入、输出方法; (2)熟练掌握字符数组和字符串函数的使用; (3)掌握与数组有关的常用算法(查找、排序等)。 2实验内容 编写函数catStr(char str1[],char str2[])用于进行两个字符串的连接,编写函数lenStr(char str[])用于统计一个字符串的长度,并在主函数中调用。 要求: 1、不允许用strcat()和strlen()字符处理库函数; 2、在主函数以直接初始化的方式输入两个字符串str1和str2.调用函数 strlen()计算并返回两个字符串的长度; 3、调用函数catstr()连接两个字符串(将str2连接在str1后面); 4、调用函数lenstr()计算并返回连接后字符串的长度; 5、在主函数中输入两个原始的字符串及几个字符串的长度,以及处理后字 符串及其长度。

3算法描述流程图

4源程序 #include #include void catStr(char str1[],char str2[]) { int i,j; for (i=0;str1[i]!='\0';i++); for(j=0;str2[j]!='\0';j++) str1[i+j]=str2[j]; str1[i+j]='\0'; } lenStr(char m[] ) {int i;

for (i=0;m[i]!='\0';i++); printf("%d",i); } void main() {char s1[50]="forever",s2[50]="more"; printf("s1=%s,s2=%s",s1,s2); printf("\ns1的长度:"); lenStr(s1); printf("\ns2的长度:"); lenStr(s2); catStr(s1,s2); printf("\n连接后的字符:"); printf("%s\n",s1); printf("连接后字符的长度:"); lenStr(s1); printf("\n"); } 5测试数据 s1=forever, s2=more 6运行结果 7出现问题及解决方法 在输入程序时,少写了半边引号,调试时发现存在错误,找到了错误并加以改正。无论什么事,细心都是必不可少的,认真是解决问题的关键。 8实验心得 通过本次实验,对于函数的定义和声明,数组以及循环语句有了进一步的认识,掌握了字符数组和字符串函数的使用,以及与数组有关的常用算法。此次实验不是调用strlen()和strcat()函数,而是通过自己设计程序来进行字符串的连接以及计量字符串的长度,由此我学会了如何去理清自己的思路来设计程序。

教你学用Proteus作PCB

教你学用Proteus作PCB 傅以盘莫振栋 时下,利用Keil C51和Proteus来进行单片机系统开发已成为众多单片机爱好者的首选。Keil C51和Proteus的结合可以进行单片机系统的软件设计和硬件的仿真调试,可大大缩短单片机系统的开发周期,也可降低开发调试成本。当仿真调试成功后,我们便可利用Proteus 6 Professional 中的ARES 6 Professional进行PCB设计与制作。有很多文章或书籍都谈及如何用Keil C51 + Proteus进行单片机应用系统的设计与仿真开发,但是,用Proteus来制作印制电路板(PCB)却少有提及。本文结合一个简单的广告灯的设计电路(如图1所示)为例,谈谈如何用Proteus 制作PCB。 用Proteus 制作PCB通常包括以下 一些步骤:(1)绘制电路原理图并仿真调 试;(2)加载网络表及元件封装;(3)规 划电路板并设置相关参数;(4)元件布局 及调整;(5)布线并调整;(6)输出及制 作PCB。 一、绘制电路原理图并仿真调试 在Proteus 6 Professional 中用 ISIS 6 Professional 设计好电路原理 图,并结合Keil C51进行软件编程和硬件的仿真调试,调试成功后,便可开始制作PCB。在此不再赘 图1 广告灯的设计电路述调试过程。 二、加载网络表及元件封装 (一)加载网络表 在ISIS 6 Professional 界面中单击 Design Toolbar中的图标或通过 Tools菜单的Netlist to ARES 命令打开 ARES 6 Professional 窗口如图2所示。 可以看到,在图2中左下角的元器件选择 窗口中列出了从原理图加载过来的所有元 器件。若原理图中的某些器件没有自动加 载封装或者封装库中没有合适的封装,那 么在加载网络表时就会弹出一个要求选择 封装的对话框,如图3所示。这时就需要 根据具体的元件及其封装进行手动选择并 加载。图2 ARES 6 Professional 窗口

C语言实用程序设计100例流程图

C语言实用程序100例 第一篇基础与提高 实例1利用库函数编写基本显示程序 实例2变量属性 实例3运算符与类型 实例4关于程序结构 实例5显示函数曲线图 实例6二分法选代的应用 实例7多变的立方体 实例8一维整型数组应用(1) 实例9一维整型数组应用(2) 实例10一维整型数组应用(3) 实例11一维整型数组应用(4) 实例12二维数组应用(1)——显示杨辉三角实例13二维数组应用(2)——魔方阵 实例14字符数组应用(1)——逻辑判断 实例15字符数组应用(2)——数据模拟 实例16二维数组应用——字符比较 实例17利用指针进行数据处理 实例18指针与字符串 实例19利用指针处理二维数组 实例20一级指针 实例21利用指针传递参数值 实例22结构体的应用 实例23链表的应用(1)

实例24链表的应用(2) 实例25链表的应用(3) 实例26共用体的应用 实例27枚举类型应用 实例28位运算 买例29义件加密 实例30文件的按记录随机读写 第二篇图形与多媒体 实例31改变文字背景色 实例32及本颜色设置 实例33制作表格 实例34制作多样的椭圆 实例35美丽的透视图形 实例36错位窗口 实例37能移动的矩形 实例38多变的填充矩形 实例39黄黑相间的矩形与圆 实例40六叶图案 实例41特殊图案 实例42国际象棋棋盘 实例43制作楼梯 实例44使用线类型函数设置多个汉字实例45彩色群点 实例46饼图 买例47产品折线图 实例48直方图 实例49变大变色的拒形与国

实例50多变的填充多边形 实例51流星球 实例52小球动态碰撞 买倒53多,曲线 实例54多变的圆与环 实例55优美的球体 实例56运动的小车 实例57统计动画消失次数 实例58运行的时钟 实例59直升飞机 实例60演绎“生命游戏” 实例61猜猜看 买例62艺术清屏 买倒63制作火焰 实例64动态绘制256条不同颜色的直线实例65红绿蓝三原色渐变 第三篇综合小程序 实例66两个矩阵相乘 实例67艺术钟 实例68家庭财务管理小程序 实例69用系统时间实现随机数 实例70闪动的多彩圆 实例71检查系统有无鼠标 实例72圆形光盘与矩形 实例73动态渐变图案 实例74往返两地间的小车 实例75飘扬的红旗

电路原理图设计规范

xxxx交通技术有限公司——原理图设计规范 目录 一、概述...........................................错误!未定义书签。 二、原理图设计.....................................错误!未定义书签。 1、器件选型:..................................错误!未定义书签。(1)、功能适合性:.........................错误!未定义书签。(2)、开发延续性:.........................错误!未定义书签。(3)、焊接可靠性:.........................错误!未定义书签。(4)、布线方便性:.........................错误!未定义书签。(5)、器件通用性:.........................错误!未定义书签。(6)、采购便捷性:.........................错误!未定义书签。(7)、性价比的考虑.........................错误!未定义书签。 2、原理图封装设计:............................错误!未定义书签。(1)、管脚指定:...........................错误!未定义书签。(2)、管脚命名:...........................错误!未定义书签。(3)、封装设计:...........................错误!未定义书签。(4)、PCB封装:............................错误!未定义书签。(5)、器件属性:...........................错误!未定义书签。 3、原理设计:.................................错误!未定义书签。(1)、功能模块的划分:.....................错误!未定义书签。

基于5单片机的数字频率计设计

基于5单片机的数字频率计设计

毕业论文基于51单片机的数字频率计 基于51单片机的数字频率计 目录 第1节引言 (2) 1.1数字频率计概 述…………………………………………… (2) 1.2频率测量仪的设计思路与频率的计 算…………………………………………… (2) 1.3基本设计原 理…………………………………………… (3) 第2节数字频率计(低频)的硬件结构设计 (4) 2.1系统硬件的构成 (4) 2.2系统工作原理图 (4) 2.3AT89C51单片机及其引脚说明…………………………………………………

(5) 2.4信号调理及放大整形模块 (7) 2.5时基信号产生电路 (7) 2.6显示模块 (8) 第3节软件设计 (12) 3.1 定时计数 (12) 3.2 量程转换 (12) 3.3 BCD转换 (12) 3.4 LCD显示…………………………………………………

(12) 第4节结束语 (13) 参考文献 (14) 附录汇编源程序代码 (15) 基于51单片机的数字频率计 第1节引言 本应用系统设计的目的是通过在“单片机原理及应用”课堂上学习的知识,以及查阅资料,培养一种自学的能力。并且引导一种创新的思维,把学到的知识应用到日常生活当中。在设计的过程中,不断的学习,思考和同学间的相互讨论,运用科学的分析问题的方法解决遇到的困难,掌握单片机系统一般的开发流程,学会对常见问题的处理方法,积累设计系统的经验,充分发挥教学与实践的结合。全能提高个人系统开发的综合能力,开拓了思维,为今后能在相应工作岗位上的工作打下了坚实的基础。 1.1数字频率计概述 数字频率计是计算机、通讯设备、音频视频等科研生产领域不可缺少的测量仪器。它是一种用十进制数字显示被测信号频率的数字测量仪器。它的基本功能是测量正弦信号,方波信号及其他各种单位时间内变化的物理量。在进行模拟、数字电路的设计、安装、调试过程中,由于其使用十进制数显示,测量迅速,精确度高,显示直观,经常要用到频率计。 本数字频率计将采用定时、计数的方法测量频率,采用一个1602A LCD显示器动态显示6位数。测量范围从1Hz—10kHz的正弦波、方波、三角波,时基

Proteus中自己制作元件说明

Proteus 7制作元件 在制作原理图器件前应先将器件所对应的PCB封装制作好,以便进行封装的指定。 打开Proteus 7.4 ISIS 原理图绘制软件。单击左边工具栏中的2D Graphics Box Mode(2D图形框体模式) 图标,在旁边的列表中选择 “COMPONENT”画一个框。 然后单击左边工具栏中的Device Pins Mode(器件引脚模式)图标,在旁边的列表中选择“DEFAULT”画管脚。其中,DEFAULT表示普通引脚;INVERT表示低电平有效的引脚;POSCLK表示脉冲下降沿有效的时钟输入引脚;NEGCLK表示脉冲上升沿有效的时钟输入引脚;SHORT表示端普通引脚;BUS表示普通总线引脚。在选择元件引脚时应根据元件引脚实际功能进行选择,注意:在摆放引脚时应将有叉的一端放在外侧,因为,那是用于连接导线用的。当引脚放置完后,右键单击引脚,在弹出的下拉列表中选择“Edit Properties”(即编辑属性),在弹出的对话框中输入引脚名称,引脚编号,引脚电气类型等,若不想显示引脚名称则可将“显示名称”后的对勾去掉,然后点击Next或OK退出。将所有引脚按上述方法进行设置。如下图所示:

当所有引脚设置完成后,然后单击左边工具栏中的(选择模式)将所绘制的图形框选起来(变成红色),点击菜单栏中的Library(库),在下拉列表中选择Make Device…(制作元件),在弹出的对话框中的Device Name (器件名称)中输入器件名,例如CSI24WC02;在Reference Prefix(参考前缀)中输入引用前缀(放置器件时的默认名称),例如U ,其他保持不变,点击Next,如下图:

硬件电路板设计规范标准

0目录 0目录 (2) 1概述 (4) 1.1适用范围 (4) 1.2参考标准或资料 (4) 1.3目的 (5) 2PCB设计任务的受理和计划 (5) 2.1PCB设计任务的受理 (5) 2.2理解设计要求并制定设计计划 (6) 3规范内容 (6) 3.1基本术语定义 (6) 3.2PCB板材要求: (7) 3.3元件库制作要求 (8) 3.3.1原理图元件库管理规范: (8) 3.3.2PCB封装库管理规范 (9) 3.4原理图绘制规范 (11) 3.5PCB设计前的准备 (12) 3.5.1创建网络表 (12) 3.5.2创建PCB板 (13) 3.6布局规范 (13) 3.6.1布局操作的基本原则 (13) 3.6.2热设计要求 (14) 3.6.3基本布局具体要求 (16) 3.7布线要求 (24) 3.7.1布线基本要求 (27) 3.7.2安规要求 (30)

3.8丝印要求 (32) 3.9可测试性要求 (33) 3.10PCB成板要求 (34) 3.10.1成板尺寸、外形要求 (34) 3.10.2固定孔、安装孔、过孔要求 (36) 4PCB存档文件 (37)

1概述 1.1 适用范围 本《规范》适用于设计的所有印制电路板(简称PCB); 规范之前的相关标准、规范的内容如与本规范的规定相抵触的,以本规范为准。 1.2 参考标准或资料 下列标准包含的条文,通过在本标准中引用而构成本标准的条文。在标准出版时,所示版本均为有效。所有标准都会被修订,使用本标准的各方应探讨,使用下列标准最新版本的可能性: GB/4588.3—88 《印制电路板设计和使用》 Q/DKBA-Y001-1999《印制电路板CAD工艺设计规范》 《PCB工艺设计规范》 IEC60194 <<印制板设计、制造与组装术语与定义>> (Printed Circuit Board design manufacture and assembly-terms and definitions) IPC—A—600F <<印制板的验收条件>> (Acceptably of printed board) IEC60950 安规标准 GB/T 4677.16-1988 印制板一般检验方法

基于AT89C52单片机的简易频率计设计说明书

单片机系统开发与应用工程实习报告 选题名称:基于AT89C52单片机的简易频率计设计 系(院): 专业:计) 班级: 姓名:学号: 指导教师: 学年学期: 2009 ~ 2010 学年第 2 学期 2010 年 5 月 30 日

摘要: 在电子技术中,频率是一个经常用到的参数之一,并且与许多电参量的测量方案、测量结果都有十分密切的关系,因此频率的测量就显得更为重要。本项目主要阐述了以AT89C52单片机作为核心器件,采用模块化布局,设计一个简易数字频率计,以达到测量频率并进行显示的目的。本项目利用单片机的内部定时器溢出产生中断来实现定时,把单片机内部的定时/计数器0作为定时器,实现2.5ms定时。外部待测脉冲从单片机的TI(第15引脚)输入,以定时/计数器1作为计数器,利用中断方式来达到间接测量的目的。最后采用四位数码管显示。本设计采用C语言进行软件编程,用keil软件进行调试。最后把调试成功后的程序固化到AT89C52单片机中,接到预先焊好的电路板上,接上待测脉冲,通电运行,数码管成功显示待测脉冲频率。 关键词:单片机;频率计;AT89C52

目录 1 项目综述 (1) 1.1 设计要求 (1) 1.2 系统设计 (1) 2硬件设计 (2) 2.1 电路原理图 (2) 2.2 元件清单 (2) 2.3 主要芯片引脚说明 (3) 3 软件设计 (4) 3.1 程序流程图 (4) 3.2 软件设计简述 (5) 3.3 程序清单 (6) 4 系统仿真及调试 (10) 4.1 硬件调试 (10) 4.2 软件调试 (10) 5 结果分析 (10) 总结 (11) 参考文献 (12)

c语言程序设计》课程设计报告

《C语言程序设计》课程设计报告 (2013—2014学年第3学期) 题目:C语言课程设计 专业:软件工程 班级:软件工程技术2班 姓名学号:1 林燕萍 指导教师:吴芸 成绩: 计算机科学与技术系 2014年6月23日

目录 一、课程设计的目的与要求 (1) 二、方案实现与调试 (3) 掷骰子游戏 (5) 射击游戏 (7) 计算存款本息之和 (8) 肇事逃逸 (10) 礼炮 (12) 汽车加油 (14) 大优惠 (16) 金币 (19) 三、课程设计分析与总结 (23) 附录程序清单 (25) 一、课程设计的目的与要求(含设计指标) C语言是一种编程灵活,特色鲜明的程序设计语言。C语言除了基知识,如概念,方法和语法规则之外更重要的是进行实训,以提高学习者的动手和编程能力,从应试课程转变为实践工具。这是学习语言的最终目的。结合多年来的教学经验,根据学生的学习情况,为配合教学过程,使“项目教学法”能在本质上促使学生有更大进步,特编写了该《C语言程序设计任务书》,以在实训过程中给学生提供帮助。达到如下目的: 1.在课程结束之前,让学生进一步了解C程序设计语言的编程功能;

2.让学生扎实掌握C程序设计语言的相关知识; 3.通过一些有实际意义的程序设计,使学生体会到学以致用,并能将程序设计的知识与专业知识有效地结合,更全面系统地了解行业知识。 编写程序要求遵循如下基本要求: ①模块化程序设计 ②锯齿型书写格式 ③必须上机调试通过 二、方案实现与调试 掷骰子游戏 2.1.1题目内容的描述 1) 两人轮流掷骰子,每次掷两个,每人最多掷10次。 2) 将每人每次的分值累加计分 3) 当两个骰子点数都为6时,计8分;当两个点数相等且不为两个6时,计7分;当两个点数不一样时,计其中点数较小的骰子的点数。 4) 结束条件:当双方都掷10次或经过5次后一方累计分数多出另一方的30%及以上。最后显示双方分数并判定优胜者。 2.1.2输入数据类型、格式和内容限制和输出数据的说明 数据类型:整型;内容限制:随机数的产生;输入数据结果:胜利的一方 2.1.3主要模块的算法描述 本算法的思路过程:首先要随机产生随机数,然后进行算法输出数值,执行条件判断输入结果,最后比较结果,判断胜利的一方。

原理图和PCB的设计规范

一.PCB设计规范 1、元器件封装设计 元件封装的选用应与元件实物外形轮廓,引脚间距,通孔直径等相符合。元件外框丝印统一标准。 插装元件管脚与通孔公差相配合(通孔直径大于元件管脚直径8-20mil),考虑公差可适当增加。建立元件封装时应将孔径单位换算为英制(mil),并使孔径满足序列化要求。插装元件的孔径形成序列化,40mil以上按5mil递加,即40mil,45mil,50mil……,40mil以下按4mil递减,即36mil,32mil,28mil……。 2、PCB外形要求 1)PCB板边角需设计成(R=1.0-2.0MM)的圆角。 2)金手指的设计要求,除了插入边按要求设计成倒角以外,插板两侧边也应设计成(1-1.5)X45度的倒角或(R1-1.5)的圆角,以利于插入。 1.布局 布局是PCB设计中很关键的环节,布局的好坏会直接影响到产品的布通率,性能的好坏,设计的时间以及产品的外观。在布局阶段,要求项目组相关人员要紧密配合,仔细斟酌,积极沟通协调,找到最佳方案。 器件转入PCB后一般都集中在原点处,为布局方便,按合适的间距先把 所有的元器件散开。 2)综合考虑PCB的性能和加工效率选择合适的贴装工艺。贴装工艺的优先顺序为: 元件面单面贴装→元件面贴→插混装(元件面插装,焊接面贴装一次波峰成形); 元件面双面贴装→元件面插贴混装→焊接面贴装。 1.布局应遵循的基本原则 1.遵照“先固后移,先大后小,先难后易”的布局原则,即有固定位 置,重要的单元电路,核心元器件应当优先布局。

2.布局中应该参考原理图,根据重要(关键)信号流向安排主要元器 件的布局。 3.布局应尽量满足以下要求:总的连线尽可能短,关键信号线最短, 过孔尽可能少;高电压,大电流信号与低电压,小电流弱信号完全分开; 模拟与数字信号分开。 4.在满足电器性能的前提下按照均匀分布,重心平衡,美观整齐的标 准优化布局。 5.如有特殊布局要求,应和相关部门沟通后确定。 2.布局应满足的生产工艺和装配要求 为满足生产工艺要求,提高生产效率和产品的可测试性,保持良好的可维护性,在布局时应尽量满足以下要求: 元器件安全间距(如果器件的焊盘超出器件外框,则间距指的是焊盘之 间的间距)。 1.小的分立器件之间的间距一般为0.5mm,最小为0.3mm,相邻器件 的高度相差较大时,应尽可能加大间距到0.5mm以上。如和IC (BGA),连接器,接插件,钽电容之间等。 2.IC、连接器、接插件和周围器件的间距最好保持在1.0mm以上, 最少为0.5mm,并注意限高区和禁止摆放区的器件布局。 3.安装孔的禁布区内无元器件。如下表所示 4.高压部分,金属壳体器件和金属件的布局应在空间上保证与其它 器件的距离满足安规要求。

基于单片机的频率计的设计

摘要 本方案主要以单片机为核心,主要分为时基电路,逻辑控制电路,放大整形电路,闸门电路,计数电路,锁存电路,译码显示电路七大部分,设计以单片机为核心,被测信号先进入信号放大电路进行放大,再被送到波形整形电路整形,把被测的正弦波或者三角波整形为方波。利用单片机的计数器和定时器的功能对被测信号进行计数。编写相应的程序可以使单片机自动调节测量的量程,并把测出的频率数据送到显示电路显示。 本设计以89C51单片机为核心,应用单片机的算术运算和控制功能并采用LED数码显示管将所测频率显示出来。系统简单可靠、操作简易,能基本满足一般情况下的需要。既保证了系统的测频精度,又使系统具有较好的实时性。本频率计设计简洁,便于携带,扩展能力强,适用范围广。 关键词:单片机,运算,频率计,LED数码管

Abstract The program mainly microcontroller as the core, are divided into time-base circuit, the logic control circuit, amplifier shaping circuit, the gate circuit, the counting circuit, latch circuit, decoding circuit most of the seven shows, design a microcontroller as the core, the measured signal the first amplifier to amplify the incoming signal, and then was sent to the waveform shaping circuit surgery, the measured sine wave or triangle wave shaping as a square wave. Counter and timer microchip features of the signal count. Write the corresponding program can automatically adjust the measurement range of SCM, and the frequency of the measured data to the display circuit displays. The design of the 89C51 microcontroller core, microcontroller applications and control functions and arithmetic operations with LED digital display tube to the measured frequency is displayed. System is simple, reliable, easy to operate and can basically meet the general needs. Both to ensure the accuracy of the system frequency measurement, but also the system has good real-time. The frequency meter design is simple and easy to carry, expansion capability, wide application. Key words:microcontroller, operation, frequency meter, LED digital tube

相关文档
最新文档