《单片机应用技术与实训项目.docx》由会员分享,可在线阅读,更多相关《单片机应用技术与实训项目.docx(31页珍藏版)》请在三一办公上搜索。
1、国家级骨干教师培训课程 单片机应用技术实训项目广东技术师范学院师培中心电子与信息学院韩 克 编写实训项目一1.实训目的 掌握汇编语言程序的基本结构。 了解汇编语言程序设计的基本方法和思路。 实现8个发光二极管闪动点亮状态,并不断循环。2. 实训设备与器件 微机、LTE-3000TB单片机开发系统箱、烧录器、MCS-51芯片等。3. 实训步骤 在keil C51 uVision2软件开发平台上建立工程项目、建立asm汇编程序文件、导入目标源组、生成十六进制代码。 软件调试与仿真,观察程序运行情况等。 硬件调试与仿真,观察8个发光二极管的点亮状态是否与设计要求相符。 烧录(固化)芯片,实际运行电路
2、。比较及观察是否与硬件仿真结果相同。4. 实训电路 实验平台上有8只发光二极管,由74HC245驱动器,以显示电平状态。高电平“1”点亮发光二极管。实训一 电路图5. 程序流程图开始点亮8个发光二极管延 时8个发光二极管结束延 时 6. 程序清单 ORG 0000HSTART: MOV P1,#00H ACALL DELAY MOV P1,#0FFH ACALL DELAY AJMP STARTDELAY: MOV R3,#7FHDEL2: MOV R4,#0FFHDEL1: NOP DJNZ R4,DEL1 DJNZ R3,DEL2 RET END实训项目二1.实训目的 掌握汇编语言程序的基
3、本结构。 了解汇编语言程序设计的基本方法和思路。 编程实现P1口连接的8个LED显示方式如下:从P1.0到P1.7的顺序,依次点亮其连接的LED,并不断循环。2. 实训设备与器件 微机、LTE-3000TB单片机开发系统箱、烧录器、MCS-51芯片等。3. 实训步骤 在keil C51 uVision2软件开发平台上建立工程项目、建立asm汇编程序文件、导入目标源组、生成十六进制代码。 软件调试与仿真,观察程序运行情况等。 硬件调试与仿真,观察8个发光二极管的点亮状态是否与设计要求相符。 烧录(固化)芯片,实际运行电路。比较及观察是否与硬件仿真结果相同。4. 实训电路 实验平台上有8只发光二极
4、管,由74HC245驱动器,以显示电平状态。高电平“1”点亮发光二极管。实训二 电路图5. 程序流程图 6. 程序清单 ORG 0000HSTART: MOV R2,#08H MOV A,#0FEHNEXT: MOV P1,A ACALL DELAY RL A DJNZ R2,NEXT SJMP STARTDELAY: MOV R3,#0FFHDEL2: MOV R4,#0FFHDEL1: NOP DJNZ R4,DEL1 DJNZ R3,DEL2 RET END 实训项目三1.实训目的 掌握汇编语言程序的基本结构。 了解汇编语言程序设计的基本方法和思路。 八路彩灯控制D1D8八个彩灯按规定顺
5、序依次点亮(间隔1秒),最后全亮; 按规定顺序依次熄灭(间隔1秒),最后全灭; 八个灯同时点亮,保持1秒; 八个灯同时熄灭,保持0.5秒; 再将第3、4步重复4遍,最后整个程序再重复N遍。 2. 实训设备与器件 微机、LTE-3000TB单片机开发系统箱、烧录器、MCS-51芯片等。3. 实训步骤 在keil C51 uVision2软件开发平台上建立工程项目、建立asm汇编程序文件、导入目标源组、生成十六进制代码。 软件调试与仿真,观察程序运行情况等。 硬件调试与仿真,观察8个发光二极管的点亮状态是否与设计要求相符。 烧录(固化)芯片,实际运行电路。比较及观察是否与硬件仿真结果相同。4. 实
6、训电路 实验平台上有8只发光二极管,由74HC245驱动器,以显示电平状态。高电平“1”点亮发光二极管。实训三 电路图5. 程序流程图 6. 程序清单ORG 0000H LJMP MAINORG 0100HMAIN: MOV R7,#7LOOP: MOV R6,#16 MOV R5,#4 MOV DPTR,#TABL MOV R4,#0 LOOP1: MOV A,R4 MOVC A,A+DPTRMOV P1,AINC R4LCALL DELAYLCALL DELAY DJNZ R6,LOOP1 LOOP2: MOV P1,#0FFHLCALL DELAYLCALL DELAY MOV P1,#
7、00H LCALL DELAYDJNZ R5,LOOP2DJNZ R7,LOOPSJMP $ ORG 0200HTABL: DB 0FEH,0FCH,END实训项目四1.实训目的 掌握汇编语言散转程序的基本结构。 了解汇编语言程序设计的基本方法和思路。 设计两个开关,使CPU可以察知两个开关组合出的4种不同状态。然后对应每种状态,使8个LED显示出不同的亮灭模式。 P3.5 P3.4 显示方式 0 0 全亮 0 1 交叉亮 1 0 低4位连接的 灯灭,高4位亮 1 1 低4位连接的灯亮,高4位灭2. 实训设备与器件 微机、LTE-3000TB单片机开发系统箱、烧录器、MCS-51芯片等。3.
8、实训步骤 在keil C51 uVision2软件开发平台上建立工程项目、建立asm汇编程序文件、导入目标源组、生成十六进制代码。 软件调试与仿真,观察程序运行情况等。 硬件调试与仿真,观察8个发光二极管的点亮状态是否与设计要求相符。 烧录(固化)芯片,实际运行电路。比较及观察是否与硬件仿真结果相同。4. 实训电路 实验平台上有8只发光二极管,由74HC245驱动器,以显示电平状态。高电平“1”点亮发光二极管。实训四 电路图5. 程序流程图 实训五 电路图6. 程序清单ORG 0000H MOV P3,#00110000B MOV A,P3 ANL A ,#00110000B SWAP A R
9、L A MOV DPTR,#TABLE JMP A+DPTRONE: MOV P1,#00H SJMP $TWO: MOV P1,#55H SJMP $THREE: MOV P1,#0FH SJMP $FOUR: MOV P1,#0F0H SJMP $TABLE: AJMP ONE AJMP TWO AJMP THREE AJMP FOUR END实训项目五1.实训目的 掌握BCD码调整程序的设计。 掌握用软件设计的延时子程序。 用两个8段LED数码管组成电梯轿厢数码管指示层。两个数码管显示层数(十进制),显示十位数的数码管的小数点作为上行指示,显示个位数的数码管的小数点作为下行指示。当轿厢停
10、在某层时,数码管显示该层的层数,显示m秒,上行或下行指示灭;轿厢在两层之间运行时,数码管显示前方的层数, 上行或下行指示灯亮, 显示m秒。 2. 实训设备与器件 微机、LTE-3000TB单片机开发系统箱、烧录器、MCS-51芯片等。3. 实训步骤 在keil C51 uVision2软件开发平台上建立工程项目、建立asm汇编程序文件、导入目标源组、生成十六进制代码。 软件调试与仿真,观察程序运行情况等。 硬件调试与仿真,观察LED数码管状态是否与设计要求相符。 烧录(固化)芯片,实际运行电路。比较及观察是否与硬件仿真结果相同。4. 实训电路 实验电路由8051单片机、MC14495译码器、L
11、ED数码管、74LS04与非门等组成。 实训五 电路图5. 程序流程图 6. 程序清单主程序: ORG 0000H AJMP MAIN ;程序入口 ORG 0100HMAIN: MOV R7,#7 ;循环次数(大循环) MOV P1,#1 ;起始1层(显示01) ACALL DELAY ;延时(停在第一层)LOOP: MOV R5,#2 ;准备上行UP: ACALL HTT ;转换显示 CLR P3.0 ;上行中 ACALL DELAY ;延时 SETB P3.0 ;到达停顿 ACALL DELAY ;延时 INC R5 ;上一层 CJNE R5,#13,UP ;最高层? MOV R5,#11
12、 ;准备下行DN: ACALL HTT CLR P3.1 ;下行中 ACALL DELAY SETB P3.1 ;到达停顿 ACALL DELAY DEC R5 ;下一层 CJNZ R5,#0,DN ;底层? DJNZ R7,LOOP ;循环结束 SJMP $转换显示子程序:HTT: MOV A,R5 ;子程序的入口, MOV B,#10 DIV AB ;相除,商A=01、余B=00, SWAP A ;交换,A=10 ORL A,B ;相加,A=10, MOV P1,A ;数码管显示10(显示12) RET延时3秒子程序(12MHZ)DELAY: MOV R2,#200LP2: MOV R1,
13、#30LP1: MOV R0,#7DHLP0: NOP NOP DJNZ R0,LP0 DJNZ R1,LP1 DJNZ R2,LP2 RET END实训项目六1.实训目的 利用单片机的定时方式,实现信号灯的控制。 通过定时器程序设计,学会定时器方式1的使用。 用单片机定时/计数器设计一个秒表,由P1口连接的LED采用BCD码显示,发光二极管亮表示“1”,灭表示“0”。计满60s后从头开始,依次循环。2. 实训设备与器件 微机、LTE-3000TB单片机开发系统箱、烧录器、MCS-51芯片等。3. 实训步骤 在keil C51 uVision2软件开发平台上建立工程项目、建立asm汇编程序文件
14、、导入目标源组、生成十六进制代码。 软件调试与仿真,观察程序运行情况等。 硬件调试与仿真,观察8个发光二极管的点亮状态是否与设计要求相符。 烧录(固化)芯片,实际运行电路。比较及观察是否与硬件仿真结果相同。4. 实训电路 实验平台上有8只发光二极管,由74HC245驱动器,以显示电平状态。高电平“1”点亮发光二极管。实训六 电路图5. 程序清单源程序设计如下: OR G 0000H MOV TMOD,#61H MOV TH1,#0C4H MOV TL1,#0C4H SETB TR1 DISP: MOV A,#00H MOV P1,ACONT: ACALL DELAY CLR P3.5 ;T1引
15、脚产生负跳变 NOP NOP SETB P3.5 ; T1引脚恢复高电平 ADD A,#01H ;加1 DA A ;将十六进制数转换成BCD数 MOV P1,A ;点亮 JBC TF1,DISP ;查询定时器1计数溢出 SJMP CONT ;不到60s继续计数1s延时子程序:DELAY: MOV R3,#14H MOV TH0,#3CH MOV TL0,#0B0H SETB TR0 LP1: JBC TF0,LP2 SJMP LP1 LP2: MOV TH0,#3CH MOV TL0,#0B0H DJNZ R3,LP1 RET END实训项目七1.实训目的 了解红外对管的工作原理。 利用单片机
16、的定时与中断方式,实现单片机对外信号的计数。 用8031单片机和红外发射接收对管组成生产线工件自动计数器,计数值用两个LED数码管以两位十进制数显示。控制要求:1) 按启动按钮QA后从0开始计数并显示计数值,计到n(0n99)时LED发光报警,按QA后又从0开始计数。2) 在计数过程中,按TA按钮后暂停计数,再按QA后继续计数下去。2. 实训设备与器件 微机、LTE-3000TB单片机开发系统箱、烧录器、MCS-51芯片等。3. 实训步骤 在keil C51 uVision2软件开发平台上建立工程项目、建立asm汇编程序文件、导入目标源组、生成十六进制代码。 软件调试与仿真,观察程序运行情况等
17、。 硬件调试与仿真,观察LED数码管的状态是否与设计要求相符。 烧录(固化)芯片,实际运行电路。比较及观察是否与硬件仿真结果相同。4. 实训电路 实验电路由8051单片机、MC14495译码器、LED数码管、74LS04与非门、红外对管等组成。实训七 电路图5. 程序清单 主程序: ORG 0000H AJMP MAIN ;程序起始 ORG 0003H ;入口地址 AJMP WBINT ORG 0100HMAIN: MOV SP,#7BH ;栈底 MOV IE,#81H ;开中断 SETB IT0 ;沿边触发 CLR P3.0 ;关报警 MOV TMOD,#06H ;计数方式NEXT: MOV
18、 TH0,#0 ;初值 MOV TL0,#0 JB P3.3,S ;等待启动 SETB TR0 ;开始计数LOOP: MOV A,TL0 ;读计数值 MOV R0,A MOV B,#10 DIV AB ;拆分个、十位 SWAP A ORL A,B ;拼装 MOV P1,A ;输出显示 CJNE R0,#11,LOOP ;计数满了? SETB P3.0 ;报警 AJMP NEXT中断服务程序:WBINT: CLR TR0 ;关停计数器 JB P3.3,$ ;等待启动 SETB TR0 ;开计数器 RETI ;中断返回 END实训项目八1.实训目的 了解中断系统优先级和中断触发电平的设计。 利用单
19、片机的定时与中断方式,实现单片机对信号的控制。 设计一交通信号灯模拟控制系统,晶振采用12MHz。具体要求如下:1)正常情况下,A、B道(A、B道交叉组成十字路口,A是主道,B道是支道)轮流放行,A道放行60s(其中5s用于警告),B道放行30s(其中5s用于警告)。2)一道有车而另一道无车(用按键开关S1、S2摸拟)时使有车车道放行。3)有紧急车辆通过(用按键开关S0摸拟)时,A、B道均为红灯。控制码表P1.7P1.6P1.5P1.4P1.3P1.2P1.1P1.0控制码 状态说明(空)(空)B线绿灯B线黄灯B线红灯A线绿灯A线黄灯A线红灯(P1端口数据) 1 1 1 1 1 1 1 1 1
20、 1 0 1 1 1 1 0 0 1 1 0 1 1 1 1 1 1 1 1 0 0 F3H F5H DEH EEHA线放行,B线禁止A线警告,B线禁止A线禁止,B线放行A线禁止,B线警告 2. 实训设备与器件 微机、LTE-3000TB单片机开发系统箱、烧录器、MCS-51芯片等。3. 实训步骤 在keil C51 uVision2软件开发平台上建立工程项目、建立asm汇编程序文件、导入目标源组、生成十六进制代码。 软件调试与仿真,观察程序运行情况等。 硬件调试与仿真,观察发光二极管的点亮状态是否与设计要求相符。 烧录(固化)芯片,实际运行电路。比较及观察是否与硬件仿真结果相同。4. 实训电
21、路 如教材147页:图5.12 交通灯模拟控制系统电路图。5. 程序清单1)正常情况下:2)一道有车、另一道无车情况下:3)紧急情况下:实训项目九1.实训目的 利用单片机的定时器中断实现秒定时,进一步掌握中断程序的编程技巧。 熟悉8051与LED的接口技术,熟悉LED动态显示的控制过程。 设计60秒表的显示电赂,显示内容从0开始,每隔1s显示内容加1秒,直到60后自动清0,依次循环显示,以3个独立式按键分别实现启动、停止、清零等功能。2. 实训设备与器件 微机、LTE-3000TB单片机开发系统箱、烧录器、MCS-51芯片等。3. 实训步骤 在keil C51 uVision2软件开发平台上建
22、立工程项目、建立asm汇编程序文件、导入目标源组、生成十六进制代码。 软件调试与仿真,观察程序运行情况等。 硬件调试与仿真,观察LED数码管状态是否与设计要求相符。 烧录(固化)芯片,实际运行电路。比较及观察是否与硬件仿真结果相同。4. 实训电路 如教材155页:图6.1 简易秒表电路图。5. 程序清单 SEC EQU 20H MSEC EQU 21H ORG 0000H AJMP MAIN ORG 0003H AJMP KE1 ORG 000BH AJMP CONT ORG 0013H AJMP KE0 ORG 001BH AJMP KE2MAIN: MOV TMOD,#61H MOV TH
23、0,#3CH MOV TL0,#0B0H MOV TH1,#0FFH MOV TL1,#0FFH MOV SEC,#00H MOV MSEC,#14H MOV SP,#3FH MOV 30H,#00H MOV 31H,#00H ;MOV IE,#8FH SETB TR1 SETB TR0 CLR ADISP: MOV R2,#02H MOV R1,#0EAH MOV R4,#01H MOV R0,#30H MOV A,R0DISP1: MOV DPTR,#TAB MOVC A,A+DPTR MOV P0,A MOV A,R4 MOV P2,A DJNZ R1,$ DJNZ R1,$ RL A
24、MOV R4,A INC R0 MOV A,R0 DJNZ R2,DISP1 SJMP DISPTAB: DB 0C0H,0F9H,0A4H,0B0H,99H DB 92H,82H,0F8H,80H,90HKE0: SETB TR0 RETIKE1: CLR TR0 RETIKE2: MOV SEC,#00H MOV 30H,#00H MOV 31H,#00H RETICONT: PUSH ACC MOV TH0,#3CH MOV TL0,#0B0H DJNZ MSEC,EXIT MOV MSEC,#14H INC SEC MOV A,SEC CJNE A,#60,CHAI MOV SEC,#
25、00CHAI: MOV A,SEC MOV B,#10 DIV AB MOV 30H,A MOV 31H,BEXIT: POP ACC RETI END实训项目十1.实训目的 了解88LED点阵器件的结构与接口电路。 了解LED大屏幕静态和动态的显示原理与方式。 掌握字形码的设计与调用。 用88LED大屏幕上显示移动的箭头图形。2. 实训设备与器件 微机、LTE-3000TB单片机开发系统箱、烧录器、MCS-51芯片等。3. 实训步骤 在keil C51 uVision2软件开发平台上建立工程项目、建立asm汇编程序文件、导入目标源组、生成十六进制代码。 软件调试与仿真,观察程序运行情况等。
26、硬件调试与仿真,观察LED点阵状态是否与设计要求相符。 烧录(固化)芯片,实际运行电路。比较及观察是否与硬件仿真结果相同。4. 实训电路 如教材170页:图6.8 共阳极88LED大屏幕的应用。5. 程序清单TIM EQU 30H ORG 00HLJMP STARTORG 0BHLJMP T0XORG 30HSTART: MOV TIM,#00H /初始化MOV R3,#00H MOV R4,#00HMOV TMOD,#01HMOV TH0,#(65536-4000)/256MOV TL0,#96SETB TR0SETB ET0SETB EASJMP $T0X:MOV TH0,#(65536-
27、4000)/256MOV TL0,#96MOV DPTR,#TABMOV A,R3MOVC A,A+DPTRMOV P2,A /行选送P2 MOV DPTR,#DIGITMOV A,R4ADD A,R3/DIGIT中数据选择MOVC A,A+DPTRMOV P0,A /数据送P1INC R3MOV A,R3CJNE A,#8,NEXTMOV R3,#00HNEXT: INC TIMMOV A,TIMCJNE A,#40,NEX/滚动速度MOV TIM,#00HINC R4MOV A,R4CJNE A,#16,NEX /DIGIT数据区数据显示范围MOV R4,#00HNEX: RETITAB:
28、 DB 0FEH,0FDH,0FBH,0F7H,0EFH,0DFH,0BFH,07FH/07FH,0BFH,0DFH,0EFH,0F7H,0FBH,0FDH,0FEH从左向右DIGIT:DB 0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFHDB 0E7H,0C3H,81H,00H,0E7H,0E7H,0E7H,0E7H/图形 箭头 /DB 0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFHENDDAC0832单缓冲方式的应用假设采用接口(1)方式,即输入寄存器受控,而DAC寄存器直通,输入寄存器地址为E000H(译码器输出对应P2.4)
29、,产生锯齿波。 产生正向锯齿波源程序清单: ORG 0200H MOV DPTR,#0E000H ;指向输入寄存器地址/ DAC地址E000H DPTR MOV A,#00H ;转换初值/数字量AWW: MOVX DPTR,A ;WR1有效,启动D/A转换,数字量D/A转换器 INC A ;加1,数字量D/A转换器 NOP ;延时 NOP AJMP WWEND产生负向锯齿波源程序清单: ORG 0200H MOV DPTR,#0E000H ;指向输入寄存器地址 MOV A,#0FFH ;转换初值WW: MOVX DPTR,A ;WR1有效,启动D/A转换 DEC A ;加1 NOP ;延时 N
30、OP AJMP WWEND三角波的产生源程序清单:ORG 0200H MOV DPTR,#0B000H ;指向输入寄存器地址 MOV R0,#250 MOV A,#00H ;转换初值LOOP: MOVX DPTR,A ;WR1有效,启动D/A转换 INC A ;加1 NOP ;延时 NOP NOP NOP DJNZ R0,LOOP MOV R0,#250LOOP1: MOVX DPTR,A ;WR1有效,启动D/A转换 DEC A ;减1 NOP ;延时 NOP NOP NOP DJNZ R0,LOOP1 MOV R0,#250 MOV A,#00H AJMP LOOP END;3000TB实
31、验箱:YC3(B000H)接CS32,AOUT接示波器矩形波的产生源程序清单:ORG 0200H MOV TMOD,#02 MOV TH0,#0CEH MOV TL0,#0CEH SETB TR0LOOP: JBC TF0,LOOP1 SJMP LOOPLOOP1: CPL P1.0 SJMP LOOP END正弦波发生器1ms.asm源程序清单:ORG 0000H MOV DPTR,#SINTAB ;正弦表写入内部RAM6DH-7FH MOV R0,#6DHLOOP: CLR A MOVC A,A+DPTR MOV R0,A INC DPTR INC R0 CJNE R0,#81H,LOOP MOV DPTR,#0B000H ;设置D/A转换器的端口地址 MOV R0,#6DH ;设置正弦表指针LOOP1: MOV A,R0 ;查表 MOVX DPTR,A ;D/A转换 NOP ;延时 NOP NOP NOP NOP NOP INC R0 ;正弦表位移量增量