流水灯Word文档格式.docx
《流水灯Word文档格式.docx》由会员分享,可在线阅读,更多相关《流水灯Word文档格式.docx(33页珍藏版)》请在冰豆网上搜索。
DJNZR2,NEXT
SJMPSTART
MOVR3,#0FFH
实训项目三
⑶八路彩灯控制
D1~D8八个彩灯按规定顺序依次点亮(间隔1秒),最后全亮;
按规定顺序依次熄灭(间隔1秒),最后全灭;
八个灯同时点亮,保持1秒;
八个灯同时熄灭,保持0.5秒;
再将第3、4步重复4遍,最后整个程序再重复N遍。
实训三电路图
ORG0000H
LJMPMAIN
ORG0100H
MAIN:
MOVR7,#7
LOOP:
MOVR6,#16
MOVR5,#4
MOVDPTR,#TABL
MOVR4,#0
LOOP1:
MOVA,R4
MOVCA,@A+DPTR
MOVP1,A
INCR4
LCALLDELAY
LCALLDELAY
DJNZR6,LOOP1
LOOP2:
MOVP1,#0FFH
MOVP1,#00H
DJNZR5,LOOP2
DJNZR7,LOOP
SJMP$
ORG0200H
TABL:
DB0FEH,0FCH,…
END
实训项目四
⑴掌握汇编语言散转程序的基本结构。
⑶设计两个开关,使CPU可以察知两个开关组合出的4种不
同状态。
然后对应每种状态,使8个LED显示出不同的亮灭模式。
P3.5P3.4显示方式
00全亮
01交叉亮
10低4位连接的灯灭,高4位亮
11低4位连接的灯亮,高4位灭
实训四电路图
实训五电路图
MOVP3,#00110000B
MOVA,P3
ANLA,#00110000B
SWAPA
MOVDPTR,#TABLE
JMP@A+DPTR
ONE:
SJMP$
TWO:
MOVP1,#55H
SJMP$
THREE:
MOVP1,#0FH
FOUR:
MOVP1,#0F0H
TABLE:
AJMPONE
AJMPTWO
AJMPTHREE
AJMPFOUR
实训项目五
⑴掌握BCD码调整程序的设计。
⑵掌握用软件设计的延时子程序。
⑶用两个8段LED数码管组成电梯轿厢数码管指示层。
两个数码管显示层数(十进制),显示十位数的数码管的小数点作为上行指示,显示个位数的数码管的小数点作为下行指示。
当轿厢停在某层时,数码管显示该层的层数,显示m秒,上行或下行指示灭;
轿厢在两层之间运行时,数码管显示前方的层数,上行或下行指示灯亮,显示m秒。
⑶硬件调试与仿真,观察LED数码管状态是否与设计要求相符。
实验电路由8051单片机、MC14495译码器、LED数码管、74LS04与非门等组成。
主程序:
AJMPMAIN;
程序入口
ORG0100H
MAIN:
MOVR7,#7;
循环次数(大循环)
MOVP1,#1;
起始1层(显示01)
ACALLDELAY;
延时(停在第一层)
LOOP:
MOVR5,#2;
准备上行
UP:
ACALLHTT;
转换显示
CLRP3.0;
上行中
ACALLDELAY;
延时
SETBP3.0;
到达停顿
INCR5;
上一层
CJNER5,#13,UP;
最高层?
MOVR5,#11;
准备下行
DN:
ACALLHTT
CLRP3.1;
下行中
ACALLDELAY
SETBP3.1;
DECR5;
下一层
CJNZR5,#0,DN;
底层?
DJNZR7,LOOP;
循环结束
转换显示子程序:
HTT:
MOVA,R5;
子程序的入口,
MOVB,#10
DIVAB;
相除,商A=01、余B=00,
SWAPA;
交换,A=10
ORLA,B;
相加,A=10,
MOVP1,A;
数码管显示10(显示12)
延时3秒子程序(12MHZ)
MOVR2,#200
LP2:
MOVR1,#30
LP1:
MOVR0,#7DH
LP0:
DJNZR0,LP0
DJNZR1,LP1
DJNZR2,LP2
实训项目六
⑴利用单片机的定时方式,实现信号灯的控制。
⑵通过定时器程序设计,学会定时器方式1的使用。
⑶用单片机定时/计数器设计一个秒表,由P1口连接的LED采用BCD码显示,发光二极管亮表示“1”,灭表示“0”。
计满60s后从头开始,依次循环。
实训六电路图
5.程序清单
源程序设计如下:
ORG0000H
MOVTMOD,#61H
MOVTH1,#0C4H
MOVTL1,#0C4H
SETBTR1
DISP:
MOVA,#00H
CONT:
CLRP3.5;
T1引脚产生负跳变
SETBP3.5;
T1引脚恢复高电平
ADDA,#01H;
加1
DAA;
将十六进制数转换成BCD数
MOVP1,A;
点亮
JBCTF1,DISP;
查询定时器1计数溢出
SJMPCONT;
不到60s继续计数
1s延时子程序:
MOVR3,#14H
MOVTH0,#3CH
MOVTL0,#0B0H
SETBTR0
JBCTF0,LP2
SJMPLP1
MOVTL0,#0B0H
DJNZR3,LP1
END
实训项目七
⑴了解红外对管的工作原理。
⑵利用单片机的定时与中断方式,实现单片机对外信号的计数。
⑶用8031单片机和红外发射接收对管组成生产线工件自动计数器,计数值用两个LED数码管以两位十进制数显示。
控制要求:
1)按启动按钮QA后从0开始计数并显示计数值,计到n(0<n≤99)
时LED发光报警,按QA后又从0开始计数。
2)在计数过程中,按TA按钮后暂停计数,再按QA后继续计数下去。
⑶硬件调试与仿真,观察LED数码管的状态是否与设计要求相符。
实验电路由8051单片机、MC14495译码器、LED数码管、74LS04与非门、红外对管等组成。
实训七电路图
主程序:
AJMPMAIN;
程序起始
ORG0003H;
入口地址
AJMPWBINT
MOVSP,#7BH;
栈底
MOVIE,#81H;
开中断
SETBIT0;
沿边触发
关报警
MOVTMOD,#06H;
计数方式
MOVTH0,#0;
初值
MOVTL0,#0
JBP3.3,S;
等待启动
SETBTR0;
开始计数
MOVA,TL0;
读计数值
MOVR0,A
MOVB,#10
DIVAB;
拆分个、十位
SWAPA
ORLA,B;
拼装
输出显示
CJNER0,#11,LOOP;
计数满了?
SETBP3.0;
报警
AJMPNEXT
中断服务程序:
WBINT:
CLRTR0;
关停计数器
JBP3.3,$;
SETBTR0;
开计数器
RETI;
中断返回
实训项目八
⑴了解中断系统优先级和中断触发电平的设计。
⑵利用单片机的定时与中断方式,实现单片机对信号的控制。
⑶设计一交通信号灯模拟控制系统,晶振采用12MHz。
具体要求如下:
1)正常情况下,A、B道(A、B道交叉组成十字路口,A是主道,B道是支道)轮流放行,A道放行60s(其中5s用于警告),B道放行30s(其中5s用于警告)。
2)一道有车而另一道无车(用按键开关S1、S2摸拟)时使有车车道放行。
3)有紧急车辆通过(用按键开关S0摸拟)时,A、B道均为红灯。
控制码表
P1.7
P1.6
P1.5
P1.4
P1.3
P1.2
P1.1
P1.0
控制码
状态说明
(空)
B线绿灯
B线黄灯
B线红灯
A线绿灯
A线黄灯
A线红灯
(P1端口数据)
1
0
F3H
F5H
DEH
EEH
A线放行,B线禁止
A线警告,B线禁止
A线禁止,B线放行
A线禁止,B线警告
⑶硬件调试与仿真,观察发光二极管的点亮状态是否与设计要求相符。
如教材147页:
图5.12交通灯模拟控制系统电路图。
1)正常情况下:
2)一道有车、另一道无车情况下:
3)紧急情况下:
实训项目九
⑴利用单片机的定时器中断实现秒定时,进一步掌握中断程序的编程技巧。
⑵熟悉8051与LED的接口技术,熟悉LED动态显示的控制过程。
⑶设计60秒表的显示电赂,显示内容从0开始,每隔1s显示内容加1秒,直到60后自动清0,依次循环显示,以3个独立式按键分别实现启动、停止、清零等功能。
如教材155页:
图6.1简易秒表电路图。
SECEQU20H
MSECEQU21H
AJMPMAIN
ORG0003H
AJMPKE1
ORG000BH
AJMPCONT
ORG0013H
AJMPKE0
ORG001BH
AJMPKE2
MOVTMOD,#61H
MOVTH1,#0FFH
MOVTL1,#0FFH
MOVSEC,#00H
MOVMSEC,#14H
MOVSP,#3FH
MOV30H,#00H
MOV31H,#00H
;
MOVIE,#8FH
SETBTR0
CLRA
DISP:
MOVR2,#02H
MOVR1,#0EAH
MOVR4,#01H
MOVR0,#30H
MOVA,@R0
DISP1:
MOVDPTR,#TAB
MOVCA,@A+DPTR
MOVP0,A
MOVA,R4
MOVP2,A
DJNZR1,$
MOVR4,A
INCR0
DJNZR2,DISP1
SJMPDISP
TAB:
DB0C0H,0F9H,0A4H,0B0H,99H
DB92H,82H,0F8H,80H,90H
KE0:
RETI
KE1:
CLRTR0
KE2:
PUSHACC
DJNZMSEC,EXIT
INCSEC
MOVA,SEC
CJNEA,#60,CHAI
MOVSEC,#00
CHAI:
DIVAB
MOV30H,A
MOV31H,B
EXIT:
POPACC
实训项目十
⑴了解8×
8LED点阵器件的结构与接口电路。
⑵了解LED大屏幕静态和动态的显示原理与方式。
⑶掌握字形码的设计与调用。
⑷用8×
8LED大屏幕上显示移动的箭头图形。
⑶硬件调试与仿真,观察LED点阵状态是否与设计要求相符。
如教材170页:
图6.8共阳极8×
8LED大屏幕的应用。
TIMEQU30H
ORG00H
LJMPSTART
ORG0BH
LJMPT0X
ORG30H
MOVTIM,#00H//初始化
MOVR3,#00H
MOVR4,#00H
MOVTMOD,#01H
MOVTH0,#(65536-4000)/256
MOVTL0,#96
SETBTR0
SETBET0
SETBEA
SJMP$
T0X:
MOVDPTR,#TAB
MOVA,R3
MOVCA,@A+DPTR
MOVP2,A//行选送P2
MOVDPTR,#DIGIT
MOVA,R4
ADDA,R3//DIGIT中数据选择
MOVP0,A//数据送P1
INCR3
CJNEA,#8,NEXT
MOVR3,#00H
INCTIM
MOVA,TIM
CJNEA,#40,NEX//滚动速度
MOVTIM,#00H
CJNEA,#16,NEX//DIGIT数据区数据显示范围
NEX:
RETI
DB0FEH,0FDH,0FBH,0F7H,0EFH,0DFH,0BFH,07FH
//07FH,0BFH,0DFH,0EFH,0F7H,0FBH,0FDH,0FEH从左向右
DIGIT:
DB0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH
DB0E7H,0C3H,81H,00H,0E7H,0E7H,0E7H,0E7H//图形箭头
//DB0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH
DAC0832单缓冲方式的应用
假设采用接口
(1)方式,即输入寄存器受控,而DAC寄存器直通,输入寄存器地址为E000H(译码器输出对应P2.4),产生锯齿波。
产生正向锯齿波
源程序清单:
ORG0200H
MOVDPTR,#0E000H;
指向输入寄存器地址/DAC地址E000H→DPTR
MOVA,#00H;
转换初值/数字量→A
WW:
MOVX@DPTR,A;
WR1有效,启动D/A转换,数字量→D/A转换器
INCA;
加1,数字量→D/A转换器
NOP;
延时
AJMPWW
产生负向锯齿波
指向输入寄存器地址
MOVA,#0FFH;
转换初值
WR1有效,启动D/