文档库 最新最全的文档下载
当前位置:文档库 › 实验九 存储过程和触发器

实验九 存储过程和触发器

实验九  存储过程和触发器
实验九  存储过程和触发器

实验九存储过程和触发器

实验内容

在已建立的TSGL数据库的基础上,按如下要求对数据库进行操作,按同前的命名要求保存操作代码和截图。

1. 利用TSGL数据库中的TREADER表和TBOOK表和historytable表,编写一无参存储过程用于查询每个读者的借阅历史,然后调用该存储过程。

2. 编写一存储过程,根据TSGL数据库的三个表查询指定读者(指定借书证号或指定姓名等)当前的借书情况。

3. 利用TSGL数据库中的TREADER表、TBOOK表及historytable表创建一存储过程,查询指定图书(ISBN或书名)的借阅历史。该存储过程在参数中使用模糊查询,如果没有提供参数,则使用预设的默认值。

4. 编写一存储过程,统计指定图书在给定时间段内的借阅次数,存储过程中使用输入和输出参数。

5. 编写一存储过程,在TSGL数据库的TREADER表上声明并打开一个游标。通过游标读取所需信息。

6. 创建加密过程,使用sp_helptext系统存储过程获得关于加密的存储过程的信息,然后尝试直接从syscomment表中获取关于该过程的信息。

7. 对TSGL数据库中的三个表分别创建添加、修改、删除一条记录的存储过程。

8. 创建触发器,当向LEND表中插入一条记录时,将TREADER表中该学生的借书数加1,将TBOOK表中该书的库存量减1。

9. 创建触发器,当修改TREADER表中的借书证号时,同时也要将LEND表中的借书证号修改成相应的借书证号(假设TREADER表和LEND表之间没有定义外键约束)

10. 在删除TREADERB表中的一条生记录时将LEND表中该学生的相应记录也删除。

11. 在数据库TSGL中创建一触发器,当向lend表插入一条记录时,检查该记录的借书证号在TREADER表中是否存在,检查图书的ISBN在TBOOK表中是否存在,以及图书的库存量是否大于0,若有一项为否,则不允许插入。

12. 在数据库TSGL中创建一触发器,当删除TREADER表一条记录时,检查该记录的借书证号在JY表中是否存在,如果存在,则不允许删除。

13. 修改数据库TSGL中在TREADER表上定义的触发器(内容自定)。

14. 删除以上所建触发器。

-- 1. 利用TSGL数据库中的TREADER表和TBOOK表和historytable表,

-- 编写一无参存储过程用于查询每个读者的借阅历史,然后调用该存储过程。

USE TSGL203

GO

IF EXISTS(SELECT name FROM sys.objects WHERE name = 'lend_history_info')

DROP PROCEDURE lend_history_info

GO

--创建查询读者借阅历史的存储过程

CREATE PROCEDURE lend_history_info

WITH ENCRYPTION

AS

BEGIN

SELECT r.lno,r.dept,https://www.wendangku.net/doc/2715220813.html,,r.bornum,b.ISBN,h.barno,b.bname,h.bbt,h.rbbt

FROM (SELECT lno,dept,name,bornum FROM reader203) r,

(SELECT ISBN,bname FROM book203)b,

(SELECT lno,ISBN,barno,bbt,rbbt FROM history203) h

WHERE r.lno = h.lno and h.ISBN =b.ISBN

END

GO

--执行查询读者借阅历史的存储过程

EXEC lend_history_info;

USE TSGL203

GO

IF EXISTS(SELECT name FROM sysobjects WHERE name = 'lend_current_info')

DROP PROCEDURE lend_current_info

GO

--创建查询读者当前借阅情况的存储过程

CREATE PROCEDURE lend_current_info

AS

BEGIN

SELECT r.lno,dept,name,bornum,b.ISBN,barno,bname,bbt

FROM (SELECT lno,dept,name,bornum FROM reader203) r,

lend203 l,book203 b

WHERE r.lno = l.lno and l.ISBN = b.ISBN

END

GO

--执行查询读者当前借阅情况的存储过程

EXEC lend_current_info ;

GO

-- 2. 编写一存储过程,根据TSGL数据库的三个表查询指定读者(指定借书证号或指定姓名等)当前的借书情况。

USE TSGL203

GO

IF EXISTS(SELECT name FROM sys.objects WHERE name = 'lend_lno_info')

DROP PROCEDURE lend_lno_info

GO

CREATE PROCEDURE lend_lno_info

@lno char(12)

AS

BEGIN

SELECT r.lno,dept,name,bornum,b.ISBN,barno,bname

FROM (SELECT lno,dept,name,bornum FROM reader203 WHERE lno = @lno) r, lend203 l,book203 b

WHERE r.lno = l.lno and l.ISBN = b.ISBN

END

GO

EXEC lend_lno_info 200807042101;

-- 3. 利用TSGL数据库中的TREADER表、TBOOK表及historytable表创建一存储过程,

-- 查询指定图书(ISBN或书名)的借阅历史。该存储过程在参数中使用模糊查询,如果没有提供参数,则使用预设的默认值。

USE TSGL203

GO

IF EXISTS(SELECT name FROM sys.objects WHERE name = 'lend_book_info')

DROP PROCEDURE lend_book_info

GO

--创建查询指定图书(ISBN或书名)的借阅历史存储过程

CREATE PROCEDURE lend_book_info

@bname varchar(40) ='%'

AS

BEGIN

SELECT b.ISBN,barno,bname,r.lno,r.dept,https://www.wendangku.net/doc/2715220813.html,,bbt,rbbt

FROM (SELECT lno,ISBN,barno,bbt,rbbt FROM history203) h,

(SELECT ISBN,bname FROM book203 WHERE bname like @bname+'%') b,

(SELECT lno,dept,name,bornum FROM reader203) r

WHERE h.ISBN = b.ISBN AND r.lno = h.lno

END

GO

--执行存储过程

EXEC lend_book_info '计算机';

EXEC lend_book_info;

EXEC lend_book_info 'SQL SERVER';

-- 4.编写一存储过程,统计指定图书在给定时间段内的借阅次数,存储过程中使用输入和输出参数。

--如果存在同名存储过程则删除

USE TSGL203

GO

IF EXISTS(SELECT name FROM sys.objects WHERE name = 'lend_book_times')

DROP PROCEDURE lend_book_times

GO

--创建新的存储过程

CREATE PROCEDURE lend_book_times

@bname varchar(40),@start date,@end date,

@times int OUTPUT

AS

BEGIN

SELECT b.bname,h.ISBN,COUNT(h.ISBN) AS 借阅次数

FROM (SELECT lno,ISBN,barno,bbt,rbbt FROM history203) h,

(SELECT ISBN,bname FROM book203 WHERE bname like @bname+'%') b

WHERE h.ISBN = b.ISBN AND bbt >@start AND bbt < @end

group by b.bname,h.ISBN

END

GO

--执行存储过程

DECLARE @times int

EXECUTE lend_book_times '','2013-02-01','2013-05-01',@times OUTPUT

GO

DECLARE @times int

EXECUTE lend_book_times '计算机','2013-02-01','2013-05-01',@times OUTPUT

-- 5.编写一存储过程,在TSGL数据库的TREADER表上声明并打开一个游标。通过游标读取所需信息。

--如果存在同名存储过程则删除

USE TSGL203

GO

IF EXISTS(SELECT name FROM sys.objects WHERE name = 'reader_info')

DROP PROCEDURE reader_info

GO

--创建新的存储过程

CREATE PROCEDURE reader_info

@cursor CURSOR V ARYING OUTPUT

AS

BEGIN

SET @cursor = CURSOR FORW ARD_ONL Y STATIC FOR

SELECT *

FROM reader203

OPEN @cursor

END

--执行存储过程

DECLARE @MyCursor CURSOR

EXEC reader_info @cursor = @MyCursor OUTPUT

--读取游标中数据

FETCH NEXT FROM @MyCursor

WHILE(@@FETCH_STA TUS = 0)

BEGIN

FETCH NEXT FROM @MyCursor

END

CLOSE @MyCursor

DEALLOCATE @MyCursor

GO

-- 6.创建加密过程,使用sp_helptext系统存储过程获得关于加密的存储过程的信息,-- 然后尝试直接从syscomment表中获取关于该过程的信息。

CREATE PROCEDURE encrypt_this

WITH ENCRYPTION

AS

SELECT *

FROM reader203

EXEC sp_helptext encrypt_this

--对已加密的存储过程在syscomments表中的检索

SELECT * FROM sys.syscomments

WHERE id =(

SELECT object_id

FROM sys.objects

WHERE name = 'encrypt_this');

--对未加密的存储过程在syscomments表中的检索

SELECT text FROM sys.syscomments

WHERE id =(

SELECT object_id

FROM sys.objects

WHERE name = 'reader_info');

--7.对TSGL数据库中的三个表分别创建添加、修改、删除一条记录的存储过程。USE TSGL203

GO

--创建更新读者表中读者号的存储过程

IF EXISTS(SELECT name FROM sys.objects WHERE name = 'reader_update')

DROP PROCEDURE reader_update

GO

CREATE PROC reader_update @new_lno char(12),@old_lno char(12)

AS

BEGIN

UPDA TE reader203

SET lno = @new_lno

WHERE lno = @old_lno

PRINT '读者号已更新.'

END

--创建根据读者号删除读者表中一条记录的存储过程

IF EXISTS(SELECT name FROM sys.objects WHERE name = 'reader_delete')

DROP PROCEDURE reader_delete

GO

CREATE PROC reader_delete @lno char(12)

AS

BEGIN

DELETE reader203

WHERE lno = @lno

PRINT '已删除读者表中一条记录.'

END

--创建删除借阅表中一条记录的存储过程

IF EXISTS(SELECT name FROM sys.objects WHERE name = 'lend_delete')

DROP PROCEDURE lend_delete

GO

CREATE PROC lend_delete @lno char(12),@ISBN varchar(16),@barno varchar(10)

AS

BEGIN

DELETE

FROM lend203

WHERE lno = @lno AND ISBN = @ISBN AND barno = @barno

END

GO

--创建向借阅表中添加一条记录的存储过程

IF EXISTS(select name FROM sys.objects WHERE name = 'lend_insert')

DROP PROC lend_insert

GO

CREATE PROC lend_insert @lno char(12),@ISBN varchar(16),@barno varchar(10),@bbt date

AS

BEGIN

INSERT INTO lend203

V ALUES(@lno,@ISBN,@barno,@bbt)

END

GO

--创建借阅表触发器,删除一条记录后,插入到历史借阅表

--对于还书日期rbbt 获取当前系统时间,并插入到对应记录的还书日期字段(未实现)IF EXISTS(SELECT name FROM sys.objects WHERE name = 'lend_delete_trigger')

DROP TRIGGER lend_delete_trigger

GO

CREATE TRIGGER lend_delete_trigger

ON lend203 AFTER DELETE

AS

BEGIN

INSERT INTO history203(lno,ISBN,barno,bbt)

SELECT lno,ISBN,barno,bbt FROM deleted

PRINT '已删除的借书记录被插入到历史借阅表.'

--更新读者表

UPDA TE reader203

SET bornum = bornum - 1

WHERE lno = (SELECT lno FROM deleted)

PRINT '读者表中该读者借阅数量已更新.'

--更新图书表

UPDA TE book203

SET invnum = invnum + 1

WHERE ISBN = (SELECT ISBN FROM deleted)

PRINT '图书表中该书库存量已更新.'

END

--执行删除借阅表一条记录存储过程

EXEC lend_delete '200807035102','8-7012-1020-1','466241'

--8.创建触发器,当向LEND表中插入一条记录时,将TREADER表中该学生的借书数加1,将TBOOK表中该书的库存量减1。

GO

IF EXISTS(SELECT name FROM sys.objects WHERE name = 'lend_insert_trigger')

DROP TRIGGER lend_insert_trigger

GO

CREATE TRIGGER lend_insert_trigger

ON lend203 AFTER INSERT

AS

BEGIN

DECLARE @lno char(12),@ISBN varchar(16)

SELECT @lno = lno,@ISBN = ISBN

FROM INSERTED

UPDA TE reader203

SET bornum = bornum +1

WHERE lno =@lno

PRINT '读者借阅数量已更新'

UPDA TE book203

SET invnum = invnum -1

WHERE ISBN =@ISBN

PRINT '外借书库存量已更新'

END

GO

SELECT lno,bornum 更新前借阅数量

FROM reader203

WHERE lno = 200807035102

GO

--执行向借阅表插入一条记录的存储过程

EXEC lend_insert '200807035102','4-6076-1087-3','00422310','2013-10-29'

SELECT l.lno,r.bornum 更新后借阅数量

FROM lend203 l,(select lno,bornum from reader203 where lno = 200807035102)r

WHERE l.lno = r.lno

--9.创建触发器,当修改TREADER表中的借书证号时,同时也要将LEND表中的借书证号修改成相应的借书证号

-- (假设TREADER表和LEND表之间没有定义外键约束)。

IF EXISTS(SELECT name FROM sys.objects WHERE name = 'reader_lno_trigger')

DROP TRIGGER reader_lno_trigger

GO

CREATE TRIGGER reader_lno_trigger

ON reader203 AFTER UPDATE

AS

BEGIN

DECLARE @old_lno char(12),@new_lno char(12)

SELECT @old_lno =(SELECT lno FROM deleted)

SELECT @new_lno =(SELECT lno FROM inserted)

UPDA TE lend203

SET lno = @new_lno

WHERE lno = @old_lno

END

SELECT r.lno 更新前读者表中读者号,name,l.lno 更新前借阅表中读者号

FROM reader203 r,lend203 l

WHERE r.lno = l.lno AND r.lno = '200807035102';

--执行更新读者表中读者号存储过程,前面新的读者号,后面是旧读者号

EXEC reader_update '200805035133','200807035102'

SELECT r.lno 更新后读者表中读者号,name,l.lno 更新后借阅表中读者号

FROM reader203 r,lend203 l

WHERE r.lno = l.lno AND r.lno = '200805035133';

--10.在删除TREADERB表中的一条生记录时将LEND表中该学生的相应记录也删除。

IF EXISTS(SELECT name FROM sys.objects WHERE name = 'reader_delete_trigger') DROP TRIGGER reader_delete_trigger

GO

CREATE TRIGGER reader_delete_trigger

ON reader203 AFTER DELETE

AS

BEGIN

DECLARE @old_lno char(12)

SELECT @old_lno =(SELECT lno FROM deleted)

DELETE lend203

WHERE lno = @old_lno

END

--执行删除读者表中一条记录

EXEC reader_delete '200805035133'

--11.在数据库TSGL中创建一触发器,当向lend表插入一条记录时,检查该记录的借书证号在TREADER表中是否存在,

-- 检查图书的ISBN在TBOOK表中是否存在,以及图书的库存量是否大于0,若有一项为否,则不允许插入。

IF EXISTS(SELECT name FROM sys.objects WHERE name = 'lend_insert_trigger')

DROP TRIGGER lend_insert_trigger

GO

CREATE TRIGGER lend_insert_trigger

ON lend203 AFTER INSERT

AS

BEGIN

DECLARE @lno char(12),@ISBN varchar(16),@invnum int

SELECT @lno = lno,@ISBN = ISBN FROM INSERTED

SELECT @invnum FROM book203 WHERE ISBN = @ISBN

IF( (SELECT COUNT(lno) FROM reader203 WHERE lno = @lno)>0

AND

(SELECT COUNT(ISBN) FROM book203 WHERE ISBN = @ISBN)>0

AND

(@invnum)>0 )

begin

UPDA TE reader203

SET bornum = bornum +1

WHERE lno =@lno

PRINT '读者借阅数量已更新'

UPDA TE book203

SET invnum = invnum -1

WHERE ISBN =@ISBN

PRINT '外借书库存量已更新'

end

ELSE

ROLLBACK

END

GO

--执行向借阅表插入一条记录的存储过程

SELECT * FROM lend203 WHERE lno = '200807035203'

EXEC lend_insert '200807035203','8-7012-1020-1','00466241','2013-10-30'

GO

SELECT * FROM lend203 WHERE lno = '200807035203'

--执行向借阅表插入一条记录的存储过程

EXEC lend_insert '200807042101','8-7012-1020-1','00466241','2013-10-31'

SELECT * FROM lend203 WHERE lno = '200807042101'

--12.在数据库TSGL中创建一触发器,当删除TREADER表一条记录时,

-- 检查该记录的借书证号在JY表中是否存在,如果存在,则不允许删除。IF EXISTS(SELECT name FROM sys.objects WHERE name = 'reader_delete_trigger') DROP TRIGGER reader_delete_trigger

GO

CREATE TRIGGER reader_delete_trigger

ON reader203 AFTER DELETE

AS

BEGIN

DECLARE @lno char(12)

SELECT @lno FROM DELETED

IF( (SELECT COUNT(lno) FROM lend203 WHERE lno = @lno)>0 )

begin

PRINT '该读者号在借阅表中存在借书记录,不允许删除.'

ROLLBACK

end

/*因为前面创建过删除lend 表中一条记录时将其插入到历史借阅表

消息2627,级别14,状态1,过程lend_delete_trigger,第5 行

违反了PRIMARY KEY 约束'PK__historyt__C683815C0F975522'。

不能在对象'dbo.history203' 中插入重复键。

语句已终止。

ELSE

begin

DELETE lend203

WHERE lno = @lno

end*/

END

EXEC reader_delete '200807042202'

--13.修改数据库TSGL中在TREADER表上定义的触发器(内容自定)。GO

ALTER TRIGGER reader_delete_trigger

ON reader203 AFTER DELETE

AS

BEGIN

DECLARE @lno char(12)

SELECT @lno FROM DELETED

IF( (SELECT COUNT(lno) FROM lend203 WHERE lno = @lno)>0 ) begin

PRINT '该读者号在借阅表中存在借书记录,不允许删除.'

ROLLBACK

end

END

--14. 删除以上所建触发器。

DROP TRIGGER reader_delete_trigger

DROP TRIGGER lend_delete_trigger

DROP TRIGGER lend_insert_trigger

集成触发器及其应用电路设计

华中科技大学 电子线路设计、测试与实验》实验报告 实验名称:集成运算放大器的基本应用 院(系):自动化学院 地点:南一楼东306 实验成绩: 指导教师:汪小燕 2014 年6 月7 日

、实验目的 1)了解触发器的逻辑功能及相互转换的方法。 2)掌握集成JK 触发器逻辑功能的测试方法。 3)学习用JK 触发器构成简单时序逻辑电路的方法。 4)熟悉用双踪示波器测量多个波形的方法。 (5)学习用Verliog HDL描述简单时序逻辑电路的方法,以及EDA技术 、实验元器件及条件 双JK 触发器CC4027 2 片; 四2 输入与非门CC4011 2 片; 三3 输入与非门CC4023 1 片; 计算机、MAX+PLUSII 10.2集成开发环境、可编程器件实验板及专用电缆 三、预习要求 (1)复习触发器的基本类型及其逻辑功能。 (2)掌握D触发器和JK触发器的真值表及JK触发器转化成D触发器、T触发器、T 触发器的基本方法。 (3)按硬件电路实验内容(4)(5),分别设计同步3 分频电路和同步模4 可逆计数器电路。 四、硬件电路实验内容 (1)验证JK触发器的逻辑功能。 (2)将JK触发器转换成T触发器和D触发器,并验证其功能。 (3)将两个JK触发器连接起来,即第二个JK触发器的J、K端连接在一起, 接到第一个JK触发器的输出端Q两个JK触发器的时钟端CP接在一起,并输入1kHz 正方波,用示波器分别观察和记录CP Q、Q的波形(注意它们之间的时序关系),理解2分频、4分频的概念。 (4)根据给定的器件,设计一个同步3分频电路,其输出波形如图所示。然后组装电路,并用示波器观察和记录CP Q、Q的波形。 (5)根据给定器件,设计一个可逆的同步模4 计数器,其框图如图所示。图中,M为控制变量,当M=0时,进行递增计数,当M=1时,进行递减计数;Q、 Q为计数器的状态输出,Z为进位或借位信号。然后组装电路,并测试电路的输入、输出

触发器逻辑功能测试及应用

实验六触发器逻辑功能测试及应用 一、实验目的: 1、掌握基本RS、JK、D、T与T′触发器的逻辑功能; 2、学会验证集成触发器的逻辑功能及使用方法; 3、熟悉触发器之间相互转换的方法。 二、实验原理: 触发器:根据触发器的逻辑功能的不同,又可分为: 三、实验仪器与器件: 实验仪器设备:D2H+型数字电路实验箱。 集成块:74LS112 74LS74 74LS04 74LS08 74LS02 74LS86 四、实验内容与步骤: 1、基本RS触发器逻辑功能的测试: CP J K S-D R-D 下降沿0 0 1 1 0 0 下降沿0 1 1 1 0 0 下降沿 1 0 1 1 0 1 下降沿 1 1 1 1 1 0 3、D触发器逻辑功能测试: D CP S-D R-D Q X X 0 1 0 X X 1 0 1 (2)D触发器逻辑功能测试: CP J K D S D R Q ×××0 1 0 ××× 1 0 1

D CP S-D R-D 0 上升沿 1 1 1 0 1 上升沿 1 1 0 1 4、不同类型时钟触发器间的转换: JK转换为D触发器: J D K D Q D DQ Q Q D D Q Q K Q J Q n n n n n n n n = = + = + = = + = + + ; ) ( 1 1 D转换为JK 触发器: n n n n n n Q J Q K D D Q Q K Q J Q = = = + = + + 1 1 JK转换为T触发器: K J T Q T Q T Q n n n = = + = +1 T转换为JK触发器: JK转换为RS触发器:RS转换为JK触发器: 五、实验体会与要求: 1、根据实验结果,写出各个触发器的真值表。 2、试比较各个触发器有何不同? 3、写出不同类型时钟触发器间的转换过程。 1

存储过程与触发器实验

第一章存储过程与触发器实验 实验目的 1.理解存储过程的工作原理和作用。 2.掌握存储过程设置和程序设计过程。 3.理解触发器的工作原理和作用。 4.掌握触发器编写方法。 实验环境 采用IBM DB2或Sybase数据库管理系统作为实验平台。其中,DB2可以采用DB2 Express-C或DB2 V8 Enterprise。 实验完成人:李肇臻,谢锦 实验内容 一、存储过程实验 1.针对下面2个完整性约束条件,建立存储过程,实现当数据导入或更新时,可以自动修改拥塞率、半速率话务量比例 (1)拥塞率=拥塞数量/呼叫数量 (2)半速率话务量比例=半速率话务量/全速率话务量 在DB2CMD中运行,win7用管理员权限。 create procedure M() language SQL begin update CALLDATA set "callcongs"="congsnum"/"callnum" where "congsnum"<>0 and "callnum"<>0; update CALLDATA set "rate"="thtraff"/"traff" where "thtraff"<>0 and "traff"<>0; end @ 2.将存储过程添加到数据库服务器上

3.在客户端编写调用存储过程的主程序 4.运行客户端程序,调用存储过程,观察存储过程执行过程和数据更新情况;调用就用db2 CALL M() 二、触发器实验 1. 针对下列约束条件,分别建立1个触发器: 1)每个小区/扇区最多占用14个TCH频点,合法频点范围在[1,60]之间。当向小区中新加入频点时,如果小区中现有频点数目已达到14个,则用新加入的频点替换现有频点中的最小频点;当修改或新加入频点时,如果发现频点不在合法范围内,则输出提示信息,并拒绝该操作。 create trigger first_1 after insert on FREQUENCY

存储过程和触发器(数据库实验5)

数据库基础与实践实验报告实验五存储过程和触发器 班级:惠普测试142 学号:1408090213 姓名:闫伟明 日期:2016-11-14

1 实验目的: 1)掌握SQL进行存储过程创建和调用的方法; 2)掌握SQL进行触发器定义的方法,理解触发器的工作原理; 3)掌握触发器禁用和重新启用的方法。 2 实验平台: 操作系统:Windows xp。 实验环境:SQL Server 2000以上版本。 3 实验内容与步骤 利用实验一创建的sch_id数据库完成下列实验内容。 1.创建存储过程JSXX_PROC,调用该存储过程时可显示各任课教师姓名及其所教课程名称。 存储过程定义代码: CREATE PROCEDURE JSXX_PROC AS SELECT tn 教师姓名,cn 所教课程FROM T,TC,C WHERE T.tno=TC.tno AND https://www.wendangku.net/doc/2715220813.html,o=https://www.wendangku.net/doc/2715220813.html,o 存储过程执行语句与执行结果截图: EXECUTE JSXX_PROC 2.创建存储过程XM_PROC,该存储过程可根据输入参数(学生姓名)查询并显示该学生的学号、 所学课程名称和成绩;如果没有该姓名学生,则提示“无该姓名的同学”。 存储过程定义代码:

CREATE PROCEDURE XM_PROC @sname VARCHAR(100) AS BEGIN IF EXISTS(SELECT NULL FROM S WHERE sn=@sname) SELECT S.sno 学号,cn 课程,score 成绩FROM S,SC,C WHERE https://www.wendangku.net/doc/2715220813.html,o=https://www.wendangku.net/doc/2715220813.html,o AND SC.sno=S.sno AND S.sn=@sname ELSE PRINT'无该姓名的同学。' END 运行截图: 3.创建存储过程XBNL_PROC,该存储过程可根据输入参数(专业名词,默认值为计算机专业), 统计并显示该专业各年龄段男、女生人数。如果没有该专业,则显示“无此专业”。 存储过程定义代码: CREATE PROCEDURE XBNL_PROC @departName VARCHAR(30)='计算机', @begin INT, @end INT AS

实验六 存储过程和触发器

实验六存储过程与触发器 一、目的与要求 1.掌握编写数据库存储过程的方法。 2.掌握建立数据库触发器的方法,通过实验观察触发器的作用与触发条件设置 等相关操作。 二、实验准备 1.了解编写存储过程与调用的T-SQL语法; 2.了解触发器的作用; 3.了解编写触发器的T-SQL语法。 三、实验内容 (一)存储过程 在studentdb数据库中建立存储过程getPractice,查询指定院系(名称)(作为存储过程的输入参数)中参与“实践”课程学习的所有学生学号、姓名、所学课程编号与课程名称,若院系不存在,返回提示信息。 提示:D_Info表中存储了院系代码D_ID,而St_Info表中学号字段St_ID的前两位与之对应,则D_Info表与St_Info表之间的联系通过这两个字段的运算构成连接条件。 1.分别执行存储过程getPractice,查询“法学院”与“材料科学与工程学院” 的学生中参与“实践”课程的所有学生学号、姓名、所学课程编号与课程名称。 create procedure getPractice @D_Name varchar(30) output as begin if not exists (select * from D_Info where D_Name= @D_Name ) print '对不起,该院系不存在' else select st_info、St_ID,C_Info、C_No,C_Name from s_c_info inner join st_info on st_info、St_ID=s_c_info、st_id inner join C_Info on s_c_info、c_no=C_Info、C_No where st_info、St_ID in ( select St_ID from st_info join D_Info on D_Info、D_ID =left(st_info、St_ID,2) where C_Info、C_Type='实践' and D_Info、D_Name= @D_Name ) end go

数电实验触发器及其应用

数电实验触发器及其应用 数字电子技术实验报告 实验三: 触发器及其应用 一、实验目的: 1、熟悉基本RS触发器,D触发器的功能测试。 2、了解触发器的两种触发方式(脉冲电平触发和脉冲边沿触发)及触发特点 3、熟悉触发器的实际应用。 二、实验设备: 1 、数字电路实验箱; 2、数字双综示波器; 3、指示灯; 4、74LS00、74LS74。 三、实验原理: 1、触发器是一个具有记忆功能的二进制信息存储器件,是构成多种时序 电路的最基本逻辑单元,也是数字逻辑电路中一种重要的单元电路。在数字系统和计算机中有着广泛的应用。触发器具有两个稳定状态,即“0”和“ 1 ”,在一定的外界信号作用下,可以从一个稳定状态翻转到另一个稳定状态。触发器有集成触发器和门电路(主要是“与非门” )组成的触发器。 按其功能可分为有RS触发器、JK触发器、D触发器、T功能等触发器。触发方式有电平触发和边沿触发两种。 2、基本RS触发器是最基本的触发器,可由两个与非门交叉耦合构成。 基本RS触发器具有置“ 0”、置“ 1”和“保持”三种功能。基本RS触发器

也可以用二个“或非门”组成,此时为高电平触发有效。 3、D触发器在CP的前沿发生翻转,触发器的次态取决于CP脉冲上升沿n+1来到之前D端的状态,即Q = D。因此,它具有置“ 0”和“T两种功能。由于在CP=1期间电路具有阻塞作用,在CP=1期间,D端数据结构变RS化,不会影响触发器的输出状态。和分别是置“ 0”端和置“ 1” DD 端,不需要强迫置“ 0”和置“ 1”时,都应是高电平。74LS74(CC4013, 74LS74(CC4042均为上升沿触发器。以下为74LS74的引脚图和逻辑图。 馬LD 1CP 1云IQ LQ GM) 四、实验原理图和实验结果: 设计实验: 1、一个水塔液位显示控制示意图,虚线表示水位。传感器A、B被水浸沿时

存储过程与触发器 实验报告

信息工程学院实验报告 课程名称:《数据库原理》 实验项目名称:存储过程与触发器 一、实验目的: (1)了解存储过程的概念 (2)掌握创建、执行存储过程的方法 (3)了解查看、修改和删除存储过程的方法 (4)了解触发器的概念 (5)掌握创建触发器的方法 (6)掌握查看、修改、删除触发器信息的方法 二、实验设备与器件 Win7 +Sql server 2008 三、实验内容与步骤 (一)存储过程 运行实验四附录中的SQL语句,准备实验数据。然后创建下列存储过程,并调试运行存储过程,查看运行结果。 1.在企业管理器中创建一个名为StuInfo的存储过程,完成的功能是在student表中查询系号为D2的学号、姓名、性别、年龄、系号的内容。 CREATE PROCEDURE StuInfo AS SELECT SNO AS学号, SNAME AS姓名, SSEX AS性别, SAGE AS年龄, DNO AS系号 FROM student WHERE DNO='D2' 结果: stuinfo 2.使用T_SQL语句创建存储过程,完成的功能是在表student,course和study中查询以下字段:学号、姓名、性别、课程名称、考试分数。

use mydb --查询是否已存在此存储过程,如果存在,就删除它 if exists(select name from sysobjects where name='StuScoreInfo'and type='P') drop procedure StuScoreInfo go --创建存储过程 CREATE PROCEDURE StuScoreInfo as select student.sno as学号, sname as姓名, ssex as性别, https://www.wendangku.net/doc/2715220813.html,ame as课程名称, study.grade as考试分数 from student,course,study where student.sno=study.sno and https://www.wendangku.net/doc/2715220813.html,o=https://www.wendangku.net/doc/2715220813.html,o 结果: StuScoreInfo 3.使用T_SQL语句创建一个带有参数的存储过程stu_sno_info,该存储过程根据传入的学生编号,在student表中查询此学生的信息。 if exists(select name from sysobjects where name='stu_info'and type='P') drop procedure stu_info go --创建存储过程 create procedure stu_info @sno varchar(8) as select sno as学号, sname as姓名, ssex as性别, sage as年龄, dno as年级

触发器及其应用实验报告 - 图文-

实验报告 一、实验目的和任务 1. 掌握基本RS、JK、T和D触发器的逻辑功能。 2. 掌握集成触发器的功能和使用方法。 3. 熟悉触发器之间相互转换的方法。 二、实验原理介绍 触发器是能够存储1位二进制码的逻辑电路,它有两个互补输出端,其输出状态不仅与输入有关,而且还与原先的输出状态有关。触发器有两个稳定状态,用以表示逻辑状态"1"和"0飞在二定的外界信号作用下,可以从一个稳定状态翻转到另一个稳定状态,它是一个具有记忆功能的二进制信息存储器件,是构成各种时序电路的最基本逻辑单元。 1、基本RS触发器 图14-1为由两个与非门交叉祸合构成的基本RS触发器,它是无时钟控制低电平直接触发的触发器。 基本RS触发器具有置"0"、置"1"和保持三种功能。通常称s为置"1"端,因为 s=0时触发器被置"1"; R为置"0"端,因为R=0时触发器被置"0"。当S=R=1时状态保持,当S=R=0时为不定状态,应当避免这种状态。

基本RS触发器也可以用两个"或非门"组成,此时为高电平有效。 S Q S Q Q 卫R Q (a(b 图14-1 二与非门组成的基本RS触发器 (a逻辑图(b逻辑符号 基本RS触发器的逻辑符号见图14-1(b,二输入端的边框外侧都画有小圆圈,这是因为置1与置。都是低电平有效。 2、JK触发器 在输入信号为双端的情况下,JK触发器是功能完善、使用灵活和通用性较强的一种触发器。本实验采用74LS112双JK触发器,是下降边沿触发的边沿触发器。引脚逻辑图如图14-2所示;JK触发器的状态方程为: Q,,+1=J Q"+K Q 3 5

J Q CLK K B Q 图14-2JK触发器的引脚逻辑图 其中,J和IK是数据输入端,是触发器状态更新的依据,若J、K有两个或两个以上输入端时,组成"与"的关系。Q和Q为两个互补输入端。通常把Q=O、Q=1的状态定为触发器"0"状态;而把Q=l,Q=0 定为"}"状态。 JK触发器常被用作缓冲存储器,移位寄存器和计数器。 CC4027是CMOS双JK触发器,其功能与74LS112相同,但采用上升沿触发,R、S端为高电平

数字电路 触发器的功能测试实验报告

肇 庆 学 院 电子信息与机电工程 学院 数字电路 课 实验报告 12电气(1) 班 姓名 李俊杰 学号 201224122119 实验日期2014年5 月19 日 实验合作者:王圆圆 老师评定 实验题目:触发器的功能测试 一、实验目的 (一)掌握基本RS 触发器的功能测试。 (二)掌握集成触发器的电路组成形式及其功能。 (三)熟悉时钟触发器不同逻辑功能之间的相互转换。 (四)认识触发器构成的脉冲分频电路。 二、实验仪器: DZX-1型电子学综合实验装置 UT52万用表 GDS-806S 双踪示波器 74LS00 74LS74 74LS76 三、实验内容&数据分析 触发器具有两个稳定状态,用以表示逻辑状态“1”和“0”,在一定的外界信号作用下,可以从一个稳定状态翻转到另一个稳定状态,它是一种具有记忆功能的二进制信息存贮器件,是构成各种时序电路的最基本逻辑单元。第一步,将触发器74LS74、74LS76引出端排列图和状态表画在实验报告上。(注:此项内容必须在进实验室前完成。) (一)测试基本RS 触发器的逻辑功能 用两个与非门组成基本RS 触发器如图4-1,输入端R ,S 接逻辑电平开关输出插口,输出端Q 、Q 接逻辑电平显示插口,按表4-1要求测试。 表4-1 基本RS 触发器特性表(输入低电平有效) 图4-1 由74ls00连接成的基本RS 触发器 测试集成双JK 触发器74LS76的逻辑功能 1、测试D R 、 D S 端的复位、置位功能

74LS76逻辑符号如图4-2,对照其插脚(查阅附录B )取其中一JK 触发器,D R 、 D S 、J 、K 端分别接逻辑电平开关输出插口,CP 接单次脉冲源(正脉冲),Q 、Q 接至逻辑电平显示输入插口。要求在D R =0, D S =1以及 D S =0,D R =1时任意改变J 、K 及CP 的状态用“ⅹ”符 号表示,观测Q 、Q 状态。 图4-2 74LS76管脚排列 2、测试触发器的逻辑功能 按表4-2的要求改变J 、K 、CP 端状态,记录Q 的状态变化,观察触发器状态的更新发生在CP 脉冲(单脉冲)的上降沿还是下降沿?(注意D R 、D S 端的电平接法) 表4-3 集成双JK 触发器74LS76特性表2 图4-2 JK 触发器逻辑符号 3、JK 触发器的J 、K 端连在一起,构成T ’触发器。 在CP 端输入1MHZ 连续脉冲,用双踪示波器观察CP 、Q 端的波形,注意相位与时间的关系。

数据库原理课程设计报告报告实验创建存储过程与触发器

存储过程与触发器实验日期和时间: 2016 年 5 月13 日、星 期 五第节 实验室:DJ2-信息管理实验室 班级:学号:姓名: 实验环境: 1.硬件:笔记本电脑 2.软件:SQL Server 2012 实验原理: 存储过程概念:存储过程是事先编好的,存储在数据库中的一组被编译了的T-SQL命令集合,这些命令用来完成对数据库的指定操作。存储过程可以接受用户的输入参数、向客户端返回表格或标量结果和消息、调用数据定义语言(DDL)和数据操作语言(DML)语句,然后返回输入参数。 触发器概念:触发器(trigger)是SQL server 提供给程序员和数据分析员来保证数据完整性的一种方法,它是与表事件相关的特殊的存储过程,它的执行不是由程序调用,也不是手工启动,而是由事件来触发,比如当对一个表进行操作( insert,delete, update)时就会激活它执行。触发器经常用于加强数据的完整性约束和业务规则等。 实验任务: 此作业成绩得分根据你完成的任务的难度和数量评分,完成后在实验室给老师演示验收,课后提交电子版报告。如额外完成自拟题目应当事先将所拟题目提交给老师或在报告中明确标注题意。 假定有学校的图书馆管理信息系统,可以用于日常管理书库和同学们的借还书工作。 以下列出参考的库表情况: 根据管理的业务需求来分析,该管理信息系统的数据库应至少包括如下数据表:(打★号的是必须有的表) 1.★图书现有库存表。作用:记录图书的现有库存情况。至少包括:书号、书名、 作者、简介、类别、价格、出版社、出版日期、现有库存数量、最小库存量、库 存总量、库存位置等。 2.★读者信息表。作用:记录读者信息。至少包括:读者编号、证件类型、证件号 码、姓名、性别、职业(可填写教师、学生、教工、其它……)、所属单位、地址、 联系电话等。 3.★借书记录表。作用:记录借书情况,以及是否归还。至少包括:借阅ID(主键, 可设置为自动编号)、书号、读者编号、借阅数量、借阅日期、是否归还、管理员 编号……等。 4.★还书记录表。作用:记录还书情况。至少包括:还书ID(主键,可设置为自动 编号)、书号、读者编号、归还数量、归还日期、是否超期(超过假设45天为超 期)、超期天数、管理员编号……等。(附:为简化操作,续借可视为归还后再借)。 5.管理员信息表。作用:记录负责管理书库和借书还书工作的管理员信息。至少包 括:管理员编号、职工编号(在职工档案表中的职工编号)、用户名、密码、管理

基本触发器功能验证实验

基本触发器功能验证实验预习参考 (注意:所有表格均可用状态方程提前填好) 1、 R S 触发器 图1-5-1基本RS 触发器的原理图,公式(1-5-1)是RS 触发器的状态方程。 n n n n RQ Q Q S Q ==++1 1 (1-5-1 ) 图1-3-3基本RS 触发器 表1-5-1 R S Q (V ) Q (V ) 触发器状态 0 1 1 0 1 1 0 0 1 1

图1-3-4基本RS 触发器实验连线图 2、D 触发器 图1-5-2基本RS 触发器的原理图,公式(1-5-2)是D 触发器的状态方程。 D Q n =+1 (1-4-2) (CP 上升沿有效) 图1-3-5 D 触发器IC 引脚图 表1-5-2 测试D 触发器置位、复位功能 CP D D R D S 1+n Q (V ) 1+n Q (V ) Q 状态 ф ф 1 ф ф 1 0

表1-5-3 D触发器同步功能测试 Qn 0 0 1 1 D 0 1 0 1 CP 0 ?0 ?0 ?0 ?Qn+1 图1-3-6 D触发器实验测试图

图1-3-7 D触发器实验测试图 3、JK触发器 图1-5-3JK触发器的原理图,公式(1-4-3)是JK触发器的状态方程。 +1(1-5-3) n Q n n = Q+ Q K J (CP下降沿有效) 图1-3-8 JK触发器的原理图

表1-5-4测试JK触发器逻辑功能 CP ? ? ? ?J 0 0 0 0 1 1 1 1 K 0 0 1 1 0 0 1 1 Qn 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 Qn+1 图1-3-9 JK触发器原理测试图

数据库存储过程与触发器实验报告

南昌航空大学实验报告 二00 年月日 课程名称:数据库概论实验名称:数据库存储过程与触发器 班级:122031 姓名:同组人: 指导教师评定:签名: 一、实验环境 1.Windows2000或以上版本; 2.SQLServer 2005。 二、实验目的 熟悉不同数据库的存储过程和触发器,重点实践SQL Server2005,掌握SQL Server2005中有存储过程与触发器的相关知识。 三、实验要求 完成实验指导书中p115-7和p132 -4。 四、实验步骤及参考源代码 1.创建与执行存储过程 create procedure C_P_Proc as select distinct https://www.wendangku.net/doc/2715220813.html,o,cna,pna,num from paper,customer,cp where https://www.wendangku.net/doc/2715220813.html,o=https://www.wendangku.net/doc/2715220813.html,o and paper.pno=cp.pno and cna='李涛' or cna='钱金浩' go execute C_P_Proc 2.删除存储过程 drop procedure C_P_Proc 3.创建插入触发器 create trigger TR_PAPER_I ON PAKER12203125 FOR INSERT AS DECLARE @appr float DECLARE @apno int SELECT @appr=ppr,@apno=pno from inserted begin if @appr<0 or @appr is null begin

raiserror('报纸的单价为空或小于!',16,1) update paper set ppr=10 where paper.pno=@apno end end 4.创建删除触发器 create Trigger TR_PAPER_D on PAKER12203125 after delete as declare @ipno char(6) declare @icount int; select @icount= count(*) from deleted,cp where deleted.pno=cp.pno if @icount>=1 begin select @ipno=pno from deleted raiserror('级联删除cp表中的数据',16,1) delete from cp where cp.pno=@ipno end 5.创建修改触发器 create trigger TR_PAPER_U ON PAKER12203125 for update as declare @ippr float select @ippr=ppr from inserted if @ippr<0 or @ippr is null begin raiserror('输入单价不正确',16,1) rollback transaction end 6. 分别对PAKER12203125表进行插入、修改、删除操作 insert into PAKER12203125 (pno,pna,ppr)values('000006','江西日报','1') insert into PAKER12203125 (pno,pna,ppr)values('000007','江南都市报','15.5') delete from PAKER12203125 where pno='000001' update PAKER12203125 set ppr=12.5 where pno='000002' update PAKER12203125 set ppr=-2 where pno='000004' 五、实验结果

触发器实验报告

触发器实验报告 集团标准化工作小组 #Q8QGGQT-GX8G08Q8-GNQGJ8-MHHGN#

实验报告 课程名称:数字电子技术基础实验 指导老师: 周箭 成绩:__________________ 实验名称:集成触发器应用 实验类型: 同组学生姓名:__邓江毅_____ 一、实验目的和要求(必填) 二、实验内容和原 理(必填) 三、主要仪器设备(必填) 四、操作方法和实 验步骤 五、实验数据记录和处理 六、实验结果与分 析(必填) 七、讨论、心得 实验内容和原理 1、D →J-K 的转换实验 设计过程:J-K 触发器和D 触发器的次态方程如下: J-K 触发器:n n 1+n Q Q J =Q K +, D 触发器:Qn+1=D 若将D 触发器转换为J-K 触发器,则有:n n Q Q J =D K +。 实验结果: J K Qn-1 Qn 功能 0 0 0 0 保持 1 1 0 1 0 0 置0 1 0 1 1 0 1 翻转 1 0 1 0 1 置1 1 1 实验截图: 专业:电卓1501 姓名:卢倚平 学号: 日期:地点:东三404

(上:Qn ,下:CP ,J 为高电平时) 2、D 触发器转换为T ’触发器实验 设计过程:D 触发器和T ’触发器的次态方程如下: D 触发器:Q n+1= D , T ’触发器:Q n+1=!Q n 若将D 触发器转换为T ’触发器,则二者的次态方程须相等,因此有:D=!Qn 。 实验截图: (上:Qn ,下:!Qn )CP 为1024Hz 的脉冲。 3、J-K →D 的转换实验。 ①设计过程: J-K 触发器:n n 1+n Q Q J =Q K , D 触发器:Qn+1=D 若将J-K 触发器转换为D 触发器,则二者的次态方程须相等,因此有:J=D ,K=!D 。 实验截图:

第6章_存储过程与触发器练习题

有教师表(教师号,教师名,职称,基本工资),其中基本工资的取值与教师职称有关。实现这个约束的可行方案是( )。 A 在教师表上定义一个视图 B 在教师表上定义一个存储过程 C 在教师表上定义插入和修改操作的触发器 D 在教师表上定义一个标量函数 参考答案 C 在SQL SERVER中,执行带参数的过程,正确的方法为()。 A 过程名参数 B 过程名(参数) C 过程名=参数 D ABC均可 参考答案 A 在SQL SERVER服务器上,存储过程是一组预先定义并()的Transact-SQL语句。 A 保存 B 解释 C 编译 D 编写 参考答案 C 在SQL Server中,触发器不具有()类型。 A INSERT触发器 B UPDATE触发器 C DELETE触发器 D SELECT触发器 参考答案 D

()允许用户定义一组操作,这些操作通过对指定的表进行删除、插入和更新命令来执行或触发。 A 存储过程 B 规则 C 触发器 D 索引 参考答案 C 为了使用输出参数,需要在CREATE PROCEDURE语句中指定关键字( )。 A OPTION B OUTPUT C CHECK D DEFAULT 参考答案 B 下列( )语句用于创建触发器。 A CREATE PROCEDURE B CREATE TRIGGER C ALTER TRIGGER D DROP TRIGGER 参考答案 B 下列( )语句用于删除触发器。 A CREATE PROCEDURE B CREATE TRIGGER C ALTER TRIGGER D DROP TRIGGER 参考答案 D

D触发器及其应用实验报告

实验五D触发器及其应用 实验人员:班号:学号: 一、实验目的 1、熟悉D触发器的逻辑功能; 2、掌握用D触发器构成分频器的方法; 3、掌握简单时序逻辑电路的设计 二、实验设备 74LS00 ,74LS74,数字电路实验箱,数字双踪示波器,函数信号发生器 三、实验内容 1、用74LS74(1片)构成二分频器、四分频器,并用示波器观察波形; 74LS74是双D触发器(上升沿触发的边沿D触发器),其管脚图如下: 其功能表如下: ○1构成二分频器:用一片74LS74即可构成二分频器。实验电路图如下:

○2构成四分频器:需要用到两片74LS74。实验电路图如下: 2、实现如图所示时序脉冲(用74LS74和74LS00各1片来实现) 将欲实现功能列出真值表如下:

Q 1n+1=Q 0n =D 1 Q 0n+1=Q 1n ????=D 0 F ′=Q 1n Q 0n ???? F =F ′?CP 连接电路图如下: 四、实验结果 1、用74LS74(1片)构成二分频器、四分频器。示波器显示波形如下: ○ 1二分频器: ○ 2四分频器:

2、实现时序脉冲。示波器显示波形如下: 五、故障排除 在做“用74LS74(1片)构成二分频器、四分频器”时,连接上示波器后,发现通道二总显示的是类似于电容放电的波形,但表现出了二分频。反复排查问题均没有发现原因。最后换了一根连接示波器的线,便得到了理想的结果。 在示波器使用时想要用U盘保存电路波形,不会操作。后来在询问了同学之后才知道只需要按“print”就好。 六、心得体会 通过此次实验,我更深入地领悟了触发器的原理和用法,还复习了示波器的用法,还学会了如何保存示波器波形。

基本RS触发器逻辑功能测试

实训九基本R-S触发器功能测试 一、实训目的 1.通过实训熟悉基本RS触发器的逻辑功能与特点; 2.通过实训掌握基本RS触发器的测试方法; 3.通过实训熟悉异步输入信号RD、SD、RD、SD的作用; 4.通过实训掌握基本RS触发器的典型应用; 二、实训原理 基本RS触发器就是由两个与非门交叉耦合组成,它就是最基本的触发器,也就是构成其它复杂触发器电路的一个组成部分。当R D=S D=1时,两个与非门的工作都尤如非门,Q接至与非门G2的输入,使G2输出为Q;Q接至与非门G1的输入,使G1的输出为Q。从而使触发器维持输出状态不变。 三、实训仪器与设备 S303-4型(或其它型号)数字电路实训箱一只; SR8(或其它型号)双踪示波器一只; 直流稳压电源一台; 74LS00 二输入四与非门1片。 四、实训内容与步骤 1.两个TTL与非门首尾相接构成的基本R-S触发器的电路如图7-2-1所示逻辑电路。为 图9-1 基本R-S触发器功能测试 2.按表9-1所示的顺序在Sd、Rd两端信号,观察并记录R-S触发器Q端的状态,并将结果填入表9-1中 表9-1 3.Sd 4.Sd端接高电平,Rd端加脉冲。

5.令Sd=Rd,在Sd端加脉冲。 6.记录并观察2、3、4三种情况下,Q,Q n+1端的状态。从中总结基本R-S触发器的Q端的状态改变与输入端的关系。 五、实训思考题 试根据基本R-S触发器给定的输入信号波形画出与之对应的输出端的波形; 试写出基本R-S触发器的约束方程,并说明哪个就是复位端、哪个就是置位端? 六、训注意事项 接线时要注意电路图中各引脚的编号,连接时不要接错; 手动施加0、1输入电平时要注意开关动作的稳定性与可靠性,要避免开关的抖动; 用双踪示波器观察输出波形时,要注意选择一个较为合适的输入信号的频率。 实训十、计数器的功能测试 一、实训目的 1.掌握计数器的工作原理; 2.通过实训熟悉计数器的功能特点与典型应用; 3.通过实训掌握如何利用现有集成计数器来构成N进制计数器的方法。 二、实训原理 计数器就是一种含有若干个触发器、并按预定顺序改变各触发器的状态来累计输入脉冲个数的数字电路,被广泛应用于定时、分频及各种数字电路中。用JK触发器设计一个四位异步二进制加法器。CP接低频连续脉冲,输出接指示灯。观察指示灯的变化规律,写出状态图。 三、实训仪器与设备 1.S303-4型(或其它型号)数字电路实训箱一只; 2.SR8(或其它型号)双踪示波器一只; 3.直流稳压电源一台; 4.74LS00 二输入四与非门1片; 5.74LS160 十进制计数器1片; 6.74LS74 双D触发器2片; 7.74LS49 4线-七段译码器1片。 四、实训内容与步骤 六进制计数器,图10-1就是用74LS160实现六进制计数器的参考电路。当 Q3Q2Q1Q0=0111时,经过与非门所产生的零脉冲迅速使计数器清零,之后在输入CP脉冲的作用下,依次输出0000→0001→0010→0011→0100→0101→0000。输入低频连续脉冲,观察数码管的显示结果。

触发器功能测试实验报告 031210434

触发器功能测试 031210425 刘思何 一.实验目的 1.了解时钟脉冲的触发作用 2.掌握基本RS、JK、D触发器的逻辑功能、编写和使用 3.理解触发器所实现的状态转换功能 二.实验器件 开发板、计算机、vivado软件 三.实验内容 1.基本RS触发器的编写,验证并且生成IP核。连接电路图,在R,S两引脚输入不同的电平,测试输出端电平。 module rs_ff10( input s_n, input r_n, output q ); reg q; always@* begin case({s_n,r_n}) 2'b00 : q=1'bx; 2'b01 : q=1'b1; 2'b10 : q=1'b0; 2'b11 : q=q; endcase end endmodule 2.JK触发器的编写,验证并且生成IP 核。 module jk_ff10( input clk, output q, output q_n, input j, input k ); reg q; always@(posedge clk) begin case({j,k}) 2'b00 : q<=q; 2'b01 : q<=1'b0; 2'b10 : q<=1'b1; 2'b11 : q<=~q; default : q<=1'bx; endcase end assign q_n=~q; endmodule

先将s_n、r_n置于10或01状态,然后将其置于11状态,给j、k一个初始激励信号,随后一上一下拨动s_n、r_n的开关,输入一个时钟信号,观察q、q_n灯的亮灭情况。 3.D触发器的编写,验证 如JK触发器一样进行验证。 四.实验数据及分析 R触发器 V16 (s_n)V17 (r_n) U16 0 0 不定 0 1 暗 1 0 亮 1 1 保持上个状态

555触发器及其应用

实验八 555定时器及其应用 一、实验目的 1.熟悉集成555定时器的特性参数和使用方法。 2.掌握使用555定时器组成施密特触发器的方法 3.掌握使用555定时器组成单稳态触发器的方法,定时元件RC对脉冲宽度的影响。 4.掌握使用555定时器组成自激多谐振荡器的方法和定时元件RC对振荡周期和脉冲宽度的影响。 二、实验器材 1.数字电路实验箱1台 2.示波器 1 台 3.万用表 1 只 4.集成电路:555定时器 1 只 5.元器件:电阻、电容若干只 三、实验原理和电路 1.器件特性 555定时器是一种中规模集成电路,外形为双列直插8脚结构,体积很小,使用起来方便。只要在外部配上几个适当的阻容元件,就可以构成史密特触发器、单稳态触发器及自激多谐振荡器等脉冲信号产生与变换电路。它在波形的产生与变换、测量与控制、定时电路、家用电器、电子玩具、电子乐器等方面有广泛的应用。 集成555定时器有双极性型和CMOS型两种产品。一般双极性型产品型号的最后三位数都

120 是555,CMOS 型产品型号的最后四位数都是7555.它们的逻辑功能和外部引线排列完全相同。器件电源电压推荐为4.5~12V ,最大输出电流200mA 以内,并能与TTL 、CMOS 逻辑电平相兼容。其主要参数见表8.1。 555定时器的内部电路框图及逻辑符号和管脚排列分别如图8.1和图8.2所示。 引脚功能: V i1(TH ):高电平触发端,简称高触发端,又称阈值端,标志为TH 。 V i2(TR ):低电平触发端,简称低触发端,标志为TR 。 V CO :控制电压端。 V O :输出端。 Dis :放电端。 Rd :复位端。 555定时器内含一个由三个阻值相同的电阻R 组成的分压网络,产生31V CC 和32V CC 两个基准电压;两个电压比较器C 1、C 2;一个由与非门G 1、G 2组成的基本RS 触发器(低电平触发);放电三极管T 和输出反相缓冲器G 3。 Rd 是复位端,低电平有效。复位后, 基本RS 触发器的Q 端为1(高电平),经反相缓冲器后,输出为0(低电平)。 分析图8.1的电路:在555定时器的V CC 端和地之间加上电压,并让V CO 悬空,则 比较器C 1的同相输入端接参考电压32V CC ,比较器C 2反相输入端接参考电压31V CC ,为了学习方便,我们规定: . (a) 555的逻辑符号 (b) 555的引脚排列 图8.2 555定时器逻辑符 号和引脚 图8.1 555定时器内部结构 Vi1(TH) Vi2 Vco ..

触发器的使用实验报告

实验II、触发器及其应用 一、实验目的 1、掌握基本RS、JK、D和T触发器的逻辑功能 2、掌握集成触发器的逻辑功能及使用方法 3、熟悉触发器之间相互转换的方法 二、实验原理 触发器具有两个稳定状态,用以表示逻辑状态“1”和“0”,在一定的外界信号作用下,可以从一个稳定状态翻转到另一个稳定状态,它是一个具有记忆功能的二进 制信息存储器件,是构成各种时序电路的最基本逻辑单元。 1、基本RS触发器 如图1为两个与非门交叉耦合构成的基本RS触发器,它是无时钟控制低电平直接触发的触发器。基本RS触发器具有置“0”、置“1”和“保持”三种功能。通常称 为置“1”段,因为=0(=1)时触发器被置为“1”;为置“0”端,因为=0 (=1)时触发器被置“0”,当==1时状态保持;==0时,触发器状态不定,应避免此种情况发生,表1为基本RS 触发器的状态表。 图1、基本RS触发器 表1、基本RS触发器功能表 输入输出 0 1 1 0 1 0 0 1 1 1 0 0 不定不定 基本RS 2、JK触发器 在输入信号为双端的情况下,JK触发器的功能完善、使用灵活和通用性较强的一种触发器。本实验采用74LS112双JK触发器,是下降沿出发的边沿触发器。引脚功能及逻辑符号如图2所示。

图2、74LS112双JK触发器引脚排列及逻辑符号 JK触发器的状态方程为:=J+ J和K是数据输入端,是触发器状态更新的依据,若J、K有两个或者两个以上输入端时,组成“与”的关系。和为两个互补输出端。通常把=0,=1的状态定为触发器“0” 状态;而把=1,=0定为“1”状态。下降沿触发JK触发器功能表如表2所示。 表2、JK触发器功能表 JK触发器常被用作缓冲存储器,移位寄存器和计数器。 3、D触发器 在输入信号为单端的情况下,D触发器用起来最为方便,其状态方程为=D,其输出状态的更新发生在CP脉冲的上升沿,故又称为上升沿触发的边沿触发器,触发器的状态只取决于时钟到来前D端的状态,D触发器的应用很广,可用作数字信号的寄存,移位寄存,分频和波形发生等。有很多种型号可供各种用途的需要而选用。如双D 74LS74、四D 74LS175、六D 74LS174等。 下图为双D774LS74的引脚排列及逻辑符号。功能表如表3.

相关文档
相关文档 最新文档