文档库 最新最全的文档下载
当前位置:文档库 › 南昌航空大学 单片机实验(全)

南昌航空大学 单片机实验(全)

南昌航空大学 单片机实验(全)
南昌航空大学 单片机实验(全)

南昌航空大学

信息工程学院

实验报告

课程名称:单片微型机原理

学号:

姓名:

指导教师:________ ___________ 成绩:_________________________

南昌航空大学实验报告

2014年 3 月 14 日

课程名称: 单片微型机原理 实验名称: 清零、电脑时钟 班级: 姓名: 学号: 指导老师评定: 签名:

一、实验目的

1、掌握汇编语言设计和调试方法,熟悉键盘操作;

2、熟悉MCS —51定时器、串行口和中断初始化编程方法,了解定时器应用在实时控制中程序的设计技巧。

二、实验内容

1、把7000H ~ 70FFH 的内容清零。

2、编写程序,从DVCC 系列单片机实验仪键盘上输入时间初值,用定时器产生0.1S 定时中断,对时钟计数器计数,并将数值实时地送数码管显示。

三、实验步骤

清零程序

1、实验程序框图

N

Y 开始 R0 =0,DPTR=7000H 00送到(DPTR) DPTR+1,R0+1 R0 = FF ?

结束

2、当DVCC单片机仿真实验系统独立工作时

(1)将固化区EPROM中实验程序目标码传送到仿真RAM区,操作如下:输入0后按F1键,再输入0FFF后按F2键,再输入0后按EPMOV稍等,系统返回初始状态,显示“P."。

(2)按F2键进入仿真1态,仿真实验系统显示闪动“P......”时,根据表一所示,通过键盘输入实验程序的起始地址0030H,再按执行键EXEC,表示连续运行该程序,稍后,按RESET键退出运行;如果以单步运行程序,则输入0300后,按STEP键,按一次执行一条语句,直到执行到003CH为止,按MON键退出运行;如果以断点运行程序,则先输入003C (断点地址),再按F1键,再输入0030(起始地址),然后按EXEC键执行程序,当执行到003CH时自动停下来,此时按MON键退出。

(3)用存储器读写方法检查7000H—70FFH中的内容应全是00H。

3、当DVCC单片机仿真实验系统联PC机工作时

(1)在闪动“P.”状态,按PCDBG键。

(2)在PC机处于WIN95/98软件平台下,单击DVCC图标。

(3)在系统设置选项中设定仿真模式为内程序、内数据。

(4)根据屏幕提示进入51/96动态调试菜单。

(5)联接DVCC实验系统(Ctrl + H)。

(6)装载目标文件(Ctrl + L)。

(7)设置PC起始地址。

(8)从起始地址开始连续运行程序(F9)或单步(F8)或断点运行程序。

(9)单步、断点运行完后,在存储器窗口内检查7000H—70FFH中的内容是否全为00H。4、清零程序

ORG 0030H

CLEAR: MOV R0,#00H

MOV DPTR,#7000H;设数据指针DPTR=7000H

CLEAR1: CLR A

MOVX @DPTR,A ;清第一个数据单元

INC DPTR ;指针加一

INC R0 ;字节数加一

CJNE R0,#00H,CLEAR1 ;判字节数满256个否,不满继续

CLEAR2: SJMP CLEAR2 ;满结束程序

END

电脑时钟

1、实验程序框图

2、实验操作

(1) 用连续方式从起始地址0340H 开始执行程序(输入0340后按EXEC 键)。

(2) 连续运行程序,在键盘上输入时间初值。如果输入时分秒初值超范围,则显示000000后要求重新设置初值,初值的默认值为000000。

(3) 再次按EXEC 键时钟开始工作,数码管上实时显示时间值。 3、电脑时钟程序 ORG 000BH LJMP TINTRUP ORG 0340h CLOCK0: MOV SP,#50H MOV R0,#7EH ;清显示缓冲区

MOV R4,#06H CLR A CLOCK1:MOV @R0,A DEC R0 DJNZ R4,CLOCK1 MOV A,#7EH MOV DPTR,#1FFFH MOVX @DPTR,A MOV 76H,#00H ;初始化定时/计数器

MOV 77H,#00H LCALL KEYDISP0 ;调显示键扫子程序

LCALL DISDA0 ;调显示缓冲区放数程序 MOV TMOD,#01H ORL IE,#82H MOV TL0,#0B7H

MOV TH0,#3CH MOV 23H,#00H SETB TR0 ;开定时中断 CLOCK2: LCALL DISP ;调显示子程序 LCALL DISDA0 ;调显示缓冲区放数子程序 SJMP CLOCK2 ;循环 DISDA0: MOV R0,#79H ;显示缓冲区放数子程序

MOV A,22H ACALL DISDA MOV A,21H

ACALL DISDA 恢复初值,保护现场

定时中断 Y Y Y

N

N N N

Y 1秒到吗? 0.1秒单元清零,60秒到吗? 秒单元清零,60秒到吗? 分单元清零,24小时到吗? 时单元清零 堆栈返回 0.1秒加1

秒加1

分加1

时加1 N

Y

清显示缓冲区 初始化定时计数器 显示初值000000 从键盘设时钟初值 判时钟初值合乎规定否? 开始 开定时器 显示器显示当前时钟值

MOV A,20H

ACALL DISDA

RET

DISDA: M OV R1,A

ACALL DISDA1

MOV A,R1

SWAP A

DISDA1: ANL A,#0FH

MOV @R0,A

INC R0

RET

TINTRUP: MOV TL0,#0B7H

;定时器中断服务程序

MOV TH0,#3CH

;重新置初值

PUSH PSW

PUSH ACC

;保护当前值

SETB 0D3H

INC 23H

;0.1秒单元加1

MOV A,23H

CJNE A,#0AH,TINTRUP1

;判1秒到否,未到继续

MOV 23H,#00H

;清0.1秒单元

MOV A,22H

INC A

;秒单元加1

DA A

MOV 22H,A

CJNE A,#60H,TINTRUP1

;判60秒到否,未到继续

MOV 22H,#00H

;清秒计数单元

MOV A,21H

INC A

;分单元加1

DA A

MOV 21H,A

CJNE A,#60H,TINTRUP1

;判60分到否,未到继续

MOV 21H,#00H

;清分计数单元

MOV A,20H

INC A

;时单元加1

DA A

MOV 20H,A

CJNE A,#24H,TINTRUP1

;判24小时到否,未到继续

MOV 20H,#00H

;清时计数单元

TINTRUP1:POP ACC

POP PSW

RETI

;返回主程序

KEYDISP0:LCALL KEY

;调显示键扫子程序

JNC FANCKEY

;转功能键处理

DA TAKEY: LCALL DATAKEY1

;数值键处理

DB 79H,7EH

SJMP KEYDISP0

FANCKEY: CJNE A,#16H,KEYDISP0 ;是执行键,判输入的秒初值是否超限MOV A,7AH

SWAP A

ORL A,79H

MOV 22H,A

CJNE A,#60H,FANCKEY1 FANCKEY1: JNC FANCKEY4

;判输入的分初值是否超限MOV A,7CH

SWAP A

ORL A,7BH

MOV 21H,A

CJNE A,#60H,FANCKEY2 FANCKEY2: JNC FANCKEY4

;判输入的时初值是否超限

MOV A,7EH

SWAP A

ORL A,7DH

MOV 20H,A

CJNE A,#24H,FANCKEY3 FANCKEY3:JNC FANCKEY4

RET

FANCKEY4:CLR TR0

LJMP CLOCK0

DA TAKEY1:MOV R4,A

;数字键处理子程序

MOV DPTR,#1FFFH MOVX A,@DPTR

MOV R1,A

MOV A,R4

MOV @R1,A

CLR A

POP 83H

POP 82H

MOVC A,@A+DPTR

INC DPTR

CJNE A,01H,DATAKEY3

DEC R1

CLR A

MOVC A,@A+DPTR

DA TAKEY2: PUSH 82H PUSH 83H

MOV DPTR,#1FFFH

MOVX @DPTR,A

POP 83H

POP 82H

INC DPTR

PUSH 82H

PUSH 83H

RET

DA TAKEY3: DEC R1

MOV A,R1

SJMP DATAKEY2 KEY0: MOV R6,#20H

;数字键闪动程序MOV DPTR,#1FFFH

MOVX A,@DPTR

MOV R0,A

MOV A,@R0

MOV R7,A

MOV A,#10H

MOV @R0,A

KEY3: LCALL KEYDISP JNB 0E5H,KEY2

DJNZ R6,KEY3

MOV DPTR,#1FFFH

MOVX A,@DPTR

MOV R0,A

MOV A,R7

MOV @R0,A

KEY: MOV R6,#50H

KEY1: LCALL KEYDISP

JNB 0E5H,KEY2

DJNZ R6,KEY1

SJMP KEY0

K

MOV A,@R1

MOV R3,A

XRL A,R4

MOV R3,04H

MOV R4,02H

JZ KEYDISP1

MOV R2,#88H

MOV R4,#88H

KEYDISP1: DEC R4

MOV A,R4

XRL A,#82H

JZ KEYDISP2

MOV A,R4

XRL A,#0EH

JZ KEYDISP2

MOV A,R4

ORL A,R4

JZ KEYDISP3

MOV R4,#20H

DEC R2

LJMP KEYDISP5

KEYDISP3: MOV R4,#0FH KEYDISP2: MOV R2,04H

MOV R4,03H

KEYDISP5: MOV R1,#76H

MOV A,R2

MOV @R1,A

INC R1

MOV A,R3

MOV @R1,A

MOV A,R4

CJNE R3,#10H,KEYDISP4 KEYDISP4: RET

DISP: SETB 0D4H ;显示子程序MOV R1,#7EH

MOV R2,#20H

MOV R3,#00H

DISP1: MOV DPTR,#0FF21H

MOV A,R2

MOVX @DPTR,A

MOV DPTR,#DATACO

MOV A,@R1

MOVC A,@A+DPTR

MOV DPTR,#0FF22H

MOVX @DPTR,A

DISP2: DJNZ R3,DISP2

DEC R1

CLR C

MOV A,R2

RRC A

MOV R2,A

JNZ DISP1

MOV A,#0FFH

MOV DPTR,#0FF22H

MOVX @DPTR,A

CLR 0D4H

RET

DA TACO: DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,8 0H,90H

DB

88H,83H,0C6H,0A1H,86H,8EH,0FFH,0CH,89H ,0DEH

键扫子程序

KEYSM:SETB 0D4H

MOV A,#0FFH

MOV DPTR,#0FF22H

MOVX @DPTR,A

KEYSM0: MOV R2,#0FEH

MOV R3,#08H

MOV R0,#00H

KEYSM1: MOV A,R2

MOV DPTR,#0FF21H

MOVX @DPTR,A

;键矩阵中第1列置0

NOP

RL A

MOV R2,A

MOV DPTR,#0FF23H

;读键的行值

MOVX A,@DPTR

CPL A

NOP

NOP

NOP

ANL A,#0FH

JNZ KEYSM2

INC R0

;无键且未到最后一列继续

DJNZ R3,KEYSM1

SJMP KEYSM10

KEYSM2: ;有键,计算键值

CPL A

JB 0E0H,KEYSM3

MOV A,#00H

SJMP KEYSM7

KEYSM3: JB 0E1H,KEYSM4

MOV A,#08H

SJMP KEYSM7

KEYSM4: JB 0E2H,KEYSM5

MOV A,#10H

SJMP KEYSM7

KEYSM5: JB 0E3H,KEYSM10

MOV A,#18H

KEYSM7: ADD A,R0

CLR 0D4H

CJNE A,#10H,KEYSM9

KEYSM9: JNC KEYSM10

MOV DPTR,#KEYDATA

MOVC A,@A+DPTR

KEYSM10: RET ;返回KEYDATA: DB 07H,04H,08H,05H,09H,06H,0AH,0BH ;键值表(0—F)

DB

01H,00H,02H,0FH,03H,0EH,0CH,0DH

四、实验小结

通过本次实验初步了解了单片机工作的基本原理,再次复习了汇编语言编写的相关内容,练习了单片机汇编程序设计的相关知识。理解并实践了单片机计数和计时的相关概念和应用。

南昌航空大学实验报告

2014年3 月21 日

课程名称:单片微型机原理实验名称:脉冲计数

班级:姓名:学号:

指导老师评定:签名:

一、实验目的

熟悉8031定时/计数功能,掌握定时/计数初始化编程方法。

二、实验内容

对定时器0外部输入的脉冲进行计数,并送显示器显示。

三、实验步骤

1、实验程序框图

2 、实验操作

(1)把8032CPU的P3.4插孔接T0—T7任一根信号线或单脉冲输出空“SP”。

(2)用连续方式从起始地址02A0H开始运行程序(按02A0后按EXEC键)。

(3)观察数码管显示的内容应为脉冲个数。

(4)脉冲计数程序

CONT: MOV SP,#53H

MOV TMOD,#05H

;初始化定时/计数器 MOV TH0,#00H MOV TL0,#00H

SETB TR0

;允许定时/计数中断

堆栈、定时/计数初始化

开定时器

取出TL0、TH0内容

调用二转十进制子程序结果送显示缓冲器

开始

调显示子程序

N

Y

16送位计数器R7

0送CY

R2 R3右移一位

2*(R4R5R6)+CY 送R4R5R6

(R7)-1送R7

0送R4 R5 R6

R7=0?

结束

CONT1: MOV R2,TH0

;取计数值

MOV R3,TL0

LCALL CONT2

;调二转十进制子程序

MOV R0,#79H

MOV A,R6

LCALL PWOR

MOV A,R5

LCALL PWOR

MOV A,R4

LCALL PWOR

LCALL DISP

;调显示子程序

SJMP CONT1

;循环

CONT2: CLR A

;清R4、R5、R6

MOV R4,A

MOV R5,A

MOV R6,A

MOV R7,#10H

CONT3: CLR C

;R2、R3左移,移出的位送CY

MOV A,R3

RLC A

MOV R3,A

MOV A,R2

RLC A

MOV R2,A

MOV A,R6

ADDC A,R6

;R4、R5、R6×2 + CY送R4、R5、R6 DA A

MOV R6,A

;十进制调整

MOV A,R5

ADDC A,R5

DA A

MOV R5,A

MOV A,R4

ADDC A,R4

DA A

MOV R4,A

DJNZ R7,CONT3

;循环16次

RET

PWOR: MOV R1,A ;

;拆送显示缓冲区

LCALL PWOR1

MOV A,R1

SWAP A

PWOR1: ANL A,#0FH

MOV @R0,A

INC R0

RET

DISP: SETB 0D4H

;显示子程序

MOV R1,#7EH

MOV R2,#20H

MOV R3,#00H

DISP1: MOV DPTR,#0FF21H

MOV A,R2

MOVX @DPTR,A

MOV DPTR,#CDATA

MOV A,@R1

MOVC A,@A+DPTR

MOV DPTR,#0FF22H

MOVX @DPTR,A

DISP2: DJNZ R3,DISP2

DEC R1

CLR C

MOV A,R2

RRC A

MOV R2,A

JNZ DISP1

MOV A,#0FFH

MOV DPTR,#0FF22H

MOVX @DPTR,A

CLR 0D4H

RET

CDATA: DB

0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80 H,90H

DB

88H,83H,0C6H,0A1H,86H,8EH,0FFH,0CH,89H,0 DEH

四、实验小结

通过本次实验,初步熟悉8031定时/计数功能,掌握定时/计数初始化编程方法。

南昌航空大学实验报告

2014年 3 月 28 日

课程名称:单片微型机原理 实验名称:P 口输入输出、步进电机控制 班级: 姓名: 学号: 指导老师评定: 签名:

一、实验目的

1 掌握P3口、P1口简单使用; 2

学习延时程序的编写和使用; 3了解步进电机控制的基本原理;

4

二、实验内容

1 P3.3口做输入口,外接一脉冲,每输入一个脉冲,P1口按十六进制加一;

2 P1口做输出口,编写程序,使P1口接的8个发光二极管L1—L8按16进制加一方式点亮发光二极管;

3 从键盘上输入正、反转命令,转速参数和转动步数显示在显示器上,CPU 再读取显示器上显示的正、反转命令,转速级数(16级)和转动步数后执行。转动步数减为零时停止转动。

三、实验步骤

P3.3 输入,P1 口输出实验 1、实验程序框图:

Y

N N Y R6设初值FFH R7设初值FFH R7-1=0否? R6-1=0否?

返回

延时子程序 N

N Y Y

N Y 延时 P3.3真的高吗? P3.3为低吗? 延时

开始 A+1送P1口 循环

P3.3为高吗?

实验电路原理图:

2 、实验操作

①P3.3用插针连至K1,P1.0—P1.7用插针连至L1—L8

②从起始地址0540H开始连续运行程序(输入0540后按EXEC键)

③开关K1每拨动一次,L1—L8发光二极管按16进制方式加一点亮

RG 0540h

HA1S: MOV A,#00H

HA1S1: JB P3.3,HA1S1

;判P3.3为低电平否

MOV R2,#20H

LCALL DELAY

;调延时子程序

MOV R2,#20H

LCALL DELAY

JNB P3.3,HA1S2

;判P3.3为高电平否

INC A ;加1

PUSH ACC

CPL A

;取反后送P1显示

MOV P1,A

POP ACC

AJMP HA1S1 ;循环DELAY: PUSH 02H ;延时子程序DELAY1: PUSH 02H

DELAY2: PUSH 02H

DELAY3: DJNZ R2,DELAY3

POP 02H

DJNZ R2,DELAY2

POP 02H

DJNZ R2,DELAY1

POP 02H

DJNZ R2,DELAY

RET

END

步进电机控制实验实验电路原理图:

实验程序框图:

1

插到实验系统J3插座中,P1.0—P1.3接到BA —

BD 2P.”状态下,从始地址开始(0A30H)连续执行程序。输入始地址后按EXEC 键。 3示器上显示,第一位为0表示正转,为1表示反转,第二位0—F 为转速等级,第三到第六位设定步数,设定完按EXEC 键,步进电机开始旋转。

步进电机控制程序(源文件名:H511S .ASM ) ORG 0A30H MONIT: MOV SP,#50H MOV 7EH,#00H ;设步进电

机正转标志显示在第一位 MOV 7DH,#02H ;设步进

电机速转控制值显示在第二位 MOV R0,#7CH ;设步距数

值为8888,显示在第三到第六位 MOV A,#08H MOV R4,#04H MONIT1: MOV @R0,A DEC R0 DJNZ R4,MONIT1 MOV A,#7EH ;置显示位置标志

MOV DPTR,#1FFFH MOVX @DPTR,A MOV 76H,#00H MOV 77H,#00H

KEYDISP0:LCALL KEY ;调显示键扫子程序

JC DATAKEY ;转数字键处理

AJMP MONIT2 ;转功能键处理 DA TAKEY:LCALL DATAKEY1 DB 79H,7EH SJMP KEYDISP0 MONIT2: CJNE A,#16H,KEYDISP0 ;不是执行键转 LCALL DISP ;调显示子程序

MOV A,7AH ;取步距数送R6、R7 ANL A,#0FH

Y Y Y N

N

N

开始

执行键是否按下? 从键盘输入数据,数码管显示

(7D)内容计算延时

步距数-1,送显示缓冲区

步距数为0吗?

停止

顺时针转动一步 停止

显示缓冲区(7E )=1吗?

逆时针转动一部

根据显示缓冲区(7D )内容计算延时

步距数-1,送显示缓冲区

步距数为0吗?

SWAP A

ADD A,79H

MOV R6,A

MOV A,7CH

ANL A,#0FH

SWAP A

ADD A,7BH

MOV R7,A

MOV A,7EH

CJNE A,#00H,MONIT4

;判转动方向

MONIT3: MOV P1,#03H ;顺时针转

LCALL DELAY0

LCALL MONIT5

MOV P1,#06H

LCALL DELAY0

LCALL MONIT5

MOV P1,#0CH

LCALL DELAY0

LCALL MONIT5

MOV P1,#09H

LCALL DELAY0

LCALL MONIT5

SJMP MONIT3

MONIT4:MOV P1,#09H

;逆时针转

LCALL DELAY0

LCALL MONIT5

MOV P1,#0CH

DJNZ R6,KEY1

SJMP KEY0

KEY2: MOV R6,A

MOV A,R7

MOV @R0,A

MOV A,R6

KEYEND: RET

KEYDISP:LCALL DISP

LCALL KEYSM

;调键扫子程序

MOV R4,A ;键消抖

MOV R1,#76H

MOV A,@R1

MOV R2,A

INC R1

MOV A,@R1

MOV R3,A

XRL A,R4

MOV R3,04H

MOV R4,02H

JZ KEYDISP1

MOV R2,#88H

MOV R4,#88H

KEYDISP1: DEC R4

MOV A,R4

XRL A,#82H

JZ KEYDISP2

MOV A,R4

XRL A,#0EH

JZ KEYDISP2

MOV A,R4

ORL A,R4

JZ KEYDISP3

MOV R4,#20H

DEC R2

LJMP KEYDISP5

KEYDISP3: MOV R4,#0FH KEYDISP2: MOV R2,04H

MOV R4,03H

KEYDISP5: MOV R1,#76H

MOV A,R2

MOV @R1,A

INC R1

MOV A,R3

MOV @R1,A

MOV A,R4

CJNE R3,#10H,KEYDISP4 KEYDISP4: RET

DISP: SETB 0D4H ;显示子程序MOV R1,#7EH

MOV R2,#20H

MOV R3,#00H

DISP1: MOV DPTR,#0FF21H MOV A,R2

MOVX @DPTR,A

MOV DPTR,#DATA1

MOV A,@R1

MOVC A,@A+DPTR

MOV DPTR,#0FF22H

MOVX @DPTR,A

DISP2: DJNZ R3,DISP2

DEC R1

CLR C

MOV A,R2

RRC A

MOV R2,A

JNZ DISP1

MOV A,#0FFH

MOV DPTR,#0FF22H

MOVX @DPTR,A

CLR 0D4H

RET

DA TA1:DB

0C0H,0F9H,0A4H,0B0H,99H,92H,82H,

0F8H,80H,90H

DB

88H,83H,0C6H,0A1H,86H,8EH,0FFH,0CH,89H ,0DEH

KEYSM: SETB 0D4H ;键扫子程序

MOV A,#0FFH

MOV DPTR,#0FF22H

MOVX @DPTR,A ;关显示

KEYSM0: MOV R2,#0FEH

MOV R3,#08H

MOV R0,#00H

KEYSM1: MOV A,R2 ;使第一列为0

MOV DPTR,#0FF21H

MOVX @DPTR,A

NOP

RL A

MOV R2,A

MOV DPTR,#0FF23H

MOVX A,@DPTR

CPL A ;读行值

NOP

NOP

NOP

ANL A,#0FH

JNZ KEYSM2

INC R0

;无键继续扫描下一行

DJNZ R3,KEYSM1

SJMP KEYSM10

KEYSM2: CPL A ;有键,计算键值

JB 0E0H,KEYSM3

MOV A,#00H

SJMP KEYSM7

KEYSM3: JB 0E1H,KEYSM4

MOV A,#08H

SJMP KEYSM7

KEYSM4: JB 0E2H,KEYSM5

MOV A,#10H

SJMP KEYSM7

KEYSM5: JB 0E3H,KEYSM10

MOV A,#18H

KEYSM7: ADD A,R0

CLR 0D4H

CJNE A,#10H,KEYSM9

KEYSM9: JNC KEYSM10

MOV DPTR,#DATA2

MOVC A,@A+DPTR

KEYSM10: RET

DA TA2: DB

07H,04H,08H,05H,09H,06H,0AH,0BH

;键值表(0—F)

DB 01H,00H,02H,0FH,03H,0EH,0CH,0DH

EN

四、实验小结

通过本次实验学习P3口、P1口简单使用。学习延时程序的编写和使用。了解步进电机控制的基本原理。掌握步进电机转动编程方法。

南昌航空大学实验报告

2014年4 月3 日

课程名称:单片微型机原理实验名称:8031 串行口应用

班级:姓名:学号:

指导老师评定:签名:

一、实验目的

1

2

3PC

二、实验内容

1 利用8031单片机串行口,实现与PC

2键入的数字、字母显示到PC机显示器上,反过来从PC机键盘上输入的字符(0—F)显示到实验仪的数码管上。

三、实验步骤

1、实验电路原理图

1)实验系统中考虑用户可以方便使用串行口实现双机或和上位机通信,系统有用户专用串行接口,只要配上用户专用通信电缆线就可以实现和上位机通信,不影响监控系统和上位机的联机工作。J10就是用户专用串行接口,将J10用用户专用通信线连到上位机的串口上。

2)实验时需将8031串行接收信号线P3.0(RXD)连到J10下面RXD插孔;8031的P3.1(TXD)连到J10下面TXD插孔上。

3 )两台实验机必须共地

2 、实验操作

1)在DVCC 实验系统处于“

P 2)输入四位起始地址0D00后,按

EXEC 3)在上位机上运行

DVSIO

4)从DVCC 实验系统的键盘上输入数字键,会显示在上位机屏幕上,从上位机键盘上输入数字键会显示在实验系统的数码管上。

3、8031 串行口应用一(与PC 机通信)程序

ORG 07F0H

START: MOV SP,#60H MOV A,#02H

;初始化显示缓冲区 MOV R0,#79H MOV @R0,A INC R0

MOV A,#10H MOV @R0,A INC R0

MOV A,#01H MOV @R0,A INC R0

MOV A,#03H MOV @R0,A INC R0

MOV A,#00H MOV @R0,A INC R0

MOV A,#08H MOV @R0,A MOV A,#7EH

;置显示位置指针

MOV DPTR,#1FFFH MOVX @DPTR,A MOV 87H,#80H ;置SMOD=1

MOV SCON,#50H ;串口方式1

MOV TMOD,#20H ;T1 方式1

MOV TL1,#0F3H ;波特率 2400 的常数 MOV TH1,#0F3H SETB TR1 ;启动定时器

CLR ET1 ;关中断 CLR ES

WAIT:

JBC RI,DIS_REC ;是否接收到数据 LCALL DISP ;无数据调用显示程序 SJMP WAIT ;循环等待

DIS_REC:MOV A,SBUF ;读串口接收到的数据 LCALL DA TAKEY ;显示输入的数字(0-F) DB 79H,7EH AJMP WAIT ;循环 DA TAKEY:MOV R4,A ;数字处理子程序 MOV DPTR,#1FFFH MOVX A,@DPTR MOV R1,A MOV A,R4 MOV @R1,A CLR A POP 83H POP 82H MOVC A,@A+DPTR INC DPTR CJNE A,01H,DATAKEY2 DEC R1 CLR A MOVC A,@A+DPTR DA TAKEY1: PUSH 82H PUSH 83H MOV DPTR,#1FFFH MOVX @DPTR,A

POP 83H POP 82H INC DPTR PUSH 82H PUSH 83H RET

DA TAKEY2: DEC R1

MOV A,R1

SJMP DATAKEY1

DISP : SETB 0D4H

;调用显示子程序

MOV R1,#7EH

MOV R2,#20H

MOV R3,#00H

DISP1 : MOV DPTR,#DATACO

MOV A,@R1

MOVC A,@A+DPTR

MOV DPTR,#0FF22H

MOVX @DPTR,A

MOV DPTR,#0FF21H

MOV A,R2

MOVX @DPTR,A

DEC R1

LCALL DELAY

CLR C

MOV A,R2

RRC A

MOV R2,A

JNZ DISP1

CLR 0D4H

RET

DELAY: MOV R7,#03H

DELAY0: MOV R6,#0FFH

DELAY1: DJNZ R6,DELAY1

DJNZ R7,DELAY0

RET

DATACO:DB

0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,8 0H,90H

DB

88H,83H,0C6H,0A1H,86H,8EH,0BFH,0CH,89H ,0DEH

END

四、实验小结

通过本次实验初步掌握串行口工作方式的程序设计,掌握单片机通信程序编制方法。了解了实现串行通信的硬环境,数据格式的协议,数据交换的协议。了解了PC机通信的基本要求。

南昌航空大学实验四

南昌航空大学实验报告 课程名称:数据结构A 实验名称:实验四队列的应用 班级: XXX 学生姓名: XXX 学号: XXXXX 指导教师评定: XXX 签名: XXX 一、实验目的 本实验是队列的一种典型的应用,队列是一种“先到先服务”的特殊的线性 表,本实验要求模拟手机短信功能,使用链式存储结构的队列,进行动态地增加 和删除结点信息。 通过本实验的学习,可以理解队列的基本操作的实现。 二、实验内容 设计程序要求,模拟手机的某些短信息功能。 功能要求: (1)接受短信息,若超过存储容量(如最多可存储20条),则自动将最早接受 的信息删除。 (2)显示其中任意一条短信息。 (3)逐条显示短信息。 (4)删除其中的任意一条短信息。 (5)清除。 三、程序分析 采用结构体指针定义存储短信结点: typedef struct Qnode {char data[MAXNUM];/*字符数组存储短信*/ struct Qnode *next; }Qnodetype; /*定义队列的结点*/ 定义队列:

typedef struct { Qnodetype *front;/*头指针*/ Qnodetype *rear; /*尾指针*/ int number;/*短信数量*/ }Lqueue; (1)int initLqueue(Lqueue **q) 初始化短信队列。 (2)int LInQueue(Lqueue *q,char x[]) 入队列,将字符串x加入到队列尾部。 (3)char * LOutQueue(Lqueue *q) 出队列,删除队头元素,返回其中的字符串。 (4)void get(Lqueue *q,char x[]) 接收短数,若短信数量超过20条,则删除队头短信。 (5)void deleteall(Lqueue *q) 清除所有短信。 (6)void deleteone(Lqueue *q,int n) 删除第n条短信。 (7)void displayall(Lqueue *q) 显示所有短信。 (8)void displayone(Lqueue *q,int n) 显示第n条短信。 在main()函数中,采用菜单方式,菜单中同时显示出已有的短信数量,由用户选择输入命令,实现程序要求功能,命令说明: R(r):接收短信 L(l):显示任意一条短信 A(a):显示所有短信 D(d):删除任意一条短信 U(u):删除所有短信 Q(q):退出 四、程序源代码

南昌航空大学软测实验二(仅供参考)

南昌航空大学实验报告 2014年12 月7 日 课程名称:软件质量保证与测试实验名称:功能性测试_____________________________ 班级:________________ 姓名:____________ 同组人:____________________________________ 指导教师评定:_________________________________________________ 签名:________________ 一、实验目的 掌握边界值、等价类、决策表测试的基本功能性测试方法 二、实验要求 分别用健壮性测试(边界值方法)、弱健壮等价类测试(等价类方法)和决策表测试技 术分别对三角形问题|、Nextdate问题和佣金问题设计测试用例,并分别对实验一所编写的三个程序进行测试。 三、实验步骤 1.运行Visual C++开发工具; 2?在开发环境中完成程序设计,并进行调试; 3?在程序没有语法错误的前提下重点检查程序的逻辑错误; 4?对程序进行调试,并记录实验数据。 四、实验内容 1?三角形问题 问题描述:输入三角形三条边a、b、c,三条边有效取值范围为[1,200],判断该三角形 是什么三角形,输出内容具体包括:(1)等边三角形;(2)等腰三角形;(3)直角三角形;(4)等腰直角三角形;(5)一般三角形;(6)非三角形;(7)输入数据非法测试方法:边界值测试一健壮性测试, 由于三角形三边边界较多,通过边界值测试能够

更多地发现边界处的错误,缺陷

截图1

截图 2?佣金问题 问题描述:前亚利桑那洲境内的一位步枪销售商销售密苏里州制造商制造的步枪机 (lock)、枪托(stock)和枪管(barrel)。枪机卖45美元,枪托卖30美元,枪管卖25美元。销售商每月至少要售出一支完整的步枪,且生产限额是大多数销售商在一个月内可销售70 个枪机、80个枪托和90个枪管。 根据当月的销售情况,并计算销售商的佣金如下: (1)不到(含)1000美元的部分为10%; (2)1000 (不含)~1800 (含)美元的部分为15%; (3)超过1800美元的部分为20%。 佣金程序生成月份销售报告,汇总售出的枪机、枪托和枪管总数,销售商的总销售额以及佣金。 测试方法:边界值测试一健壮性测试,此问题有较多的边界,采用边界值分析法能找 出边界值方面的问题 测试用例的设计

数据库存储器与触发器实验报告(互联网+)

南昌航空大学实验报告 二0一七年 5 月 3 日 课程名称:数据库概论实验名称:存储器与触发器 班级:xxx 姓名:xxx 同组人: 指导教师评定:签名: 一、实验环境 1.Windows2000或以上版本; 2.SQLServer2000或2005。 二、实验目的 1.掌握存储过程的创建,修改,使用,删除; 2.掌握触发器的创建,修改,使用,删除。 三、实验步骤及参考源代码 1.创建过程代码: CREATE PROCEDURE C_P_Proc(@ccna varchar(10),@cno char(4)OUTPUT,@cna varchar(10)OUTPUT,@pna varchar(20)OUTPUT,@num int OUTPUT) AS SELECT @cna=cna,@cno=https://www.wendangku.net/doc/4118633814.html,o,@pna=pna,@num=num FROM cp,customer,paper WHERE https://www.wendangku.net/doc/4118633814.html,o=https://www.wendangku.net/doc/4118633814.html,o AND paper.pno=cp.pno AND cna=@ccna;

6.执行存储过程C_P_Pro,实现对李涛,钱金浩等不同顾客的订阅信息查询execute C_P_Proc@name='李涛' execute C_P_Proc@name='钱金浩' 7,删除存储过程C_P_Prcc DROP PROCEDURE C_P_PROC (4)在DingBao数据库中针对PAPER创建插入触发器TR_PA PER_I、删除触发器TR_PAPER_D、修改触发器TR_PAPER_U。具体要求如下。

<1>对PAPER的插入触发器:插入报纸记录,单价为负值或为空时,设定为10元。 CREATE TRIGGER TR_PAPER_I ON paper FOR INSERT AS DECLARE @ippr FLOAT; declare @ipno int; SELECT @ippr=ppr,@ipno=pno from inserted begin if @ippr<0 or @ippr is NULL begin raiserror('报纸的单价为空或小于零!',16,1) update paper set ppr=10 where paper.pno=@ipno end

南昌大学C++期末考试试卷(答案全)

2、设int a=15,b=26;,则cout<<(a,b);的输出结果是________。 A. 15 B. 26,15 C. 15,26 D. 26 3、x>0 && x<=10的相反表达式为________。 A. x<=0 || x>10 B. x<=0 && x>10 C. x<=0 || x<=10 D. x>0 && x>10 4、在下面循环语句中循环体执行的次数为________。 int i=0,s=0; while(s<20) {i++; s+=i;} A. 4 B. 5 C. 6 D. 7 5、在下面的二维数组定义中,正确的是________。 A. int a[5][ ]; B. int a[ ][5]; C. int a[ ][3]={{1,3,5},{2}}; D. int a[ ](10); 6、以下叙述中不正确的是________。 A. 在一个函数中,可以有多条return语句 B. 函数的定义不能嵌套,但函数的调用可以嵌套 C. 函数必须有返回值 D. 不同的函数中可以使用相同名字的变量 7、为了提高程序的运行速度,可将不太复杂的功能用函数实现,此函数应选择________。 A.内联函数 B.重载函数 C.递归函数 D.函数模板 8、若用数组名作为函数调用的实参,传递给形参的是________。 A. 数组的首地址 B. 数组中第一个元素的值 C. 数组全部元素的值 D. 数组元素的个数 9、类的构造函数是在定义该类的一个________时被自动调用执行的。 A. 成员函数 B. 数据成员 C. 对象 D. 友元函数 10、设存在函数int max(int,int)返回两参数中较大值,若求22,59,70三者中最大值,下列表达式不正确的是________ A.int m = max(22,max(59,70));B.int m = max(max(22,59),70); C.int m = max(22,59,70);D.int m = max(59,max(22,70)); 11、对class point,如使用point * ptr=new point[2];创建对象数组,则删除此数组使用的语句是________。 A. delete ptr[2]; B. delete[ ] ptr; C. delete ptr[ ]; D. delete[2] ptr; 12 类A中存在静态数据成员x,设a和b是类A的两个对象,在执行=10之后,的值为________。 A. 未初始化 B. 等于 C. 等于0 D. 随机 13、假定一条定义语句为“int a[10], x, *pa=a;”,若要把数组a中下标为3的元素值赋给x,则不正确的语句为________。 A. x=pa[3]; B. x=*(a+3); C. x=a[3]; D. x=*pa+3; 14、假定k是一个double类型的变量,则关于变量p 的正确定义语句为________。 A. double p=&k; B. int *p=&k; C. double &p=*k; D. char *p=”Thank you!”; 15、定义p并使p指向动态空间中的包含30个整数的数组所使用的定义语句为________。 A. int *p=new int[30]; B. int *p=new int(30); C. int *p=new [30]; D. *p=new int[30]; 二、判断题,对的画√,错的画×(每小题1分,共10 分) ()1、在说明语句int a(15),&b=a,*p=&a;中,b的值与*p的值是不相等的。 ()2、break语句也可以用于switch体内,它可退出switch 语句。 ()3、在一个被调用函数中,一个return语句可返回多个值给调用函数。 ()4、宏定义命令是以分号结束的。 ()5、do -while循环语句的循环体至少执行一次。 ()6、函数形参的作用域是该函数的函数体。 ()7、静态类标识符在它的作用域之外是不存在的。 ()8、对象成员的表示与结构变量成员表示相同,使用运算符.或->。 ()9、某类中的友元类的所有成员函数可以存取或修改该类中的私有成员。()10、const char *p说明了p是指向字符串的常量指针。 三、填空题(每空2分,共20 分) 1、一个完整程序中必须有一个名为_【1】_的函数。 2、程序中的预处理命令是指以___【2】___字符开头的命令。 3、假定x=5,y=6,则执行表达式y*=x++计算后,y的值为____【3】___。 4、为语句标号使用的C++保留字case和default只能用于___【4】___语句的定义体中。 5、若只需要通过一个成员函数读取数据成员的值,而不需要修改它,则应在函数头的后面加上___【5】_____关键字。 6、若在类的定义体中只给出了一个成员函数的原型,则在类外给出完整定义时,其函数名前必须加上___【6】____和两个冒号分隔符。 7、假定用户只为类AB定义了一个构造函数“AB(int aa, int bb=0) {a=aa; b=bb;}”,则定义该类的对象时,其实参表中至多带有___【7】__个实参。 8、完成下面类中的成员函数的定义。 class point { private: int m,n; public: point(int,int); point(point&); }; point::point(int a,int b) { m=a;n=b;} point::point(__【8】_) { m=;n=;} 9、完成下面类中的成员函数的定义。 class A { int a,b; public: A(int aa=0, int bb=0) __【9】___ {} // 分别用aa和bb对应初始化a和b }; main() { A x(5),y(x); // 定义类A的对象x并用5初始化,同时定义y并用x初始化 ___【10】__ ; // 定义p指针,使之指向对象x } 四、阅读程序,写出各程序运行后的输出结果(每小题5分,共20分) 1、#include using namespace std; void fun(int a,int * b, int *c,int &d); void main( ) { int a1=10,a2=20,a3=30,a4=40; fun(a1,&a2,&a3,a4); cout<<”a1=”< void main()

飞机连接实验报告(南昌航空大学)

《专业技能训练》实验 班级: 100631 学号: 10063112 姓名:林万蔚 (同组人:李力朱汉辉周炎)

专业技能训练 1、实验目的: 通过本综合实验的练习,学生应能综合应用所学专业基础知识,对专业上的某一具体工程实际问题进行处理和解决,增强其实践能力、工程应用能力和整体素质。 2、实验内容: (1)方案设计 设计铆接的产品,CATIA软件或CAD绘制零件图:1张三维立体图(同组人可一样),1张能完全表达某个零件结构尺寸和制作要求的视图(按机械制图的规定画图和标注,同组每个人不得相同,可选择不同零件画图)。图均打印,其他内容手写!。 设计铆接的产品(飞机)具有中等复杂程度,具有立体结构。 零件结构设计经指导老师检查同意后方能进行制作。 (2)飞机装配铆接操作实验 本实验要求在飞机装配工艺课程的相关实验之后进行,通过飞机装配工艺课程的授课学习和实验,掌握飞机装配铆接的基本方法和基本工艺,在此基础上,制作一个中等复杂程度的零件产品,并做相应的工艺分析。 3、对自己制作的结构件进行质量分析。 我们这组设计制作的是一个小型汽车,从设计的角度来看的比较完美的,线条、部件都比较好。但是,在这个单有铆接的实验中,很多圆滑的地方可能很难制造出来。 4、飞机铆接的特点及发展。 4.1飞机铆接具有以下特点 铆接的连接强度比较稳定可靠,铆接方法与工艺参数容易掌握和控制,铆接质量检验方法方便,故障比较容易排除,使用工具比较简单、低廉,适用于较复杂的连接。虽然存在着一些缺点,如增大了结构质量,降低了结构强度,容易引起变形等,但到目前为止,铆接仍然是飞机装配中主要的的连接方法。 4.2飞机铆接的发展 现代飞机制造过程中,由于结构设计、工艺维修、检查的需要,机械连接不可缺少,在很长一段时间内仍将是主要的连接方法。在第二代、第三代、甚至第四代战斗机以及民机生产中,都采用了大量的机械连接。铆接结构重量轻、成本低、工艺简便,比螺接更具技术优势,因而用得比较普遍。铆接技术发展相对比较缓慢,但近年来在新型飞机研制过程中,为满足结构设计要求,提高飞机的性能,铆接技术有了新的发展。 4.2.1电磁铆接技术的发展 国外的经验表明,采用电磁铆接(也称应力波)技术是解决上述问题的有效途径。电磁铆接对屈强比高、应变率敏感、强度高、难成形材料的成形具有特殊的功能;能实现理想的干涉配合,延缓构件铆钉孔疲劳裂纹的扩展,显著提高结构

南昌大学单片机补考试题及答案

一、单项选择题(本大题共5小题,每小题2分,共10分) 1.MCS-51的并行I/O口读-改-写操作,是针对该口的( D ) A.引脚 B.缓冲器 C.地址线 D.内部锁存器 2.假定设置堆栈指针SP的值为36H,在执行指令PUSH 20H后SP的值为(C ) A.35H B.38H C.37H D.20H 3.若MCS-51单片机的晶振频率为6MHz,定时器/计数器作计数器使用时,其最高的输入计数频率是(C ) A.1MHz B.500KHz C.250KHz D.125KHz 4.MOVX A,@DPTR指令中源操作数的寻址方式是( B ) A.寄存器寻址 B.寄存器间接寻址 C.直接寻址 D.立即寻址 5.在远距离数据传送时,一般采用______传送方式。( D ) A.串行 B.并行 C.模拟 D.数字 二、填空题(本大题共9小题,每空1分,共10分) 6.MCS-51单片机中有两个16位寄存器,其中一个是_程序计数器PC _____,它没有地址,用户不能对其读写;另一个是_ DPTR _____,常用于存放基址地址。 7.若不使用MCS-51片内程序存储器,引脚EA必须接_地或“0”电平_____。 8.当(RS1,RS0)=(1,0)时,工作寄存器R2对应内部RAM中的__12H____字节单元。 9.执行当前指令后,PC内容为______。 10.单片机与外部数据进行信息交换时,通过__数据总线____总线交换信息的内容。 11.MCS-51响应_串行口_____中断时,其中断标志只能由软件清除。 12.汇编语言程序一般有四种结构形式,即:顺序结构、分支结构、__循环____和子程序结构。 13.用串行口扩展并行口时,串行口工作方式应选为__方式0____。 14.ADC0809是____8__位逐次逼近型A/D转换芯片。 三、名词解释(本大题共3小题,每小题3分,共9分) 15.机器语言:在单片机中,用二进制代码表示的指令、数字和符号简称为机器语言。 16.RAM:随机存储器 17.单工:信息在两点之间只能单方向发送的工作方式。 四、简答题(本大题共5小题,每小题5分,共25分) 18.若80C51的片内ROM内容已不符合要求,那么片内其它硬件如何继续使用? 答:把80C51的EA引脚接地,片外扩接EPROM芯片,就等于宣布片内ROM作废,完全执行片外EPROM中的程序。这样,片内硬件资源不受影响,可继续使用。 19.在8051扩展系统中,程序存储器和数据存储器共用16位地址线和8位数据线,为什么两个存储空间不 会发生冲突? 答:这是因为外部程序存储器和外部数据存储器所使用的控制信号不同。对外部程序存储器的选读通是用PSEN控制线,而对外部数据存储器的读/写控制是用RD和WR读、写控制线,所以不会发生地址冲 1

南昌大学单片机实验报告

实验一I/O口输入输出实验 一、实验目的 掌握单片机P1口、P3口的使用方法。 二、实验内容 以P1口为输出口,接八位逻辑电平显示,LED显示跑马灯效果。以P3 口为输入口,接八位逻辑电平输出,用来控制跑马灯的方向。 三、实验要求 根据实验内容编写一个程序,并在实验仪上调试和验证。 四、实验步骤 1)系统各跳线器处在初始设置状态。用导线连接八位逻辑电平输出模块的K0到CPU 模块的RXD(P3.0 口);用8位数据线连接八位逻辑电平显示模块的JD4B 到CPU 模块JD8(P1 口)。 2)启动PC 机,打开THGMW-51 软件,输入源程序,并编译源程序。编译无误后,下载程序运行。 3)观察发光二极管显示跑马灯效果,拨动K0 可改变跑马灯的方向。 五、实验参考程序 ;//****************************************************************** ;文件名: PortforMCU51 ;功能:I/O口输入、输出实验 ;接线: 用导线连接八位逻辑电平输出模块的K0到CPU模块的RXD(P3.0口); ; 用8位数据线连接八位逻辑电平显示模块的JD2B到CPU模块的JD8(P1口)。 ;//******************************************************** ********** DIR BITP3.0 ORG 0000H LJMP START ORG 0100H START: OUTPUT1: MOV A, #0FEH MOV R5, #8

LOOP1: CLR C MOV C,DIR JC OUTPUT2 MOV P1, A RL A ACALL DELAY DJNZ R5, LOOP1 SJMP OUTPUT1 OUTPUT2: MOV A, #07FH MOV R5, #8 LOOP2: CLR C MOV C,DIR JNC OUTPUT1 MOV P1, A RR A ACALL DELAY DJNZ R5,LOOP2 SJMP OUTPUT2 DELAY: MOV R6,#0 DELAYLOOP1: MOV R7,#0 DELAYLOOP2: NOP NOP DJNZ R7,DELAYLOOP2 DJNZ R6,DELAYLOOP1 RET END 六、实验结果 当八位逻辑电平的K0拨到上方,即输出高电平时,实验箱B5区的八个LED灯从左至右循环点亮,当K0拨到下方,即输出低电平时,八个LED灯从右至左循环点亮。 七、结果分析 程序通过查询方式不断检测P3.0口的输入状态,当P3.0输入为0时,由P1口通过左移指令RL轮流输出低电平驱动LED发光,在左移时通过软件延时控制LED亮的时间;当P3.0输入为1时,由P1口通过右移指令RR轮流输出低电平驱动LED发光,在右移时同样通过软件延时控制LED 亮的时间,如此循环扫描查询,便可实现流水灯的效果。

南昌大学C语言期末考试题

一、单项选择题(每空2 分,共50 分) (请将各小题正确答案的字母序号填到相应小题的下划线上) 得分 评阅人 1. C语言的运算符按运算对象的数目可以分为。 A) 单目运算一种 B) 单目和双目运算符 C) 单目、双目和三目运算符D) 单目、双目、三目运算和四目运算符 2. C语言表达式2/5*10的值是。 A) 0.04 B) 4 C) 4.0 D) 0 3. 已知变量f和i的类型说明如下: float f=12.34; int i; 则以下符合C语言语法的表达式是。 A) i=(int)f%5 B) i=int(f)%5 C) i=f%5 D) i=(int f)%5 4. 能正确表示数学式1≤x≤5的C语言表达式是。 A) 1 <=x<=5 B) (x> =1)&(x<=5 ) C) (x>=1 )&&(x<=5) D) (1 < =x)||(5> =x) 5. 设变量c的数据类型是char,i的数据类型是int,f的数据类型是float,则C语言表达式c*i+c*f-i+100值的数据类型为。 A) int B) float C) char D) 不确定 6. 在下列选项中,合法的C语言用户标识符的是。 A)int B)sin C)if D)i+j 7. C程序的执行从开始。

A) 程序中的第1个语句 B) 程序中的第1个函数 C) 名为main 的函数 D) 包含文件的第1个函数 8. 凡在C语言函数中未指定存储类别的变量,其隐含的存储类别为。 A) 自动(auto) B) 静态(static) C) 字符串D) 字符或字符型变量值 9. 以下程序运行时要求输入10和20分别存放在变量x和y中,能正确输入数据的是。 main() {int x,y; scanf("x=%d,y=%d",&x,&y); printf("x+y=%d",x+y); } (说明:用表示换行符,用_表示空格符) A) 10_20 B) x=10,y=20 C) 10 D) x=10 20 y=20 10. 下面程序的运行结果是。 main() { int a,b; a=32767; b=a+1; printf("a=%d,b=%d\n",a,b);

南昌大学单片机实验指导书(2015简化版)

微机原理与接口技术实验指导书 机电工程学院 2010年3月

实验一拼字程序(基础实验) 一、实验目的 掌握汇编语言设计和调试方法。 二、实验容 把7000H的低四位BCD数和7001H的低四位BCD数,拼成压缩BCD码的形式存放在7002H。 三、实验说明 通过本实验,掌握拼字的编程方法,同时也可以了解单片机编程、调试方法。 四、主要仪器设备及耗材 PC机、WAVE软件 五、参考程序框图 六、参考程序(略)

实验二清零实验(基础实验) 一、实验目的 1. 掌握存储器读写方法。 2. 了解存储器的块操作方法。 二、实验容 1. 指定部RAM中某块的起始地址和长度,要求能将其容清零。 2. 指定外部RAM中某块的起始地址和长度,要求能将其容清零。 3. 指定外部RAM中某块的起始地址和长度,要求能将其容置为某固定值(如0FFH)。 三、实验说明 通过本实验,学生可以了解单片机的存储器结构及读写存储器的方法,同时也可以 了解单片机编程、调试方法。 四、实验仪器和设备 PC机、WAVE软件。 五、参考程序框图 存储器块清零参考程序框图 六、参考程序(略) 实验三数据块传送程序(基础实验)

一、实验目的 1.了解存的移动方法。 2.加深对存储器读写的认识。 二、实验容 将指定源地址和长度的存储块移到指定目标位置。 三、实验说明 块移动是计算机常用操作之一,多用于大量的数据复制和图象操作。本程序是给出起始地址,用地址加一方法移动块,请思考给出块结束地址,用地址减一方法移动块的算法。另外,若源块地址和目标块地址有重叠,该如何避免? 四、实验仪器和设备 PC机、WAVE软件。 五、参考程序框图 存储块移动参考程序框图 六、参考程序(略)

南昌航空大学PWM波形发生器实验报告

PWM波信号发生器的研制 课程设计说明书 课程设计名称:单片机专业课设 课程设计题目: PWM信号发生器的研制 学院名称:信息工程学院 专业:电子信息工程班级: 学号:姓名: 评分:教师: 20 13 年 7 月 2 日 摘要 1

PWM波信号发生器的研制 随着电力电子全控开关器件的出现,脉宽调制技术(PWM)在电力电子变流技术中获得了,。泛的应Hj,如直流开关电源(DC/DC变换)、交。交变频(AC/AC变换)、交.直.交变频系统、UPS电源(DC/AC变换)、高功率因数整流(PWM整流或功率l灭l数校正PFC等)等电力电子各个应用领域,无不采用PWM控制技术。PWM控制最基本的实现方法是通过载波和控制波的模拟电路调制米产生,如采用三角形载波(或锯齿波)和直流(或正弦波)控制信号比较器进行比较产生PWM波。这种方法在模拟控制技术中广泛采用,并出现过许多产生PWM波控制芯片,如用于开关电源的TL494、SG3525、UC3842等。随着数字控制技术的发展,又出现了许多数字式PWM集成芯片,如用于变频调速的三相PWM发生器HEF4752、SLE4520、MA818等。但与迅速发展的微机控制技术相比,该方法显示出电路复杂、调制方式不够灵活等缺点,而采用软件计算的实时PWM控制策略越来越彼人们接受,并出现了许多不同的PWM波的计算方法,如采样SPWM法、谐波注入PWM法、均值PWM法、等面积PWM法等。电力电子的微机PWM控制技术已成为一种必然趋势。因此本文就PWM的单片机控制与实现进行分析研究,通过对外围电路芯片的设计实现PWM输出波形的频率、电压幅值、占空比的连续调节,达到产生PWM信号目的。 关键字:脉宽调制技术(PWM)、占空比、控制信号 2

南昌大学C期末考试试卷(答案全)

南昌大学2003 ~2004 学年第二学期期末考试试卷A卷 一单项选择题 1.‘A’的ASCII码为65,n为int型,执行n =‘A’+‘6’-‘3’;后,n的值为B。 A)‘D’ B) 68 C) 不确定的值D) 编译出错 2.下列变量名中, A 是合法的。 A)CHINA B) byte-size C) double D) A+a 3.在static int B[3][3]={{1},{3,2},{4,5,6}};中, a[2][2]的值是C。 A)0 B) 5 C)6 D)2 4.若有定义int a=3, *p=&a ;则*p的值是 B 。 A)常量a的地址值B)3 C)变量p的地址值D)无意义 5.下列关于指针运算的各叙述中,不正确的叙述是 D 。 A)指向同一数组的两个指针,可以进行相等或不等的比较运算; B)可以用一个空指针赋值给某个指针; C)指向数组的指针,可以和整数进行加减运算; D)指向同一数组的两个指针,可以进行有意义的相加运算。 6. 已知x、y、z是int型变量,且x=3,y=4,z=5;则下面各表达式中,值为0的是 D 。 A)‘x’&&‘y’ B)x<=y C)x || y+z && y-z D) !((x

南昌航空大学实验报告

南昌航空大学实验报告 2014年04月25日 课题名称:计算机网络实验名称:局域网连接实验 班级:110451 姓名:郑木辉学号:10045129 指导教师评定:签名: 一、实验目的 1.掌握Windows操作系统中网络的配置与管理。 2.掌握Windows操作系统中常用的网络命令。 3.掌握Windows平台上FTP服务器架设与使用方法. 二、实验要求 1.详细阅读操作过程,认真完成必做实验,掌握实验要求掌握的内容。 2.课后认真完成实验报告 三、实验环境 1.硬件:网络环境 2.操作系统:windows7 3.相关软件:ServU 4.0 四、实验步骤与内容 4.1网络配置实验 4.1.1 实验内容: 安装Windows网络组件并配置网络选项(因机房都已经设置好,可以查看或按原值填写,关键是了解需要设置哪些选项以及为什么要设置这些内容)。 4.1.2 实验步骤: 1、安装协议: 进入“打开网络与共享中心”,如错误!未找到引用源。,再单击打开“网络与共享中心”,进入如图2的界面;

图1 网络与共享中心 图2 网络连接界面 单击“更改是适配器设置”进入“网络连接”界面,如图 3 图3 网路连接界面 双击其中的“本地连接”图标,在弹出的窗口(下图左)中选择“属性”,弹出本地连接的属性窗口(下图右,将其中的“连接后在任务栏中显示图标”前的方框选中,则在任务栏右侧显示连接图标)。选择其中的“安装”,弹出协议安装窗口,如图4; 图4 本地连接属性窗口

图5 协议安装窗口 在上图左选择“协议”后按“添加”按钮进入右侧所示窗口,其中有常用的协议,如图5; ?NetBEUI(NetBios Enhanced User Interface)用于局域网通信,安装此协议后,可以通 过在地址栏中输入对方的IP地址及共享名称访问对方共享资源。 ?NWLink IPX/SPX./NetBIOS Compatible Transport Protocal”,该协议常用于局域网 游戏,如星际争霸、帝国时代等,一般要先装该协议才能在局域网对战。 ?TCP/IP协议,该协议在系统安装了网卡驱动的情况下一般都默认安装,因此上图中没 有显示,如果系统未安装TCP/IP协议,则应该在此界面中安装。 2.配置TCP/IP协议 ?在错误!未找到引用源。的界面中,选中“Internet协议(TCP/IP)”,按“属性”按钮, 弹出TCP/IP的配置窗口,如图6 图6 Internet协议属性 根据上网方式的不同,需相应的选择“自动获得IP地址”或“使用下面的IP地址”,在本实验中使用后者。

2011南昌大学单片机期末考题

一、填空题(每空1分,共10分) 1.当使用8031单片机时,需要扩展外部程序存储器,此时EA应为___低电平__. 2.P0通常用作单片机系统的地址/数据总线. 3.若由程序设定RS1、RS0=10,则工作寄存器R0~R7的直接地址为10H~17H . 4.返回地址(或断点)是_在程序中断或子程序调用时_的程序计数器的内容。 5.中央处理器CPU是单片机的核心,它完成_运算和控制功能 . 6.单片机的工作过程,实际上就是周而复始地取指令和执行指令的过程 . 7.所谓中断源即是_引起中断的原因(或能发出中断请求的来源) . 8.端口(或称口)是_接口电路中已编址并能进行读或写操作的寄存器 . 9.异步串行近程通信时的传送信号是TTL电平信号 10.若累加器A中的数据为01110010B,则PSW中的P=0. 二、单项选择题(在每小题的四个备选答案中,选出一个正确答案,并将正确答案的序号填在题干的括号内。每小题1分,共10分) 1.MCS—51单片机的复位信号是()有效。 A.高电平 B.低电平 C.脉冲 D.下降沿 2.若MCS-51单片机使用晶振频率为6MHz时,其复位持续时间应该超过()。 A.2μs B.4μs C.8μs D.1ms 3.若PSW.4=0,PSW.3=1,要想把寄存器R0的内容入栈,应使用()指令。 A.PUSH R0 B.PUSH @R0 C.PUSH 00H D.PUSH 08H 4.能够用紫外光擦除ROM中程序的只读存储器称为()。 A.掩膜ROM B.PROM C.EPROM D.EEPROM 5.在片外扩展一片2764程序存储器芯片要()地址线。 A.8根 B.13根 C.16根 D.20根 6.定时器/计数器工作方式1是()。 A.8位计数器结构 B.2个8位计数器结构 C.13位计数结构 D.16位计数结构 7.设MCS-51单片机晶振频率为12MHz,定时器作计数器使用时,其最高的输入计数频率应为() A.2MHz B.1MHz C.500KHz D.250KHz

南昌航空大学实验报告2-JavaBean和Servlet完成增删改查

南昌航空大学实验报告二 二0一四年三月十九日 课程名称:JA V A WEB 程序设计实验名称:JavaBean和Servlet完成增删改查 班级:11微软班姓名:林平君同组人: 指导教师评定:林振荣签名: 一、实验目的 完成一个数据列表的增删改查功能的实现,以自己创建的表格为例,也可以自己设计数据库的表。通过本实验能够熟悉和掌握jsp中的数据库CRUD操作。 二、实验要求 本实验要求通过javabean来实现数据的存取和表示,通过servlet来进行访问的控制。给出主要运行的界面和核心代码,并描述系统实现的核心思想。 三、实验步骤 1.实现javaBean对数据库的操作。 2.创建jsp页面 3.利用servlet对页面对业务流程就行控制。 四、参考源代码 1.连接数据库 public Connection getConnection() throws SQLException,InstantiationException, IllegalAccessException,ClassNotFoundException{ Connection connection=null; Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver").newInst ance(); String urlString="jdbc:sqlserver://localhost:1433;DatabaseName=StudentManageSys" ; String passwordString="sa"; String userString="sa"; connection=DriverManager.getConnection(urlString,userString,passwordS tring); return connection; } 解释:获取一个数据源,用于连接数据库。 2.利用传入的sql语句查找 public ArrayList objectSelect(String sql) throws Exception{ ArrayList result=new ArrayList();

南昌航空大学 单片机实验(全)

南昌航空大学 信息工程学院 实验报告 课程名称:单片微型机原理 学号: 姓名: 指导教师:________ ___________ 成绩:_________________________

南昌航空大学实验报告 2014年 3 月 14 日 课程名称: 单片微型机原理 实验名称: 清零、电脑时钟 班级: 姓名: 学号: 指导老师评定: 签名: 一、实验目的 1、掌握汇编语言设计和调试方法,熟悉键盘操作; 2、熟悉MCS —51定时器、串行口和中断初始化编程方法,了解定时器应用在实时控制中程序的设计技巧。 二、实验内容 1、把7000H ~ 70FFH 的内容清零。 2、编写程序,从DVCC 系列单片机实验仪键盘上输入时间初值,用定时器产生0.1S 定时中断,对时钟计数器计数,并将数值实时地送数码管显示。 三、实验步骤 清零程序 1、实验程序框图 N Y 开始 R0 =0,DPTR=7000H 00送到(DPTR) DPTR+1,R0+1 R0 = FF ? 结束

2、当DVCC单片机仿真实验系统独立工作时 (1)将固化区EPROM中实验程序目标码传送到仿真RAM区,操作如下:输入0后按F1键,再输入0FFF后按F2键,再输入0后按EPMOV稍等,系统返回初始状态,显示“P."。 (2)按F2键进入仿真1态,仿真实验系统显示闪动“P......”时,根据表一所示,通过键盘输入实验程序的起始地址0030H,再按执行键EXEC,表示连续运行该程序,稍后,按RESET键退出运行;如果以单步运行程序,则输入0300后,按STEP键,按一次执行一条语句,直到执行到003CH为止,按MON键退出运行;如果以断点运行程序,则先输入003C (断点地址),再按F1键,再输入0030(起始地址),然后按EXEC键执行程序,当执行到003CH时自动停下来,此时按MON键退出。 (3)用存储器读写方法检查7000H—70FFH中的内容应全是00H。 3、当DVCC单片机仿真实验系统联PC机工作时 (1)在闪动“P.”状态,按PCDBG键。 (2)在PC机处于WIN95/98软件平台下,单击DVCC图标。 (3)在系统设置选项中设定仿真模式为内程序、内数据。 (4)根据屏幕提示进入51/96动态调试菜单。 (5)联接DVCC实验系统(Ctrl + H)。 (6)装载目标文件(Ctrl + L)。 (7)设置PC起始地址。 (8)从起始地址开始连续运行程序(F9)或单步(F8)或断点运行程序。 (9)单步、断点运行完后,在存储器窗口内检查7000H—70FFH中的内容是否全为00H。4、清零程序 ORG 0030H CLEAR: MOV R0,#00H MOV DPTR,#7000H;设数据指针DPTR=7000H CLEAR1: CLR A MOVX @DPTR,A ;清第一个数据单元 INC DPTR ;指针加一 INC R0 ;字节数加一 CJNE R0,#00H,CLEAR1 ;判字节数满256个否,不满继续 CLEAR2: SJMP CLEAR2 ;满结束程序 END

南昌大学单片机课程教学设计

课程设计任务书 课程名称:微机原理与接口技术 题目: B5901112154型单片机系统的设计 学院:机电工程学院系:机电工程系 专业:机械设计制造及其自动化 班级:机制124班 学号: 5901112154 学生姓名: 起讫日期: 6.16---6.23 指导教师:胡瑢华 系分管主任: 审核日期:

说明 BEIYON1 - 副本.DSN 打开上面的protus软件可以看到完整的电路图 1、课程设计任务书由指导教师填写,并经学院审定后下达给学生。 2、进度表是课程设计工作检查的主要依据。 3、学生根据指导教师下达的任务书,独立完成课程设计。 4、本任务书在课程设计完成后,与说明书、电路原理图和程序清单

等资料一并上交指导教师,作为课程设计的主要档案资料。

一、课程设计的要求和内容(包括原始数据、技术要求、工作要求) 1、工作要求 单片机系统在各行各业自动控制领域的应用越来越广泛。《微机原理与接口技术》课程设计实践教学环节要求同学们针对实际需求,灵活应用所学知识,独立进行系统综合设计,以达到巩固单片机基础知识、掌握单片机系统开发过程和提高动手实践能力的目的。 2、技术要求 每位学生应独立完整地设计一套单片机系统。该系统CPU采用AT89S51芯片,晶振为12MHz。硬件模块可包括:a)显示模块,采用串行口串接74HC164芯片控制5个7段数码管;b)键盘模块,采用2X2行列键盘;c)声音控制模块,采用蜂鸣器发声;d)A/D采集模块,采用ADC0809采集电位计的电压值;e)D/A输出模块,采用DAC0832输出某种波形。 要求实现以下功能: (1)系统上电后,按照从下进入,在数码管上显示学号的后五位12154。 (2)查询键盘,当用户按1至4号键时在数码管上显示相应数值(例如按1键数码管显示5个1,以此类推),同时伴随蜂鸣器响(只要按键处于按下的状态蜂鸣器就响,按多久就响多久,按键弹起后终止)。需编制键盘去抖动程序(按键中断接INT0,行线接P1.1,P1.2,列线接P1.5,P1.6)。 (3)按键长按(超过1.5秒)则按键可进行功能选择(1号键显示学号,3号键A/D采集,0号键D/A转换功能运行)。 (4)采用译码方式,通过D/A输出频率为500Hz梯形波 (5)采用译码方式,启动通道0的A/D转换,进行采样,A/D转换结束后(通过INT1中断),将采集到的值转换为BCD码,并予以显示(使用三个七段数码管显示例如显示3.75)。 3、此次课程设计采用分级评分,具体操作如下:

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