实验内容:
1、 八字段LED数码管驱动显示工作原理
2、 74LS138三—八译码器工作原理及如何控制数码管工作原理
3、 数码管动态显示工作原理分析与计算
4、 数码管多种显示实验
实验任务:
1、让Y0所对应的数码管显示“0”—“9”,间隔1秒
#include<reg52.h>
#define uint unsigned int
#define uchar unsigned char
int a,num;
sbit A0=P2^0;
sbit A1=P2^1;
sbit A3=P2^2;
void init();
uchar code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};
void main()
{
init();
num=0;
P0=table[0];
while(1)
{
A0=0;
A1=0;
A3=0;
if(a==20)
{
a=0;
num++;
if(num==10)
num=0;
P0=table[num];
}
}
}
void timer0() interrupt 1
{
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
a++;
}
void init()
{
TMOD=0x01;
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
EA=1;
ET0=1;
TR0=1;
}
2、让Y0所对应的数码管显示“0”,Y1显示“1”,Y2显示“2”…………以此类推最后Y7显示“7”,间隔1秒
#include<reg52.h>
#define uint unsigned int
#define uchar unsigned char
int a,num;
sbit A0=P2^0;
sbit A1=P2^1;
sbit A2=P2^2;
void init();
uchar code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};
void main()
{
init();
num=0;
P0=table[0];
while(1)
{
if(a==20)
{
a=0;
num++;
if(num==8)
num=0;
}
switch(num) //位选,选择点亮的数码管,
{
case(0):
A0=0;A1=0;A2=0; break;
case(1):
A0=1;A1=0;A2=0; break;
case(2):
A0=0;A1=1;A2=0; break;
case(3):
A0=1;A1=1;A2=0; break;
case(4):
A0=0;A1=0;A2=1; break;
case(5):
A0=1;A1=0;A2=1; break;
case(6):
A0=0;A1=1;A2=1; break;
case(7):
A0=1;A1=1;A2=1; break;
}
P0=table[num];
}
}
void timer0() interrupt 1
{
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
a++;
}
void init()
{
TMOD=0x01;
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
EA=1;
ET0=1;
TR0=1;
}
3、让Y0所对应的数码管显示“0”,Y1显示“1”,Y2显示“2”…………以此类推最后Y7显示“7”,间隔4毫秒,注意观察现象,和实验2有何区别
#include<reg52.h>
#define uint unsigned int
#define uchar unsigned char
int a,num;
sbit A0=P2^0;
sbit A1=P2^1;
sbit A2=P2^2;
void init();
uchar code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};
void main()
{
init();
num=0;
P0=table[0];
while(1)
{
if(a==4)
{
a=0;
num++;
if(num==8)
num=0;
}
switch(num) //位选,选择点亮的数码管,
{
case(0):
A0=0;A1=0;A2=0; break;
case(1):
A0=1;A1=0;A2=0; break;
case(2):
A0=0;A1=1;A2=0; break;
case(3):
A0=1;A1=1;A2=0; break;
case(4):
A0=0;A1=0;A2=1; break;
case(5):
A0=1;A1=0;A2=1; break;
case(6):
A0=0;A1=1;A2=1; break;
case(7):
A0=1;A1=1;A2=1; break;
}
P0=table[num];
}
}
void timer0() interrupt 1
{
TH0=(65536-1000)/256;
TL0=(65536-1000)%256;
a++;
}
void init()
{
TMOD=0x01;
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
EA=1;
ET0=1;
TR0=1;
}
4、让Y0所对应的数码管显示“5”,停留1秒,再让Y1显示“5”,…………以此类推最后Y7显示“5”,移动字幕
#include<reg52.h>
#define uint unsigned int
#define uchar unsigned char
int a,num;
sbit A0=P2^0;
sbit A1=P2^1;
sbit A2=P2^2;
void init();
uchar code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};
void main()
{
init();
num=0;
P0=table[0];
while(1)
{
if(a==20)
{
a=0;
num++;
if(num==8)
num=0;
}
switch(num) //位选,选择点亮的数码管,
{
case(0):
A0=0;A1=0;A2=0; break;
case(1):
A0=1;A1=0;A2=0; break;
case(2):
A0=0;A1=1;A2=0; break;
case(3):
A0=1;A1=1;A2=0; break;
case(4):
A0=0;A1=0;A2=1; break;
case(5):
A0=1;A1=0;A2=1; break;
case(6):
A0=0;A1=1;A2=1; break;
case(7):
A0=1;A1=1;A2=1; break;
}
P0=table[5];
}
}
void timer0() interrupt 1
{
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
a++;
}
void init()
{
TMOD=0x01;
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
EA=1;
ET0=1;
TR0=1;
}
5、在8个数码管上稳定显示“i love you”
#include<reg52.h>
#define uint unsigned int
#define uchar unsigned char
int a,num;
sbit A0=P2^0;
sbit A1=P2^1;
sbit A2=P2^2;
void init();
uchar code table[]={0x30,0x38,0x3f,0x3e,0x79,0x6e,0x3f,0x3e};
void main()
{
init();
num=0;
P0=table[0];
while(1)
{
if(a==2)
{
a=0;
num++;
if(num==8)
num=0;
}
switch(num) //位选,选择点亮的数码管,
{
case(0):
A0=0;A1=0;A2=0; break;
case(1):
A0=1;A1=0;A2=0; break;
case(2):
A0=0;A1=1;A2=0; break;
case(3):
A0=1;A1=1;A2=0; break;
case(4):
A0=0;A1=0;A2=1; break;
case(5):
A0=1;A1=0;A2=1; break;
case(6):
A0=0;A1=1;A2=1; break;
case(7):
A0=1;A1=1;A2=1; break;
}
P0=table[num];
}
}
void timer0() interrupt 1
{
TH0=(65536-1000)/256;
TL0=(65536-1000)%256;
a++;
}
void init()
{
TMOD=0x01;
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
EA=1;
ET0=1;
TR0=1;
}
计算机控制技术实验报告
基础实验
(1) 了解工业控制机与微机的相同点和不同点。
(2) 掌握利用工业控制语言(梯形图)编写控制循环。
(3) 理解PLC输入点和输出点的关系,模拟量输入与开关量输入的区别,学会在实验室模拟现场调试。
利用Step7编程软件编写梯形图程序,实现工作台的顺序控制过程,通过输入点和输出点的二极管显示变化调试程序。
实现当按下某一个开关时,模拟控制工作台快速向前的输出灯点亮,说明工作台正在快速向前运动;当拨动另一开关时,模拟快速向前的灯灭,而指示慢速向前的灯亮;当拨第三个开关时,指示慢速向前的灯亮一定的时间后(5秒),指示快速后退的灯亮同时慢速向前的灯灭,直到模拟后退到位开关拨到位后,后退指示灯自动熄灭。
用I0.0,I0.1,I0.2,I0.3这四个拨动开关控制输出灯的变化,输出灯有Q0.0,Q0.1,Q0.2
I0.0 : 控制第一个灯亮
I0.1:第二个灯亮的同时第一个灯熄灭
I0.2: 2秒后第三个灯亮
I0.3: 重置操作,在任何状态下都可以重置,所有灯灭。
下面展示梯形图:
图1
图2
图3
图4
图1中显示网络1、2、3,由网络1确定Q0.0的亮灭,当I0.0有输入时,由于I0.1、I0.3为常闭,所以Q0.0会点亮。添加
会使Q0.0常亮,不会因I0.0的断开而熄灭。
同理网络2完成Q0.1的点亮功能,I0.3是常闭,完成复位操作,如图2中的网络6。实现当按下某一个开关时,模拟控制工作台快速向前的输出灯点亮,说明工作台正在快速向前运动;
网络3中按下I0.2时,触发M0.0,开始计时,如图2网络4所示,为计时器状态。当计时时间到达2S时,网络5通,Q0.2亮,同时Q0.1灭,实现当拨第三个开关时,指示慢速向前的灯亮一定的时间后(5秒),指示快速后退的灯亮同时慢速向前的灯灭.
网络6中,按下I0.3时,对网络实现重置,所有的灯在按下I0.3时都会熄灭。
结果情况详见附件中的视频。
通过本次实验,我们实现了简单的开关对输出灯的控制,并且运用了定时器的定时功能。了解了工业控制机与微机的相同点和不同点。初步掌握利用工业控制语言(梯形图)编写控制循环。深入理解PLC输入点和输出点的关系,模拟量输入与开关量输入的区别,学会在实验室模拟现场调试。
总之,计算机控制技术很有趣,希望在以后的课程中更加深入地学习到新的知识,并且能够实际运用。
计算机控制系统实验报告姓名罗才宝学号0953505008指导教师专业年级所在院系完成日期实验一DA数模转换实验一实验目的1掌握数模…
杭州电子科技大学实验报告课程名称指导老师学生姓名学生学号学生班级所学专业实验日期实验1常规PID控制算法仿真1实验参数shiyan…
计算机控制技术实验报告题目专业姓名学号指导老师一实验目的实验一AD转换实验1学习掌握模数信号转换的基本原理2掌握ADC0809芯片…
实验内容1八字段LED数码管驱动显示工作原理274LS138三八译码器工作原理及如何控制数码管工作原理3数码管动态显示工作原理分析…
计算机控制实验报告班级姓名学号实验二最少拍控制系统1实验结果图21单位阶跃输入下最少拍有纹波控制系统仿真结构模型图22单位阶跃输入…
计算机控制系统实验报告姓名罗才宝学号0953505008指导教师专业年级所在院系完成日期实验一DA数模转换实验一实验目的1掌握数模…
计算机控制实验报告班级姓名学号实验二最少拍控制系统1实验结果图21单位阶跃输入下最少拍有纹波控制系统仿真结构模型图22单位阶跃输入…
杭州电子科技大学实验报告课程名称指导老师学生姓名学生学号学生班级所学专业实验日期实验1常规PID控制算法仿真1实验参数shiyan…
计算机控制系统实验报告第二部分一实验日期20xx424实验时间9501130小组成员薛有华武毅男二实验目的1了解步进电机温度PID…
微机原理与接口技术课程设计报告交通灯控制系统班级学号姓名成绩20xx年7月1日1目录1课程设计的目的和要求32系统的主要功能作用及…