单片机DA实习报告_第1页
单片机DA实习报告_第2页
单片机DA实习报告_第3页
单片机DA实习报告_第4页
单片机DA实习报告_第5页
已阅读5页,还剩25页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、 石家庄经济学院信息工程学院 电子信息工程专业 单片机课程设计报告题 目 d/a模块 姓 名 学 号 408109060308 班 级 4081090101 指导教师 2011年 6 月 29 日要求:1指导教师按照课程设计大纲要求完成学生课程设计指导工作。2课程设计任务书由指导教师照大纲要求填写,内容要全面。3课程设计报告由参加本学生填写。课程设计结束时交指导教师。(打印稿一份,电子稿一份)4指导教师要根据每一位学生课程设计任务完成情况,认真审核设计报告,并在课程设计结束时,给出客观、准确的评语和成绩。5课程设计任务书和报告要语言流畅,图表正确规范。6本表要用钢笔、圆柱笔填写或打印,字迹工整

2、。(请把此页打印在封面的背面,打印时请删除此句话)课程设计任务书班级 4081090101 姓名 刘立云 学号 408109060308 课程设计题目 d/a模块 课程设计起止日期 2011.6.13 至 2011.7.1 实习地点 实验楼5-106 课程设计内容与要求(包括:设计任务及要求、设计原理、所需仪器设备、验收标准)实习题目:d/a模块:实习要求: 及格:能输出正弦波形,并通过两个按键控制,实现启动 和结束正弦波的控制,并在led上显示输出频率。 中:在及格基础上,实现用不同的按键选择输出正弦波、方波、锯齿波、三角波,同时显示波形号和对应频率。 良:在中的基础上,能输出10hz频率的

3、正弦波。 优:在良的基础上,按不同的键能输出10、20、30hz频率的正弦波及方波 指导教师 李亚梅 2011 年 6 月 13 日一、设计原理与技术方法:包括:电路工作原理分析与原理图、元器件选择、电路调试方法与结果说明;软件设计说明书与流程图、软件源程序代码、软件调试方法与运行结果说明。(一)设计原理与元器件选择设计原理 d/a转换是将数字量转换成模拟量。转换过程是先将8051送到d/a转换器的各位二进制数按其权的大小转换为相应的模拟分量,然后再以叠加方法把各模拟分量相加,其和就是d/a转换的结果。原理图如图1所示: 图1课程设计报告注:此表可加附页件的原因,只能实现动态显示,每次只能选中

4、一个数码管,但若两个数码管显示的时间间隔大于人眼的视觉暂留时间,则仍能看到四个数码管同时亮。(二)软件源程序代码及流程图1、及格能输出正弦波形,并通过两个按键控制,实现启动和结束正弦波的控制,并在led上显示输出频率。 设计思路:dac0832实现将数字量转换为相应的模拟量。对正弦波采样256个点,将这些数字量列在表中,当进行d/a转换时,直接从这个表中逐点调取数字量进行转换,就可以输出连续的正弦波。通过两个按键控制启动和关闭输出正弦波,则程序要时刻对22键盘进行扫描,即查相关位的状态,判断是否有键按下。若s2键按下,则启动正弦波输出,在正弦波输出过程中,还要同时完成键盘扫描和led数码管的显

5、示;若s4键按下,则关闭正弦波的输出同时关闭led数码管的显示。 流程图如图2所示: 图 2 程序代码: org 0000h ljmp main org 0100hmain:acall panjian jnb p1.3,sin ;判断s2是否按下,若s2=0启动示波器 sjmp main ;若s2=1则等待panjian:clr p1.5 ;清p1.5 setb p1.6 ;设置p1.6 jnb p1.3,qdou ;如果s2按下,去抖 jnb p1.4,qdou ;如果s4按下,去抖 sjmp panjian ;都没有按下时重新扫描qdou: acall yshi ;调用去抖延时子程序 cl

6、r p1.5 setb p1.6 jnb p1.3,szhi ;去抖后重新判断 jnb p1.4,szhi sjmp panjianszhi: clr p1.5 setb p1.6 retyshi: mov r7,#05h dl1: mov r6,#0ffh dl2: djnz r6,dl2 djnz r7,dl1 retstop:setb p3.6 ;写无效,即停止输出 sjmp mainsin: clr p3.6 ;写有效 mov r0,#00h ;赋初值为0zhxb: mov a,r0 ;置偏移量 mov dptr,#table1 ;置表首地址 movc a,a+dptr ;查表,将数据

7、存入a中 mov p2,#40h ;选中dac0832 mov p0,a ;将数据送入p0口输出 lcall delay lcall dir jnb p1.4,stop inc r0 ;偏移量加一 cjne r0,#0ffh,zhxb;判断是否显示完一个周期 sjmp sin ;显示完一个周期后开始下一轮显示 retdelay:mov r7,#5fh dl:djnz r7,dl ret dir: clr p3.6 ;设置wr=0 使写有效 clr c ;清除进位 mov r1,#00h ;赋初值 mov r2,#80h ;led第一位led: mov dptr,#tab2 ;led表首地址 m

8、ov a,r1 ;设置偏移量 movc a,a+dptr ;查表 mov p2,#60h ;选中74ls373,即选中led显示 mov p0,a ;数送p0口 mov a,r2 mov p2,a ;位选第一位led inc r1 ;查表偏移量加1,取表中下一个数 add a,#20h ;位选下一位led jc over ;led最后一位位选为0e0h,如果再加20h则使c=1, 说明最后一 位led显示完毕,结束 mov r2,a ;led下一位给r2 ajmp ledover: rettable1:db 80h,83h,86h,89h,8dh,90h,93h,96hdb 99h,9ch,9

9、fh,0a2h,0a5h,0a8h,0abh,0aehdb 0b1h,0b4h,0b7h,0bah,0bch,0bfh,0c2h,0c5hdb 0c7h,0cah,0cch,0cfh,0d1h, 0d4h,0d6h,0d8hdb 0dah,0ddh,0dfh,0e1h,0e3h, 0e5h,0e7h,0e9hdb 0eah,0ech,0eeh,0efh,0f1h, 0f2h,0f4h,0f5hdb 0f6h,0f7h,0f8h,0f9h,0fah, 0fbh,0fch,0fdhdb 0fdh,0feh,0ffh,0ffh,0ffh, 0ffh,0ffh,0ffhdb 0ffh,0ffh,0ff

10、h,0ffh,0ffh, 0ffh,0feh,0fdhdb 0fdh,0fch,0fbh,0fah,0f9h, 0f8h,0f7h,0f6hdb 0f5h,0f4h,0f2h,0f1h,0efh, 0eeh,0ech,0eahdb 0e9h,0e7h,0e5h,0e3h,0e1h, 0deh,0ddh,0dahdb 0d8h,0d6h,0d4h,0d1h,0cfh, 0cch,0cah,0c7hdb 0c5h,0c2h,0bfh,0bch,0bah, 0b7h,0b4h,0b1hdb 0aeh,0abh,0a8h,0a5h,0a2h, 9fh, 9ch, 99hdb 96h, 93h, 90h

11、, 8dh, 89h, 86h, 83h, 80hdb 80h, 7ch, 79h, 78h, 72h, 6fh, 6ch, 69hdb 66h, 63h, 60h, 5dh, 5ah, 57h, 55h, 51hdb 4eh, 4ch, 48h, 45h, 43h, 40h, 3dh, 3ahdb 38h, 35h, 33h, 30h, 2eh, 2bh, 29h, 27hdb 25h, 22h, 20h, 1eh, 1ch, 1ah, 18h, 16hdb 15h, 13h, 11h, 10h, 0eh, 0dh, 0bh, 0ahdb 09h, 08h, 07h, 06h, 05h, 0

12、4h, 03h, 02hdb 02h, 01h, 00h, 00h, 00h, 00h, 00h, 00hdb 00h, 00h, 00h, 00h, 00h, 00h, 01h, 02hdb 02h, 03h, 04h, 05h, 06h, 07h, 08h, 09hdb 0ah, 0bh, 0dh, 0eh, 10h, 11h, 13h, 15hdb 16h, 18h, 1ah, 1ch, 1eh, 20h, 22h, 25hdb 27h, 29h, 2bh, 2eh, 30h, 33h, 35h, 38hdb 3ah, 3dh, 40h, 43h, 45h, 48h, 4ch, 4ehd

13、b 51h, 55h, 57h, 5ah, 5dh, 60h, 63h, 66hdb 69h, 6ch, 6fh, 72h, 76h, 79h, 7ch, 80htab2:db 0f9h,0f9h,99h,0f8hend调试与运行结果说明:在伟福6000环境下进行文本文件输入,保存,按电路图连接好电路,进行仿真器设置,运行程序查看结果,若未能达到预期要求,则要检查硬件与软件两方面的问题,如电路板焊接、连线问题,并通过检查程序有无错误,逻辑是否正确等来实现题目要求。 结果:按下s2键时,示波器输出正弦波形,led数码管显示正弦波频率;按下s4键时,正弦波停止输出,并且不再显示频率:如此来实现通过

14、两个按键控制,实现启动和结束正弦波的输出,并在输出正弦波时在led上显示输出频率。 2、中在及格基础上,实现用不同的按键选择输出正弦波、方波、锯齿波、三角波,同时显示波形号和对应频率。 设计思路:采用模块化设计,本设计包含四种波形产生模块、键盘扫描、led显示模块。若想实现用四个按键启动不同波形程序,程序要时刻对22的键盘进行扫描,即查相关位的状态,并做出相应的程序转移。本设计中将实现若s2键按下,则启动正弦波输出以及波形号和频率的显示;若s4按下,则启动方波输出以及波形号和频率的显示;若s3按下,则启动锯齿波输出以及波形号和频率的显示;s5按下,则启动三角波输出以及波形号和频率的显示。在每种

15、波形输出过程中,同时完成led显示和键盘扫描工作。 流程图如图3所示: 图3 程序代码: org 0000h ljmp main org 0030hmain: clr p1.5 ;清p1.5 setb p1.6 ;设置p1.6 jnb p1.3,qudou0 ;如果s2按下,转到正弦波输出 jnb p1.4,qudou0 ;如果s4按下,转到方波输出 clr p1.6 ;清p1.6 setb p1.5 ;设置p1.5 jnb p1.3,qudou1 ;如果s3按下,转到锯齿波输出 jnb p1.4,qudou1 ;如果s5按下,转到三角波输出 sjmp main ;没有键按下,等待qudou0

16、:acall delay1 clr p1.5 ;清p1.5 setb p1.6 ;设置p1.6 jnb p1.3,sinbo jnb p1.4,fang ljmp mainqudou1:acall delay1 setb p1.5 ;清p1.5 clr p1.6 ;设置p1.6 jnb p1.3,juchi jnb p1.4,sanjiao ljmp maindelay1:mov r7,#05h ;延时 dl1:mov r6,#0ffh dl2:djnz r6,dl2 djnz r7,dl1 retpbian:mov a,#1fh ;判断输出过程中是否有键按下 mov p1,a ;给p1口赋值

17、,置p1.5、p1.6为0,p1.3、p1.4为1 mov a,p1 ;读p1口的值 xrl a,#1fh ;检查是否有变化 retsinbo:clr p3.6 ;写有效 mov r0,#00h ;赋初值为0zhxb0:acall pbian ;调用子程序判断是否有键按下 jz zhxb1 ;没有键按下时继续输出正弦波 clr p1.5 ;有键按下时检测是否为对应键 setb p1.6 jb p1.3,main ;若按下的是其他键,则跳出返回zhxb1:acall dir1 ;调用显示子程序,输出正弦波波形号和频率 mov a,r0 ;置偏移量 mov dptr,#table0 ;置表首地址

18、movc a,a+dptr ;查表,将数据存入a中 mov p2,#5fh ;选中dac0832 mov p0,a ;将数据送入p0口输出 inc r0 ;偏移量加一 cjne r0,#0ffh,zhxb0;判断是否显示完一个周期 sjmp sinbo ;显示完一个周期后开始下一轮显示fang:acall dir2 clr p3.6 acall pbian ;调用子程序判断是否有键按下 jz fang1 ;没有键按下时继续输出方波 clr p1.5 setb p1.6 jb p1.4,main ;若按下的是其他键,则跳出返回fang1:mov p2,#5fh ;启动dac0832 mov a,

19、#0ffh ;置方波初值(高电平) mov p0,a ;待转换数据送至dac0832 acall delay1 acall delay1 ;acall dir2 cpl a ;取反(低电平) mov p2,#5fh mov p0,a ;待转换数据送至dac0832 acall delay1 ;延时 ;acall delay1 ;延时 ;acall dir2 sjmp fangjuchi:clr p3.6 mov r0,#0ffhdisp0:acall pbian ;调用子程序判断是否有键按下 jz disp1 clr p1.6 ;清p1.6 setb p1.5 ;设置p1.5 jb p1.3,

20、next ;若按下的是其他键,则跳出返回 sjmp disp1 next:ljmp maindisp1:mov p2,#5fh ;启动dac0832 mov a,r0 mov p0,a ;转换数据送至dac0832 acall dir3 dec r0 ;数据加1 cjne r0,#00h,disp0 sjmp juchisanjiao:clr p3.6dis0: acall pbian jz dis1 clr p1.6 ;清p1.6 setb p1.5 ;设置p1.5 jb p1.4,nextdis1: mov r0,#00h ;从0开始上升dis2: mov p2,#5fh mov a,r0

21、 mov p0,a acall dir4 ;显示频率 inc r0 cjne r0,#0ffh,dis2dis3: mov p2,#5fh ;与0ffh相等则相减 mov a,r0 mov p0,a acall dir4 dec r0 cjne r0,#00h,dis3 sjmp dis0dir1:clr p3.6 clr c ;清进位 mov r1,#00h mov r2,#80h xsh1:mov dptr,#table1 ;表中首地址 mov a,r1 ;置偏移量 movc a,a+dptr ;取出对应段选码 mov p2,#60h ;片选选中74ls373 mov p0,a ;送入p0

22、口输出 mov a,r2 mov p2,a ;位选第一位led inc r1 add a,#20h ;位选下一位 jc stop1 ;检查是否显示完所有位 mov r2,a ajmp xsh1stop1:retdelay2:mov r7,#0ffh dl:djnz r7,dl retdir2:clr p3.6 clr c ;清进位 mov r1,#00h mov r2,#80h xsh2:mov dptr,#table2 ;表中首地址 mov a,r1 ;置偏移量 movc a,a+dptr ;取出对应段选码 mov p2,#60h ;片选选中74ls373 mov p0,a ;送入p0口输出

23、 mov a,r2 mov p2,a ;位选第一位led acall delay2 ;调用延时 inc r1 add a,#20h ;位选下一位 jc stop2 ;检查是否显示完所有位 mov r2,a ajmp xsh2stop2:retdir3:clr p3.6 clr c ;清进位 mov r1,#00h mov r2,#80h xsh3:mov dptr,#table3 ;表中首地址 mov a,r1 ;置偏移量 movc a,a+dptr ;取出对应段选码 mov p2,#60h ;片选选中74ls373 mov p0,a ;送入p0口输出 mov a,r2 mov p2,a ;位

24、选第一位led inc r1 add a,#20h ;位选下一位 jc stop3 ;检查是否显示完所有位 mov r2,a ajmp xsh3stop3:retdir4:clr p3.6 clr c ;清进位 mov r1,#00h mov r2,#80h xsh4:mov dptr,#table4 ;表中首地址 mov a,r1 ;置偏移量 movc a,a+dptr ;取出对应段选码 mov p2,#60h ;片选选中74ls373 mov p0,a ;送入p0口输出 mov a,r2 mov p2,a ;位选第一位led inc r1 add a,#20h ;位选下一位 jc stop

25、4 ;检查是否显示完所有位 mov r2,a ajmp xsh4stop4:rettable0:db 80h,83h,86h,89h,8dh,90h,93h,96hdb 99h,9ch,9fh,0a2h,0a5h,0a8h,0abh,0aehdb 0b1h,0b4h,0b7h,0bah,0bch,0bfh,0c2h,0c5hdb 0c7h,0cah,0cch,0cfh,0d1h, 0d4h,0d6h,0d8hdb 0dah,0ddh,0dfh,0e1h,0e3h, 0e5h,0e7h,0e9hdb 0eah,0ech,0eeh,0efh,0f1h, 0f2h,0f4h,0f5hdb 0f6h,

26、0f7h,0f8h,0f9h,0fah, 0fbh,0fch,0fdhdb 0fdh,0feh,0ffh,0ffh,0ffh, 0ffh,0ffh,0ffhdb 0ffh,0ffh,0ffh,0ffh,0ffh, 0ffh,0feh,0fdhdb 0fdh,0fch,0fbh,0fah,0f9h, 0f8h,0f7h,0f6hdb 0f5h,0f4h,0f2h,0f1h,0efh, 0eeh,0ech,0eahdb 0e9h,0e7h,0e5h,0e3h,0e1h, 0deh,0ddh,0dahdb 0d8h,0d6h,0d4h,0d1h,0cfh, 0cch,0cah,0c7hdb 0c5h

27、,0c2h,0bfh,0bch,0bah, 0b7h,0b4h,0b1hdb 0aeh,0abh,0a8h,0a5h,0a2h, 9fh, 9ch, 99hdb 96h, 93h, 90h, 8dh, 89h, 86h, 83h, 80hdb 80h, 7ch, 79h, 78h, 72h, 6fh, 6ch, 69hdb 66h, 63h, 60h, 5dh, 5ah, 57h, 55h, 51hdb 4eh, 4ch, 48h, 45h, 43h, 40h, 3dh, 3ahdb 38h, 35h, 33h, 30h, 2eh, 2bh, 29h, 27hdb 25h, 22h, 20h,

28、 1eh, 1ch, 1ah, 18h, 16hdb 15h, 13h, 11h, 10h, 0eh, 0dh, 0bh, 0ahdb 09h, 08h, 07h, 06h, 05h, 04h, 03h, 02hdb 02h, 01h, 00h, 00h, 00h, 00h, 00h, 00hdb 00h, 00h, 00h, 00h, 00h, 00h, 01h, 02hdb 02h, 03h, 04h, 05h, 06h, 07h, 08h, 09hdb 0ah, 0bh, 0dh, 0eh, 10h, 11h, 13h, 15hdb 16h, 18h, 1ah, 1ch, 1eh, 20

29、h, 22h, 25hdb 27h, 29h, 2bh, 2eh, 30h, 33h, 35h, 38hdb 3ah, 3dh, 40h, 43h, 45h, 48h, 4ch, 4ehdb 51h, 55h, 57h, 5ah, 5dh, 60h, 63h, 66hdb 69h, 6ch, 6fh, 72h, 76h, 79h, 7ch, 80htable1:db 0f9h,0f9h,99h,0f8htable2:db 0a4h,0ffh,80h,0c0htable3:db 0b0h,0ffh,80h,0c0htable4:db 99h,0f9h,92h,0c0hend 调试与运行结果说明:

30、 在伟福6000环境下进行文本文件输入,保存,按电路图连接好电路,进行仿真器设置,运行程序查看结果,若未能达到预期要求,则要检查硬件与软件两方面的问题,如电路板焊接、连线问题,并通过检查程序有无错误,逻辑是否正确等来实现题目要求。 结果:按下s2键时,示波器输出正弦波形,led数码管显示正弦波波形号和频率;按下s4键时,示波器输出方波波形,led数码管显示方波波形号和频率;s3键按下时,示波器输出锯齿波波形,led数码管显示锯齿波波形号和频率;s5键按下时,示波器输出三角波形,led数码管显示三角波波形号和频率。 3、良在中的基础上,能输出10hz频率的正弦波。设计思路: 要控制输出正弦波的频

31、率,只需在中的基础上控制好延时,经实际计算与调试,此程序与中的程序相同流程图:同图3 程序代码: org 0000h ljmp main org 0100hmain: clr p1.5 ;清p1.5 setb p1.6 ;设置p1.6 jnb p1.3,qudou0 ;如果s2按下,转到正弦波输出 jnb p1.4,qudou0 ;如果s4按下,转到方波输出 clr p1.6 ;清p1.6 setb p1.5 ;设置p1.5 jnb p1.3,qudou1 ;如果s3按下,转到锯齿波输出 jnb p1.4,qudou1 ;如果s5按下,转到三角波输出 sjmp main ;没有键按下,等待qu

32、dou0:acall delay1 clr p1.5 ;清p1.5 setb p1.6 ;设置p1.6 jnb p1.3,sinbo jnb p1.4,fang ljmp mainqudou1:acall delay1 setb p1.5 ;清p1.5 clr p1.6 ;设置p1.6 jnb p1.3,juchi jnb p1.4,sanjiao ljmp maindelay1:mov r7,#05h ;延时 dl1:mov r6,#0ffh dl2:djnz r6,dl2 djnz r7,dl1 retpbian:mov a,#1fh ;判断输出过程中是否有键按下 1 mov p1,a ;

33、给p1口赋值,置p1.5、p1.6为0,p1.3、p1.4为1 1 mov a,p1 ;读p1口的值 1 xrl a,#1fh ;检查是否有变化 1 ret ;1sinbo:clr p3.6 ;写有效 1 mov r0,#00h ;赋初值为0 1zhxb0:acall pbian ;调用子程序判断是否有键按下 2 jz zhxb1 ;没有键按下时继续输出正弦波 2 clr p1.5 ;有键按下时检测是否为对应键 1 setb p1.6 ;1 jb p1.3,main ;若按下的是其他键,则跳出返回 2zhxb1:acall dir1 ;调用显示子程序,输出正弦波波形号和频率 2 mov a,r

34、0 ;置偏移量 1 mov dptr,#table0 ;置表首地址 2 movc a,a+dptr ;查表,将数据存入a中 2 mov p2,#5fh ;选中dac0832 1 mov p0,a ;将数据送入p0口输出 1 lcall yashi inc r0 ;偏移量加一 1 cjne r0,#0ffh,zhxb0;判断是否显示完一个周期 2 sjmp sinbo ;显示完一个周期后开始下一轮显示 1fang:acall dir2 clr p3.6 acall pbian ;调用子程序判断是否有键按下 jz fang1 ;没有键按下时继续输出方波 clr p1.5 setb p1.6 jb

35、p1.4,main ;若按下的是其他键,则跳出返回fang1:mov p2,#5fh ;启动dac0832 mov a,#0ffh ;置方波初值(高电平) mov p0,a ;待转换数据送至dac0832 acall delay1 acall delay1 ;acall dir2 cpl a ;取反(低电平) mov p2,#5fh mov p0,a ;待转换数据送至dac0832 acall delay1 ;延时 ;acall delay1 ;延时 ;acall dir2 sjmp fangjuchi:clr p3.6 mov r0,#0ffhdisp0:acall pbian ;调用子程序

36、判断是否有键按下 jz disp1 clr p1.6 ;清p1.6 setb p1.5 ;设置p1.5 jb p1.3,next ;若按下的是其他键,则跳出返回 sjmp disp1 next:ljmp maindisp1:mov p2,#5fh ;启动dac0832 mov a,r0 mov p0,a ;待转换数据送至dac0832 acall dir3 dec r0 ;待转换数据加1 cjne r0,#00h,disp0 sjmp juchisanjiao:clr p3.6dis0: acall pbian jz dis1 clr p1.6 ;清p1.6 setb p1.5 ;设置p1.5

37、 jb p1.4,nextdis1: mov r0,#00hdis2: mov p2,#5fh mov a,r0 mov p0,a acall dir4 inc r0 cjne r0,#0ffh,dis2dis3: mov p2,#5fh mov a,r0 mov p0,a acall dir4 dec r0 cjne r0,#00h,dis3 sjmp dis0dir1:clr p3.6 clr c ;清进位 mov r1,#00h mov r2,#80h xsh1:mov dptr,#table1 ;表中首地址 mov a,r1 ;置偏移量 movc a,a+dptr ;取出对应段选码 m

38、ov p2,#60h ;片选选中74ls373 mov p0,a ;送入p0口输出 acall yashi mov a,r2 mov p2,a ;位选第一位led inc r1 add a,#20h ;位选下一位 jc stop1 ;检查是否显示完所有位 mov r2,a ajmp xsh1stop1:retdelay2:mov r7,#0ffh dl:djnz r7,dl retdir2:clr p3.6 clr c ;清进位 mov r1,#00h mov r2,#80h xsh2:mov dptr,#table2 ;表中首地址 mov a,r1 ;置偏移量 movc a,a+dptr ;

39、取出对应段选码 mov p2,#60h ;片选选中74ls373 mov p0,a ;送入p0口输出 mov a,r2 mov p2,a ;位选第一位led acall delay2 ;调用延时 inc r1 add a,#20h ;位选下一位 jc stop2 ;检查是否显示完所有位 mov r2,a ajmp xsh2stop2:retdir3:clr p3.6 clr c ;清进位 mov r1,#00h mov r2,#80h xsh3:mov dptr,#table3 ;表中首地址 mov a,r1 ;置偏移量 movc a,a+dptr ;取出对应段选码 mov p2,#60h ;

40、片选选中74ls373 mov p0,a ;送入p0口输出 mov a,r2 mov p2,a ;位选第一位led inc r1 add a,#20h ;位选下一位 jc stop3 ;检查是否显示完所有位 mov r2,a ajmp xsh3stop3:retdir4:clr p3.6 clr c ;清进位 mov r1,#00h mov r2,#80h xsh4:mov dptr,#table4 ;表中首地址 mov a,r1 ;置偏移量 movc a,a+dptr ;取出对应段选码 mov p2,#60h ;片选选中74ls373 mov p0,a ;送入p0口输出 mov a,r2 m

41、ov p2,a ;位选第一位led inc r1 add a,#20h ;位选下一位 jc stop4 ;检查是否显示完所有位 mov r2,a ajmp xsh4stop4:retyashi:mov r6,#20h dsl2:djnz r6,dsl2 ret ;1table0:db 80h,83h,86h,89h,8dh,90h,93h,96hdb 99h,9ch,9fh,0a2h,0a5h,0a8h,0abh,0aehdb 0b1h,0b4h,0b7h,0bah,0bch,0bfh,0c2h,0c5hdb 0c7h,0cah,0cch,0cfh,0d1h, 0d4h,0d6h,0d8hdb

42、 0dah,0ddh,0dfh,0e1h,0e3h, 0e5h,0e7h,0e9hdb 0eah,0ech,0eeh,0efh,0f1h, 0f2h,0f4h,0f5hdb 0f6h,0f7h,0f8h,0f9h,0fah, 0fbh,0fch,0fdhdb 0fdh,0feh,0ffh,0ffh,0ffh, 0ffh,0ffh,0ffhdb 0ffh,0ffh,0ffh,0ffh,0ffh, 0ffh,0feh,0fdhdb 0fdh,0fch,0fbh,0fah,0f9h, 0f8h,0f7h,0f6hdb 0f5h,0f4h,0f2h,0f1h,0efh, 0eeh,0ech,0eahd

43、b 0e9h,0e7h,0e5h,0e3h,0e1h, 0deh,0ddh,0dahdb 0d8h,0d6h,0d4h,0d1h,0cfh, 0cch,0cah,0c7hdb 0c5h,0c2h,0bfh,0bch,0bah, 0b7h,0b4h,0b1hdb 0aeh,0abh,0a8h,0a5h,0a2h, 9fh, 9ch, 99hdb 96h, 93h, 90h, 8dh, 89h, 86h, 83h, 80hdb 80h, 7ch, 79h, 78h, 72h, 6fh, 6ch, 69hdb 66h, 63h, 60h, 5dh, 5ah, 57h, 55h, 51hdb 4eh, 4ch, 48h, 45h, 43h, 40h, 3dh, 3ahdb 38h, 35h, 33h, 30h, 2eh, 2bh, 29h, 27hdb 25h, 22h, 20h, 1eh, 1ch, 1ah, 18h, 16hdb 15h, 13h, 11h, 10h, 0eh, 0dh, 0bh, 0ahdb 09h, 08h, 07h, 06h, 05h, 04h, 03h, 02hdb 02h, 01h, 00h, 00h, 00h, 00h, 00h, 00hdb 00h, 00h

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论