当前位置:文档之家› 单片机完整实验报告设计

单片机完整实验报告设计

单片机完整实验报告设计
单片机完整实验报告设计

实验报告

实验名称:矩阵键盘控制点阵的显示

专业班级:控制科学与工程学号:s2******* 学生姓名:李佛垚

指导教师:

2013年1月18日

目录

一、实验目的 (1)

二、实验内容 (1)

(一)扫描矩阵键盘读出键值。 (1)

(二)数码管显示键号。 (1)

(三)点阵显示不同按键需要输出的信息。(根据需要可以修改)。 (1)

三、实验设备及配套软件 (1)

四、实验原理 (2)

五、实验电路及功能说明 (2)

(一)STC89C52RC单片机主要性能 (2)

(二)矩阵键盘 (4)

1.连接线路图 (4)

2.矩阵键盘说明: (4)

(三)点阵 (5)

1.连接线路图 (5)

2.8x8点阵LED等效电路连接图: (5)

3.显示原理说明: (6)

(四)数码管 (6)

1.数码管连接线路图 (6)

2.动态显示原理 (6)

(五)XT100最小系统原理图 (7)

(六)实验结果分析 (8)

1.实物图 (8)

2.结果分析 (8)

六、软件设计流程图 (8)

(一)程序说明 (8)

(二)流程图 (9)

1.主程序流程图 (9)

2.键盘扫描程序流程图 (10)

(三)程序 (11)

七、实验中的问题与心得 (16)

一、实验目的

一般任何一个适用的系统都少不了键盘和显示这两个部分,键盘为使用者设定功能提供操作平台;显示反映出使用者设定功能的状态。在传统的设计中,一般都是把键盘模块和显示模块分开设计,这样结构清晰,软件设计简单,当I/O口不够用时,通常通过扩展I/O的方法来解决问题。以上做法有优点但同时也暴露了一个问题,它们都需要通过增加芯片来扩展I/O口。当硬件成本要求苛刻的情况下,这种设计理念就很难适应其要求,而本设计采用显示模块和键盘模块共用端口的方法,分时显示和按键扫描,很好的解决了这一矛盾。

二、实验内容

利用XT100开发板中的STC89C52单片机的P0口和P2口的分时复用以及单片机执行速度快和人的视觉反应有限的原理,通过对同一I/O端口分时作为键盘电路的输入端口和数码管以及点阵显示电路的输出及控制端口来实现I/O端口的公用。由于XT100开发板已经固化,P0口作为数码管的数据输出口同时还是点阵的数据输出口,P2口作为矩阵键盘和点阵的控制端口,在不用扩展I/O口和增加成本的基础上解决I/O不够用的问题。

实验具体内容:

(一)扫描矩阵键盘读出键值。

(二)数码管显示键号。

(三)点阵显示不同按键需要输出的信息。(根据需要可以修改)。

三、实验设备及配套软件

XT100学习开发板,Keil uVision软件,Microsoft Visual C++,STC_ISP_V483

四、实验原理

我们知道微控制器的运行速度快,人的视觉灵敏度有限,同时显示器件(主要是发光二极管,数码管)具有余光效应,所以我们可以充分利用以上特点,合理分配显示和键盘扫描的时间,就可以实现显示模块和键盘模块共用端口以及不同显示共用端口的功能。在本实验中利用模拟的方式,通过不同的按键来显示不同的信息,达到实验的目的。

硬件原理框图如图1所示。

五、实验电路及功能说明

(一)STC89C52RC单片机主要性能

1.增强型8051单片机,6时钟/机器周期和12时钟/机器周期可以任意

选择,指令代码完全兼容传统8051.

2.工作电压:5.5V~

3.3V(5V单片机)/3.8V~2.0V(3V单片机)

3.工作频率范围:0~40MHz,相当于普通8051的0~80MHz,实际工作

频率可达48MHz

4.用户应用程序空间为8K字节

5.片上集成512字节RAM

6.通用I/O口(32个),复位后为:P1/P2/P3/P4是准双向口/弱上拉,

P0口是漏极开路输出,作为总线扩展用时,不用加上拉电阻,作为I/O口用时,需加上拉电阻。

7.ISP(在系统可编程)/IAP(在应用可编程),无需专用编程器,无

需专用仿真器,可通过串口(RxD/P3.0,TxD/P3.1)直接下载用户程序,数秒即可完成一片

8.具有EEPROM功能

9.具有看门狗功能

10.共3个16位定时器/计数器。即定时器T0、T1、T2

11.外部中断4路,下降沿中断或低电平触发电路,Power Down模式可

由外部中断低电平触发中断方式唤醒

12.通用异步串行口(UART),还可用定时器软件实现多个UART

13.工作温度范围:-40~+85℃(工业级)/0~75℃(商业级)

14.PDIP封装

15.STC89C52RC引脚图,如图2所示。

图2 STC89C552RC引脚图

(二)矩阵键盘

1.连接线路图如图3所示。

图3 矩阵键盘图

2.矩阵键盘说明:

键盘是人机对话不可缺少的组件之一,在按键比较少时,我们可以一个单片机I/O口接一个按键,但当按键需要很多,I/O资源又比较紧张时,使用矩阵式键盘无疑是最好的选择。其原理是初使化时我们先让P2口的低四位输出低电平,高四位输出高电平,即让P2口输出0xF0。扫描键盘的时候,我们读P2口,看P2是否还为0xF0,如果仍为0xF0,则表示没有按键按下;如果不0xF0,读P2口,说明有按键按下了,我们就可以读键码来识别到底是哪一个键按下了,识别的过程是这样的,初使化时我们让P2口的低四位输出低电平,高四位输出高电平,确认了真的有按键按下时,我们首先读P2口的高四位,然后P2口输出 0x0F,即让P2口的低四位输出高电平,高四位输出低电平,然后读P2口的低四位,最后我们把高四位读到的值与低四位读到的值做或运算就得到了该按键的键值。就可以知道是哪个键按下了。

(三)点阵

1.连接线路图如图4所示。

图4点阵连接图2.8x8点阵LED等效电路连接图,如图5所示。

图5 点阵等效电路图

3.显示原理说明:

点阵LED扫描法介绍

点阵LED一般采用扫描式显示,实际运用分为三种方式:

(1)点扫描;

(2)行扫描;

(3)列扫描。

若使用第一种方式,其扫描频率必须大于16×64=1024Hz,周期小于1ms即可。若使用第二和第三种方式,则频率必须大于16×8=128Hz,周期小于7.8ms即可符合视觉暂留要求。此外一次驱动一列或一行(8颗LED)时需外加驱动电路提高电流,否则LED亮度会不足。在本实验的点阵是8x8共阳极,所采用的是列扫描方法。所有行的数据由P0口输出,每一列由P2口动态扫描,并且有1K的排阻所接的驱动电路。

(四)数码管

1.数码管连接线路图,如图6所示。

图6数码管连接线路图

2.动态显示原理

数码管动态显示介面是单片机中应用最为广泛的一种显示方式之一,动态驱动是将所有数码管的8个显示笔划"a,b,c,d,e,f,g,dp "的同名端连

在一起,另外为每个数码管的公共极COM增加位选通控制电路,位选通由各自独立的I/O线控制,当单片机输出字形码时,所有数码管都接收到相同的字形码,但究竟是那个数码管会显示出字形,取决于单片机对位元选通COM端电路的控制,所以我们只要将需要显示的数码管的选通控制打开,该位就显示出字形,没有选通的数码管就不会亮。

透过分时轮流控制各个LED数码管的COM端,就使各个数码管轮流受控显示,这就是动态驱动。在轮流显示过程中,每位数码管的点亮时间为1~2ms,由于人的视觉暂留现象及发光二极体的余辉效应,尽管实际上各位数码管并非同时点亮,但只要扫描的速度足够快,给人的印象就是一组稳定的显示资料,不会有闪烁感,动态显示的效果和静态显示是一样的,能够节省大量的I/O口,而且功耗更低。

(五)XT100最小系统原理图,如图7所示。

图7 最小系统原理图

(六)实验结果分析

1.实物图

图8 实物图

2.结果分析

矩阵键盘的扫描过程中没有延时确认按键,因为具体实物中按键的动作是比较慢的,不会出现有“假按”的现象,另一方面是由于整个程序是顺序执行的,要求整个程序要快速的顺序执行,如果太多延时会影响程序的实时性。在点阵的显示中,会出现“阴影”这是由于扫描时需等待P0口完成数据的输出,经过适当延时可以得到很好的解决。

六、软件设计流程图

(一)程序说明

在键盘扫描的过程中需要用到P2口,因此为了在点阵显示中不影响到点阵,必须在键盘扫描完后的时间内初始化,同理,在数码管显示中用到了P0口作为数据输出口,因此在程序中也要对P0口初始化,这样在点阵的显示中需要用到P0与P2口才不受影响,同时在点阵和数码管的动态扫描过程中要合理划分好时间,以免影响到各自显示亮度。

(二)流程图

1.主程序流程图,如图9所示。

2.键盘扫描程序流程图,如图10所示。

(三)程序

#include //包含头文件

unsigned char code face1[8]={0x0,0x80,0x80,0xFF,0x88,0x88,0x80,0x0}; unsigned char code face2[8]={0x0,0x2,0x2,0xFE,0xA,0x12,0x22,0x0}; unsigned char code face3[8]={0x40,0x24,0x54,0x5C,0x77,0x54,0x44,0x0}; unsigned char code face4[8]={0x40,0x24,0x14,0x7C,0x57,0x74,0x4,0x0}; unsigned char code face5[8]={0x0,0x8,0xC,0xFA,0x81,0xFA,0xC,0x8}; unsigned char code face6[8]={0x10,0x30,0x5F,0x81,0x5F,0x30,0x10,0x0}; unsigned char code face7[8]={0x8,0x14,0x22,0x77,0x14,0x14,0xF4,0xFC}; unsigned char code face8[8]={0xFC,0xF4,0x14,0x14,0x77,0x22,0x14,0x8}; unsigned char code face9[8]={0x9,0xE,0xFE,0x89,0xFA,0x2C,0x48,0x80}; unsigned char code face10[8]={0x12,0x34,0x5F,0x91,0x7F,0x70,0x90,0x0}; unsigned char code face11[8]={0x88,0x54,0x22,0x77,0x1C,0xF4,0xFE,0x1}; unsigned char code face12[8]={0x1,0xFE,0xF4,0x1C,0x77,0x22,0x54,0x88}; unsigned char code face13[8]={0x42,0xE7,0x42,0x18,0x18,0x42,0xE7,0x42}; unsigned char code face14[8]={0x24,0x24,0xE7,0x0,0x0,0xE7,0x24,0x24}; unsigned char code face15[8]={0x50,0x50,0x48,0x44,0x42,0x59,0x54,0x52}; unsigned char code face16[8]={0x1,0x2,0xFF,0xF9,0x19,0x29,0x46,0x80}; unsigned char code table[16]= {0xee,0xde,0xbe,0x7e,

0xed,0xdd,0xbd,0x7d,

0xeb,0xdb,0xbb,0x7b,

0xe7,0xd7,0xb7,0x77}; //键值unsigned char code a[16]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,

0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e};

//共阳极数码管的段码0 1 2 3 4 5 6 7 8 9 A B C D E F unsigned char b3,b4;

unsigned char Key;

unsigned char KeyH; //检测到键值高4位unsigned char KeyL; //检测到键值低4位

sbit LED_0=P1^0; //以下定义P1各口为控制口sbit LED_1=P1^1;

sbit LED_2=P1^2;

sbit LED_3=P1^3;

#define KL_0 P2&=0xf0 //P2低4位为0指令#define KL_F P2|=0x0f //P2低4位为1指令#define KH_0 P2&=0x0f //P2高4位为0指令#define KH_F P2|=0xf0 //P2高4位为1指令void delay1(unsigned int x) //延时

{

unsigned int i; //x为延时长度,可以设置for(i=0;i

{}

}

void delay() //延时函数

{

unsigned int c;

c=300;

while(c--){}

}

void SJ(void)

{

unsigned char t;

P2=0xff; //p2口初始化

KL_0; //P2低4位设置为低电平t=P2&0xf0; //取P2的高4位

if(t!=0xf0) //如果高4位不全为1(有键按下){

KeyH=t&0xf0; //把高4位的键码保存到KeyH

得到的是第几列有键按下P2=0xff; //恢复P2

P2&=0x0f; //设置P2高4位为0

t=P2&0x0f; //读P2低4位状态

if(t!=0x0f) //如果低4位不全为1(有键按下)

{

KeyL=t; //把低4位的键码保存

到KeyL 得到的是第几行有键按下Key=KeyH|KeyL; //组合KeyH和

KeyL成为键值Key }

}

P2=0Xff; //防止影响到点阵

的显示因为扫键的时候用了P2口第四位}

void JH(unsigned char H) //计算键值

{

unsigned char i;

unsigned char d3, d4; //键值翻译为可显

示的数码管数字序号unsigned char res=0; //在键值表中查到

的序号for(i=0;i<16;i++) //在表中查找Key所在的序号

位置,并返回位置{

if(table[i]==H)

res=i;

}

d3=res/10; //分离序号方便数码管显示

d4=res%10;

b3=d3;

b4=d4;

}

void display(unsigned char d3,unsigned char d4)//显示键号给数码管

{

P0=a[5]; //选中第二位,发送第二位段码LED_1=0;

delay1(50);

LED_1=1;

P0=a[d3]; //选中第三位,发送第三位段码LED_2=0;

delay1(50);

LED_2=1;

P0=a[d4]; //选中第四位,发送第四位段码LED_3=0;

delay1(50);

LED_3=1;

P0=0x00; //以免影响到点阵,因为P0口有数据输出}

void DZ(unsigned char AJ) //去除影响点阵选择性输出{

unsigned char i;

for(i=0;i<8;i++) //点阵8列动态扫描法显示,每次扫描一列并发送

数据码{

if(AJ==table[0])

P0=face1[i];

if(AJ==table[1])

P0=face2[i]; if(AJ==table[2])

P0=face3[i]; if(AJ==table[3])

P0=face4[i]; if(AJ==table[4])

P0=face5[i]; if(AJ==table[5])

P0=face6[i]; if(AJ==table[6])

P0=face7[i]; if(AJ==table[7])

P0=face8[i]; if(AJ==table[8])

P0=face9[i]; if(AJ==table[9])

P0=face10[i]; if(AJ==table[10])

P0=face11[i]; if(AJ==table[11])

P0=face12[i]; if(AJ==table[12])

P0=face13[i]; if(AJ==table[13])

P0=face14[i]; if(AJ==table[14])

P0=face15[i]; if(AJ==table[15])

P0=face16[i];

P2=~(1<

delay(); //必要的等待不然扫描太快有阴影}

}

void main(void) //主函数

{

//t为判断键码的临时变量

while(1)

{

SJ();

JH(Key);

display(b3,b4); //给数码管显示,第二位为5,5和S比较

类似,这里理解为S;

DZ(Key);

}

}

七、实验中的问题与心得

这次实验主要还是在软件编程中出现了一些问题,尤其是要想找出一个解决I/O口不够用又不想扩展I/O口,完全依靠软件解决,就得不断地调试和修改程序。在调试中不断地下载到实验板中观察找出问题再修改,再下载,需要非常多的耐心,尤其是在时间分配上尤其显得重要。

下一步的想法是在允许的情况下利用XT100开发板在不扩展I/O口的情况下,如何把矩阵键盘实现控制蜂鸣器。

通过本次学习实验,获得了实验室同学的帮助,也从他们身上学到了很多知识,在老师同学的指导下,我查阅了许多相关资料,综合运用了大学中所学相关知识,通过自学、请教老师、请教同学、耐心思考、上网查询等方式,终于解决了一个又一个难题,完成本次设计,此过程中,我受到了很大的启发。

电子设计实验报告

电子技术课程设计报告

目录 1. 电子琴 (2) (1.1 )设计要求 (2) (1.2 )设计的作用. 目的 (2) (1.3 )设计的具体实现 (3) (1.4)心得体会、存在问题和进一步的改进意见等 (7) (1.5)附录 (8) (1.6 )参考文献 (9) (1.7 )附图 (9) 2. 温度控制电路 (10) 2.1 )设计要求 (10) (2.2 )设计的作用. 目的 (10) (2.3 )设计的具体实现 (10) (2.4)心得体会、存在问题和进一步的改进意见等12 (2.5)附录 (12) (2.6 )参考文献 (13) 3. ...................................................... 信号发生器13 (3.1 )设计要求 (13) (3.2 )设计的作用. 目的 (13) (3.3 )设计的具体实现 (14) (3.4)心得体会、存在问题和进一步的改进意见等 (17) (3.5)附录 (17) (3.6 )参考文献 (17) 4. ...................................................... 音频放大器18 (4.1 )设计要求 (18) (4.2 )设计的作用. 目的 (18) (4.3 )设计的具体实现 (18) 4.4)心得体会、存在问题和进一步的改进意见等 (21) (4.5) .......................................... 附录21

(4.6 )参考文献 (21) 简易电子琴设计报告 一.设计要求本设计是基于学校实验室的环境,根据实验室提供的实验条件来完成设计任务,设计一个简易电子琴。 (1).按下不同琴键即改变RC 值,能发出C 调的八个基本音阶,采用运算放大器构成振荡电路,用集成功放电路输出。 (2).选择电路方案,完成对确定方案电路的设计。计算电路元件参数并记录对应不同音阶时的电路参数值、元件选择、并画出总体电路原理图,阐述基本原理。(3).连接安装调试电路。 (4).写出设计总结报告。 二. 设计的作用、目的 1. 学会用仿真软件对设计的原理图进行仿真。培养创新能力和创新思维,锻炼学生 自学软件的能力,通过查阅手册和文献资料,培养独立分析问题和解决问题的能 力。 2. 培养学生正确的设计思想,理论联系实际的工作作风,严肃认真、实事求是的科 学态度和勇于探索的创新精神。 3. 通过课程设计,使学生在理论计算、结构设计、工程绘图、查阅设计资料、标准 与规范的运用和计算机应用方面的能力得到训练和提高。

程序设计实验报告

学生实验报告 院系:测绘学院 专业班级:测绘13级3班 学号:2013305517 学生姓名:王泽 指导教师:郭辉老师 2016年05月20日

安徽理工大学实验报告 实验课程名称:数据结构与软件开发上机实验 开课院系及实验室:测绘学院红楼二楼机房 实验1 编程基本知识练习 实验目的: 通过该实验课内容的练习,学生应掌握VB 编程的基本语法、变量的定义、数组(动态数组)的定义、VB 语言中子过程与函数的定义以及文本文件的读写等知识。 实验内容: 1)变量的定义动态数组的定义与应用; 2)矩阵的加、减、乘运算(定义Sub()子过程或Function()来实现); 3)数据文件的建立、数据的读取与写入。 实验步骤: 1.编辑界面 1.1 打开VB 编程工具,进入编程主界面。

1.2 在窗体上新建“读入数据”和“输出数据”两个按钮。 1.3 双击“窗体”进入代码输入界面,进行代码编辑。 2.用VB 编写的源代码 2.1 矩阵基本运算源码详见附录一。 (1)两矩阵相加 (2)两矩阵相减 (3)矩阵转置 (4)两矩阵相乘 (5)矩阵求逆 2.2 文本文件(本实验中data.txt)的读取源代码 (1)建立文本文件并输入数据 在桌面上新建一“data.txt” ( 文本文件路径为C:\Users\ WH\Desktop\练习\data.txt”)。输入以下内容: 6,7,4,0.005 A,35.418 B,45.712 C,25.270

D,24.678 在桌面上新建一“result.txt” ( 文本文件路径为C:\Users\ WH\Desktop\练习\result.txt”)。(2)从文本文件中读数据 Dim linedata as string, m_GaochaN as integer,m_Pnumber as integer,m_knPnumber as integer,M as Double,k1 as integer 'linedata 为存储文本文件一行信息的字符串变量 Dim a() as String,H() as Double 'a()为存储点名,H()存储高程 Open“C:\Users\ WH\Desktop\练习\data.txt”For Input As #1 Line Input #1, linedata k = Split(linedata, ",") m_GaochaN = Val(k(0)) m_Pnumber = Val(k(1)) m_knPnumber = Val(k(2)) M = CDbl(k(3)) For k1 = 1 To m_knPnumber Line Input #1, linedata k = Split(linedata, ",") a(k1)= k(0) GetstationNumber (a) H(k1) = CDbl(k(1)) Next Close #1 (3)将读入点名存储到点名数组中,且返回该点名所对应编号 Function GetstationNumber(name As String) Dim i As Integer For i = 1 To m_Pnumber If P_Name(i) <> "" Then '将待查点名与已经存入点名数组的点比较 If P_Name(i) = name Then GetstationNumber = i Exit For End If Else '待查点是新的点名,将新点名放到P_Name 数组中 P_Name(i) = name GetstationNumber = i Exit For End If Next i End Function (4)从文本文件中写数据(将从data.txt 读入的数据,写入到result.txt 文件中) Open“C:\Users\ WH\Desktop\ 练习\result.txt” For Output As #1 outstring = outstring + str(m_GaochaN) +","

实验五--时序逻辑电路实验报告

实验五时序逻辑电路(计数器和寄存器)-实验报告 一、实验目的 1.掌握同步计数器设计方法与测试方法。 2.掌握常用中规模集成计数器的逻辑功能和使用方法。 二、实验设备 设备:THHD-2型数字电子计数实验箱、示波器、信号源 器件:74LS163、74LS00、74LS20等。 三、实验原理和实验电路 1.计数器 计数器不仅可用来计数,也可用于分频、定时和数字运算。在实际工程应用中,一般很少使用小规模的触发器组成计数器,而是直接选用中规模集成计数器。 2.(1) 四位二进制(十六进制)计数器74LS161(74LS163) 74LSl61是同步置数、异步清零的4位二进制加法计数器,其功能表见表5.1。 74LSl63是同步置数、同步清零的4位二进制加法计数器。除清零为同步外,其他功能与74LSl61相同。二者的外部引脚图也相同,如图5.1所示。 表5.1 74LSl61(74LS163)的功能表 清零预置使能时钟预置数据输入输出 工作模式R D LD EP ET CP A B C D Q A Q B Q C Q D 0 ××××()××××0 0 0 0 异步清零 1 0 ××D A D B D C D D D A D B D C D D同步置数 1 1 0 ××××××保持数据保持 1 1 ×0 ×××××保持数据保持 1 1 1 1 ××××计数加1计数3.集成计数器的应用——实现任意M进制计数器 一般情况任意M进制计数器的结构分为3类,第一类是由触发器构成的简单计数器。第二类是由集成二进制计数器构成计数器。第三类是由移位寄存器构成的移位寄存型计数器。第一类,可利用时序逻辑电路的设计方法步骤进行设计。第二类,当计数器的模M较小时用一片集成计数器即可以实现,当M较大时,可通过多片计数器级联实现。两种实现方法:反馈置数法和反馈清零法。第三类,是由移位寄存器构成的移位寄存型计数器。 4.实验电路: 十进制计数器 同步清零法 同步置数法

C语言程序设计实验报告(实验大纲+过程)

《C程序设计》实验教学大纲 一、适用范围 大纲适用信息管理专业本科教学使用。 二、课程名称 C程序设计 三、学时数与学分 总学时:90 总学分:4 实验学时:28 实验学分:1 四、教学目的和基本要求 目的:通过C程序设计实验,培养学生对学习程序设计的兴趣,加深对讲授内容的理解,尤其是通过上机来掌握语法规则,使学生全面了解 C 语言的特点,熟练掌握 C 语言程序设计的基本方法和编程技巧。 基本要求:了解和熟悉C语言程序开发的环境;学会上机调试程序,善于发现程序中的错误,并且能很快地排除这些错误,使程序能正确运行,达到实验知识和理论知识的融会贯通。上机实验前,学生必须事先根据题目的内容编好程序,然后在实验时输入程序、调试程序、直至运行结果正确为止,上机结束后,应整理出实验报告。 注:带*的实验项目为选做实验项目 六、教材、讲义及参考书 《C程序设计题解与上机指导》谭浩强主编清华大学出版社 七、实验成绩评定办法 实验成绩=平时实验表现+实验报告。实验成绩占总成绩的20%。 实验成绩以等级形式给出,评定等级分优、良、中、及格、不及格五类。 1、平时考核:上机实验前,学生必须事先根据题目的内容编好程序,然后在实验时输入程序、调试程序、直至运行结果正确为止。在实验中,教师可根据学生编程操作能力、观察和分析及运用知识能力、程序编制正确性以及学生的课堂纪律、实验态度、保持实验室卫生等方面的表现进行综合考核。

2、实验报告:学生实验后应按时完成实验报告。 八、实验教学大纲说明 本大纲共安排28学时的实验,其中带*号实验项目为选做实验项目,实际课时为18学时。实验项目多为设计性实验项目,每个设计性实验项目中都包含数个小的设计性题目,其中带*号的题目为选做题目,有时间和有能力的同学可以选做。 九、实验项目 实验一C程序的运行环境和运行一个C程序的方法 一、实验目的 1.了解Visual C++6.0编译系统的基本操作方法,学会独立使用该系统。 2.了解在该系统上如何编辑、编译、连接和运行一个C程序。 3.通过运行简单的C程序,初步了解C源程序的特点。 二、实验内容 1.用编辑程序,输入教材第一章例1.1程序,并进行编译和运行。应了解所用的系统是用什么命令进行编译和连接运行的。编译和连接后所得到的目标程序的后缀是什么形式的? 2.编写一个C程序,输出以下信息: **************************** very good! **************************** 3.输入并运行教材第一章中例1.3,了解如何在运行时向程序变量输入数据。 实验二数据类型、运算符和表达式 一、实验目的 1.掌握C语言数据类型,熟悉如何定义一个整型、字符型、实型变量,以及对它们赋值的方法,了解以上类型数据输出时所用格式转换符。 2.学会使用C的有关算术运算符,以及包含这些运算符的表达式,特别是自加(++)和自减(--)运算符的使用。 二、实验内容 1.输入并运行以下程序: main( ) { char c1,c2; c1=97;c2=98; pr intf(“%c %c\n”,c1,c2); printf(“%d %d\n”,c1,c2); } 在此基础上 ①将第三行、第四行改为: c1=321;c2=353; 再使之运行,分析其运行结果。 ②将第二行改为: int c1,c2; 再使之运行,分析其运行结果。。 2.输入并运行以下程序:

时序逻辑电路实验报告

时序逻辑电路实验报告 一、实验目的 1. 加深理解时序逻辑电路的工作原理。 2. 掌握时序逻辑电路的设计方法。 3. 掌握时序逻辑电路的功能测试方法。 二、实验环境 1、PC机 2、Multisim软件工具 三、实验任务及要求 1、设计要求: 要求设计一个计数器完成1→3→5→7→9→0→2→4→6→8→1→…的循环计数(设初值为1),并用一个数码管显示计数值(时钟脉冲频率为约1Hz)。 2、实验内容: (1)按要求完成上述电路的功能。 (2)验证其功能是否正确。 四、实验设计说明(简述所用器件的逻辑功能,详细说明电路的设计思路和过程) 首先根据题目要求(即要完成1到9的奇数循环然后再0到8的偶数循环)画出真值表,如下图。画出真值表后,根据真值表画出各次态对应的卡诺图,如下图。然后通过化简卡诺图,得到对应的次态的状态方 程;

然后开始选择想要用于实现的该电路的器件,由于老师上课时所用的例题是用jk触发器完成的,我觉得蛮不错的,也就选择了同款的jk触发器;选好器件之后,根据状态方程列出jk触发器的驱动方程。然后根据驱动方程连接好线路图,为了连接方便,我也在纸上预先画好了连接图,以方便照着连接。接下来的工作就是在multisim上根据画好的草图连接器件了,然后再接上需要的显示电路,即可完成。

五、实验电路(画出完整的逻辑电路图和器件接线图)

六、总结调试过程所遇到的问题及解决方法,实验体会 1、设计过程中遇到过哪些问题?是如何解决的? 在设计过程中最大的问题还是忘记设计的步骤吧,因为老师是提前将实验内容已经例题讲解给我们听的,而我开始实验与上课的时间相隔了不短的时间,导致上课记下来的设计步骤忘得七七八八,不过好在是在腾讯课堂上得网课,有回放,看着回放跟着老师的思路走一遍后,问题也就迎刃而解了,后面的设计也就是将思路步骤走一遍而已,没再遇到什么困难。 2、通过此次时序逻辑电路实验,你对时序逻辑电路的设计是否有更清楚的认识?若没有,请分析原因;若有,请说明在哪些方面更加清楚。 通过这次时序逻辑电路实验,我最大的感触就是实验设计的思路与步骤一定要清晰,思路与步骤的清晰与否真的是造成实验设计是否困难的最重要的因素。清晰的话,做起实验来如同顺水推舟,毫不费力,不清晰的话则如入泥潭,寸步难行。

2011-年全国大学生电子设计竞赛实验报告

2011 年全国大学生电子设计竞赛实验报告 一、实验目的 1、熟练掌握各种常用实验仪器的使用方法。 2、熟悉LM324运放的典型参数及应用。 3、掌握PDF 资料的查询与阅读方法。 4、掌握电子设计与调试的基本流程及方法。 二、实验内容 设计要求: 使用一片通用四运放芯片LM324组成电路框图见图1,实现下述功能: 1. 使用低频信号源产生100.1sin 2()i U f t V =∏,f 0 =500Hz 的正弦波信号,加至 加法器输入端。 2. 自制三角波产生器产生T=0.5ms (±5%),V p-p =4V 的类似三角波信号1o u ,并加至加法器的另一输入端。 3. 自制加法器,使其输出电压U i2 = 10U i1+U o1。 4. 自制选频滤波器,滤除1o u 频率分量,得到峰峰值等于9V 的正弦信号2o u ,2o u 用示波器观察无明显失真。 5.将1o u 和2o u 送入自制比较器,其输出在1K Ω负载上得到峰峰值为2V 的输出电压3o u 。 方案论证与数值计算: 由于电源只能选用+12V 和+5V 两种单电源,由稳压电源供给,而

LM324N具有宽的单电源或双电源工作电压范围,单电源:3-30V,双电源:1.5V-15V,经过试验我们选择双电源供电,所以进行电源的搭建

三角波发生部分: 方案一: 三角波发生器电路按照由方波经过积分电路得到,需要两个放大器,不满足实验要求。 方案二: 利用RC充放电模拟三角波,通过两个电位器分别来调节周期和峰峰值至实验要求的值。达到合理利用现有资源高效达到要求的目的。因此我们采用方案二。题目要求三角波发生器产生的周期为T=0.5ms,Vpp=4V的类似三角波。我们由公式T=2*R14*C1*ln(1+2*R3/R15)另外运放1端输出电压设为U,则Uo1=(R15/(R15+R1))*U。选取电容为较常见的47nf , 计算得R1=2R14;R14=0-5K,所以取R1为0-10k;得到R15=0-10K; 加法器部分

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()函数,而是通过自己设计程序来进行字符串的连接以及计量字符串的长度,由此我学会了如何去理清自己的思路来设计程序。

数字电路与系统设计实验报告

数字电路与系统设计实验报告 学院: 班级: 姓名:

实验一基本逻辑门电路实验 一、实验目的 1、掌握TTL与非门、与或非门和异或门输入与输出之间的逻辑关系。 2、熟悉TTL中、小规模集成电路的外型、管脚和使用方法。 二、实验设备 1、二输入四与非门74LS00 1片 2、二输入四或非门74LS02 1片 3、二输入四异或门74LS86 1片 三、实验内容 1、测试二输入四与非门74LS00一个与非门的输入和输出之间的逻辑关系。 2、测试二输入四或非门74LS02一个或非门的输入和输出之间的逻辑关系。 3、测试二输入四异或门74LS86一个异或门的输入和输出之间的逻辑关系。 四、实验方法 1、将器件的引脚7与实验台的“地(GND)”连接,将器件的引脚14与实验台的十5V连接。 2、用实验台的电平开关输出作为被测器件的输入。拨动开关,则改变器件的输入电平。 3、将被测器件的输出引脚与实验台上的电平指示灯(LED)连接。指示灯亮表示输出低电平(逻辑为0),指示灯灭表示输出高电平(逻辑为1)。 五、实验过程 1、测试74LS00逻辑关系 (1)接线图(图中K1、K2接电平开关输出端,LED0是电平指示灯) (2)真值表 2、测试74LS02逻辑关系

(1)接线图 (2)真值表 3、测试74LS86逻辑关系接线图 (1)接线图 (2)真值表 六、实验结论与体会 实验是要求实践能力的。在做实验的整个过程中,我们首先要学会独立思考,出现问题按照老师所给的步骤逐步检查,一般会检查处问题所在。实在检查不出来,可以请老师和同学帮忙。

实验二逻辑门控制电路实验 一、实验目的 1、掌握基本逻辑门的功能及验证方法。 2、掌握逻辑门多余输入端的处理方法。 3、学习分析基本的逻辑门电路的工作原理。 二、实验设备 1、基于CPLD的数字电路实验系统。 2、计算机。 三、实验内容 1、用与非门和异或门安装给定的电路。 2、检验它的真值表,说明其功能。 四、实验方法 按电路图在Quartus II上搭建电路,编译,下载到实验板上进行验证。 五、实验过程 1、用3个三输入端与非门IC芯片74LS10安装如图所示的电路。 从实验台上的时钟脉冲输出端口选择两个不同频率(约7khz和14khz)的脉冲信号分别加到X0和X1端。对应B和S端数字信号的所有可能组合,观察并画出输出端的波形,并由此得出S和B(及/B)的功能。 2、实验得真值表

浙江大学Linux程序设计实验报告

Linux程序设计实验报告1 ——操作系统基本命令使用 一、实验目的 1.通过对Emacs、vi、vim、gedit文本编辑器的使用,掌握在Linux环境下文本文件的编辑方法; 2.通过对常用命令mkdir、cp、cd、ls、mv、chmod、rm等文件命令的操作,掌握Linux操作系统中文件命令的用法。 二、实验任务与要求 1.emacs的使用,要求能新建、编辑、保存一个文本文件 2.vi或vim的使用,要求能新建、编辑、保存一个文本文件 3.gedit的使用,要求能新建、编辑、保存一个文本文件 4.掌握mkdir、cd命令的操作,要求能建立目录、进入与退出目录 5.掌握cp、ls、mv、chmod、rm命令的操作,要求能拷贝文件、新建文件、查看文件、文件重命名、删除文件等操作。 三、实验工具与准备 计算机PC机,Linux Redhat Fedora Core6操作系统 四、实验步骤与操作指导 任务1.学习emacs的使用,要求能新建、编辑、保存一个文本文件 (1)启动emacs (2)输入以下C程序 (3)保存文件为kk.c (4)用emacs打开文件kk.c (5)修改程序 (6)另存为文件aa.txt并退出。 任务2.vi或vim的使用,要求能新建、编辑、保存一个文本文件 (1)点击”应用程序”→ “附件”→“终端”,打开终端,在终端输入命令: [root@localhost root]#vi kk.c 按i键,进入插入状态。 (2)输入以下C程序 #include int main( ) {

printf(“Hello world!\n”); return 0; } 此时可以用Backspace、→、←、↑、↓键编辑文本。 (3)保存文件为kk.c 按Esc键,进入最后行状态,在最后行状态输入:wq保存文件,退出vi。 (4)用vi打开文件kk.c,输入命令: [root@localhost root]#vi kk.c (5)修改程序为: #include int main( ) { printf(" Hello world!\n"); printf("*****************\n"); return 0; } (6)按Esc键,进入最后行状态,在最后行状态输入:wq aa.txt保存文件,如图1所示,另存为文件aa.txt并退出vi。。 图1 程序编辑环境 任务3.gedit的使用,要求能新建、编辑、保存一个文本文件 (1)启动gedit,点击”应用程序”→ “附件”→“文本编辑器”,打开文本编辑器,如图所示。

人竞赛抢答器实验报告

数电实验报告 姓名:侯婉思 专业:通信工程 班级:1111 学号: 指导老师:田丽娜 四人竞赛抢答器实验报告 一.前言 现今,形式多样、功能完备的抢答器已广泛应用于电视台、商业机构、学校、企事业单位及社会团体组织中,它为各种知识竞赛增添了刺激性、娱乐性,在一定程度上丰富了人们的业余生活。 对于抢答器我们大家都知道那是用于选手做抢答题时用的,选手进行抢答,抢到题的选手来回答问题。抢答器不仅考验选手的反应速度同时也要求选手具备足够的知识面和一定的勇气。选手们都站在同一个起跑线上,体现了公平公正的原则。 本文介绍了一种用74系列常用集成电路设计的高分辨率的4路抢答器。该抢答器为全数字集成电路设计,具有分组数多、分辨率高等优点。该抢答器除具有基本的抢答功能外,还具有优先能力,定时及复位功能。主持人通过控制开关使抢答器达到复位的功能。 二.实验目的 1. 学习并掌握抢答器的工作原理及其设计方法 2. 熟悉各个芯片的功能及其各个管脚的接法。 3. 灵活运用学过的知识并将其加以巩固,发散思维,提高学生的动手能力和思维的缜密。 三.设计任务与要求 1、设计任务 设计一台可供4名选手参加比赛的竞赛抢答器。选手抢答时,数码显示选手组号。 2.设计要求: 抢答器的基本功能: 1.设计一个智力抢答器,可同时供四名选手或四个代表队参加比赛,编号为一,二,三,四,各用一个抢答按钮,分别用四个按钮S0——S3表示。 2.给节目主持人设置一个控制开关,用来控制系统的清零(编号显示数码管清零)。 3.抢答器具有数据锁存和显示的功能,抢答开始后,若有选手按动抢答按钮,编号立即锁存,并在LED数码管上显示出选手的编号,此外,要封锁输入电路,实现优先锁存,禁止其他选手抢答,优先抢答选手的编号一直保持到主持人将系统清零为止。

《单片机系统设计》实验报告

短学期实验报告 (单片机系统设计) 题目: 专业: 指导教师: 学生姓名: 学号: 完成时间: 成绩:

基于单片机的交流电压表设计 目录 1系统的设计要求 (2) 2系统的硬件要求 (2) 2.1真有效值转换电路的分析 (2) 2.2放大电路的设计 (3) 2.3A/D转换电路的设计 (3) 2.4单片机电路的分析 (4) 2.5显示电路 (4) 3 软件设计 (5) 3.1 软件的总流程图 (5) 3.2 初始化定义与定时器初始化流程图 (5) 3.3 A/D转换流程图 (6) 3.4 数据处理流程图 (6) 3.5 数据显示流程图 (7) 4 调试 (7) 4.1 调试准备 (7) 4.2 关键点调试 (7) 4.3 测试结果 (8) 4.4 误差分析 (8) 5结束语 (8) 5.1 总结 (9) 5.2 展望 (9) 附录1 总原理图 (10) 附录2 程序 (10) 附录3 实物图 (14)

基于单片机的交流电压表设计 ****学院 ****专业 姓名 指导老师:******* 1 设计要求 (1)运用单片机实现真有效值的检测和显示。 (2)数据采集使用中断方式,显示内容为有效值与峰值交替进行。 2 硬件设计 本系统是完成一个真有效值的测量和显示,利用AD737将交流电转换成交流电压的有效值,用ADC0804实现模数转换,再通过单片机用数码管来显示。系统原理框图如图2-1所示。系统框图由真有效值转换电路、放大电路、A/D 转换电路、单片机电路、数码管显示电路五部分。 图2-1 原理框图 2.1 真有效值转换电路 真有效值转换电路主要是利用AD737芯片来实现真有效值直流变换的,即将输入的交流信号转换成直流信号的有效值,其原理图如图2-2所示。 图2-2 真有效值转换电路 由于AD737最大输入电压为200mV, 所以需要接两个二极管来限制输入电压,起到限幅的作用。如图中D1、D2,由IN4148构成,电容C6是耦合电容,电阻R1是限流电阻。 2.2 放大电路设计 放大电路主要是利用运放uA741来进行放大,电路原理图如图2-3所示。 A/D 转换 单片机 电路 显示 电路 转换 电路 交流 信号 放大 电路

实验二M精编B程序设计含实验报告

实验二M精编B程序设 计含实验报告 The following text is amended on 12 November 2020.

实验二 MATLAB 程序设计 一、 实验目的 1.掌握利用if 语句实现选择结构的方法。 2.掌握利用switch 语句实现多分支选择结构的方法。 3.掌握利用for 语句实现循环结构的方法。 4.掌握利用while 语句实现循环结构的方法。 5.掌握MATLAB 函数的编写及调试方法。 二、 实验的设备及条件 计算机一台(带有以上的软件环境)。 M 文件的编写: 启动MATLAB 后,点击File|New|M-File ,启动MATLAB 的程序编辑及调试器 (Editor/Debugger ),编辑以下程序,点击File|Save 保存程序,注意文件名最好用英文字符。点击Debug|Run 运行程序,在命令窗口查看运行结果,程序如有错误则改正 三、 实验内容 1.编写求解方程02=++c bx ax 的根的函数(这个方程不一定为一元二次方程,因c b a 、、的不同取值而定),这里应根据c b a 、、的不同取值分别处理,有输入参数提示,当0~,0,0===c b a 时应提示“为恒不等式!”。并输入几组典型值加以检验。 (提示:提示输入使用input 函数) 2.输入一个百分制成绩,要求输出成绩等级A+、A 、B 、C 、D 、E 。其中100分为A+,90分~99分为A ,80分~89分为B ,70分~79分为C ,60分~69分为D ,60分以下为E 。 要求:(1)用switch 语句实现。 (2)输入百分制成绩后要判断该成绩的合理性,对不合理的成绩应输出出错信息。 (提示:注意单元矩阵的用法) 3.数论中一个有趣的题目:任意一个正整数,若为偶数,则用2除之,若为奇数,则与3相乘再加上1。重复此过程,最终得到的结果为1。如: 21 21 421 运行下面的程序,按程序提示输入n=1,2,3,5,7等数来验证这一结论。 请为关键的Matlab 语句填写上相关注释,说明其含义或功能。 4. y

微弱信号检测装置(实验报告)剖析

2012年TI杯四川省大学生电子设计竞赛 微弱信号检测装置(A题) 【本科组】

微弱信号检测装置(A题) 【本科组】 摘要:本设计是在强噪声背景下已知频率的微弱正弦波信号的幅度值,采用TI公司提供的LaunchPad MSP430G2553作为系统的数据采集芯片,实现微弱信号的检测并显示正弦信号的幅度值的功能。电路分为加法器、纯电阻分压网络、微弱信号检测电路、以及数码管显示电路组成。当所要检测到的微弱信号在强噪音环境下,系统同时接收到函数信号发生器产生的正弦信号模拟微弱信号和PC机音频播放器模拟的强噪声,送到音频放大器INA2134,让两个信号相加。再通过由电位器与固定电阻构成的纯电阻分压网络使其衰减系数可调(100倍以上),将衰减后的微弱信号通过微弱信号检测电路,检测电路能实现高输入阻抗、放大、带通滤波以及小信号峰值检测,检测到的电压峰值模拟信号送到MSP430G2553内部的10位AD 转换处理后在数码管上显示出来。本设计的优点在于超低功耗 关键词:微弱信号MSP430G2553 INA2134 一系统方案设计、比较与论证 根据本设计的要求,要完成微弱正弦信号的检测并显示幅度值,输入阻抗达到1MΩ以上,通频带在500Hz~2KHz。为实现此功能,本设计提出的方案如下图所示。其中图1是系统设计总流程图,图2是微弱信号检测电路子流程图。 图1系统设计总流程图 图2微弱信号检测电路子流程图

1 加法器设计的选择 方案一:采用通用的同相/反相加法器。通用的加法器外接较多的电阻,运算繁琐复杂,并且不一定能达到带宽大于1MHz,所以放弃此种方案。 方案二:采用TI公司的提供的INA2134音频放大器。音频放大器内部集成有电阻,可以直接利用,非常方便,并且带宽能够达到本设计要求,因此采用此方案。 2 纯电阻分压网络的方案论证 方案一:由两个固定阻值的电阻按100:1的比例实现分压,通过仿真效果非常好,理论上可以实现,但是用于实际电路中不能达到预想的衰减系数。分析:电阻的标称值与实际值有一定的误差,因此考虑其他的方案。 方案二:由一个电位器和一个固定的电阻组成的分压网络,通过改变电位器的阻值就可以改变其衰减系数。这样就可以避免衰减系数达不到或者更换元器件的情况,因此采用此方案。 3 微弱信号检测电路的方案论证 方案一:将纯电阻分压网络输出的电压通过反相比例放大电路。放大后的信号通过中心频率为1kHz的带通滤波器滤除噪声。再经过小信号峰值电路,检测出正弦信号的峰值。将输出的电压信号送给单片机进行A/D转换。此方案的电路结构相对简单。但是,输入阻抗不能满足大于等于1MΩ的条件,并且被测信号的频率只能限定在1kHz,不能实现500Hz~2KHz 可变的被测信号的检测。故根据题目的要求不采用此方案。 方案二:检测电路可以由电压跟随器、同相比例放大器、带通滤波电路以及小信号峰值检测电路组成。电压跟随器可以提高输入阻抗,输入电阻可以达到1MΩ以上,满足设计所需;采用同相比例放大器是为了放大在分压网络所衰减的放大倍数;带通滤波器为了选择500Hz~2KHz的微弱信号;最后通过小信号峰值检测电路把正弦信号的幅度值检测出来。这种方案满足本设计的要求切实可行,故采用此方案。 4 峰值数据采集芯片的方案论证 方案一:选用宏晶公司的STC89C52单片机作为。优点在于价格便宜,但是对于本设计而言,必须外接AD才能实现,电路复杂。

C+程序设计实验报告-2013

C++程序设计 实验报告 专业计算机科学与技术班级 ____________ 学号 ____________ 姓名 ____________ 指导教师 __许加兵_ 信息与电子工程学院2013年9月-12月

C++程序设计实验报告 专业__________班级__________学号__________姓名__________ 成绩____________ 指导教师____________ 日期____________ 实验1 C++集成开发环境与C++函数程序设计 一、实验目的 1、了解和使用Visual Studio 2010的C++集成开发环境; 2、熟悉Visual Studio 2010环境的基本命令、功能键和常用的菜单命令; 3、学会完整的C++程序开发过程; 4、学习并掌握C++函数程序设计; 二、实验内容 1、安装、了解和使用Visual Studio 2010的C++集成开发环境; 2、通过以下的C++函数程序设计,熟悉Visual Studio 2010环境的基本命令、功能键和常用的菜单命令; 3、通过以下的C++函数程序设计,学会完整的C++程序开发过程; 4、完成以下的C++函数程序设计和调试: 1)编写一个函数print(),将一个整型向量输出到cout。此函数接受两个参数:一个字符串(用于“标记”输出)和一个向量。 2) 编写一个函数,接受一个vector 参数,返回一个vector ,其每个元素值是对应字符串的长度。此函数还找出最长和最短的字符串,以及字典序第一个和最后一个字符串。 三、简要说明C++开发环境安装和配置的过程

实验五时序逻辑电路实验报告

实验五时序逻辑电路(计数器和寄存器)-实验报告一、实验目的 1掌握同步计数器设计方法与测试方法。 2 ?掌握常用中规模集成计数器的逻辑功能和使用方法。 二、实验设备 设备:THHD-2型数字电子计数实验箱、示波器、信号源 器件:74LS163、74LS00、74LS20 等。 三、实验原理和实验电路 1计数器 计数器不仅可用来计数,也可用于分频、定时和数字运算。在实际工程应用中,一般很少使用小规模的触发器组成计数器,而是直接选用中规模集成计数器。 2. (1)四位二进制(十六进制)计数器74LS161 (74LS163) 74LS161是同步置数、异步清零的4位二进制加法计数器,其功能表见表。 74LS163是同步置数、同步清零的4位二进制加法计数器。除清零为同步外,其他功能与74LS161相同。二者的外部引脚图也相同,如图所示。 3.集成计数器的应用一一实现任意M进制计数器

Eft CR IK rh th Ih ET 7-I1A C1M /( 制扭环计数 同步清零法器 同步置数法 般情况任意M 进制计数器的结构分为 3类,第一类是由触发器构成的简单计数器。 第 二类是 由集成二进制计数器构成计数器。第三类是由移位寄存器构成的移位寄存型计数器。 第一类,可利用时序逻辑电路的设计方法步骤进行设计。 第二类,当计数器的模 M 较小时用 一片集成计数器即可以实现,当 M 较大时,可通过多片计数器级联实现。两种实现方法:反 馈置数法和反馈清零法。第三类,是由移位寄存器构成的移位寄存型计数器。 4?实验电路: 十进制计数器 1

图74LS161 (74LS163)外部引脚图 四、实验内容及步骤 1 .集成计数器实验 (1)按电路原理图使用中规模集成计数器74LS163和与非门74LS00,连接成一个同步置数或同步清零十进制计数器,并将输出连接至数码管或发光二极管。然后使用单次脉冲作为触发输入,观察数码管或发光二极管的变化,记录得到电路计数过程和状态的转换规律。 (2)根据电路图,首先用D触发器74LS7474构成一个不能自启的六进制扭环形计数器,同样将输出连接至数码管或发光二极管。然后使用单次脉冲作为触发输入,观察数码管或发光二 极管的变化,记录得到电路计数过程和状态的转换规律。注意观察电路是否能自启,若不能自启,则将电路置位有效状态。接下来再用D触发器74LS7474构成一个能自启的六进制扭环 形计数器,重复上述操作。 2?分频实验 依据实验原理图用74LS163及74LS00组成一个具有方波输出的六分频电路。选择适当时钟输入方式及频率(CP接连续波脉冲),用双踪示波器观察并记录时钟与分频输出信号的时序波形。 五、实验结果及数据分析 1 .集成计数实验同步清零和同步置数的十进制加一计数器状态转换过程分别如下所示: 0000 : 0001 : 0010 : 0011 ; 0100 爲00*卄庇爲爲卄yh 六进制扭环形计数器的状态转换过程如下:

C程序设计上实验报告(完整版)

C语言程序设计上机实验报告 学院:机械工程学院 班级:机自161213 姓名:刘昊 学号:20162181310 实验时间:2017年3月6号 任课老师:张锐

C语言程序设计上机实验报告 实验一 一、实验名称: C程序的运行环境和运行C程序的方法 二、实验目的:了解在C编译系统上如何编辑、编译、连接和运行一个C 程序 三、实验内容: (1). 输入并运行一个简单的C程序。 (2). 设计程序,对给定的两个数求和。 (3). 设计程序,对给定的两个数进行比较,然后输出其中较大的数。 四、源程序代码: 代码1: 运行结果1:

程序分析1: 该程序用来判断所输入的整数是否为一个素数,如果一个数能被除了1和它本身整除,还能被其它数整除,那么它就不是一个素数,因此,用for 循环来进行整除过程的简写。 代码2: 运行结果2:

程序分析2: 简单的使用printf()和scanf()函数进行简单的数据运算。代码3: 运行结果3:

程序分析3: 使用if语句进行判断。 五.实验总结 C语言程序设计上机实验报告 实验二 一、实验名称:顺序结构程序设计 二、实验目的:正确使用常用运算符(算术运算符、赋值运算符)的用法, 熟练掌握算术运算符及其表达式,逻辑运算符和逻辑表达式。 三、实验内容: (1). 编写程序,实现小写字母转大写。

(2). 编写程序,实现输入两个不同类型数据后,经过适当的运算(加、减、乘、除)后输出。 (3). 编写程序,计算三角形面积、立方体的体积和表面积、圆的面积和周长。 (4). 编写程序,实现单字符getchar和putchar输入输出。 (5). 编写程序,实现十进制、八进制、十六进制不同数制的输出。 四、源程序代码 代码1: 运行结果1: 程序分析1:

高级程序设计实验报告

高级程序设计 实验报告 班级 学号: 姓名: 实验名称: 指导老师: 日期:

实验十一文件和流I/O 一、实验题目:文件和流I/O 二、实验内容: 1.掌握磁盘的基本操作 2.掌握目录的基本操作 3.文件的基本操作 4.文本文件的读取和写入 5.字符串的读取和写入 6.二进制文件的读取和写入I 7. 二进制文件的读取和写入2 三、主要程序代码: 1. using System; using System.IO; using System.Collections.Generic; using System.Text; namespace实验1 { class Test { public static void Main() { DriveInfo[] allDrives = DriveInfo.GetDrives(); foreach (DriveInfo d in allDrives) { Console.WriteLine("Drive {0}", https://www.doczj.com/doc/6d837166.html,); Console.WriteLine(" File type: {0}", d.DriveType); if (d.IsReady == true) { Console.WriteLine(" Volume label: {0}", d.VolumeLabel); Console.WriteLine(" File system: {0}", d.DriveFormat); Console.WriteLine(" Available space to current user:{0, 15} bytes",d.AvailableFreeSpace); Console.WriteLine("Total available space: {0, 15} bytes",d.TotalFreeSpace); Console.WriteLine( " Total size of drive: {0, 15} bytes ", d.TotalSize); } } Console.ReadKey();

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