内工大单片机工程实训报告

内工大单片机工程实训报告
内工大单片机工程实训报告

一、设计目的:(题目四号宋体字)

通过一个以8 位单片机为核心的模拟量数字表的硬件调试过程,掌握具有A/D、七段LED 显示、RS-485 通信、Watchdog 等接口电路的单片机应用系统的设计思想和方法。

学习应用系统软件的模块化设计方法,通过源程序的编辑、汇编或编译、链接、仿真调试,完成给定的任务。通过上述过程提高学生工程实践能力和素质。

二、设计任务:

要求明确设计任务内容及任务分工等;(内容小四号宋体字)

★基本任务:

完成蜂鸣器、键盘、七段LED 显示器的自检程序设计。

(1)蜂鸣器自检

要求:利用程序实现两种以上声音。

(2)键盘自检

要求:确定键盘正确。

(3)七段LED 显示器自检

要求:确定LED 显示器每一段均正确。

框图(包括自检和任务的框图):

1、硬件编程框图及相关说明

2、主程序框图、子程序框图及相关说明

三、程序清单:

要求有明确的程序注解、程序清单可分两栏打印

(1)蜂鸣器自检程序

BEEP:

setb p2.3 ;关喇叭

acall delay1 ;调用延时1

clr p2.3 ;开喇叭

acall DELAY2 ;调用延时2

setb p2.3 ;关喇叭

acall DELAY2 ;调用延时2

clr p2.3 ;开喇叭

acall DELAY3 ;调用延时3

setb p2.3 ;关喇叭

acall DELAY3 ;调用延时3

sjmp BEEP ;跳到beep

RET

DELAY1: ;延时子程序

MOV R1,#0FFH

CX0: MOV R2,#0FFH

CX: DJNZ R2,CX

DJNZ R1,CX0

RET

DELAY2: 延时子程序

MOV R1,#0FAH

CX1: MOV R2,#0FAH

CX2: DJNZ R2,CX2

DJNZ R1,CX1

RET

DELAY3: 延时子程序

MOV R1,#0FAH

CX3: MOV R2,#0FAH

CX4: DJNZ R2,CX4

DJNZ R1,CX3 RET

(2)键盘自检程序

BEEP:

MOV R1,#4H ;设置移位次数

LCALL SEL8 ;打开三态门

MOV P1 ,#0FFH ;将P1口设置成I/O

MOV A,P1 ;采样

LCALL SEL7 ;关闭三态门

SJMP CXW1

RET

CXW1: RRC A ;把键的值放到进位位JNC CXW2 ;如果键合上,跳到CXW2,发音子程序

DJNZ R1,CXW1 ;(K1没闭合,就看K2是否闭合;K2没闭合,就看K3是否闭合;K3没闭合,就看K4是否闭合)

SJMP BEEP ;四个键都没闭合,就重新采样

RET

CXW2: CLR P2.3 ;开喇叭

LCALL DELAY ;调用延时

SETB P2.3 ;关喇叭

SJMP BEEP ;发音完毕,跳转到BEEP,重新采样

RET

SEL7: CLR P2.7 ;(关闭三态门子程序)SETB P2.6

SETB P2.5

RET

SEL8: SETB P2.7 ;(打开三态门子程序)SETB P2.6

SETB P2.5

RET

DELAY: MOV R6,#0AH ;(延时子程序)

CXW3: MOV R7,#0F8H

CXW4: DJNZ R7,CXW4

DJNZ R6,CXW3

RET

(3)七段LED 显示器自检程序

DT1: CLR P2.5 ;(使第一位LED 有效,并显示从1到9) CLR P2.6 CLR P2.7 LCALL cc1 RET

DT2: CLR P2.5 ;(使第二位LED 有效,并显示从1到9) CLR P2.6

设置移位次数

打开三态门

采样

关三态门

K1闭合?

K2闭合?

K4闭合?

峰鸣器发音

K3闭合?

Y

N

N

N

Y

Y

N

Y

调用延时程序

SETB P2.7

LCALL cc1

RET

DT3: CLR P2.5 ;(使第三位LED有效,并显示从1到9) SETB P2.6

CLR P2.7

LCALL cc1

RET

DT4: CLR P2.5 ;(使第四位LED有效,并显示从1到9) SETB P2.6

SETB P2.7

LCALL cc1

RET

DT5: SETB P2.5 ;(使第五位LED有效,并显示从1到9) CLR P2.6

CLR P2.7

LCALL cc1

LJMP DT1

RET

cc1: LCALL SEL0 ;(调用送字型的子程序,使LED显示0到9)

LCALL DELAY

LCALL SEL1

LCALL DELAY

LCALL SEL2

LCALL DELAY

LCALL SEL3

LCALL DELAY

LCALL SEL4

LCALL DELAY

LCALL SEL5

LCALL DELAY

LCALL SEL6

LCALL DELAY

LCALL SEL7

LCALL DELAY

LCALL SEL8

LCALL DELAY

LCALL SEL9

LCALL DELAY

LCALL SEL10

LCALL DELAY

RET

SEL0: MOV A,#7EH ;SEL1到SEL10是送字型子程序,SEL0是送0子程序

MOV P0,A

RET

SEL1: MOV A,#0CH ;(SEL 1是送1子程序)MOV P0,A

LCALL DELAY

RET

SEL2: MOV A,#0B6H

MOV P0,A(SEL 2是送2子程序)

LCALL DELAY

RET

SEL3: MOV A,#9EH(SEL3是送3子程序)

MOV P0,A

LCALL DELAY

RET

SEL4: MOV A,#0CCH(SEL 4是送4子程序)

MOV P0,A

LCALL DELAY

RET

(SEL 5是送5子程序)

SEL5: MOV A,#0DAH

MOV P0, A

LCALL DELAY

RET

(SEL 6是送6子程序)

SEL6: MOV A,#0FAH

MOV P0,A

LCALL DELAY

RET

(SEL 7是送7子程序)

SEL7: MOV A,#0EH

MOV P0,A

LCALL DELAY

RET

(SEL8是送8子程序)

SEL8: MOV A,#0FEH

MOV P0,A

LCALL DELAY

RET

(SEL9是送9子程序)

SEL9: MOV A,#0DEH

MOV P0,A

LCALL DELAY

RET

(SEL 10是送小数点子程序,即使小数点亮)

SEL10: MOV A,#01H

MOV P0,A

RET

DELAY: MOV R6,#9fH(延时子程序)CXW3: MOV R7,#9fH

CXW4: DJNZ R7,CXW4

DJNZ R6,CXW3

RET

(4)一首歌的程序

编程思路:歌曲是由音调和节拍有机组合而成。音调是由发音的频率决定的,七种不同频率的方波来产生七种音调,我们用定时器1来控制方波的频率。节拍就是音调持续的时间,节拍用节拍(延时)程序控制。

BUZZER EQU P2.3 ;伪指令,不编译

org 0000h ;主程序起始地址

ajmp beep ;跳至主程序

org 000bh ;定时器1中断地址

jmp tim0 ;跳至timer0中断子程序

BEEP:

LCALL SEL81 ;打开三态门

MOV P1 ;#0FFH(P1口设置为输入输出口)

MOV A,P1 ;(采样K1键的状态)

LCALL SEL71 ;关三态门

SJMP CXW1

RET

CXW1: RRC A ;(K1的状态送到累加器的进位位)

JNC CXW2 ;(K1闭合,跳到点亮LED并放歌的子程序)

SJMP BEEP ;(如果K1没闭合,继续扫描键盘)

RET

CXW2:

DT1: CLR P2.5 ;(选位子程序,选择第一位LED)

CLR P2.6

setb P2.7

LCALL cc1 ;(调用LED显示的子程序)

mov tmod,#01h ;设timer0在MODE1

mov ie,#82h ;打开定时器1中断

start0:

CLR P2.5 ;(选择第一位LED)

CLR P2.6

setb P2.7

LCALL cc1 ;(调用LED显示的子程序)

mov 30h,#00h

next: mov a,30h

mov dptr,#table ;(DPTR指向歌曲的简谱码表的首地址)

movc a,@a+dptr取简谱码

mov r2,a ;取到的简谱码暂存于R2

jz end0 ;判断是否取到00(结束码)?

anl a,#0fh ;不是结束码,则取低4位(节拍码)

mov r5,a ;将节拍码存入R5

mov a,r2 ;将取到的简谱码再载入A

swap a ;高低四位交换,也就是节拍码和音调码交换位置

anl a,#0fh ;取低四位(音符码)

jnz sing ;取到的音符码是否为零?

clr tr0 ;音调码是0,则不发音

jmp d1

sing: dec a ;取到的音符码减1(不含0).

mov 22h,a ;存入(22H).

rl a ;乘2

mov dptr,#table1 ;到音调的频率表table1取相对应的定时器定时初值

movc a,@a+dptr

mov th0,a ;给定时器的TH0赋定时处值

mov 21h,a ;

mov a,22h ;再载入取的的音符码

rl a ;乘2

inc a ;加1

movc a,@a+dptr ;

mov tl0,a ; 给定时器的TL0赋定时初值

mov 20h,a ;取到的高位字节存入(20H)

setb tr0 ;启动timer0

d1: call delay ;基本单位时间1/4拍187毫秒

inc 30h ;取简谱码指针加1

jmp next ;取下一个码

end0: clr tr0 ;停止timer0

jmp start0 ;重复循环

lJMP BEEP

RET

SEL71: CLR P2.7 ;关三态门子程序

SETB P2.6

SETB P2.5

RET

SEL81: SETB P2.7 ;开三态门子程序

SETB P2.6

SETB P2.5

RET

tim0: ;;time0中断服务子程序用来产生方波(音调)的负半波。

push acc ;中断现场保护

push psw

mov tl0,20h ;重设定时初值

mov th0,21h

cpl BUZZER ;P2.3反相

pop psw ;至堆栈取回psw的值

pop acc ;至堆栈取回a的值

reti ;返回主程序

delay: mov r7,#02h ;187毫秒

d2: mov r4,#187

d3: mov r3,#248

CXW: djnz r3,CXW

djnz r4,d3

djnz r7,d2

djnz r5,delay ;延时时间,受节拍码得控制,延时时间也就是音调持续的时间

ret

cc1: LCALL SEL0 ;(使LED显示从0到9)

LCALL delay1

LCALL SEL1

LCALL delay1

LCALL SEL2

LCALL delay1

LCALL SEL3

LCALL delay1

LCALL SEL4

LCALL delay1

LCALL SEL5

LCALL delay1

LCALL SEL6

LCALL delay1

LCALL SEL7

LCALL delay1

LCALL SEL8

LCALL delay1

LCALL SEL9

LCALL delay1

LCALL SEL10

LCALL delay1

ret

delay1: MOV R6,#0ffH ;(LED显示0到9时的延时子程序)CXW3: MOV R7,#0ffH

CXW4: DJNZ R7,CXW4

DJNZ R6,CXW3

RET

RET

;SEL0到SEL10是送字型子程序,请参考LED自检的程序,此处不再重述)SEL0: MOV A,#7fH

MOV P0,A

LCALL delay1

RET

SEL1: MOV A,#60H

MOV P0,A

LCALL delay1

RET

SEL2: MOV A,#0B6H

MOV P0,A

LCALL delay1

RET

SEL3: MOV A,#0f2H

MOV P0,A

LCALL delay1

RET

SEL4: MOV A,#0e8H

MOV P0,A

LCALL delay1

RET

SEL5: MOV A,#0dAH

MOV P0,A

LCALL delay1

RET

SEL6: MOV A,#0dFH

MOV P0,A

LCALL delay1

RET

SEL7: MOV A,#70H

MOV P0,A

LCALL delay1

RET

SEL8: MOV A,#0ffH

MOV P0,A

LCALL delay1

RET

SEL9: MOV A,#0fbH

MOV P0,A

LCALL delay1

RET

SEL10: MOV A,#01H

MOV P0,A

LCALL delay1

RET

table1: DW 64580,64684,64777,64820 ;(table1是各方波(音调)对应的周期表)

DW 64898,64968,65030,64260

DW 64400,64524,65058,63835,64021

;(table:是简谱码表,也就是歌曲的曲谱表,每个码的高四位是音调,低四位是节拍)table: DB 88h,14h,24h,36H,42H,34H,14H,28H,14H,94H

DB 1fH,88H,14H,24H,34H,32H,42H,54H,14H

DB 46H,32H,54H,22H,32H,32H,22H,2CH,38H,54H,74H

DB 76H,62H,68H,54H,52H,62H,74H,62H,52H,3fH

DB 46H,42H,54H,64H,54H,42H,32H,28H,0a4H,0a2H

DB 92H,84H,94H,1fH,0b8H,68H,46H,52H,68H

DB 74H,72H,72H,74H,62H,52H,3fH,0b8H,68H

DB 46H,52H,68H,64H,62H,62H,64H,42H,32H,2fH

DB 58H,14H,24H,36H,42H,34H,12H,12H,26H,22H,24H,22H,12H

DB 94H,9cH,0a8H,0a6H,92H,84H,64H,54H,22H,22H,46H,42H,44H,32H,22H,5fH

DB 00

子程序:

七个子程序,采样子程序,打开三态门子程序,关闭三态门子程序,定时器中断程序,LED显示子程序,LED显示延时子程序,音调延时(节拍)子程序。

六、设计体会

要求每个人根据自己的不同情况分别写出本人的设计体会,不得少于300字。顺序装订

我们组的任务是便一首歌,我们对这个程序是这样理解的。歌曲就是音调和节拍的有机组成。音调就是DAO,LAI,MI,FA,SAO,LA,XI,节拍就是音调的持续时间。我们所用的单片机只能输出方波,方波的频率不同,所以就产生了七种音调。

我们小组用定时器一来定时方波的频率,用延时程序来控制音调的持续时间。做完基本任务后,又添加了键盘和LED的程序。

编程序时要结合硬件,如果不匹配,那将无法下手编。经过这几天的实训,我对单片机有了理性的认识。总而言之就是编程之前要了解硬件的接线,否则就是瞎编。

印象最深的是做LED自检时,一开始送字型送的是教材上的字型编码,显示出来后乱七八糟的,于是我又重新找七段LED管和字型码的第0位,第一位,第二位直到第七位的对应关系,依次输入0000 0001,0000 00010,直到1000 0000,找到对应关系后重新编字型码,使得LED显示从0到9。

三个人一组,古代的人说三个臭皮匠赛过一个诸葛亮,可我却觉得不一定是那样,因为三个人的编程思路有时候非常不统一。每个人都试图说服对方,但这一般是说服不了的。幸亏刘老师要求先做程序流程图,然后照图施工,然后调试解决失真。两周的时间太短了,我觉得应该加长单片机实习的时间。单片机是很实用的,如果学好学精通,找工作就不用费心了。还有就是我觉得实习应该按这样的流程进行:先熟悉各种指令,然后熟悉硬件的环境,最后布置任务。另外我建议实验室下午可以开放,学生可以来也可以不来,我想来的人虽然不多,但是肯定有学生会来。因为在寝室虽然可以编程,但却不能用硬件来验证程序是否可行。刘老师要求是非常严格的,要求外行人能通过流程图就能了解编程思想,是按公司企业验收项目的“交钥匙工程”标准来要求学生的,虽然很累,但是我觉得很充实。

七、参考资料

1、《单片机系统综合设计与实践》教材主编:裴岩刘利民内蒙古大学出版社。

2、《单片机应用及原理》教材主编:李建忠西安电子科技大学出版社

3、《单片机原理及应用(MCS-51)教材主编:蒋廷彪刘电霆高富强方华

重庆大学出版社

单片机实验报告

PIC单片机原理与应用实验报告 学校: 学院: 班级: 姓名: 学号: 指导教师:

实验一I/O端口实验 一、实验目的 (1)掌握MPLAP IDE集成开发环境的基本操作。 (2)掌握单片机的I/O端口的设计方法。 (3)掌握在线调试器的使用方法。 (4)学会查阅相关数据手册。 二、实验仪器设备 (1)PC机一台; (2)MPLAP IDE开发软件一套; (3)PICkit3在线调试器一套; (4)APP009实验板一块; 三、实验要求 (1)设计发光LED灯闪烁程序,下载调试,验证功能。 (2)设计流水灯程序,或其他花样彩灯程序,下载调试,验证功能。 (3)设计按按键加1计数程序,下载调试,验证功能。 四、实验步骤 (1)连接在线调试器PICkit3、APP009实验板和计算机; (2)打开MPLAP IDE集成开发环境软件,点击Debugger>Select Tools>PICkit 3 选择调试工具; (3)点击Debugger>Settings,在Settings窗口中点击Power栏,选择由PICkit3向实验板供电; (4)完成实现发光LED灯闪烁实验; 程序代码: #include void delay(void); int main() { while(1) { TRISEbits.TRISE0 = 0; //RE0设置为输出(1输入,0输出); https://www.360docs.net/doc/6316908602.html,TE0 =1; //RE0=1输出高电平+5V,亮灯 delay(); //延时 https://www.360docs.net/doc/6316908602.html,TE0 =0; //RE0=0输出低电平0V,灭灯 delay(); //延时 } } void delay(void) { long int i; for (i=0;i<65000;i++); } 实验现象:将程序下载到实验板上,运行程序,LED闪烁,通过改变延时函数改变延时时间,进而可以改变LED闪烁的频率。

单片机实训报告范文精选5篇

单片机实训报告范文精选5篇 实训报告是展示自身实训收获成长的重要报告,那么实训报告该如何写呢?小编精选了一些关于实训报告的优秀范例,一起来看看吧。 单片机课程设计心得体会 在学校学习期间我有幸的参加了学校的单片机学习小组,在小组里我了解了什么是单片机,单片机有哪些用途,利用单片机可以实现哪些功能来方便人们的生活如交通灯,时钟,还有手机中,电子玩具等等,它们里面都有单片机的存在来实现某种功能。通过在单片机小组里的学习我简单总结了几点心得和体会: 第一:万事开头难,要勇敢的迈出第一步,不要总找借口说没有学习过就总推脱。凡事都有第一步可以先可简单的来,然后可以逐步的向深层次学习。可以从建项目开始,然后可以找一个简单的小程序先把它敲进单片机内然他运行起来,感觉一下单片机的运行,让自己了解单片机整个运行。 第二:对于知识点,学过的要掌握牢固,对于没有学的和暂时用不到的先不用学习。比如:小灯得点亮就没有用到中断可以先不用看。这样可以避免知识过多记不住的麻烦。对于程序这里的知识点不能只停留在理论层次上,一定要结合着程序进行学习这样才能掌握的很牢靠,当用到哪里的知识点不记得了可以去看书,对于用不到的可以不去看。 第三:程序不要只是看别人得,一定要自己写过才是自己的。开始

不懂可以参考别人的,看看每一句代表着什么意思,能够实现什么现象。明白之后自己再重新写一遍,你会发现看别人的能懂到自己写的时候很困难。当你自己能写出来的时候说明你真懂了。 第四:一定要学会程序调试的方法。有时候把程序写完了然后运行时不能实现理想的现象。这时有人就晕了不知该怎么办,然后就去问别人。当别人找出问题出在哪里时就会恍然大悟。其实当遇到问题一定要自己尝试着解决,不能遇到问题就去问别人。自己一定要掌握解决问的方法和思路。 第五:在学习初期看别人的代码,学习别人的思路这个很有用。通过看别人的代码特别是有多年编程经验的人的程序,可以迅速提高自己的编程水平。也可以结合着别人的手法,与自己的想法结合在一起写出更好的程序。但是切记将学习变成抄袭,不能认为抄袭别人的你就学会了,这样只能使你退步。第六:面对一个新项目时,自己一定要多想想,不要急着去看别人是怎么写的。有的人看到新项目时就去找别人的然后抄一小段,自己在写几句,放在一起完成任务,虽然省时间但不利你的学习。当你遇到一新项目时你应该先想一下程序的构架,想想如何来完成。然后自己动手去写,当你遇到实在是没办法解决的问题时再去请教别人,看他是怎么处理的,学习他的方法。这样起码你自己想过了,有自己的思路不会受到别人的影响,这样更容易提高自己。 在单片机的学习开始时感觉很吃力,在不断的学习过程中慢慢的对

此程序是用单片机的p1口接八个led灯作跑马灯试验

拆字程序 Org 0000h Mov A , 2000H Add A ,#F0H MOV 2001H ,A MOV A ,2000H ADD A , #0FH MOV 2002H , A MOV A , 2001H ADD A , 2002H END 拆分BCD 码 ? *************************************************************************** ;此程序是用单片机的p1口接八个led灯作跑马灯试验,八个led依次亮了又熄灭,形成漂亮;的跑马灯。本人已经试验成功。 ;单片机教程网https://www.360docs.net/doc/6316908602.html, 原创

;该8路单片机跑马灯程序代码简单,电路也容易搭建,只需把led接在p1口上就可以了,希望大家能试验成功顺利的完成跑马灯报告 ;*************************************************************************** org 0000h loop0:cjne r0 ,#01h,rel,loop0 ;判断开关打开情况 ajmp start;跳转到程序开始 org 0030h;定义起始汇编地址 start: mov a,#0ffh ; clr c ; mov r2,#08h ;循环八次。 loop: rlc a ;带进位左移。 mov p1,a ;此时led灯开始有反映了。 call delay ;延时 djnz r2,loop ;循环(djnz条件判断) mov r2,#07h ; loop1: rrc a ;带进位右移 mov p1,a ;此时led灯开始有反映了。 call delay ; djnz r2,loop1 ;反复循环 jmp start ;回到程序的开头 delay: mov r3,#20 ;延时子程序 d1: mov r4,#20 d2: mov r5,#248 djnz r5,$ djnz r4,d2 ```````````````````````````````````````````````---------3路单片机跑马灯程序---------------------------------------

单片机实验(新版2010

单片机应用技术课程为一门理论与实践相结合的课程,本课程安排的实验旨在培养学生软硬件开发能力,用编程语言及硬件设备实现串、并行通讯、计数/定时、A/D、D/A等硬件接口的功能,进一步加深对常用硬件芯片的了解和应用,以及学习用单片机解决实际问题。实验要求学生利用编程语言及硬件设备实现单片机的方案设计、程序编写、硬件连接、调试,从中体会具体硬件接口的应用技巧,进一步理解硬件接口芯片,逐步掌握单片机系统的开发和应用方法。 STAR ES598PCI提供实验仪具有与微机同步演示功能, 允许学生在Windows操作系统下编写、编译、连接、错误定位、调试、观察、修改系统, 不需要使用早期的PWB、TD等DOS下的调试环境。 通过本实验的学习,学生可以熟悉各种类型的接口芯片,汇编语言程序的编写、调试,充分锻炼动手及编程能力。

合肥学院电子信息与电气工程系实验室实验守则 (1) 实验一构建单片机最小系统和实验环境熟悉 (2) 实验二跑马灯实验及74HC138译码器 (4) 实验三8255控制交通灯实验 (7) 实验四8253方波实验 (9) 实验五继电器控制/光偶控制实验 (11)

合肥学院电子信息与电气工程系实验室实验守则为了培养严肃认真、实事求是的科学实验态度和善于思考、勤于动手的学习作风以及保证实验教学的正常进行,电子信息与电气工程系实验室特制定以下规则,望遵照执行: 1、禁止一切无关人员随意进入实验室和动用实验仪器设备和实验室内物品,确需进入实验 室工作学习的一切人员要必须严格遵守实验室的规章制度,服从实验室管理人员的安排。 2、学生应认真预习实验内容,预习不合格者不得参加实验,认真完成指定的实验内容或实 验作业,并交指导教师审阅。 3、学生不得迟到、早退、无故缺席,进入实验室后应按指定位置就座,迟到超过五分钟不 得参加实验,实验未完成早退者均按旷课论处。严禁代替他人做实验,缺实验者,课程结束后,考试前主动来补做实验,否则不得参加考试。 4、进入实验室请自带鞋套。书包、水杯等个人物品应放到指定处,且衣冠整齐,保持安静, 严禁吸烟、吃食物、随地吐痰和乱丢杂物等不文明行为,否则实验工作人员有权停止其实验。 5、实验前应先检查实验所需的工具、仪器、材料等是否齐全完好。如有缺漏、损坏应及时 报告请老师处理。 6、听从指导教师的指导,带硬件的实验接好线路后,应先认真检查,关键处确保无误。如 无把握时,须请指导教师审核后方可通电;进行大型仪器和强电实验务必经指导教师检查同意后,才可按操作规程通电实验。 7、实验时必须持严谨的科学态度,励行节约,严格按照实验步骤和正确的方法进行操作, 要细心观察记录实验结果,碰到疑难故障,应冷静分析原因,积极排除,如发生意外及时报告;独立完成实验任务,不得抄袭他人实验结果。 8、欲增加或改变实验内容,须征得指导教师同意。 9、注意人身安全,爱护仪器和设备,实验时仪器、设备、工具、材料不得乱放、乱抛;不 做与实验无关的事情,不动与本次实验无关的仪器设备,不进入与实验无关的场所,不随便串组,有以上表现而又不服从管理教育者,不得参加实验; 10、完成实验后主动整理放好相关设备,搞好卫生,实验中的废弃固体物品、腐蚀性液体必 须倒入指定的容器中,不许倒入水池中,经实验室工作人员、指导教师同意后方可离去。 11、实验室的任何物资不可擅自带走,在实验室中损坏仪器、工具等,应及时向工作人员报告,主动说明原因,并按实验室仪器设备损坏、丢失赔偿制度处理。

哈工大单片机实验报告

软件实验 在软件实验部分,通过实验程序的调试,使学生熟悉MCS-51的指令系统,了解程序设计过程,掌握汇编语言设计方法以及如何使用实验系统提供的调试手段来排除程序错误。 实验一清零程序 一、实验目的 掌握汇编语言设计和调试方法,熟悉键盘操作。 二、实验内容 把2000~20FFh的内容清零。 三、程序框图 四、实验过程 (1)实验中定义R0为循环次数,利用定义了初值的数据指针DPTR不断加1指向需要被清零的外部数据存储器单元。 (2)再利用MOVX语句,将外部存储器指定内容清零。 (3)用CJNE比较语句判断循环是否结束。 五、实验结果及分析

问题回答:清零前2000H~20FFH中为内存里的随机数,清零后全变为0。 六、实验源程序 ;清零程序 ORG 0000H MOV DPTR,#2000H MOV R0,#0FFH ORG 0660H MAIN: MOV A,#00H MOVX @DPTR,A INC DPTR DJNZ R0,MAIN END 实验二拆字程序 一、实验目的 掌握汇编语言设计和调试方法。 二、实验内容 把2000h的内容拆开,高位送2001h低位,低位送2002h低位,2001h、2002h高位清零,一般本程序用于把数据送显示缓冲区时用。 三、程序框图 四、实验过程 (1)定义数据指针DPTR为2000H,将其中内容送入累加器A中,利用高低四位交换语句SWAP可将高四位移至低四位,再用语句ANL与0FH进行与操作取出高四位送入2001H低位 (2)再次让数据指针DPTR为2000H,将其中内容送入累加器A中,直接与0FH相与取出低四位送入2002H低位。 五、实验结果及分析

单片机实训的心得体会

单片机实训报告 一周的实训,让我们从另一个角度去发现单片机。期间我学会了很多宝贵的知识和经验,在这次单片机实训中我们巩固了我们平时所学的内容;加深了对各种调试和仿真软件的使用技能;掌握了单片机应用电路的设计和调试方法。 首先,我们要从所给定的元器件中设计出6个不同的电路,并编写程序实现相关任务要求。我们小组设计出的电路主有: (1)数码管轮流显示百十个位的数。要求:数据来源于拨码开关;个位显示完毕停留的时间稍微长些。 (2)定时计数器实现对外部脉冲计数5次后,流水灯的状态由亮点左流动转化成闪烁5次,然后回到初始状态。 (3)单键改变流水灯状态。按键一旦按下,流水灯状态由暗点右流动转化成闪烁8次,然后回到初始状态。 (4)双键改变流水灯状态。按键K0(连接INT0)按下,流水灯状态由亮点左流动,转化成闪烁5次,然后回到初始状态;按键K1(连接INT1)按下,流水灯状态由亮点左流动,转化成暗点右流动至最右端,然后回到初始状态;并且按键K1级别高于K0。 (5)串口输出数据,实现在2个数码管上显示60秒计数器。 (6)在集成的8位数码管上动态显示出:1——8的效果。

其次,我们要对我们所设计的电路进行电路布局、连线,检查电路是否出现错误或者遗漏。 然后,学会用KEIL软件调试程序,并用该软件菜单的各项调试工具和窗口。再结合硬件和软件,进行整体调试。 最后,当我们根据相关要求从所给定的元器件中设计出6个不同的电路、编写程序、线路布局,调试成功,我们的设计就完成了。 在这实训期间我深刻的认识到了理论知识和实践操作必须是相结合的,也许在实训时会有很多各种软、硬件等故障。 在编程时我们就出现了很大的障碍, 本来还以为编程会很简单的,等到实际操作起来才知道它的复杂性,没有想像中的那么得心应手, 最后不得不求出其他小组,原来本身程序的思维是正确的,只是步骤中有点小错误,所以导致整个程序的结果很乱。 我们在做双键改变流水灯状态的电路时又发现了一个头痛的问题,发光二极管不亮、开关不管用,刚开始的时候,我们检查了好几遍就是没有发现问题,快要失去耐心是发现少两连接了两根线,这是个好现象让我们有了继续往下的勇气,终于在反复的检查研究中,我们发现发光二极管不亮的正负方向反了,开关接错了位置,这才导致连接线路期间的错误不断。结果是可喜的,在我们小组竭尽全力,同学老师的帮忙下,我们的电路很成功。

跑马灯实训报告

摘要:AT89C51是美国ATMEL公司生产的AT89系列单片机中的一种,该 器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器。AT89C单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。 关键字:AT89C51 兼容高效微控制器 目录 一、实训目的 (2) 二、电路设计与生成 (2) 1、设计跑马灯 (2) 2、生成PCB板 (2) 三、程序设计 (3) 1、程序设计 (3) 2、运行结果 (4) 四、实训总结 (4)

一、实训目的 了解AT89C51管脚的基本功能,学会运用Protel 99 se设计电路,并生成PCB 板,印刷线路板。使用KEIL C51设计单片机程序,生成HEX文件,将程序下载到单片机内并运行。从而达到初步掌握简单单片机小程序的设计,制作,调试的目的。 二、电路设计与生成 1、设计跑马灯 利用单片机最小系统,使P1口八个发光二极管做跑马灯和流水灯显示。设计的电路图如下: 2、生成PCB板 (1)保存电路图,单击菜单栏DESIGN项,选择其中的更新PCB; (2)在弹出的对话框中,单击preview change; (3)校对弹出界面中的相关元件的信息,再单击Execute,生成元器件;(4)最后对生成的元器件进行排版,生成如下图所示:

三、程序设计 1、程序设计 #include"reg51.h" unsigned char tab[]={1,2,4,8,0x10,0x20,0x40,0x80,0x80,0x40,0x20, 0x10,8,4,2,1}; void delay(unsigned char n) { unsigned int d; unsigned char i; for(i=0;i

单片机实验报告

单片机实验报告 实验一:存储器块清零或赋值 一、实验目的 1 熟悉存储器的读写方法,熟悉51汇编语言结构。 2 熟悉循环结构程序的编写。 3 熟悉编程环境和程序的调试。 二、实验内容 指定存储器中某块的起始地址和长度,要求将其内容清零或赋值。例如将4000H开始的10个字节内容清零或全部赋值为33H。 注意: 1 文件不要用中文名称保存时不要用中文路径(目录),不要放在“桌面”上,源文件和工程要放在同一个文件夹下,文件名称和路径名称不要太长。 2 查看存储器菜单使用:窗口---数据窗口---XDATA 观察存储器内容 3 查看SFR:窗口---CPU窗口查看CPU寄存器SFR 4 单步执行:执行---单步执行(F8),每执行一步,查看每条语句涉及到的寄存器和存储器内容的变化结果,是否是指令所要得到的结果,如不是,检查错误原因,修改。 5利用多种执行方法和观察各种窗口调试程序,直至程序满意为止。 三、实验仪器 微机、VW,WA VE6000编程环境软件,(单片机实验箱) Lab6000/Lab6000通用微控制器MCS51实验 四、实验步骤 1、新建工程文件。(注意:文件不要用中文名称保存时不要用中文路径)

2、编写程序。 3、运行和调试过程。 外部数据存储器(4000H为首地址的10个字节)中初始状态(随便赋值FFH): 单步执行程序,观察SFR中外部地址指针的变化; 全速执行程序,可以看到外部数据存储器已赋值33H:

五、实验结果 可以看到外部数据存储器已赋值33H: 六、问题讨论 本次实验能够清楚地了解存储器中数据的移动和赋值过程,通过单步执行,对于每一步的指令操作过程能够了解如何执行,查看每条语句涉及到的寄存器和存储器内容的变化结果。同时,学习掌握汇编程序的编写和调试过程。 实验二:存储块移动 一、实验目的 1 熟悉51汇编语言程序结构。 2 熟悉循环结构程序的编写,进一步熟悉指令系统。 3 熟悉编程环境和程序的调试。 二、实验内容 将指定源地址(3000H)和长度(10字节)的存储块移动到目的地址(3050H)。 注意:在编程环境中,可以通过软件仿真,观察程单片机运行情况。 由于源地址和目的地址的内容都一样(FF),调试时看不到内容的变化,所以需要给源地址内容赋值。有多种赋值方式(比如在搬移循环体内,赋值一个搬移一个,请在空白处添

单片机实验报告

单片机实验报告 学院:姓名:学号:指导老师:

目录 第一章实验内容、目的及要求 (2) 一、内容 (2) 二、目的及要求 (3) 第二章实验 (3) 实验一数字量输入输出实验 (3) 实验二定时器/计数器实验 (4) 实验三A/D、D/A转换实验 (11) 实验四串行通信设计 (20) 第三章实验体会 (28)

第一章实验内容、目的及要求 一、内容 实验一数字量输入输出实验 阅读、验证C语言程序功能。使用汇编语言编程,完成实验指导书之“3.1 数字量输入输出实验”基本实验项目。 实验二定时器/计数器实验 阅读、验证C语言程序功能。使用汇编语言编程,完成实验指导书之“3.3 定时/计数器实验”基本实验项目。 提高部分:定时器控制LED灯 由单片机内部定时器1,按方式1工作,即作为16位定时器使用每0.05秒钟T1溢出中断一次。P1口的P1.0-P1.7分别接八个发光二极管。编写程序模拟时序控制装置。开机后第一秒钟L1,L3亮,第二秒钟L2,L4亮,第三秒钟L5,L7亮,第四秒钟L6,L8亮,第五秒钟L1,L3,L5,L7亮,第六秒钟L2,L4,L6,L8亮,第七秒钟八个LED灯全亮,第八秒钟全灭,以后又从头开始,L1,L3亮,然后L2,L4亮……一直循环下去。 实验三A/D、D/A转换实验 阅读、验证C语言程序功能。使用汇编语言编程,完成实验指导书之“4.3 A/D转换实验”项目(P64)和“4.4 D/A转换实验”项目。 提高部分:(要求:Proteus环境下完成) 小键盘给定(并显示工作状态),选择信号源输出波形类型(D/A 转换方式),经过A/D采样后,将采样数据用LED灯,显示当前模拟信号值大小及变化状态。 实验四串行通讯实验 阅读、调试C语言程序功能。使用汇编语言编程,完成实验指导书之“3.7 串口通讯实验”项目。(要求:实验仪器上完成)提高部分:(要求:Proteus环境下完成) 利用单片机实验系统,实现与PC机通讯。功能要求:将从实验系统键盘上键入的数字,字母显示到PC机显示器上,将PC机键盘输入的字符(0-F)显示到单片机实验系统的数码管上。

单片机实训心得

沧州职业技术学院单片机实训报告 心得体会 为期一周的单片机实训结束了,真是让我受益匪浅啊!学到了很多东西,不管怎么样,先感谢学校给我的这么多机会,真正的学到了东西。 随着电子技术的发展,特别是随着大规模集成电路的产生,给人们的生活带来了根本性的变化,我们就学习了单片机这门课程,感觉是有点难。也不知道整个学习过程是怎么过来得,可是时间不等人。不过在学习中,我才发现学习单片机不仅仅需要软件的知识,还需要硬件的知识。我买了一个单片机在实践中就是一个活生生的例子,没有相应的硬件知识,我连单片机怎么和电脑相连都不知道,我为我当初的想法感到羞愧。单片机是一门很好的学问,需要我去钻研它。 不过在学习中,我才发现学习单片机不仅仅需要软件的知识,还需要硬件的知识。我买了一个单片机在实践中就是一个活生生的例子,没有相应的硬件知识,我连单片机怎么和电脑相连都不知道,我为我当初的想法感到羞愧。单片机是一门很好的学问,需要我去钻研它。 时光飞逝,一转眼,一个学期又进尾声了,本学期的单片机综合课程设计也在一周内完成了。俗话说“好的开始是成功的一半”。说起课程设计,我认为最重要的就是做好设计的预习,认真的研究老师给的题目,选一个自己有兴趣的题目。其次,老师对实验的讲解要一丝不苟的去听去想,因为只有都明白了,做起设计就会事半功倍,如果没弄明白,就迷迷糊糊的去选题目做设计,到头来一点收获也没有。最后,要重视程序的模块化,修改的方便,也要注重程序的调试,掌握其方法。 在全组人竭尽全力,老师的精心指导下,程序基本编写成功,这是我们共同努力的结果,在享受我们成果之时,不得不感慨单片机的重要性与高难度性,所以为期一周的单片机课程设计没有浪费我我们学到了很多知识,也让我们对单片机有了更深一步的了解,虽然最后结果是出来了,可这与老师的精心指导是分不开的她引导我们的思路,本来一窍不通的我们经过老师的点拨基本上通了,所以老师是功不可没的。 总而言之,单片机课程设计对于我们有很大的帮助,我们从中受益匪浅。

单片机跑马灯实训报告

目录 一、了解跑马灯............................. .... . (2) 二、AT89C52 单片机 ........................... .3 三、识别与检测元器件 (4) 四、电路设计...................................... (4) 1. 单片机最小应用系统 (4) 2. 复位电路图..................................... .5 3. 彩灯原理图 (6) 4. 彩灯仿真图 (7) 5. 彩灯布局图 (8) 五、焊接电路 (8) 六、程序流程 (9) 七、跑马灯程序 (10) 八、下载调试程序 (10) 九、实训总结 (11)

十、微控制器应用技术实训评价表 (12)

、了解跑马灯 在生活和生产的各领域中,凡是有自动控制要求的地方都会有单片机的身影出现;从简单到复杂,从空中、地面带地下,凡是能想象到的地方几乎都有使用单片机的需求。现在尽管单片机的应用已经很普遍了,但仍有许多可以用单片机控制而没有实现的项目,因此,单片机的应用大有想象和拓展空间。单片机的应用有利于产品的小型化、多功能化和智能化,有助于提高劳动效率,减轻劳动强度,提高产品质量,改善劳动环境,减少能源和材料消耗,保真安全等。但是单片机应用的意义绝不仅限于它的广阔范围以及所带来的经济效益上,更重要的意义还在于单片机的应用正从根本上改变者传统的控制系统设计思想和设计方法。从前必须有模拟电路或数字电路实现的大部分功能,现在 已能使用单片机通过软件方法来实现了。这种以软件取代硬件并提高系统系能的控制系统是一种全新的概念,是对传统控制技术的一次革命。随着单片机应用的推广普及,微控制技术必将不断发展、日益完善和更加充实。 在众多的微控技术实验中,老师为我们选择了用单片机制作8个灯的跑马机这一较为基本的科目,单片机使用我们熟悉的AT89C52型单片机,采用覆铜板手工焊制的方法来制作电路板,使用Proteus进行仿真。 本设计选择采用AT89C51单片机为核心。AT89C51是一个低电压、高性能CMOS8 位单片机带有K字节的可反复擦写的程序存储器。和128字节的存取数据存储器RAM这种器件采用ATMEL公司的高密度、不容易丢失存储技术生产,并且能够与MCS-51系列的单片机兼容。片内含有8位中央处理器和闪烁存储单位,有较强的功能的AT89C51单片机能够被应用到控制领域中AT89C51提供以下的功能标准:4K字节闪烁存储器,128字节随机存取数据存储器,32个I/O 口,2个16位定时/计数器,1个5向量两级中断结构,1个串行通信口,片内振荡器和时钟电路。另外,AT89C51还可以进行OHZ的静态逻辑操作,并支持两种软件的节电模式。闲散方式 停止中央处理器的工作,能够允许随机存取数据存储器、定时/计数器、串行通信口及中断系统继续工作。掉电方式保存随机存取数据存储器中的内容,但振荡器停止工作 并禁止其它所有部件的工作直到下一个复位。

单片机实训实验报告

单片机实训实验报告 课题:单片机实训 院系:电子信息工程学院 班级 学号: 姓名: 指导老师:熊老师、罗老师 日期:2011.6.10

一、硬件系统 1、自制单片机实验板由七部分组成: (1).8路跑马灯 (2)动态扫描共阳型数码管 (3)4X4矩阵键盘 (4)蜂鸣器 (5)4路独立键盘 (6)温度传感器 (7)I2C通信方式的EEPROM芯片24C02 二、Keil C u Vision2 简述与使用 1.打开 u Vision2 2.新建工程:菜单【project】→【New Project】选择工程存放的路径,并输入工程文件名,然后点“保存” 3.进入器件选择界面树列表框内选择“Atmel”→“AT89C52”,然后点“确定”完成器件选择。 4.编辑源程序: 新建文件:菜单【File】→【new…】。然后输入代码,编辑完成后菜单【File】→【Save】或【Save As…】把代码文件存入硬盘。C源文件存为.C后缀,汇编源文件存为.a或.src后缀,并存放在同一个工程文件夹下。 5.加入源文件到工程中: 在左边浮动窗口【File】选项卡里展开“Target 1”树,在“Source Group 1”上右键单击,弹出菜单,选【Add File to Group“Source Group 1”】,选择需要加入的源文件,点“Add”按钮加入,加入完成后按“Close”关闭。 6.设置编译选项:先选中左边浮动窗口【File】选项卡里“Target1“树节点,然后选菜单【Project】→【Options for Target “Target 1”】。 7.在弹出的“Options for Target “Target 1””对话框中选择[output]选项卡,勾选“Create HEX File”然后按“确定”完成设置。 8.按“F7”开始编译,编译成功后会在工程文件夹内生成.Hex目标文件生成的.hex文件就可以用来对AT89S52芯片进行编程和运行了。 三.STC-ISP V29 Beta5 下载软件的使用 1.连接好电源线与串口线(附件中的九孔对九孔线分别连接电脑和点偏激开发板)。 2.检查电源板上电源指示灯是否亮起,如果亮起则检查USB电源线,如果已亮则关掉电源看后面的步骤。 3.启动软件。 4.选择好STC单片机的型号(STC89CF52RC). 5.选择好你使用的计算机串口号. 6.点击OPEN FILE选择你用KEIL编译好的HEX文件.

哈工大单片机实验报告(上传)

H a r b i n I n s t i t u t e o f T e c h n o l o g y 单片机原理与应用 实验报告 学生姓名: 学号: 班级: 专业: 任课教师: 所在单位: 2013年5月

软件实验 在软件实验部分,通过实验程序的调试,使学生熟悉MCS-51的指令系统,了解程序设计过程,掌握汇编语言设计方法以及如何使用实验系统提供的调试手段来排除程序错误。 实验一清零程序 一、实验目的 掌握汇编语言设计和调试方法,熟悉键盘操作。 二、实验内容 把2000~20FFh的内容清零。 三、程序框图 四、实验过程 实验中利用MOVX语句,将外部存储器指定内容清零。利用数据指针DPTR完成数据传送工作。程序采用用循环结构完成,R0移动单元的个数,可用CJNE比较语句判断循环是否结束。 五、实验结果及分析 清零前清零后

【问题回答】清零前2000H~20FFH中为内存里的随机数,清零后全变为0。 六、实验源程序 AJMP MAIN ORG 0640H MAIN: MOV R0, #00H MOV DPL, #00H MOV DPH, #20H LOOP: MOV A, #00H MOVX @DPTR, A INC DPTR INC R0 CJNE R0, #0FFH, LOOP MOVX @DPTR, A END 实验二拆字程序 一、实验目的 掌握汇编语言设计和调试方法。 二、实验内容 把2000h的内容拆开,高位送2001h低位,低位送2002h低位,2001h、2002h高位清零,一般本程序用于把数据送显示缓冲区时用。 三、程序框图 四、实验过程 将寄存器中内容送入2000H,分别将高低四位移到低位,将高四位置零然后移入2001H 和2002H中。利用MOVX语句、DPTR指针可实现数据的传送,利用高低四位交换语句SWAP和与语句ANL可进行对高低位的清零。

单片机实训报告

单片机原理及应用 实训报告 班级: 学号: 姓名: 指导教师: 实训总成绩:

一、节日彩灯设计 题目:8位逻辑电平模块上的LED小灯从左向右呈现“鞭甩”的实验现象,状态间隔为0.25秒;按键1开始,按键2结束。 原理图 程序代码: #include #define uchar unsigned char uchar tab[]={0x7f,0x3f,0x1f,0x0f,0x07,0x03,0x01,0x00}; sbit S1=P1^4; sbit S2=P1^7; unsigned char i,j; delay(unsigned int x) { for(j=0;j

for(i=0;i<10;i++); } void main() { uchar i,b,d; while(1) {if (S1==0) {delay(50); if(S1==0); S1=b; b=0; {for(i=0;i<8;i++) { P2=tab[i]; delay(50); {if (S2==0) {delay(50); if(S2==0); S1=d; d=1; P2=0xff; }} } } } } } 设计思想总结 用C语言程序控制单片机最小系统,使IO口输出高低电平控制彩灯电路的闪烁。节日彩灯控制器是利用将单片机的CPU、RAM、ROM、定时器/计数器及输入/输出、I/O接口电路集成在一块集成电路芯片上的特点。通过其与发光二极

管及驱动电路的连接,从而构成一个完整的硬件电路。然后通过对单片机的ROM 进行编程,实现对彩灯闪烁的控制。 二、定时器实现流水灯 题目:利用定时器/计数器T0产生2秒钟的定时,每当2秒定时到来时,更换指示灯点亮,依次循环点亮。 原理图 程序代码 #include #include int lamp = 0xfe ; int cnt = 0; main() {P2 = 0xfe; TMOD = 0x01; TL0 = (65536 - 50000) % 256; TH0 = (65536 - 50000) / 256; TR0 = 1 ; ET0 = 1;

单片机课程设计报告-跑马灯

单片机课程设计报告-跑马灯

武汉纺织大学 单 片 机 课 程 设 计 报 告 设计课题:跑马灯 指导教师:刘丰

姓名:颜珊曹坤 班级:应电092 一、设计任务 利用单片机制作让LED灯依次闪烁时间间隔为0.5S二次后时间加快为 0.2S并循环闪烁的跑马灯. 二、设计要求 (1)采用单片机STC89C52来控制,下载器由芯片MAX232来对程序的下载。 (2)LED灯的闪烁间隔时间为0.5S-0.25S-1S,每循环两圈更改闪烁速度。 (3)供电采用USB方口的方式。 三、方案设计与论证 跑马灯电路的组成方框图为: 四,主要元件介绍 (1)单片机STC89C52引脚介绍 stc89c52的内核和AT51系列单片机一样,故引脚也相同: 1~8:I/OP1口(P1.0~P1.7); 9:复位脚(RST/Vpd);

10~17:I/OP3口(P3.0=RXD,P3.1=TXD,P3.2=-INT0,P3.3=-INT1,P3.4=T0,P3.5=T1,P3.6=-WR,P3.7=-RD)主要是此引脚; 18、19:晶振(18=XTAL2,19=XTAL1);20:地(Vss); 21~28:I/OP2口(P2.0~P2.7); 29:-PSEN; 30:ALE/-PROG; 31:-EA/Vpp 32~39:I/OP0口(P0.7~P0.0); 40:+5V电源。 注:引脚功能前加“-”,说明其是低电平有效。如P3.2=-INT0。 (2)MAX232介绍 MAX232芯片是美信公司专门为电脑的RS-2 32标准串口设计的接口电路,使用+5v单电源供电。

跑马灯实验报告

电子系统综合设计报告 学号 201009120229 姓名李文海年级专业 2010级电子信息工程(二) 指导 教师刘怀强 学院理学院 走马灯实验论文--《嵌入式系统技术》 1、实验目的 1、学会dp-51pro实验仪监控程序下载、动态调试等联机调试功能的使用; 2、理解和学会单片机并口的作为通用i/o的使用; 3、理解和学会单片机外部中断的使用; 4、了解单片机定时器/计数器的应用。 2、实验设备 z pc 机、arm 仿真器、2440 实验箱、串口线。 3、实验内容 z 熟悉 arm 开发环境的建立。 z 使用 arm 汇编和 c 语言设置 gpio 口的相应寄存器。 z 编写跑马灯程序。 5、实验原理 走马灯实验是一个硬件实验,因此要求使用dp-51pro 单片机综合仿真实验仪进行硬件 仿真,首先要求先进行软件仿真,排除软件语法错误,保证关键程序段的正确。然后连接仿 真仪,下载监控程序,进行主机与实验箱联机仿真。 为了使单独编译的 c 语言程序和汇编程序之间能够相互调用,必须为子程序间的调用规 定一定的规则。atpcs ,即 arm , thumb 过程调用标准(arm/thumb procedure call standard),是 arm 程序和 thumb 程序中子程序调用的基本规则,它规定了一些子程序间调 用的基本规则,如子程序调用过程中的寄存器的使用规则,堆栈的使用规则,参数的传递规 则等。 下面结合实际介绍几种 atpcs 规则,如果读者想了解更多的规则,可以查看相关的书 籍。 1.基本 atpcs 基本 atpcs 规定了在子程序调用时的一些基本规则,包括下面 3 方面的内容: (1)各寄存器的使用规则及其相应的名称。 (2)数据栈的使用规则。 (3)参数传递的规则。 相对于其它类型的 atpcs,满足基本 atpcs 的程序的执行速度更快,所占用的内存更少。 但是它不能提供以下的支持: arm 程序和 thumb 程序相互调用,数据以及代码的位置无关 的支持,子程序的可重入性,数据栈检查的支持。 而派生的其他几种特定的 atpcs 就是在基本 atpcs 的基础上再添加其他的规则而形成 的。其目的就是提供上述的功能。 2.寄存器的使用规则 寄存器的使用必须满足下面的规则: (1) 子程序间通过寄存器 r0~r3 来传递参数。这时,寄存器 r0~r3 可以记作 a0~a3。 被调用的子程序在返回前无需恢复寄存器 r0~r3 的内容。 (2) 在子程序中,使用寄存器 r4~rll 来保存局部变量。这时,寄存器 r4~r11 可以记 作 v1~v8。如果在子程序中使用到了寄存器 v1~v8 中的某些寄存器,子程序进入时必须保

哈尔滨工业大学微处理器原理与应用实验报告

微处理器原理与应用 实验报告 姓名:王烁行 同组人:张绍文、马文佳、孙蓦征 学号:1080520406 班级:0805204 指导教师:赵彬 院系:电子信息工程

1 实验一简单I/O口扩展实验(一) 交通灯控制实验 1.1实验要求 扩展实验箱上的74LS273作为输出口,控制八个发光二极管燃灭,模拟交通灯管理。 1.2实验目的 1.学习在单片机系统中扩展简单I/O接口的方法 2.学习数据输出程序的设计方法 3.学习模拟交通灯控制的实现方法 1.3实验原理 本实验需要用到实验箱上八个发光二极管中的六个,即红、黄、绿各两个。不妨将L1、L3、L5作为东西方向的指示灯,将L2、L4、L6作为南北方向的指示灯。而交通灯的燃灭规律为:初始态是两个路口的红灯全亮,之后,东西路口的绿灯亮,南北路口的红灯亮,东西方向通车,延时一段时间后,东西路口绿灯灭,黄灯开始闪烁。闪烁若干次后,东西路口红灯亮,而同时南北路口的绿灯亮,南北方向开始通车,延时一段时间后,南北路口的绿灯灭,黄灯开始闪烁。闪烁若干次后,再切换到东西路口方向,重复上述过程。 各发光二极管共阳极,阴极接有与非门,因此使其点亮应使相应输入端为高电平。1.4 实验内容(包括实验电路和程序流程图) 按指导书搭接电路,调试程序并运行。

图1实验电路图 图2实验流程图

1.5 实验结果 实验现象与既定目标相符:初始态是两个路口的红灯全亮,之后,东西路口的绿灯亮,南北路口的红灯亮,东西方向通车,延时一段时间后,东西路口绿灯灭,黄灯开始闪烁。闪烁若干次后,东西路口红灯亮,而同时南北路口的绿灯亮,南北方向开始通车,延时一段时间后,南北路口的绿灯灭,黄灯开始闪烁。闪烁若干次后,再切换到东西路口方向,重复上述过程。 1.6 实验结果讨论分析 实验中发现交通灯在黄灯和红绿灯切换的时候有抖动和延时,初步估计是单片机定时系统不稳定以及程序的延时冗余没有添加所导致。 1.7 实验程序代码 PORT EQU 0CFA0H ;片选地址CS0 ORG 0000H LJMP BEGIN ORG 4100H BEGIN: MOV A,#03H ;1、2亮,其余灭 ACALL SHOW ;调用273显示单元 ACALL T03 ;延时3秒 EW: MOV A,#12H ;东西导通;南北截止 ACALL SHOW ACALL T10 ;延时10秒 MOV A,#02H ;东西截止;南北截止 ACALL SHOW SNBY: MOV A,#04H ;3亮,其余灭 ACALL SHOW ;调用273显示单元 ACALL T02 ;延时2秒 MOV A,#00H ; ACALL SHOW ACALL T02 ;延时2秒 MOV A,#04H ;3亮 ACALL SHOW ACALL T02 ;延时2秒 MOV A,#00H ;灭 ACALL SHOW ACALL T02 ;2秒 MOV A,#04H ;3亮 ACALL SHOW

单片机实验心得体会3篇

单片机实验心得体会一:单片机实验心得体会 时间过得真快,不经意间,一个学期就到了尾声,进入到如火如荼的期末考试阶段。 在学习单片机这门课程之前,就早早的听各种任课老师和学长学姐们说过这门课程的重要性和学好这门课程的关键~~多做单片机实验。 这个学期,我们除了在课堂上学习理论知识,还在实验室做了7次实验。将所学知识运用到实践中,在实践中发现问题,强化理论知识。 现在,单片机课程已经结束,即将开始考试了,需要来好好的反思和回顾总结下了。 第一次是借点亮led灯来熟悉keil软件的使用和试验箱上器材。第一次实验体现了一个人对新事物的接受能力和敏感度。虽然之前做过许多种实验。但依旧发现自己存在一个很大的问题,对已懂的东西没耐心听下去,容易开小差;在听老师讲解软件使用时,思路容易停滞,然后就跟不上老师的步骤了,结果需要别人再次指导;对软件的功能没有太大的热情去研究探索,把一个个图标点开,进去看看。所以第一次试验相对失败。鉴于此,我自己在宿舍下载了软件,然后去熟悉它的各个功能,使自己熟练掌握。 在做实验中,第二个问题应该是准备不充分吧。一开始,由于没有课前准备的意识,每每都是到了实验室才开始编程,完成作业,导致每次时间都有些仓促。后来在老师的批评下,认识到这是个很大的问题:老师提前把任务告诉我们,就是希望我们私下把程序编好。于是我便在上机之前把程序编好,拷到u盘,这样上机时只需调试,解决出现的问题。这样就会节约出时间和同学讨论,换种思路,换种方法,把问题给吃透。发现、提出、分析、解决问题和实践能力是作为我们这个专业的基本素质。 三是我的依赖性很大,刚开始编程序时喜欢套用书上的语句,却对语句的理解不够。于是当程序出现问题时,不知道如何修改,眼前的程序都是一块一块的被拼凑整合起来的,没法知道哪里错了。但是编程是一件很严肃的事情,容不得半点错误。于是便只能狠下决心,坚持自己编写,即使套用时,也把每条语句弄懂。这也能激发了学习的兴趣。 还有一次实验是调出电脑里的程序,让它在试验箱上实现其功,让我们去体会别人编程的技巧和程序逻辑美感。看了之后,不得不说我目前的水平简直太小儿科了。还有连线也是个问题,

《Flexsim仿真实验》报告

安徽工业大学管理科学与工程学院 《Flexsim仿真实验》报告 专业物流工程班级流131 姓名潘霞学号 139094152 指导老师张洪亮 实验(或实训)时间十九周

实验报告提交时间 2016年7月7日 一、实验(或实训)目的、任务 1基本掌握全局表的使用 2理解简单的仿真语言 3简单使用可视化工具 二、实验(或实训)基本内容(要点) 运用Flexsim软件了解多产品加工生产系统仿真的过程。 模型介绍: 发生器产生四种临时实体,服从整数均匀分布,类型值分别为1、2、3、4,颜色分别为绿色、蓝色、白色、黄色,进入暂存区1;临时实体到达的时间间隔exponential(0,10,0) 然后随机进入处理器进行加工,可以使用的处理器有四个,不同类型的临时实体在处理器上的加工时间不同,详情如下表: 加工结束后,进入暂存区2存放,并由叉车搬运至货架。

同时,在各个处理器附近用可视化工具显示该处理器的实时加工时间。 三、实验(实训)原理(或借助的理论) 系统仿真的基本概念 系统、模型和系统仿真 系统式相互联系、相互作用、的对象的组合。可以分为工程系统和非工程系统。系统模型是反映内部要素的关系,反映系统某昔日方面本质特征,以及内部要素与外界环境关系的形同抽象。模型主要分为两大类:一类是形象模型,二类是抽象模型,包括概念模型、模拟模型、图标模型和数学模型等。 通过Flexsim可成功解决:提高设备的利用率,减少等候时间和排队长度,有效分配资源,消除缺货问题,把故障的负面影响减至最低,把废弃物的负面影响减至最低,研究可替换的投资概念,决定零件经过的时间,研究降低成本计划,建立最优批量和工件排序,解决物料发送问题,研究设备预置时间和改换工具的影响。 Flexsim软件的基本术语:Flexsim实体,临时实体,临时实体类型,端口,模型视图。 四、所使用到的实验设备、仪器、工具、图纸或软件等 计算机 Flexsim软件 五、实验(或实训)步骤 步骤一:模型布局 双击Flexsim图标打开应用程序,此时可看到Flexsim菜单、工具条、实

相关文档
最新文档