第一篇:《单片机原理与应用》实验教案4
实验三
基于单片机的交通灯设计
一、实验目的:
通过本实验使学生建立应用电子产品系统开发思想,掌握可编程主控芯片产品、系统开发的开发原理、开发方法和开发过程。
二、实验内容:
1、建立基于单片机控制的交通灯模型,并划分软、硬件功能;
2、以DVCC598JH++仿真器为基础,设计硬件电路;
3、设计软件程序;
4、软、硬件仿真与调试。
三、交通灯设计:
1、交通灯模型:
把红、绿、蓝3个发光二极管作为一组,分别用4组发光二极管模拟十字路口交通灯。正常情况下,各道口通、断50s,通、断之间等待10s;特殊情况各道口分别可以一直通断,直到特殊情况解除。
2、软、硬件功能划分:
发光二极管亮、灭显示由硬件电路完成;亮、灭的时间由软件控制。
3、交通灯硬件电路设计:
4、软件设计:
5、软、硬件仿真与调试:
第二篇:单片机原理与应用课程实验教案
《单片机原理与应用》实验教案
第一章 实验安排
共8个实验,要求8次上机完成。这8个实验分别为: 实验一 利用软件仿真器调试算术运算程序 实验二 INT0中断实验
实验三 定时器/计数器定时实验 实验四 定时器/计数器计数实验
实验五 定时器/计数器T0扩展外部中断源实验 实验六 串行口扩展实验 实验七 DAC0832数模转换实验 实验八 8155接口芯片使用实验
其中前六个实验为验证性实验,第七个实验为设计性实验。最后一个为综合性实验。每个实验3学时。
第二章 实验须知
一、预习要求
1、实验前认真阅读实验要求,明确实验目的和实验任务。
2、拟订实验步骤,编好上机程序。
二、报告要求
共八个实验,每个实验完成后交实验报告,写在实验报
告纸上,报告中应包含以下内容:
1、实验名称、实验人姓名、学号、班级
2、实验目的、任务(内容);
3、实验步骤
记录主要实验过程。
4、实验结果
(1)记录实验现象;
(2)要求写出已调试通过的实验程序清单(加适量注 释)
第三章 实验项目及内容
实验一 利用软件仿真器调试算术运算程序 1.目的要求
(1)熟悉WAVE调试软件的使用。(2)熟悉算术运算程序编程和调试的方法。2.实验内容
(1)有6个数据分别放在片内RAM区50H~55H单元中,试求和,并将结果放在片内RAM区03H(高位),04H(低位)单元中。
(2)编程将内部RAM70H~7FH中的16个数据按从小到 大的顺序重新排序。
3.主要仪器设备
PC机一台。
4.程序清单(1)数据和.ASM ORG 0000H LJMP MAIN ORG 1000H MAIN:MOV R2,#06H MOV R3,#00H MOV R4,#00H MOV R0,#50H L1:MOV A,R4 ADD A,@R0 MOV R4,A INC R0 CLR A ADDC A,R3 MOV R3,A DJNZ R2,L1 END(2)数据排序.ASM ORG 0000H LJMP MAIN ORG 1000H MAIN:MOV R2,#70H MOV R3,#71H L2:ACALL L1 INC R2 INC R3 CJNE R3,#80H,L2 L3:SJMP L3 NOP L1:MOV A,R2 MOV R0,A MOV A,R3 MOV R1,A MOV A,@R0 L5:CLR C SUBB A,@R1 MOV A,@R0 JC L4 XCH A,@R1 MOV @R0,A L4:INC R1 CJNE R1,#80H,L5
RET END
实验二 INT0中断实验(验证性实验
3学时,必做)
1.目的要求
(1)掌握MCS-51单片机中断原理以及编程使用方法。(2)理解下降沿中断和低电平中断的区别。
2.实验内容
(1)编写主程序,读取开关SW1的状态,当其闭合时初始化为下降沿中断,反之,初始化为低电平中断,且发光管灭;编写中断服务程序,使发光管闪烁5次,间隔250ms,即中断服务程序的执行时间为2.5秒。退出中断程序时,使发光管灭。(2)用万用表测量C点的电平,按下TR31秒钟,然后松 开,观察C点电平的变化。
3.实验所用仪器
实验板一块、直流稳压电源、编程器一台、万用表一块
4.程序清单(EXP7.ASM)ORG 0000H SJMP MAIN ORG 0003H LJMP INT0 MAIN:MOV SP,#60H mov p1,#0ffh NOP CLR P1.2 NOP NOP MOV C,P1.3 JC LOWER SETB IT0 SJMP CONT LOWER:CLR IT0 CONT:SETB EX0 SETB EA HERE:SJMP HERE INT0:MOV R0,#5 LP:CPL P1.2 DLY:MOV 30H,#5 DEL0:MOV R7,#100 DEL1:MOV R6,#125
DEL2:DJNZ R6,DEL2 DJNZ R7,DEL1 DJNZ 30H,DEL0 DJNZ R0,LP CLR P1.2 RETI END
实验三 定时器/计数器定时实验(验证性实验
3学时,必做)
1. 目的和要求
(1)掌握MCS-51单片机定时器/计数器定时功能的使用方法。
(2)了解定时和计数的本质区别和联系。
2. 实验内容
编写程序,初始化定时器/计数器T0工作在定时方式1,使P1.2输出周期为10秒的方波,即使发光管亮3秒,灭7秒。
3.实验所用仪器
实验板一块、直流稳压电源、编程器一台、万用表一块
4. 程序清单(EXP9.ASM)ORG 0000H LJMP MAIN ORG 000BH LJMP INTT0 MAIN: MOV SP,#60H CLR P1.2 MOV TMOD,#01H MOV TL0,#0B0H MOV TH0,#3CH SETB TR0 SETB ET0 SETB EA LP: SETB P1.2 MOV A,#30 MOV 30H,#00 DL1:CJNE A,30H,DL1 CLR P1.2
MOV A,#70 MOV 30H,#00 DL2:CJNE A,30H,DL2 SJMP LP INTT0: MOV TL0,#0B0H MOV TH0,#3CH INC 30H RETI END 实验四 定时器/计数器计数实验(验证性实验
3学时,必做)
1. 实验目的和要求
(1)掌握MCS-51单片机定时器/计数器计数功能的使用方法。
(2)了解定时和计数的本质区别和联系。
2. 实验内容
编写程序,通过8个发光二极管来显示所计脉冲个数。
3.实验所用仪器
实验板一块、直流稳压电源、编程器一台、万用表一块
4.程序清单(EXP10.ASM)
U33CLK EQU 0FF90H ORG 0000H MAIN:MOV SP,#60H MOV TMOD,#05H SETB TR0 MOV DPTR,#U33CLK RDTIMER: MOV A,TH0 MOV R0,TL0 CJNE A,TH0,RDTIMER MOV R1,A MOV A,R0 CPL A MOVX @DPTR,A SJMP RDTIMEr END
实验五 定时器/计数器T0扩展外部中断源实验
(验证性实验
3学时,必做)
1. 实验目的和要求
掌握利用定时器/计数器扩展外部中断源使用的方法。
2. 实验内容
编写主程序,使发光管灭;编写中断服务程序,当执行中断服务程序时,发光管闪烁5次,间隔500ms,主程序运行后通过按TR3按钮触发中断。
3.实验所用仪器
实验板一块、直流稳压电源、编程器一台、万用表一块
3. 程序清单(EXP11.ASM)ORG 0000H LJMP MAIN ORG 000BH LJMP INTT0 MAIN:MOV SP,#60H MOV TMOD,#05H MOV TH0,#0FFH MOV TL0,#0FFH SETB ET0
SETB EA SETB TR0 CLR P1.2 HERE:SJMP HERE INTT0:MOV R0,#10 LP:CPL P1.2 DLY:MOV 30H,#10 DEL0:MOV R7,#100 DEL1:MOV R6,#125 DEL2:DJNZ R6,DEL2 DJNZ R7,DEL1 DJNZ 30H,DEL0 DJNZ R0,LP CLR P1.2 MOV TH0,#0FFH MOV TL0,#0FFH RETI END
实验六 串行口扩展实验(验证性实验
3学时,必做)
1.实验目的和要求
(1)掌握MCS-51单片机串行口方式0的工作原理。(2)了解方式0的应用,即通过串行口扩展输出口,进行静态显示的方法。
(3)掌握串行移位寄存器芯片74LS164的工作原理。
2.实验内容
编制程序使数码管循环依次显示00到99,每秒加1。
3.实验所用仪器
实验板一块、直流稳压电源、编程器一台、万用表一块
4.程序清单(12.ASM)
ORG 0000H LJMP MAIN ORG 000BH LJMP intt0 MAIN:MOV SP,#60H MOV TMOD,#01H SETB ET0 SETB EA MOV TH0,#3CH MOV TL0,#0B0H SETB TR0 LLP:MOV 30H,#0 MOV 31H,#0 MOV 32H,#0 MOV 33H,#0 LP:MOV R0,#32H MOV R7,#2 ACALL BINBCD MOV DPTR,#TAB DSPLY: MOV A,@R0 MOVC A,@A+DPTR;cpl a MOV SBUF,A DSP1:JNB TI,DSP1 CLR TI INC R0 DJNZ R7,DSPLY LP1:MOV A,30H CJNE A,#10,LP1 MOV 30H,#00H INC 31H MOV A,31H
CJNE A,#100,LP SJMP LLP intt0:MOV TL0,#0B0H MOV TH0,#3CH INC 30H RETI;tab:db 3fh,06h,5bh,4fh,66h,6dh,7dh,07h,7fh,6fh tab: db 0c0h,0f9h,0a4h,0b0h,99h,92h,82h,0f8h,80h,90h BINBCD:MOV A,31H MOV B,#10 DIV AB MOV 33H,A MOV A,B MOV 32H,A RET END
实验七 DAC0832数模转换实验(设计性实验
3学时,必做)
1. 设计目的
(1)掌握DAC0832与MCS51单片机的接口方法。(2)掌握D/A转换程序的设计方法。
2. 设计题与要求
认真复习所学习的DAC0832的工作方式,利用单缓冲
方式使0832输出锯齿波和三角波。并设计使运放LM741输出0-5V和0--5V的波形。如果不用示波器,如何测试你所设计的电路和所编写的程序是否正确。
3.实验所用仪器
实验板一块、直流稳压电源、编程器一台、万用表一块、示波器一台。
4.设计原理
D/A转换器的输入为数字量,经转换后输出为模拟量。
DAC0832为一个8位D/A转换器,单电源供电,在+5~+15V范围内均可正常工作。MCS-51单片机与DAC0832的接口有3种连接方式,即直通方式、单缓冲方式及双缓冲方式。所谓单缓冲方式就是使DAC0832的两个输入寄存器中有一个处于直通方式,而另一个处于受控的锁存方式,当然也可使两个寄存器同时选通及锁存。本实验中采用该方式。要求WR1和WR2连接在一起接在89C51的WR端,CS和XFER连接在一起接在片选端,ILE接+5V。
0832可以产生很多波形,如:三角波、锯齿波、梯形波等。5.设计内容
编制程序使运放LM741输出锯齿波和三角波,具体步骤:断开开关SW1,输出锯齿波;闭和开关SW1,输出三角波。
6.程序清单(DAC0832.asm)CS0832 EQU 0FF9FH ORG 0000H MAIN:MOV P1,#0FFH NOP JNB P1.3,RWAVE MOV DPTR,#CS0832 MOV A,#00H LP:MOVX @DPTR,A NOP NOP INC A AJMP LP RWAVE:MOV DPTR,#CS0832 MOV A,#00H LP1:MOVX @DPTR,A NOP INC A CJNE A,#255,LP1 NOP LP3:MOVX @DPTR,A NOP
DEC A CJNE A,#00H,LP3 MOVX @DPTR,A NOP SJMP LP1 END
实验8 8155接口芯片使用实验(综合性实验
3学时,必做)
1.实验目的和要求
(!)掌握MCS-51单片机系统I/O扩展方法。
(2)掌握并行接口芯片8155的性能以及编程使用方法。(3)掌握单片机系统动态LED显示和键盘输入程序的设计方法。
2.实验内容
编写程序实现下列功能:程序运行后数码显示管显示HHMMSS(000000),即时分秒,按键调整其为正确的时间并继续运行。
该实验综合性较强,建议学生分两步走:第一步完成显示,可以参考实验六;第二步完成键盘扫描。
3.实验所用仪器
实验板一块、直流稳压电源、编程器一台、万用表一块
4.程序清单(EXP152.asm)CE8155 EQU 0FF80H CA8155 EQU 0FF81H CB8155 EQU 0FF82H CC8155 EQU 0FF83H HMS EQU 40H SECOND EQU 41H MINUTE EQU 42H HOUR EQU 43H ORG 0000H LJMP MAIN ORG 000BH LJMP INTT0 MAIN:MOV SP,#60H MOV A,#00000011B MOV DPTR,#CE8155 MOVX @DPTR,A MOV TMOD,#01H MOV TH0,#3CH MOV TL0,#0B0H SETB ET0 SETB EA
SETB TR0 LP2:MOV HMS,#00H MOV SECOND,#00H MOV MINUTE,#00H MOV HOUR,#00H LP3:MOV R0,#30H MOV R7,#6 ACALL BINBCD MOV R2,#01H MOV A,R2 LOOP:MOV DPTR,#CA8155 MOVX @DPTR,A INC DPTR PUSH DPL PUSH DPH MOV DPTR,#TAB MOV A,@R0 MOVC A,@A+DPTR POP DPH POP DPL MOVX @DPTR,A ACALL DL2MS INC R0 MOV A,R2 JB ACC.5,LP1 RL A MOV R2,A AJMP LOOP lp1:acall kd1 AJMP LP3 INTT0:MOV TL0,#0B0H MOV TH0,#3CH INC HMS MOV A,HMS CJNE A,#0AH,PP MOV HMS,#00H INC SECOND MOV A,SECOND CJNE A,#60,PP MOV SECOND,#00H INC MINUTE MOV A,MINUTE CJNE A,#60,PP MOV MINUTE,#00H
INC HOUR MOV A,HOUR CJNE A,#24,PP MOV HOUR,#00H PP:RETI BINBCD:MOV A,HOUR MOV B,#10 DIV AB MOV 30H,A MOV 31H,B MOV A,MINUTE MOV B,#10 DIV AB MOV 32H,A MOV 33H,B MOV A,SECOND MOV B,#10 DIV AB MOV 34H,A MOV 35H,B RET tab:DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH DL2MS:MOV R3,#5 DLT1:MOV R4,#125 DLT2:DJNZ R4,DLT2
DJNZ R3,DLT1
RET KD1:ACALL KS1 JNZ LK1 ACALL DL2MS AJMP QQ LK1:ACALL DL2MS ACALL DL2MS ACALL DL2MS ACALL DL2MS ACALL KS1 JZ QQ MOV R5,#0FEH MOV R4,#00H MOV DPTR,#CA8155 MOV A,R5 MOVX @DPTR,A INC DPTR INC DPTR MOVX A,@DPTR JB ACC.0,LONE mm1:acall dl2ms acall dl2ms acall ks1 jnz mm1 INC HOUR MOV A,HOUR CJNE A,#24, LONE MOV HOUR,#00H LONE:MOV A,R5 RL A MOV R5,A MOV DPTR,#CA8155 MOV A,R5 MOVX @DPTR,A INC DPTR INC DPTR MOVX A,@DPTR JB ACC.0,LONE1 mm2:acall dl2ms acall dl2ms acall ks1 jnz mm2 INC MINUTE MOV A,MINUTE CJNE A,#60,LONE1 MOV MINUTE,#00H LONE1: MOV A,R5 RL A MOV R5,A MOV DPTR,#CA8155 MOV A,R5 MOVX @DPTR,A INC DPTR INC DPTR MOVX A,@DPTR JB ACC.0,QQ mm3:acall dl2ms acall dl2ms acall ks1 jnz mm3 INC SECOND MOV A,SECOND
CJNE A,#60,QQ MOV SECOND,#00H QQ:RET KS1:MOV DPTR,#CA8155 MOV A,#00H MOVX @DPTR,A INC DPTR INC DPTR MOVX A,@DPTR CPL A ANL A,#03H RET END
四、考核办法
每个实验:预习10%、实验操作60%、实验报告30%。最后成绩以每次实验课程成绩累加被实验项目个数相除的办法计算。
五、主要参考资料
1、《单片机接口技术开发实验指导书》
北京科技大学C31实验室
2、《8051实验指导书》
西安唐都科教仪器公司
第三篇:《单片机原理与应用》实验课程计划
《单片机原理与应用》实验课程计划 方案一:电子实习方式
以电子产品生产为背景,通过电子实习使学生学到电子产品的工艺设计知识、电子产品制作过程,掌握制作电子产品的操作技能。
具体划分为几下几个步骤:
1、焊接练习(大一上学期已经完成)
2、常用元器件和仪器仪表介绍及检测方法(大一上学期已经完成)
3、硬件原理图设计(8学时)
4、PCB设计及焊接(4学时)
5、测试记录及分析(4学时)
6、单片机软件程序设计(8学时)
7、实习文档总结(4学时)
实现难点:原理图设计是重点及难点,学时紧张 方案二:购买PCB印制板方式
购买成品的PCB印制板,要求各模块满足单片机应用的基本功能,学生练习焊接、测试、软件程序设计等操作技能。
具体划分为几下几个步骤:
1、PCB焊接(4学时)
2、测试记录及分析(8学时)
3、单片机软件程序设计(12学时)
4、实习文档总结(4学时)
实现难点:购买到价格合适功能齐全的印制板 方案三:购买李群芳老师的实验单板
购买成熟的DEMO板,学生练习实验和在线编程,学习开发环境和单片机的在线编程、仿真调试等技能。
具体划分为以下几个步骤:
1、实验程序设计、仿真调试技术
2、实现接口输入/输出、中断、定时/计数器、实施程序设计。
实现难点:李老师是否愿意技术转让的问题。其中和电信系刘玉老师聊天的时候说Dian团队卖51单板,学生立刻发了邮件给我,也存在技术转让的问题。
王丽君
2010-5-11
第四篇:《单片机原理及应用》课程教案
《单片机原理及应用》课程教案
第三次课 2学时 主要内容: 第二部分 单片机的原理与结构(3)2.5 并行I/O端口 2.6 时钟电路与时序 2.7 复位操作和复位电路 重点: P0~P3端口功能及使用中应注意的问题 机器周期、时钟周期、指令周期的定义,及时钟周期、频率的计算 复位后,特殊功能寄存器的初值 难点: P0端口的功能 2.5 并行I/O端口 4个双向的8位并行I/O端口(Port),记作P0~P3 属于特殊功能寄存器,还可位寻址。2.5.1 P0端口(讲解时强调端口完成的功能)P0口某一位的电路包括:(1)一个数据输出锁存器,用于数据位的锁存(2)两个三态的数据输入缓冲器。(3)一个多路转接开关MUX,设置多路转接开关的目的:P0口既作通用I/O口,又可作为系统的地址/数据线口。(4)数据输出的驱动和控制电路,由两只场效应管(FET)组成,上面的场效应管构成上拉电路。P0口传送地址或数据时,CPU发出控制信号为高电平,打开上面的与门,使多路转接开关MUX打向上边,使内部地址/数据线与下面的场效应管处于反相接
通状态。这时的输出驱动电路由于上下两个FET处于反相,形成推拉式电路结构,大大提高负载能力。P0口作通用的I/O口使用。这时,CPU发来的“控制”信号为低电平,上拉场效应管截止,多路转接开关MUX打向下边,与D锁存器的Q*端接通。(1)作输出口使用 来自CPU的“写入”脉冲加在D锁存器的CP端,内部总线上的数据写入D锁存器,并向端口引脚P0.x输出。注意:由于输出电路是漏极开路(因为这时上拉场效应管截止),必须外接上拉电阻才能有高电平输出。(2)作输入口使用 应区分“读引脚”和“读端口”(或称“读锁存器”)。“读引脚”信号把下方缓冲器打开,引脚上的状态经缓冲器读入内部总线;“读锁存器”信号打开上面的缓冲器把锁存器Q端的状态读入内部总线。2.5.2 P1端口 字节地址90H,位地址90H~97H。P1口只作为通用的I/O口使用,在电路结构上与P0口有两点区别:(1)因为P1口只传送数据,不再需要多路转接开关MUX。(2)由于P1口用来传送数据,因此输出电路中有上拉电阻,这样电路的输出不是三态的,所以P1口是准双向口。因此:(1)P1口作为输出口使用时,外电路无需再接上拉电阻。(2)P1口作为输入口使用时,应先向其锁存器先写入 “1”,使输出驱动电路的FET截止。2.5.3 P2端口 字节地址为A0H,位地址A0H~A7H。在实际应用中,因为P2口用于为系统提供高位地址,有一个多路转接开关MUX。但MUX的一个输入端不再是“地址/数据”,而是单一的“地址”,因为P2口只作为地址线使用。当P2口用作为高位地址线使用时,多路转接开关应接向“地址”端。正因为只作为地址线使用,口的输出用不着是三态的,所以,P2口也是一个准双向口。
P2口也可以作为通用I/O口使用,这时,多路转接开关接向锁存器Q端。2.5.4 P3端口 P3口的字节地址为B0H,位地址为B0H~B7H。P3口的第二功能定义,应熟记。P3口的第二功能定义: 口引脚 第二功能 P3.0 RXD(串行输入口)P3.1 TXD(串行输出口)P3.2 INT0*(外部中断0)P3.3 INT1*(外部中断1)P3.4 T0(定时器0外部计数输入)P3.5 T1(定时器1外部计数输入)P3.6 WR*(外部数据存储器写选通)P3.7 RD*(外部数据存储器读选通)2.5.5 P0~P3端口功能总结 使用中应注意的问题:(1)P0~P3口都是并行I/O口,都可用于数据的输入和输出,但P0口和P2口除了可进行数据的输入/输出外,通常用来构建系统的数据总线和地址总线,所以在电路中有一个多路转接开关MUX,以便进行两种用途的转换。而P1口和P3口没有构建系统的数据总线和地址总线的功能,因此,在电路中没有多路转接开关MUX。由于P0口可作为地址/数据复用线使用,需传送系统的低8位地址和8位数据,因此MUX的一个输入端为“地址/数据”信号。而P2口仅作为高位地址线使用,不涉及数据,所以MUX的一个输入信号为“地址”。(2)在4个口中只有P0口是一个真正的双向口,P1~P3口都是准双向口。原因:P0口作为系统的数据总线使用时,为保证数据的正确传送,需要解决芯片内外的隔离问题,即只有在数据传送时芯片内外才接通;不进行数据传送时,芯片内外应处于隔离状态。为此,要求P0口的输出缓冲器是一个三态门。在P0口中输出三态门是由两只场效应管(FET)组成,所以是一个真正的双向口。而其它的三个口P1~P3中,上拉电阻代替P0口中的场效应管,输出缓冲器不是三态的,因此不是真正的双向口,只能称其为准双向口
(3)P3口的口线具有第二功能,为系统提供一些控制信号。因此在P3口电路增加了第二功能控制逻辑。这是P3口与其它各口的不同之处。2.6 时钟电路与时序 时钟电路用于产生MCS-51单片机工作所必需的时钟控制信号。2.6.1 时钟电路 时钟频率直接影响单片机的速度,电路的质量直接影响系统的稳定性。常用的时钟电路有两种方式:内部时钟方式和外部时钟方式。2.6.2 机器周期、指令周期与指令时序 单片机执行的指令的各种时序均与时钟周期有关
一、时钟周期 单片机的基本时间单位。若时钟的晶体的振荡频率为fosc,则时钟周期Tosc=1/fosc。如fosc=6MHz,Tosc=166.7ns。
二、机器周期 CPU完成一个基本操作所需要的时间称为机器周期。执行一条指令分为几个机器周期。每个机器周期完成一个基本操作。MCS-51单片机每12个时钟周期为一个机器周期,一个机器周期又分为6个状态:S1~S6。每个状态又分为两拍:P1和P2。因此,一个机器周期中的12个时钟周期表示为:S1P1、S1P2、S2P1、S2P2、„、S6P2。
三、指令周期 执行任何一条指令时,都可分为取指令阶段和指令执行阶段。取指令阶段,PC中地址送到程序存储器,并从中取出需要执行指令的操作码和操作数。指令执行阶段,对指令操作码进行译码,以产生一系列控制信号完成指令的执行。ALE信号是为地址锁存而定义的,以时钟脉冲1/6的频率出现,在一个机器周期中,ALE信号两次有效(但要注意,在执行访问外部数据存储器的指令MOVX时,将会丢失一个ALE脉冲)2.7 复位操作和复位电路 2.7.1 复位操作 单片机的初始化操作,摆脱死锁状态。
引脚RST加上大于2个机器周期(即24个时钟振荡周期)的高电平就可使MCS-51复位。复位时,PC初始化为0000H,使MCS-51单片机从0000H单元开始执行程序。除PC之外,复位操作还对其它一些寄存器有影响,见表2-6(P34)。SP=07H,P0-P3的引脚均为高电平。在复位有效期间,ALE脚和PSEN*脚均为高电平,内部RAM的状态不受复位的影响。2.7.2 复位电路 片内复位结构:
复位电路通常采用上电自动复位和按钮复位两种方式。最简单的上电自动复位电路:
按键手动复位,有电平方式和脉冲方式两种。电平方式:
脉冲方式:
两种实用的兼有上电复位与按钮复位的电路。
图2-19中(b)的电路能输出高、低两种电平的复位控制信号,以适应外围I/O接口芯片所要求的不同复位电平信号。74LS122为单稳电路,实验表明,电容C的选择约为0.1mF较好。第四次课 2学时 主要内容: 第三部分 寻址方式,指令系统(1)3.1 指令系统概述 3.2 指令格式 3.3 指令系统的寻址方式 3.4.1 数据传送类指令 重点:指令系统的寻址方式 数据传送类指令
难点:指令系统的寻址方式 第三部分 寻址方式,指令系统(1)介绍MCS-51汇编语言的指令系统。3.1 指令系统概述 MCS-51的基本指令共111条,按指令所占的字节来分:(1)单字节指令49条;(2)双字节指令45条;(3)三字节指令17条。按指令的执行时间来分:(1)1个机器周期(12个时钟振荡周期)的指令64条;(2)2个机器周期(24个时钟振荡周期)的指令45条;(3)只有乘、除两条指令的执行时间为4个机器周期(48个时钟振荡周期)。12MHz晶振:机器周期为1ms。3.2 指令格式 两部分组成,即操作码和操作数。操作码用来规定指令进行什么操作,操作数则是指令操作的对象,有单字节指令、双字节指令、三字节不同长度的指令,格式不同。(1)单字节指令:指令只有一个字节,操作码和操作数同在一个字节中。(2)双字节指令:一个字节为操作码,另一个字节是操作数。(3)三字节指令:操作码占一个字节,操作数占二个字节。其中操作数既可能是数据,也可能是地址。3.3 指令系统的寻址方式 寻址方式就是在指令中说明操作数所在地址的方法。共7种寻址方式。1.寄存器寻址方式 操作数在寄存器中 MOV A,Rn ;(Rn)→A,n=0~7 表示把寄存器Rn的内容传送给累加器A 寻址范围包括:(1)4组通用工作寄存区共32个工作寄存器。(2)部分特殊功能寄存器,例如A、B 以及数据指针寄存器DPTR等。
2.直接寻址方式 操作数直接以单元地址的形式给出: MOV A,40H 寻址范围:(1)内部RAM的128个单元(2)特殊功能寄存器。除了以单元地址的形式外,还可用寄存器符号的形式给出。例如: MOV A,80H 与 MOV A,P0是等价的。直接寻址方式是访问特殊功能寄存器的唯一寻址方式 3.寄存器间接寻址方式 寄存器中存放的是操作数的地址,在寄存器的名称前面加前缀标志“@” 访问内部RAM或外部数据存储器的低256个字节时,只能采用R0或R1作为间址寄存器。例如:MOV A,@Ri ;i=0或1 其中Ri中的内容为40H,把内部RAM中40H单元的内容送到A。寻址范围:(1)访问内部RAM低128个单元,其通用形式为@Ri(2)对片外数据存储器的64K字节的间接寻址,例如: MOVX A,@DPTR(3)片外数据存储器的低256字节,例如: MOVX A,@Ri(4)堆栈区,堆栈操作指令PUSH(压栈)和POP(出栈)使用堆栈指针(SP)作间址寄存器。4.立即寻址方式 操作数在指令中直接给出,需在操作数前面加前缀标志“#”。例如: MOV A,#40H 5.基址寄存器加变址寄存器间址寻址方式 本寻址方式是以DPTR或PC作基址寄存器,以累加器A作为变址寄存器。例如:指令 MOVC A,@A+DPTR 其中A的原有内容为05H,DPTR的内容为0400H,该指令执行的结果是把程序存储器0405H单元的内容传送给A。说明:(1)本寻址方式是专门针对程序存储器的寻址方式,寻址范围可达到64KB。(2)本寻址方式的指令只有3条:
MOVC A,@A+DPTR MOVC A,@A+PC JMP @A+DPTR 6.位寻址方式 MCS-51有位处理功能,可以对数据位进行操作,例如MOV C,40H 是把位40H的值送到进位位C。寻址范围包括:(1)内部RAM中的位寻址区。位有两种表示方法,例如,40H;另一种是单元地址加上位,例如,(28H).0,指的是28H单元中的最低位。它们是等价的。(2)特殊功能寄存器中的可寻址位 可寻址位在指令中有如下4种的表示方法: a.直接使用位地址。例如PSW.5的位地址为0D5H。b.位名称的表示方法。例如:PSW.5是F0标志位,可使用F0表示该位。c.单元地址加位数的表示方法。例如 :(0D0H).5。d.特殊功能寄存器符号加位数的表示方法。例如:PSW.5。7.相对寻址方式 在相对寻址的转移指令中,给出了地址偏移量,以“rel”表示,即把PC的当前值加上偏移量就构成了程序转移的目的地址: 目的地址=转移指令所在的地址 + 转移指令的字节数+ rel 偏移量rel是一带符号的8位二进制数补码数。范围是:–128 ~ +127。向地址增加方向最大可转移(127+转移指令字节)个单元地址,向地址减少方向最大可转移(128-转移指令字节)个单元地址。3.4 MCS-51指令系统分类介绍 111条指令,按功能分类,可分为下面5大类:(1)数据传送类(28条)(2)算术操作类(24条)(3)逻辑运算类(25条)(4)控制转移类(17条)(5)位操作类(17条)指令中符号的意义: Rn 当前寄存器区的8个工作寄存器R0~R7(n=0~7)。Ri 当前选中的寄存器区中可作间接寻址寄存器的2 个寄存器R0、R1(i=0,1)。
Direct 直接地址,即8位的内部数据存储器单元或特殊功能寄存器的地址。#data 包含在指令中的8位立即数。#data16 包含在指令中的16位立即数。rel 相对转移指令中的偏移量,为8位的带符号补 码数 DPTR 数据指针,可用作16位的地址寄存器。bit 内部RAM或特殊功能寄存器中的直接寻址位。C(或Cy)进位标志位或位处理机中的累加器。addr11 11位目的地址 addr16 16位目的地址 @ 间接寻址寄存器前缀,如@Ri,@A+DPTR(X)X中的内容。((X))由X寻址的单元中的内容。→ 箭头右边的内容被箭头左边的内容所取代。3.4.1 数据传送类指令 使用最频繁的一类指令,通用格式: MOV <目的操作数>,<源操作数> 属“复制”性质,而不是“搬家”,数据传送类指令不影响标志位, CyOV,但不包括奇偶标志位P。1.以累加器为目的操作数的指令 MOV A,Rn;(Rn)→A,n=0~7 MOV A,@Ri;((Ri))→A,i=0,1 MOV A,direct;(direct)→A MOV A,#data;#data→A 例如: MOV A,R6;(R6)→A,寄存器寻址 MOV A,70H;(70H)→A,直接寻址 MOV A,@R0;((R0))→A,间接寻址 MOV A,#78H;78H→A,立即寻址 2.以Rn为目的操作数的指令、Ac和
MOV Rn,A;(A)→Rn,n=0~7 MOV Rn,direct;(direct)→Rn,n=0~7 MOV Rn,#dat;#data→Rn,n=0~7 功能:是把源操作数的内容送入当前一组工作寄存器区的R0~R7中的某一个寄存器。3.以直接地址direct为目的操作数的指令 MOV direct,A;(A)→direct MOV direct,Rn;(Rn)→direct, n=0~7 MOV direct1,direct2;MOV direct,@Ri;((Ri))→direct MOV direct,#data;#data→direct 功能:把源操作数送入直接地址指出的存储单元。direct指的是内部RAM或SFR的地址。4.以寄存器间接地址为目的操作数的指令 MOV @Ri,A;(A)→((Ri)),i=0,1 MOV @Ri,direct;(direct)→((Ri))MOV @Ri,#data;#data→((Ri))5.16位数传送指令 MOV DPTR,#data16;#data16→DPTR 唯一的16位数据的传送指令 ,立即数的高8位送入DPH,立即数的低8位送入DPL。6.堆栈操作指令 MCS-51内部RAM中可以设定一个后进先出(LIFO-Last In First Out)的区域称作堆栈.堆栈指针SP指出堆栈的栈顶位置。(1)进栈指令 PUSH direct 先将栈指针SP加1,然后把direct中的内容送到栈指针SP指示的内部RAM单元中。例如: 当(SP)=60H,(A)=30H,(B)=70H时,执行下列指令
PUSH ACC;(SP)+1=61H→SP,(A)→61H PUSH B;(SP)+1=62H→SP,(B)→62H 结果:(61H)=30H,(62H)=70H,(SP)=62H(2)出栈指令 POP direct SP指示的栈顶(内部RAM单元)内容送入direct字节单元中,栈指针SP减1.例如: 当(SP)=62H,(62H)=70H,(61H)=30H,执行下列指令: POP DPH;((SP))→DPH,(SP)-1→SP POP DPL;((SP))→DPL,(SP)-1→SP 结果:(DPTR)=7030H,(SP)=60H 7.累加器A与外部数据存储器传送指令 MOVX A,@DPTR;((DPTR))→A,读外部RAM/IO MOVX A,@Ri;((Ri))→A,读外部RAM/IO MOVX @DPTR,A;(A)→((DPTR)),写外部RAM/IO MOVX @Ri,A;(A)→((Ri)),写外部RAM/IO 功能:读外部RAM存储器或I/O中的一个字节,或把A中一个字节的数据写到外部RAM存储器或I/O中。注意:RD*或WR*信号有效。采用DPTR间接寻址,高8位地址(DPH)由P2口输出,低8位地址(DPL)由P0口输出。采用Ri(i=0,1)间接寻址,可寻址片外256个单元的数据存储器。Ri内容由P0口输出。8位地址和数据均由P0口输出,可选用其它任何输出口线来输出高于8位的地址(一般选用P2口输出高8位的地址)。MOV后 “X”表示单片机访问的是片外RAM存储器或I/O。8.查表指令 共两条,用于读程序存储器中的数据表格的指令,均采用基址寄存器加变址寄存器间接寻址方式。(1)MOVC A,@A+PC
以PC作基址寄存器,A的内容作为无符号整数和PC中的内容(下一条指令的起始地址)相加后得到一个16位的地址该地址指出的程序存储单元的内容送到累加器A。注意:PSEN*信号有效。例如:(A)=30H,执行地址1000H处的指令 1000H: MOVC A,@A+PC 本指令占用一个字节,执行结果将程序存储器中1031H的内容送入A。优点:不改变特殊功能寄存器及PC的状态,根据A的内容就可以取出表格中的常数。缺点:表格只能存放在该条查表指令后面的256个单元之内,表格的大小受到限制,且表格只能被一段程序所利用。(2)MOVC A,@A+DPTR 以DPTR作为基址寄存器,A的内容作为无符号数和DPTR的内容相加得到一个16位的地址,把由该地址指出的程序存储器单元的内容送到累加器A.例如(DPTR)=8100H(A)=40H 执行指令 MOVC A,@A+DPTR 本指令的执行结果只和指针DPTR及累加器A的内容有关,与该指令存放的地址及常数表格存放的地址无关,因此表格的大小和位置可以在64K程序存储器中任意安排,一个表格可以为各个程序块公用。两条指令是在MOV的后面加C,“C”是CODE的第一个字母,即代码的意思。9.字节交换指令 XCH A,Rn XCH A,direct XCH A,@Ri 例如:(A)=80H,(R7)=08H,(40H)=F0H(R0)=30H,(30H)=OFH 执行下列指令: XCH A,R7;(A)与(R7)互换
XCH A,40H;(A)与(40H)互换 XCH A,@R0;(A)与((R0))互换 结果:(A)=0FH,(R7)=80H,(40H)=08H,(30H)=F0H 10.半字节交换指令 XCHD A,@Ri 累加器的低4位与内部RAM低4位交换。例如:(R0)=60H,(60H)=3EH,(A)=59H执行完
指令,则(A)=5EH,(60H)=39H。XCHD A,@RO
第五篇:数据库原理与应用实验教案
实验报告格式 《数据库原理》实验报告
(实验名称:)
专业
班级级()班 学号 学生姓名 指导老师
攀枝花计算机学院 年月日
一、实验目的
本次实验所涉及并要求掌握的知识点。根据老师实验前的讲授自行撰写。(小四号字,宋体)
二、实验内容:
本次实验的内容及相关题目描述(小四号字,宋体)
三、SQL语句及运行结果 创建数据库:
在数据库节点右键新建数据库,增加和修改数据文件名,设置增长方式以及数据库逻辑名称
文件组添加Slave文件组 修改数据库:
利用SQL语句修改,删除,添加数据库文件
删除数据库:
按照实验内容编写的SQL语句或程序代码与结果显示(小四号字,宋体)
四、实验总结
1 .实验中遇到的问题及解决过程 2 .实验中产生的错误及原因分析 3 .实验体会和收获。
实验一 创建数据库(操作型)1.1 实验目的
(1)理解并掌握数据库的基本概念;
(2)理解并掌握数据文件、日志文件、文件组的基本概念;
(3)熟练掌握和使用SQL Server Management Studio管理器创建、删除、更改(包括文件组、文件大小、文件增长方式等参数)数据库;(4)熟练使用DDL语句来创建、删除、更改(包括文件组、文件大小、文件增长方式等参数)数据库。
1.2 实验内容
件组,分别是主文件组和“Slave”文件组。数据库包含两个数据文件,分别是“mymaster.mdf”和“myslave.ndf”,其中数据文件“mymaster.mdf”属于主文件组,存放在d:data目录下,文件初始大小50M,文件属性为自动增长,每次增长10%。数据文件“myslave.ndf”存放在e:data目录下,属于Slave文件组,文件大小固定为50M。该数据库有一个日志文件,日志文件名称“mylog.ldf”,文件位于c:log目录中,日志文件初始大小为50M,文件属性为自动增长,每次增长10M,最大文件大小为100M(实验时一定要保证c:Log、d:data和e:data目录存在,否则会发生错误,如果计算机d:盘或e:盘不存在,实验时须将路径调整到已存在的磁盘下);(1)创建数据库:待创建的数据库逻辑名称为“MyDB”。该数据库有两个文(2)修改数据库:将刚才创建的数据库“MyDB”的名称修改为“TESTDB”,并删除数据文件“myslave.ndf”,同时增加一个数据文件,该数据文件逻辑名称为“test“,文件名称为“test.ndf”,数据文件位于e:data(在e盘存在的情况下,如果e盘不存在,可指定道其他磁盘位置下),其他参数默认;
(3)删除刚刚创建的“TESTDB”数据库。
1.3 实验步骤
对数据库的管理(包括创建、修改、删除)可以有两种方式完成,使用SQL Server Management Studio管理器可以完成数据库的日常管理,还可以通过查询窗口输入DDL语句完成数据库的管理。
1.3.1 数据库创建
(1)使用SQL Server Management Studio创建数据库(2)使用SQL语句创建数据库
1.3.2 修改数据库
1.3.3 删除数据库“TESTDB”
(1)使用Management Studio删除“TESTDB”(2)使用SQL语句删除数据库
1.4 思考与练习
答:(1)什么是数据库?数据库的组成有哪些?
(2)什么是文件组?如何创建文件组?主文件组可以删除吗?
答:
(3)数据文件,日志文件各有什么作用?
答:
(4)文件增长方式有哪些?如何设置?
答:1)在新建数据库的界面中设置自动增长方式
2)利用SQL语句size设置大小,filegrowth设置增长类型,maxsize设置最大文件.(5)SQL Server Management Studio与数据库的关系是什么
答: