实验3数据的输入与输出
C语言程序设计实验3
![C语言程序设计实验3](https://img.taocdn.com/s3/m/14cc1a6390c69ec3d5bb75dd.png)
一、实验目的1. 掌握简单的程序设计,能正确写出顺序结构的源程序。
2. 掌握数据的输入输出方法,能正确使用各种格式转换符。
二、实验内容(程序清单及运行结果)(一)阅读程序1.先读下列程序,写出程序运算结果,再将该程序输入并运行,观察运行结果与你所写的结果是否相同。
①int main(){ int x,y,z;x=y=2;z=3;y=x++-1; printf("%d\t%d\t",x,y);y=++x-1; printf("%d\t%d\t",x,y);y=z--+1; printf("%d\t%d\t",z,y);y=--z+1; printf("%d\t%d\n",z,y);return 0;}②int main(){ char c1='a',c2='b',c3='c',c4='\101',c5='\116';printf("a%cb%c\tc%c\tabc\n",c1,c2,c3);printf("\tb%c%c",c4,c5);return 0;}2.以下各程序需要输入数据,请写出输入数据的格式和变量的值并上机验证。
①#include <stdio.h>int main(){ int a,b,c;printf("input a,b,c\n");scanf("%d%d%d",&a,&b,&c);printf("a=%d,b=%d,c=%d",a,b,c);return 0;}②main(){ int i, j;printf("i, j=?\n");scanf("%d, %d", &i, &j);}③scanf(“%d,%*d,%d”,&a,&b);若输入:3,4,5a=? b=?④scanf(“%3d%2d”,&a,&b);若输入:12345a=?b=?⑤按格式要求输入/输出数据#include "stdio.h"int main(){ int a,b;float x,y;char c1,c2;scanf(“a=%d,b=%d”,&a,&b);scanf(“%f, %e”,&x,&y);getchar();scanf(“%c %c”,&c1,&c2);printf(“a=%d,b=%d,x=%f,y=%f,c1=%c,c2=%c\n”,a,b,x,y,c1,c2);return 0;}运行该程序,必须按如下方式在键盘上输入数据a=3,b=7 ↙8.5,71.82 ↙a A ↙请同学们写出输出结果(二)完成程序要求:按照给定题目要求,参照出现的语句,填写程序空白处。
实验三组合逻辑电路应用——译码器、数据选择器
![实验三组合逻辑电路应用——译码器、数据选择器](https://img.taocdn.com/s3/m/1827420766ec102de2bd960590c69ec3d5bbdbff.png)
实验三组合逻辑电路应用——译码器、数据选择器
译码器和数据选择器是现代数字电子学中常用的两种组合逻辑电路。
它们可以将输入
的二进制信号转换为对应的输出信号,并且在数字电路中具有广泛的应用。
一、译码器
译码器是一种将输入的二进制信号转换成对应输出信号的数字电路。
译码器的作用是
将输入的地址码转换成溢出电路所能识别的控制信号,通常用来将不同的地址码映射到不
同的设备或功能上。
比如在存储器系统中,根据不同地址码,从RAM或者ROM中取出相应
的数据或指令。
除此之外,译码器还可以用于数据压缩、解码、解密等领域。
在一些数字电路中,译
码器还可以充当多路复用器、选择器等电路的功能。
译码器的分类按照其输入和输出的码制不同,可以分为译码器、BCD译码器、灰码译
码器等。
其中,最常见的是2-4译码器、3-8译码器、4-16译码器等。
二、数据选择器
数据选择器是一种多路选择器,根据控制信号选择输入端中的一个数据输出到输出端。
选择器的控制信号通常由一个二进制码输入到它的控制端,二进制码的大小由选择器的通
道数决定。
数据选择器广泛用于控制、多媒体处理、信号处理等方面。
数据选择器与译码器相比,最主要的区别在于其输出可以不仅限于数字信号。
数据选
择器可以处理模拟信号、复合信号等多种形式的信号,因为它可以作用于信号的幅度、相位、频率等方面。
数据选择器按照输入和输出的端口取数的不同,可以分为单路选择器和多路选择器。
常见的有2-1选择器、4-1选择器、8-1选择器、16-1选择器等。
实验三 P3.3口输入,P1口输出
![实验三 P3.3口输入,P1口输出](https://img.taocdn.com/s3/m/ea4de5e37c1cfad6195fa7be.png)
P3.3用导线连至K1开关,P1.0~P1.7导线连至L1~L8,K1拨动一次,L1~L8发光二极管按16进制方式加一点亮。
3、参考程序
四、思考题
1、如果要增加或者减少亮灯时间,应该如何修改程序?
在延时过程中,再加一次循环或减少一次循环,可以增加减少亮灯时间。
2、如果要使发光二极管以左移方式点亮,应该如何修改程序?
(可附页)
【单片机原理及应用】实验报告
班级:计13本2学号:姓名:
实验三P3.3口输入,P1口输出
实验类型
综合
实验日期
实验地点
实验时间(星期节次)
指导教师
实验组成员
一、实验目的及要求:
1、掌握P3口、P1口简单使用。
二、实验仪器:
计算机ቤተ መጻሕፍቲ ባይዱ
三、实验内容、步骤及程序
1、实验内容
P3.3口输入一脉冲,P1口按16进制加一方式点亮发光二极管。
将A寄存器的初值改为100H,将INC加一指令改为减一指令,
分析初值是100H而不是FF:因为DJNZ指令是在减一之后再判断为零,才跳转。
五、实验结果及总结:(你的实验过程用了多少时间?遇到了哪些难题?你是怎么解决的?你的收获有哪些?)刚开始,程序仿真只是不出来,仔细检查程序没问题,但就是出不来效果,最后是重启仿真软件,就好了可能是软件问题。
国家开放大学《数据结构》课程实验报告(实验3 ——栈、队列、递归设计)参考答案
![国家开放大学《数据结构》课程实验报告(实验3 ——栈、队列、递归设计)参考答案](https://img.taocdn.com/s3/m/99a0c842af45b307e9719729.png)
x=Pop(s); /*出栈*/
printf("%d ",x);
InQueue(sq,x); /*入队*/
}
printf("\n");
printf("(10)栈为%s,",(StackEmpty(s)?"空":"非空"));
printf("队列为%s\n",(QueueEmpty(sq)?"空":"非空"));
ElemType Pop(SeqStack *s); /*出栈*/
ElemType GetTop(SeqStack *s); /*取栈顶元素*/
void DispStack(SeqStack *s); /*依次输出从栈顶到栈底的元素*/
void DispBottom(SeqStack *s); /*输出栈底元素*/
} SeqQueue; /*定义顺序队列*/
void InitStack(SeqStack *s); /*初始化栈*/
int StackEmpty(SeqStack *s); /*判栈空*/
int StackFull(SeqStack *s); /*判栈满*/
void Push(SeqStack *s,ElemType x); /*进栈*/
sq=(SeqQueue *)malloc(sizeof(SeqQueue));
InitQueue(sq);
printf("(8)队列为%s\n",(QueueEmpty(sq)?"空":"非空"));
printf("(9)出栈/入队的元素依次为:");
实验三、四创建表及输入数据及完整性约束
![实验三、四创建表及输入数据及完整性约束](https://img.taocdn.com/s3/m/193776300622192e453610661ed9ad51f01d5466.png)
实验三、四 创建表及输入数据及完整性约束本实验需要4学时。
一、实验目的要求学生熟练掌握和使用Transact-SQL、SQL Server企业管理器创建表、索引和修改表结构,并学会使用SQL Server 查询分析器接收Transact-SQL语句和进行结果分析。
学生熟练掌握使用 SQL、Transact-SQL和SQL Server企业管理器向数据库输入数据、修改数据和删除数据的操作。
二、实验内容1 创建表、确定表的主码和约束条件。
为主码建索引。
2 查看和修改表结构。
3 输入数据、修改数据和删除数据三、实验步骤(1)通过企业管理器,在建好的图书借阅数据库中建立图书、读者和借阅3个表,其结构为;图书(书号,类别,出版社,作者,书名,定价,作者).读者(编号,姓名,单位,性别,电话).借阅(书号,读者编号,借阅日期)要求为属性选择合适的数据类型,定义每个表的主码.是否允许空值和默认值等列级数据约束。
(2)在企业管理器中建立图书、读者和借阅3个表的表级约束.每个表的主码约束.借阅表与图书表间、借阅表与读者表之间的外码约束,要求按语义先确定外码约束表达式.再通过操作予以实现.实现借阅表的书号和读者编号的惟一性约束:实现读者性别只能是“男”或“女”的Check(检查)约束。
(3)通过企业管理器,在图书借阅数据库的图书、读者和借阅3个表中各输入10条记录。
要求记录不仅满足数据约束要求.还要有表间关联的记录。
(4)通过企业管理器实现对图书借阅数据库的图书、读者和借阅3个表中数据的插入。
删除和修改操作。
(5)通过企业管理器实现对学生选课库的数据增加、数据删除和数据修改操作、要求学生、课程和选课表中各有10条以上的记录。
四、实验方法1 新建表在 SQL Serve 2000的数据库中,文件夹是按数据库对象的类型建立的.文件夹名是该数据库对象名。
当在企业管理器中选择服务器和数据库文件夹,并打开已定义好的图书.读者数据库后,会发现它自动设置了关系图、表、视图、存储过程、用户、角色、规则、默认等文件夹。
实验3' 输入输出
![实验3' 输入输出](https://img.taocdn.com/s3/m/4a1d0fcf05087632311212ae.png)
第四周作业1. 若有以下变量声明:char ch=’e’;int a=3,b=12345;unsigned c=65534;long d=123456;float e=3.12;double f=5.6789;如果想要得到以下的输出结果,请写出相应的程序。
(凵表示空格,程序保存为3b_1.c)ch=’e’凵or凵101(ASCII)a=凵凵凵凵凵3凵b=012345c=65534;c=fffe;c=FFFE%d=123456%e=3.120000\f=5.678900e=3.1凵凵凵凵凵f=5.7凵凵凵凵凵2. 使用下面程序来输入数据,要使x=5,u=40000,t=65537,ch1=’m’,ch2=’n’,a=-123.456,b=123456.789。
请写出正确的键盘输入形式,并自行添加输出语句验证。
(凵表示空格,将程序正确运行时键盘需要输入的所有内容保存为3b_2.txt)#include <stdio.h>int main(void){int x;unsigned u;long t;char ch1,ch2;float a;double b;scanf(“%d%u”,&x,&u);scanf(“凵t=%lx”,&t);scanf(“凵%c%c”,&ch1,&ch2); /* 第一个%前有一个空格*/scanf(“凵a=%e,b=%lf”,&a,&b);}3. 假设现有的变量类型与上题一样,所有的变量也想获得同样的值。
实际的键盘输入形式如下,请写出相应的scanf语句。
(凵表示空格, ↵表示Enter键,程序保存为3b_3.c)5凵凵凵40000↵65537↵m凵n↵-123.456,b=123456.789↵4.编写求梯形面积的程序,数据由键盘输入(程序保存为3b_4.c)。
5.输入两个复数,输出其和(程序保存为3b_5.c)假设有两个复数a+bi 和c+di,则他们的和为(a+c)+(b+d)i。
数字电路实验报告3
![数字电路实验报告3](https://img.taocdn.com/s3/m/a5f0d209ce84b9d528ea81c758f5f61fb636287b.png)
数字电路实验报告3实验目的本实验旨在通过实际操作,进一步了解数字电路中的加法器和减法器的基本原理,并通过观察和分析实验结果,加深对数字电路的理解。
实验原理加法器加法器是数字电路中常用的逻辑电路,用于将两个二进制数相加。
常见的加法器有半加法器、全加法器等。
在本实验中,我们将使用半加法器和全加法器来实现二进制数的加法运算。
半加法器是最基本的加法器,它只能实现1位二进制数的相加。
半加法器有两个输入端A和B,表示要相加的两个二进制位,以及两个输出端Sum和Carry,分别表示相加的结果和进位。
全加法器是在半加法器的基础上进行改进,可以实现多位二进制数的相加。
全加法器有三个输入端A、B和Carry-in,分别表示要相加的两个二进制位和进位。
它还有两个输出端Sum和Carry-out,分别表示相加的结果和进位。
减法器减法器是用于实现二进制数的减法运算的数字电路。
它可以将两个二进制数相减,并得到减法的结果。
在本实验中,我们将使用全减法器来实现二进制数的减法运算。
全减法器是将半减法器进行组合得到的。
它有三个输入端A、B和Borrow-in,分别表示被减数、减数和借位。
它还有两个输出端Diff和Borrow-out,分别表示减法的结果和借位。
实验步骤1.搭建半加法器电路:根据半加法器的原理图,使用逻辑门和触发器等器件,搭建一个半加法器电路。
2.连接输入端:将两个二进制数的相应位连接到半加法器电路的输入端A和B上。
3.连接输出端:将半加法器电路的输出端Sum和Carry连接到示波器上,用于观察结果。
4.输入数据:给输入端A和B分别输入二进制数,记录输入的数值。
5.观察结果:观察示波器上显示的结果,并记录下来。
6.分析结果:根据观察到的结果,分析二进制数的相加运算是否正确,以及进位是否正确。
7.搭建全加法器电路:根据全加法器的原理图,使用逻辑门和触发器等器件,搭建一个全加法器电路。
8.连接输入端:将两个二进制数的相应位和进位信号连接到全加法器电路的输入端A、B和Carry-in上。
c语言实验报告3
![c语言实验报告3](https://img.taocdn.com/s3/m/11609b93bdeb19e8b8f67c1cfad6195f312be89d.png)
实验一C程序设计入门1.编程输出‚我的信息‛;#include <stdio.h>main(){printf("My Information:\n");printf("姓名:李坤\n性别:女\n专业名称:通信工程\n课程名称:高级语言程序设计实验\n");}2.编程:定义一个名为all的整型变量并为其赋值100。
分别计算all 的两倍及其平方,用文字什么的输出结果;#include <stdio.h>main(){int all=100;int x,y;x=2*all;y=all*all;printf("all的两倍是:%d\n all的平方是:%d\n",x,y);}3.编程求以下表达式的值;#include <stdio.h>#include <math.h>main(){float x;x=23+(pow(16,2)-15)/(9+14);printf("x=%.4f\n",x);}4.编程计算以下表达式的值(要求:分别定义一个int和float类型的变量,计算的结果存入该二变量并输出,分析结果)#include <stdio.h>main(){int x;float y;x=3/2+4/3+5/4+6/5;y=3.0/2+4.0/3+5.0/4+6.0/5;printf("x=%d\ny=%.4f\n",x,y);}实验二数据类型、常量变量及顺序结构程序设计1.输入两个人的身高,计算并输出他们的平均身高。
(结果保留两位小数)#include <stdio.h>main(){float x,a,b;printf("Input the height:");scanf("%f%f",&a,&b);x=(a+b)/2;printf("The average height is:%.2f\n",x);}2。
C语言实验三1
![C语言实验三1](https://img.taocdn.com/s3/m/acae2e31647d27284b735139.png)
输出 将最后的多项式的值输出,结果保留两个有效数字。
#include<stdio.h> #include<math.h> int main() {
double x,eps,a1,s; int i; i=1; s=1; scanf("%lf %lf",&x,&eps); a1=-x/i; while(fabs(a1)>eps) {
a++; else if(x==0)
b++; else if(x>0)
c++; } printf("%d %d %d\n",a,b,c); }
}
阶乘输出
问题描述
请输出如下所示的阶乘公式 3!+4!+5!+6!+7! 这个公式表示从 3 到 7 的阶乘之和。现在给定两个整数 a 和 b(0<a<b),请 输出 a 到 b 的阶乘之和。 输入
#include<stdio.h> int main() {
int a,b,c,n,i,j; float x;
while(1) {
scanf("%d",&n); if(n==0)
break; else a=b=c=0; for(i=1;i<=n;i++) { scanf("%f",&x); if(x<0)
楼梯 问题描述
大家肯定都玩过小朋友下楼梯,小鱼我也很喜欢玩小朋友下楼梯的游戏, 不过总是下不了几阶。我们这次不玩小朋友下楼梯,而是帮小鱼画一个楼 梯,如下图是 4 阶的楼梯。 * ** *** **** 现在给定楼梯的阶数 n,请输出 n 阶的楼梯。 输入 输入为一个整数 n。 输出 输出 n 阶的楼梯。n 阶楼梯总共 n 行,每行后面都有一个换行符。
C语言实验报告 实验三 参考答案
![C语言实验报告 实验三 参考答案](https://img.taocdn.com/s3/m/98bdd6eb16fc700aba68fc74.png)
实验十 参考答案(指针)三、实验内容( 按要求完善或设计以下程序,并调试分析运行结果)1. 程序填空题 给定程序BLACK10-1.C 中,函数fun 的功能是:将形参n 所指变量中,各位上为偶数的数去除,剩余的数按原来从高位到低位的顺序组成一个新的数,并通过形参指针n 传回所指变量。
例如,输入一个数:27638496,新的数:为739。
请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。
【解题思路】第一处:t 是通过取模的方式来得到*n 的个位数字,所以应填:10。
第二处:判断是否是奇数,所以应填:0。
第三处:最后通形参n 来返回新数x ,所以应填:x 。
2. 程序改错题 给定程序MODI10-1.C 中函数fun 的功能是: 计算n 的5次方的值(规定n 的值大于2、小于8),通过形参指针传回主函数;并计算该值的个位、十位、百位上数字之和作为函数值返回。
例如,7的5次方是16807, 其低3位数的和值是15。
【解题思路】第一处:变量d 的初始值应为1。
第二处:整除的符号是 /。
3. 程序设计题 请编写函数fun ,它的功能是:求出能整除形参x 且不是偶数的各整数,并按从小到大的顺序放在pp 所指的数组中,这些除数的个数通过形参n 返回。
例如,若 x 中的值为: 35,则有 4 个数符合要求,它们是: 1, 5, 7, 35。
【解题思路】本题是求出能整除形参x 且不是偶数的各整数,并按从小到大的顺序放在pp 所指的数组中,这些除数的个数通过形参n 返回。
【参考答案】void fun ( int x, int pp[], int *n ){ int i; *n=0;for(i=1; i <= x; i++)if((x % i== 0) && (i % 2)) pp[(*n)++]=i;}4. 程序填空题 给定程序中,函数fun 的功能是:找出N ×N 矩阵中每列元素中的最大值,并按顺序依次存放于形参b 所指的一维数组中。
《数据结构》实验3链表
![《数据结构》实验3链表](https://img.taocdn.com/s3/m/6a305f3477232f60ddcca1ba.png)
三、源代码以及实验结果为
四、源代码以及实验结果为
五、源代码以及实验结果为
六、源代码以及实验结果为
七、附加题以及实验体会:
{
NODE *s; /*定义指向结点类型的指针*/
s=(NODE *)malloc(sizeof(NODE));
/*生成新结点*/
3
4
5
return 1;
}
/*删除P所指向的结点的后继结点*/
void DelLinkList(NODE *p)
{ NODE *q;
if(p->next!=0)
{ q=p->next; /* q指向p的后继结点*/
ch=getchar();
while(ch!='$')
{ p=(NODE *)malloc(sizeof(NODE));
p->data=ch;
1
2
ch=getchar();
}
return (head);
}
/*在链表的P指定结点之后插入值为x的结点*/
int InsLinkList(NODE *p, char x)
四、设有两个单链表A、B,其中元素递增有序,编写算法将A、B归并成一个按元素值递减(允许有相同值)有序的链表C,要求用A、B中的原结点形成,不能重新申请结点。
五、已知单链表表示的线性表中含有两类的数据元素(字母字符,数字字符)。试设计算法,按结点的值将单链表拆分成两个循环链表,分别只含有数字或字母。要求:利用原表中的结点空间作为这两个表的结点空间,头结点可另开辟空间。
附加题:如果换成循环单链表该如何实现?
即题目变成:已知单循环链表表示的线性表中含有两类的数据元素(字母字符,数字字符)。试设计算法,按结点的值将单链表拆分成两个循环链表,分别只含有数字或字母。
单片机实验P3.3输入、P1口输出和步进电机控制实验
![单片机实验P3.3输入、P1口输出和步进电机控制实验](https://img.taocdn.com/s3/m/008c22240a4c2e3f5727a5e9856a561252d321f7.png)
单⽚机实验P3.3输⼊、P1⼝输出和步进电机控制实验南昌航空⼤学实验报告⼆0⼀⼀年⼗⽉⼀⼗七⽇课程名称:单⽚微型机实验名称:P3.3输⼊、P1⼝输出和步进电机控制实验班级: 080611 学⽣姓名:学号: 08061108 指导教师评定:签名:⼀、实验⽬的1、掌握P3⼝、P1⼝简单使⽤;2、学习延时程序的编写和使⽤;3、了解步进电机控制的基本原理;4、掌握步进电机转动编程⽅法。
⼆、实验内容及要求1、P3.3输⼊、P1⼝输出实验1)P3.3⼝做输⼊⼝,外接⼀脉冲,每输⼊⼀个脉冲,P1⼝按⼗六进制加⼀。
P1⼝做输出⼝,编写程序,使P1⼝接的8个发光⼆极管L1—L8按16进制加⼀⽅式点亮发光⼆极管。
2)P1⼝是准双向⼝,它作为输出⼝时与⼀般的双向⼝使⽤⽅法相同,由准双向⼝结构可知:当P1⼝作为输⼊⼝时,必须先对它置⾼电平,使内部MOS管截⽌,因内部上拉电阻是20KΩ—40KΩ,故不会对外部输⼊产⽣影响。
若不先对它置⾼,且原来是低电平,则MOS管导通,读⼊的数据是不正确的。
3)延时⼦程序的延时计算问题。
对于延时程序:DELAY :MOV R6, #00HDELAY1:MOV R7, #80HDJNZ R7, $DJNZ R6, DELAY1查指令表可知MOV、DJNZ指令均需⽤两个机器周期,⽽⼀个机器周期时间长度为12/ 6.0MHZ,所以该段指令执⾏时间为:((80+1)×256+1)×2×(12÷6000000)=132.1ms。
图1 P3.3输⼊、P1图2 实验电路原理图2、步进电机控制实验1)从键盘上输⼊正、反转命令,转速参数和转动步数显⽰在显⽰器上,CPU再读取显⽰器上显⽰的正、反转命令,转速级数(16级)和转动步数后执⾏。
转动步数减为零时停⽌转动。
2)步进电机驱动原理是通过对它每相线圈中的电流和顺序切换来使电机作步进式旋转。
驱动电路由脉冲信号来控制,所以调节脉冲信号的频率便可改变步进电机的转速,微电脑控制步进电机最适合。
实验三 数据选择器及其应用
![实验三 数据选择器及其应用](https://img.taocdn.com/s3/m/c05bac4815791711cc7931b765ce0508763275f6.png)
实验三数据选择器及其应用一、实验目的(1)通过实验的方法学习数据选择器的电路结构和特点。
(2)掌握数据选择器的逻辑功能及其基本应用。
二、实验设备(1)数字电路实验箱(2)74LS00、74LS153三、实验原理数据选择器(Multiplexer)又称为多路开关, 是一种重要的组合逻辑部件, 它可以实现从多路数据中选择任何一路数据输出, 选择的控制由专门的端口编码决定, 称为地址码, 数据选择器可以完成很多的逻辑功能, 例如函数发生器、桶形移位器、并串转换器、波形产生器等。
本次实验使用的是双四选一数据选择器。
常见的双四选一数据选择器为TTL双极型数字集成逻辑电路74LS153, 它有两个4选1, 外形为双列直插, 引脚排列如图2.7.1所示, 逻辑符号如图2.7.2所示。
其中D0、D1、D2、D3为数据输入端, A0、A1为数据选择器的控制端(地址码), 同时控制两个选择器的数据输出, 为工作状态控制端(使能端), 74LS153的功能表见表2.7.1。
其中:图2.7.1 图2.7.2输入输出A1A01Q2Q 1X X000001D02D00011D12D10101D22D20111D32D3表 2.7.1(1)设计实验以A.B代表正、副指挥, C.D代表两名操作员, “1”代表通过, “0”代表没有通过。
F代表产生点火信号, “1”代表产生点火信号, “0”代表没有产生点火信号。
只有当A.B 同时为“1”, 且C和D中至少有一个为“1”时, 输出F才为“1”, 及连接在电路中的指示灯亮起, 否则, 指示灯不亮。
据此, 画出真值表如图:A B C D F00000000100010000110010000101001100011101000010010101001011011000110111110111111画出卡诺图:ABCD00 01 11 1000 01 11 100000 0010 0010 0010降维:ABC00 01 11 100 100D0 0010再降维:AB 0 10 100 0C+D因为, 所以可以用74LS00实现C和D的与, 然后将C+D输入数据选择器, 配合地址端的A.B, 即可实现预设功能。
数字电路实验3计数器
![数字电路实验3计数器](https://img.taocdn.com/s3/m/c65375c1185f312b3169a45177232f60ddcce736.png)
实验八计数器一、实验目的1.熟悉由集成触发器构成的计数器电路及其工作原理。
2.熟悉掌握常用中规模集成电路计数器及其应用方法。
二、实验原理和电路所谓计数,就是统计脉冲的个数,计数器就是实现“计数”操作的时序逻辑电路。
计数器的应用十分广泛,不仅用来计数,也可用作分频、定时等。
计数器种类繁多。
根据计数体制的不同,计数器可分成二进制(即2”进制)计数器和非二进制计数器两大类。
在非二进制计数器中,最常用的是十进制计数器,其它的一般称为任意进制计数器。
根据计数器的增减趋势不同,计数器可分为加法计数器—随着计数脉冲的输入而递增计数的;减法计数器—随着计数脉冲的输入而递减的;可逆计数器—既可递增,也可递减的。
根据计数脉冲引入方式不同,计数器又可分为同步计数器—计数脉冲直接加到所有触发器的时钟脉冲(CP)输入端;异步计数器—计数脉冲不是直接加到所有触发器的时钟脉冲(CP)输入端。
1.异步二进制加法计数器异步二进制加法计数器是比较简单的。
图1.8.1(a)是由4个JK(选用双JK74LS112)触发器构成的4位二进制(十六进制)异步加法计数器,图1.8.1(b)和(c)分别为其状态图和波形图。
对于所得状态图和波形图可以这样理解:触发器FFO(最低位)在每个计数沿(CP)的下降沿(1 → 0)翻转,触发器FF1的C P端接FF0的Q0端,因而当FFO(Q O)由1→ 0时,FF1翻转。
类似地,当FF1(Q1)由1→0时,FF2翻转,FF2(Q2)由1→0时,FF3翻转。
4位二进制异步加法计数器从起始态0000到1111共十六个状态,因此,它是十六进制加法计数器,也称模16加法计数器(模M=16)。
从波形图可看到,Q0 的周期是CP周期的二倍;Q1是Q0的二倍,CP的四倍;Q2是Q1 的二倍,Q0的四倍,CP的八倍;Q3是Q2的二倍,Q1的四倍,Q0的八倍,CP的十六倍。
实验三P3.3口输入、P1口输出实验
![实验三P3.3口输入、P1口输出实验](https://img.taocdn.com/s3/m/8af6616a27d3240c8447ef96.png)
实验三 4.1 P3.3口输入、P1口输出实验系别专业:电子系12级电信2班学号:3121003210姓名:李书杰指导老师:刘志群老师4.1.1 实验要求1. 复习Keil C51调试硬件的操作方法。
2. 复习单片机作为通用I/O口的注意事项。
3. 复习单片机操作I/O口的程序设计方法。
4.1.2 实验设备PC 机一台,TD-NMC+教学实验系统4.1.3 实验目的1. 熟悉单片机仿真实验软件Keil C51调试硬件的方法。
2. 了解P3、P1口作通用I/O口的使用方法。
3. 掌握延时子程序的编写和使用方法。
4. 了解单片机对简单I/O的扩展方法。
4.1.4 实验内容实验1根据TD-NMC+实验平台的单元电路,构建一个硬件系统,并编写实验程序实现如下功能:将P1口的低4位定义为输出,高4位定义为输入,数字量从P1口的高4位输入,从P1口的低4位输出控制发光二极管的亮灭。
程序如下:KEY:MOV P1,#0F0H ;令所有行为低电平KEY1:MOV R7,#0FFH ;设置计数常数DJNZ R7,KEY1 ;延时MOV A, P1 ;读取P1口的列值ANL A,#0F0H ;判别有键值按下吗?CPL A ;求反后,有高电平就有键按下JZ EKEY ;无键按下时退出LCALL DEL20 ms ;延时20 ms去抖动SKEY:MOV A,#00 ;下面进行行扫描,1行1行扫MOV R0,A ;R0作为行计数器,开始为0MOV R1,A ;R1作为列计数器,开始为0MOV R3 #0FEH ;R3暂存行扫描字,低4位为行扫描字SKEY2:MOV A,R3MOV P1,A ;输出行扫描字,高4位全1NOPNOPNOPMOV A,P1 ;读列值MOV R1,A ;暂存列值ANL A,#0F0H ;取列值CPL A ;高电平则有键闭合S123:JNZ SKEY3 ;有键按下转SKEY3INC R0 ;行计数器加1SETB C ;准备将行扫描左移1位,;形成下一行扫描字,C=1保证输出行扫描字中高4位全为1,;为列输入作准备,低4位中只有1位为0MOV A,R3 ;R3带进位C左移1位RLC AMOV R3,A ;形成下一行扫描字→R3MOV A,R0CJNE A,#04H,SKEY1 ;最后一行扫(4次)完了吗?EKEY:RET;列号译码SKEY3:MOV A,R1JNB ACC.4,SKEY5JNB ACC.5,SKEY6JNB ACC.6,SKEY7JNB ACC.7,SKEY8AJMP EKEYSKEY5:MOV A,#00HMOV R2,A ;存0列号AJMP DKEYSKEY6:MOV A,#01HMOV R2,A ;存1列号AJMP DKEYSKEY7:MOV A,#02HMOV R2,A ;存2列号AJMP DKEYSKEY8:MOV A,#03HMOV R2,A ;存3列号AJMP DKEY;键位置译码DKEY:MOV A,R0 ;取行号ACALL DECODEAJMP EKEY;键值(键号)译码DECODE:MOV A,R0 ;取行号送AMOV B,#04H ;每一行按键个数MUL AB ;行号×按键数ADD A,R2 ;行号×按键数+列号=键值RET实验2根据TD-NMC+实验平台的单元电路,构建一个硬件系统,并编写实验程序实现如下功能:将P3.3口作状态输入口(接一个逻辑开关,即拨码开关),P1口做输入口(接八只发光二极管D0~D7)。
单片机原理实验报告
![单片机原理实验报告](https://img.taocdn.com/s3/m/b9003562f56527d3240c844769eae009591ba255.png)
实验一:系统认识实验一、设计目的:1. 学习 Keil C51 集成开发环境的操作;2. 熟悉 TD-51 系统板的结构及使用。
二、设计内容:编写程序,将 00H~0FH 共 16 个数写入单片机内部 RAM 的 30H~3FH 空间。
三、设计步骤:1. 创建 Keil C51 应用程序(1)运行 Keil C51 软件,进入 Keil C51 集成开发环境。
(2)选择工具栏的 Project 选项,弹出下拉菜单,选择 NewProject 命令,建立一个新的μVision2 工程。
这时会弹出文件保存对话框,选择工程目录并输入文件名 Asm1 后,单击保存。
(3)工程建立完毕后,μVision2 会马上弹出器件选择窗口。
器件选择的目的是告诉μVision2 使用的 80C51 芯片的型号是哪一个公司的哪一个型号,不同型号的 51 芯片内部资源是不同的。
此时选择 SST 公司的 SST89E554RC。
(4)到此建立好一个空白工程,现在需要人工为工程添加程序文件,如果还没有程序文件则必须建立它。
选择工具栏的 File 选项,在弹出的下拉菜单中选择 New 目录。
(5)输入程序,完毕后点击“保存”命令保存源程序,将 Text1 保存成Asm1.asm。
Keil C51 支持汇编和 C 语言,μVision2 会根据文件后缀判断文件的类型,进行自动处理,因此保存时需要输入文件名及扩展名.ASM 或.C。
保存后,文件中字体的颜色会发生一定变化,关键字会变为蓝色。
(6)程序文件建立后,并没有与 Asm1.Uv2 工程建立任何关系。
此时,需要将 Asm1.asm 源程序添加到 Asm1.Uv2 工程中,构成一个完整的工程项目。
在Project Window 窗口内,选中Source Group1 点击鼠标右键,选择 Add Files to Group‘Source Group1’命令,此时弹出添加源程序文件对话框,选择文件Asm1.asm,点击 Add 命令按钮即可将源程序文件添加到工程中。
实验3 最简单的C程序设计——顺序程序设计
![实验3 最简单的C程序设计——顺序程序设计](https://img.taocdn.com/s3/m/70a9b025aaea998fcc220e79.png)
实验3 最简单的C程序设计——顺序程序设计1.实验目的⑴掌握C语言中使用最多的一种语句——赋值语句的使用方法。
⑵掌握各种类型数据的输入输出的方法,能正确使用各种格式转换符。
⑶进一步掌握编写程序和调试程序的方法。
2.实验内容和步骤⑴通过下面的程序掌握各种格式转化符的正确使用方法。
①输入以下程序:#include <stdio.h>int main(){int a,b;float d,e;char c1,c2;double f,g;long m,n;unsigned int p,q;a=61;b=62;c1='a';c2='b';d=3.56;e=-6.87;f=3157.890121;g=0.123456789;m=50000;n=-60000;p=32768;q=40000;printf("a=%d,b=%d\nc1=%c,c2=%c\nd=%6.2f,e=%6.2f\n",a,b,c1,c2,d,e); printf("f=%1.56f,g=%15.12f\nm=%ld,n=%ld\np=%u,q=%u\n",f,g,m,n,p,q); }②运行此程序并分析结果。
解:运行时输出:③在此基础上,将程序第10—14行改为:c1=a;c2=b;f=3157.890121;g=0.123456789;d=f;e=g;p=a=m=50000;q=b=n=-60000;运行程序,分析结果。
解:运行时输出:④用sizeof运算符分别检测程序中各类型的数据占多少字节。
例如,int型变量a的字节数为sizeof(a)或sizeof(int),用printf函数语句输出各类型变量的长度(字节数)。
解:sizeof(int) = 4sizeof(float) = 4;sizeof(double) = 8;sizeof(char) = 1;char *p;sizeof(p) = 4;sizeof(long) = 4;sizeof(unsigned int) = 4;⑵设圆半径r=1.5,圆柱高h=3,求圆周长、圆面积、圆球表面积、圆球体积、圆柱体积。
单片机《输入输出口》实验报告
![单片机《输入输出口》实验报告](https://img.taocdn.com/s3/m/f36b7d3acdbff121dd36a32d7375a417866fc1bd.png)
实验一I/O口输入输出实验一、实验目的1. 掌握单片机的并行I/O口的接口结构、驱动能力特点和应用处理方法;2. 掌握单片机I/O引脚作为输出引脚的使用方法;3. 掌握单片机I/O口配置方法4. 掌握利用单片机I/O口设计单片机应用程序用输入控制输出的方法;5. 掌握单片机控制程序的结构。
二、实验原理及实验内容实验要求:利用单片机并行口做不规则花样流水灯,流水花样不低于16个。
实验原理:1.LED原理图2.STC15的IO口原理P6m0为0时,P6m1为0时,IO口模式为准双向口(传统8051 I/O口模式,弱上拉)灌电流可达20mA,拉电流为270微安,由于制造误差,实际为270~150微安* P6m0为0时,P6m1为1时,为推挽输出(强上拉输出,可达20mA,要加限流电阻)* P6m0为1时,P6m1为0时,(为高阻输出电流既不能流入也不能流出)P6m0为1时,P6m1为1时,为开漏(Open Drain),内部上拉电阻断开。
开漏模式即可读取外部状态也可以对外输出(高低电平)。
按照表格寄存器内容,我们对8个LED1,也就是P6口进行配置,当P6输出低电平时LED被点亮。
所以配置如下:P6M1 &= 0x00;P6M0 &= 0x00; //作为普通IO口,为弱上拉sbit KEY1=P2^0;sbit KEY2=P2^1;//定义两个按键由于STC15F2K60S2寄存器初始化时默认是:P6M1=0x00;P6M0 = 0x00;3.程序流程图主循环程序流程图三、实验程序#include <STC15.h>#include <intrins.h>#define Uchar unsigned char#define Uint unsigned intint LED[]={0xfc,0xf3,0xcf,0x3f,0xe7,0xdb,0xbd,0x7e,0x7e,0xbd,0xdb,0xe7, 0xfe,0xfb,0xef,0xbf,0xfd,0xf7,0xdf,0x7f};void P6Init()//IO口初始化函数{P6M0=0X00;P6M1=0X00;}void delay3s(void) //误差0us{unsigned char a,b,c;for(c=189;c>0;c--)for(b=230;b>0;b--)for(a=33;a>0;a--);}void main(){Uchar i=0;P0Init();while(1){for(i=0;i<20;i++){P6=LED[i];delay3s();}}}四、实验仪器和设备4.使用了keil软件Proteus 8 Professional软件。
计算机组成原理实验报告3-数据输出实验移位门实验
![计算机组成原理实验报告3-数据输出实验移位门实验](https://img.taocdn.com/s3/m/73c5d360a517866fb84ae45c3b3567ec102ddcaf.png)
2.3 数据输出实验/移位门实验一.实验要求:利用CPTH 实验仪的开关做为控制信号,实验仪的开关做为控制信号,将指定寄存器的内容读到数据总线将指定寄存器的内容读到数据总线DBUS 上。
上。
二.实验目的:1、了解模型机中多寄存器接数据总线的实现原理。
、了解模型机中多寄存器接数据总线的实现原理。
2、 了解运算器中移位功能的实现方法。
了解运算器中移位功能的实现方法。
三.实验电路:CPTH 中有7 个寄存器可以向数据总线输出数据,个寄存器可以向数据总线输出数据,但在某一特定时刻只能有但在某一特定时刻只能有一个寄存器输出数据,由X2,X1,X0决定那一个寄存器输出数据。
决定那一个寄存器输出数据。
数据输出选择器原理图数据输出选择器原理图连接线表连接线表四.实验数据及步骤:实验1:数据输出实验置下表的控制信号,检验输出结果置下表的控制信号,检验输出结果实验2:移位实验ALU 直接输出和零标志位产生原理图直接输出和零标志位产生原理图ALU 左移输出原理图左移输出原理图ALU 右移输出原理图右移输出原理图直通门将运算器的结果不移位送总线。
当X2X1X0=100 时运算器结果通过直通门送到数据总线。
同时,直通门上还有判0 电路,当运算器的结果为全0 时,Z=1,右移门将运算器的结果右移一位送总线。
当X2X1X0=101 时运算器结果通过右通门送到数据总线。
时运算器结果通过右通门送到数据总线。
具体内部连接具体内部连接是:是: Cy 与 CN →DBUS7ALU7→DBUS6ALU6→DBUS5ALU5→DBUS4ALU4 → DBUS3ALU3 →DBUS2 ALU2 →DBUS1 ALU1 →DBUS0 Cy 与 CN → DBUS7当不带进位移位时(CN=0):0 →DBUS7 当带进位移位时(CN=1):Cy →DBUS7左移门将运算器的结果左移一位送总线。
当X2X1X0=110 时运算器结果通过左通门送到数据总线。
大学计算机实验3-实验报告
![大学计算机实验3-实验报告](https://img.taocdn.com/s3/m/f17c2c89250c844769eae009581b6bd97f19bc22.png)
大学计算机实验3-实验报告大学计算机实验 3 实验报告一、实验目的本次实验旨在通过实际操作,加深对计算机相关知识的理解和掌握,提高我们的计算机应用能力和问题解决能力。
具体目标包括:1、熟悉特定计算机软件或工具的使用方法和功能。
2、培养我们的实践操作能力,能够独立完成相关任务。
3、增强对计算机系统和程序运行原理的认识。
二、实验环境本次实验在学校的计算机实验室进行,实验室配备了高性能的计算机设备,安装了所需的操作系统和软件工具,具体如下:1、操作系统:Windows 10 专业版。
2、应用软件:具体软件名称 1、具体软件名称 2等。
三、实验内容及步骤(一)实验任务一:任务一的具体描述1、启动相关软件,熟悉其操作界面和基本功能。
2、按照给定的要求,进行数据的输入和处理。
首先,打开具体文件或项目,在相应的位置输入数据。
然后,运用软件提供的功能对数据进行整理和分析。
3、观察数据处理的结果,检查是否符合预期。
(二)实验任务二:任务二的具体描述1、切换到另一个软件工具,了解其特点和使用规则。
2、依据给定的案例,进行模拟操作。
设定相关参数,如列举参数名称和取值。
运行程序,观察输出结果。
(三)实验任务三:任务三的具体描述1、综合运用之前所学的知识和技能,解决一个较为复杂的实际问题。
2、制定解决方案,明确操作流程。
3、逐步实施解决方案,在过程中不断调整和优化。
四、实验中遇到的问题及解决方法在实验过程中,遇到了一些问题,通过以下方法得以解决:1、问题一:在进行具体操作时,出现了错误描述的错误提示。
解决方法:查阅相关的帮助文档和在线资料,发现是由于原因分析导致的。
通过具体的解决步骤,成功解决了该问题。
2、问题二:对于某个概念或功能理解不够清晰,导致操作失误。
解决方法:向老师和同学请教,经过他们的耐心讲解和示范,加深了对该内容的理解,从而能够正确完成操作。
五、实验结果与分析(一)实验任务一的结果经过数据处理,得到了具体的结果描述。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验三数据的输入与输出
一、实验目的
1.掌握Print方法的使用,尤其是各种输出格式的设置。
2.掌握InputBox函数的使用。
3.掌握MsgBox函数和MsgBox语句的使用。
二、实验内容
1.实验准备
在练习文件夹中建立vb3-1、vb3-2、vb3-3、vb3-4、vb3-5、vb3-6、vb3-7文件夹。
2.Print方法实验
例1:设计一个简单的VB程序。
程序运行时,单击窗体,分别用紧凑格式、标准格式和自定义格式,在窗体上输出打印项。
界面如下:
图打印格式实验窗体界面设计
(1)创建工程。
(2)建立用户界面在窗体下方画5个命令按钮,自左至右,名称依次为Command1 ~ Command5,如图所示。
(3)设置各对象的属性。
各控件主要属性的设置参见表。
表属性设置
对象属性属性值说明
Command1Caption紧凑格式标题
Command2Caption标准格式
Command3Caption自定义格式
Command4Caption换行
Command5Caption清除
(4)编写命令按钮的事件代码。
双击“紧凑格式”按钮,进入代码编写窗口,编写如下代码:
在输入以上代码时要注意区分中英文双引号。
中文标点只能作为字符串的一部分或出现在注释文字之中。
(5)调试运行程序。
单击菜单[运行]—[启动],或者单击工具栏的“启动”按钮,单击各个按钮,查看
效果。
如单击“标准格式”和“自定义格式”按钮后,效果如图所示。
图 Print输出效果
保存结果到练习文件夹中的vb3-1文件夹。
3.InputBox函数实验
例2:设计一个简单的VB程序,界面如下:
图 InputBox函数实验界面设计
(1)创建工程。
(2)建立用户界面。
各控件主要属性的设置参见表。
表属性设置
对象属性属性值说明
Form1Caption InputBox函数实验标题
Label1Caption串相加标题
Label2Caption数相加标题
Text1Text清空
Text2Text清空Command1Caption计算并输出标题
(3)双击按钮控件,切换到代码设计窗口,添加程序代码如下:
(4)调试运行程序。
单击“计算输出”按钮,弹出InputBox对话框,输入数据,如图所示,然后单击“确定”按钮或者直接回车。
两个数据都输入之后,返回到窗体,在两个文本框中可见到串相加和数相加的结果,如图所示。
图 InputBox函数实验数据输入
图 InputBox函数实验运行结果
保存结果到练习文件夹中的vb3-2文件夹。
4.MsgBox实验
例3:设计一个简单的VB程序。
输入一个字符,判断它是大写字母、小写字母、数字,还是其他符号。
程序代码如下:
(1)创建工程。
(2)双击窗体控件,切换到代码设计窗口,输入代码:
(3)调试运行程序。
运行调试:单击窗体,在输入对话框中输入一个字符,程
序将根据输入字符的类型,例如输入“H”后,MsgBox弹出如图
所示的对话框。
保存结果到练习文件夹中的vb3-3文件夹。
图测试字符值对话框三、思考题
1.设计一个程序。
利用Tab函数和Print方法在窗体上显示表达式的值。
在代码窗口中输入以下程序代码段,运行程序,单击窗体,观察在窗体上显示的结果。
请写出程序运行的结果。
保存结果到练习文件夹中的vb3-4文件夹。
2.设计一个程序。
要求:设有变量a=2,b=5,c=4,d=3,e=6(变量的值通过InputBox函数输入),计算表达式a+b>c and d*a=e的值,然后将结果在窗体上输出。
保存结果到练习文件夹中的vb3-5文件夹。
3.设计一个程序。
要求:单击一次按钮可以产生一个[60,90]之间的随机整数并显示在标签上。
保存结果到练习文件夹中的vb3-6文件夹。
4.设计一个程序。
要求:在窗体上显示如下图案。
保存结果到练习文件夹中的vb3-7文件夹。