ImageVerifierCode 换一换
格式:DOCX , 页数:18 ,大小:133.45KB ,
资源ID:18503865      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/18503865.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(七段数码管显示实验文档格式.docx)为本站会员(b****3)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

七段数码管显示实验文档格式.docx

1、39H106H707Hd5EH25BH87FHE79H34FH96FHF71H466HA77H灭00H56DHb7CH实际上试验中使用的是共阳极数码管,这里就不一一列出2、动态显示按图4.9-2 (b)连接线路,通过交替选中LED1和LEDO循环显示两位十 进制数。七段数码管段码连接不变,位码驱动输入端 S1、SO接8255A C 口的PC1、PC0通过C 口的这两位交替输出 1和0,以便交替选中LED1和LEDQ 从而实现两位十进制数的交替显示。 请编程实现在两个 LED数码管上循环显示00 99,程序流程图如图 4.9-3(b)所示。开始将腔昭设为A 口输出二十位数的段码至A 口图 4.9

2、-3三、实验电路图 第一部分电路图:BEVEH-5S3-F钩内耳疝井B 4 “ a -、-a 1第二部分电路图:KYXJM-G ib 1:*上斗 *00- IB-08SHCFQi DPIm莘駐-塞匸一 -r需ET屠匡氐ME-SIMWMM站Ippjf一 rHMWmiMVMM I #9411 IWtFAMPXhi-9 甲?W-1 m *ffc四、实验设备START:MOV R4,#00HFLASH:MOV R2,#01HMOV R0,#30HMOV DPTR,#TABFLALOPFLA:MOV A,R2MOV P2,AMOV A,R0MOVC A,A+DPTRMOV P1,AMOV R3,#0DJ

3、NZ R3,$MOV P1,#0FFHRL AMOV R2,AI NC R0CJNE RO,#38H,GOONGOON:CJNE A,#01H,LOPFLAI NC R4CJNE R4,#7FH,GOON1微型计算机、单片机仿真器、实验仪、示波器 (各一台); 实验连线(若干)。五、实验内容*由于汇编语言程序中已经做了相应的注释, C语言的编程原理与之相同处不再做重复注释, 仅作个别注释,请见谅。1.编程在8位数码管上面显示“ 12345678” 8个数字,每经过1秒8个数字 循环左移一位显示。依次为: 1234578、23456781、34567812.汇编语言程序代码:ORG 0000H;

4、把字形表首地址给外部寻址寄存器输出位型在程序段中查表得到字形输出字形循环等待延时关显示位型左移一位下一个字形若已经显示一遍则初始化MOVA,30H显示表左移更新30H,31H31H,32H32H,33H33H,34H34H,35H35H,36H36H,37H37H,AR4,#00HGOON1:AJMP FLASHTABFLA: ;字形表DB 0C0H,0F9H,0A4H,0B0H,99HDB 92H,82H,0F8H,80H,90H,88HDB 83H,0C6H,0A1H,86H,8EHENDC语言程序代码:#in cludedata un sig ned char disadd _at_ 0

5、x30;const un sig ned char LED_TAB=0xC0,0xF9,0xA4,0xB0,0x99,0x92, 0x82,0xF8,0x80,0x90,0x88,0x83, 0xC6,0xA1,0x86,0x8E;data un sig ned char j;void delay()un sig ned char i=0xFF;while(i-) void cha nge_s()un sig ned char *k; un sig ned char m; k=&disadd;m=*k;*k=*(k+1);*(k+1)=*(k+2);*(k+2)=*(k+3);*(k+3)=*

6、(k+4);*(k+4)=*(k+5);*(k+5)=*(k+6);*(k+6)=*(k+7);*(k+7)=m;j =0x00;mai n()un sig ned char i;un sig ned char disbit;un sig ned char *dis nu m,* n; SP=0x40;n=&*( n)=0x01;*(n+1)=0x02;*(n+2)=0x03;*( n+3)=0x04;*(n+4)=0x05;*(n+5)=0x06;*(n+6)=0x07;*(n+7)=0x08;while(1)disbit=0x01;dis num=&/显示表移位/计数值初始化/显示设置初值

7、为for(i=0;i8;i+)P2=0x00;P仁 LED_TAB*dis nu m;P2=disbit;delay();disbit=disbit XX- XX分钟一秒钟一百分秒COM_ADDXDATA0F003HPA_ADD XDATA0F000HPB_ADD XDATA0F001HPC_ADD XDATA0F002HCRG 0000HAJMP STARTCRG 000BHAJMP T0INTCRG 0030HMOV SP,#60H ;设置堆栈MOV TMOD,#01H ;设置定时器 T0的控制字TH0,#0F0H设置定时器计数初值TL0,#07FHR7,#00H显示寄存器置初值R6,#0

8、0HR5,#00HR3,#00HR2,#00H32H,#16设置显示分隔符MOV 35H,#16SETB ETO ;允许中断(TO内部中断)SETB EASETB TRO ;开始计数CONTINUE:37H,R7进位判断,R7表示百分之一秒(之后的以此类推)36H,R6CJNER6,#0AH,NOREACHI NCR534H,R5R5,#0AH,NOREACHR433H,R4R4,#06H,NOREACHR331H,R3R3,#0AH,NOREACHMOV 31H,R3I NC R2MOV 30H,R2CJNE R2,#06H,NOREACHMOV R2,#00HNOREACH: ACALLD

9、ISPLAY AJMP CONTINUE;中断子程序TOINT:I NC R7 推)CJNE R7,#0AH,NOREACH_SMOV R7,#00HI NC R6NOREACH_S:MOV TH0,#0F0HMOV TL0,#07FHRETI数码管显示子程序DISPLA Y:MOV R1,#01HMOV DPTR,#COM_ADDMOV A,#80HMOVX DPTR,A LOPFLA:MOV DPTR,#PB_ADDMOV A,R1MOVX DPTR,A调用显示子程序R7表示百分之一秒(之后的以此类计数完一次后再次置计数初值位型输出指针A,R0DPTR,#PA_ADDA,#00HWAIT:

10、DECA,#00H,WAIT等待延时A,#0FFHA,R1RLR1,AR0A,#01H,LOPFLA右已经显示遍则初始化RETDB 0BFH#define TIMEINT 0x01#defi ne TIMEH0xf0#defi ne TIMEL 0x7fxdata un sig ned char con _address _at_ 0xf003;xdata un sig ned char pa _at_ 0xf000;xdata un sig ned char pb _at_ 0xf001;xdata un sig ned char pc _at_ 0xf002;const un sig ne

11、d char LED_TAB=0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90,0x88,0x83,0xC6,0xA1,0x86,0x8E,0xBF; data un sig ned char r2,r3,r4,r5,r6,r7;局变量/显示变量设置为全void timerO(void) in terrupt 1 using 1r7+;i f(r7=0x0A)r7=0x00;r6+;TH0=TIMEH;TL0=TIMEL;void display()un sig ned char *dis num; disbit=OxO1;/中断子程序/显示子

12、程序pb=0x00; pa=LED_TAB*dis nu m;pb=disbit; delay(); disbit=disbit dis nu m+;un sig ned char *n;con _address=0x80; TMOD=TIMEINT; TLO=TIMEL; n=&r 7=0x00;r 6=0x00;r 5=0x00;r 4=0x00;r 3=0x00;r 2=0x00;*(n+2)=16;*(n+5)=16;ET0=1;EA=1;TR0=1;/显示进位判断*(n+7)=r7;*(n+6)=r6; if(r6=0x0A)r6=0x00; *(n+6)=r6;r5+;*(n+4)

13、=r5; if(r5=0x0A)r5=0x00;r4+;*(n+3)=r4; if(r4=0x06)r4=0x00; r3+;*(n+1)=r3;if(r3=0x0A) r3=0x00; r2+;*n=r2; if(r6=0x06) r2=0x00; *n=r2;display。六、实验小结通过本次试验,我基本上掌握了数码管显示的程序流程,学会编写一些程 序调用相应的相应的子程序, 显示所需内容,了解了动态扫描显示的程序执行 过程,结合定时器的设置和中断的返回, 来实现最基本的百分秒显示, 从而完成时钟显示,由此,结合前面所学的知识,巩固了数码管显示的知识,增强了 我的程序调试能力,为下一步的学习打下了坚实基础。以上程序都记过实验或是仿真器验证,现象正常,若有错误之处,请老师 指正,谢谢。

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1