ImageVerifierCode 换一换
格式:DOCX , 页数:36 ,大小:61.45KB ,
资源ID:4655004      下载积分:12 金币
验证码下载
登录下载
邮箱/手机:
图形码:
验证码: 获取验证码
温馨提示:
支付成功后,系统会自动生成账号(用户名为邮箱或者手机号,密码是验证码),方便下次登录下载和查询订单;
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

开通VIP
 

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

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

开通VIP折扣优惠下载文档

            查看会员权益                  [ 下载后找不到文档?]

填表反馈(24小时):  下载求助     关注领币    退款申请

开具发票请登录PC端进行申请。


权利声明

1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前可先查看【教您几个在下载文档中可以更好的避免被坑】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时联系平台进行协调解决,联系【微信客服】、【QQ客服】,若有其他问题请点击或扫码反馈【服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【版权申诉】”,意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4009-655-100;投诉/维权电话:18658249818。

注意事项

本文(大连理工大学单片机综合设计——基于ZLG7290B、PCF8563的时钟系统设计.docx)为本站上传会员【精***】主动上传,咨信网仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知咨信网(发送邮件至1219186828@qq.com、拔打电话4009-655-100或【 微信客服】、【 QQ客服】),核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载【60天内】不扣币。 服务填表

大连理工大学单片机综合设计——基于ZLG7290B、PCF8563的时钟系统设计.docx

1、 大连理工大学单片机综合设计——基于ZLG7290B、PCF8563的时钟系统设计 36 2020年4月19日 文档仅供参考,不当之处,请联系改正。 大连理工大学本科设计报告 题目:基于ZLG7290B、PCF8563的时钟系统设计 课程名称: 单片机原理及应用实验 学院(系):电子信息与电气工程学部 专 业: 班 级: 学 号: 学生姓名:

2、 成 绩: 年 5月 4日 《计算机技术实验室安全操作规范》 1.实验前认真阅读安全操作规程,不得擅自触及总电源开关。 2.实验期间学生不准使用与实验无关的电气设备。 3.实验过程中若遇计算机故障时,交由指导老师负责,不允许学生私自开箱维修。 4.在实验过程中,连接实验设备的220v电源时,要保持手部干燥,并注意操作安全,不允许使用金属物件触碰220v电源线及电源插座的带点部位。 5.学生实验期间

3、在连接导线时不允许实验台带电操作,连接完成后经检查无误时再将实验台上电。完成实验时先将实验台断电后再进行导线的拆除。 6.实验期间要关闭手机等通讯工具,实验室一律禁止携带饮料、食品、禁止吸烟、喧哗、嬉闹、确保实验室卫生、整洁。 7.学生完成实验后,必须关闭所有实验设备的电源。 8.如果实验过程中发生“突发事件”时,不要慌张、应沉着冷静,采取相关的措施。必要时拨打校内晋级电话(84708110)或拨打110、120报警。 电工电子实验教学中心 计算机技术实验室 个人签字: 题目:基于

4、ZLG7290B、PCF8563的时钟系统设计 1 设计要求 (1)由PCF8563提供时间参数并由ZLG7290进行显示; (2)能够利用键盘实现时间参数的修改,修改过程可加入“回显”、“闪烁”、 “容错”等功能; (3)利用蜂鸣器实现时钟系统的“整点报时”功能; (4)要求程序中有中断环节; 2 设计分析及系统方案设计 (1)由PCF8563T实时时钟芯片提供时间数据,由ZLG7290B显示电路控制8位数码管显示当前时间,二者经过I2C总线结构与AT89C51单片机相连,SDA和SCK分别接P1.0和P1.1。 (2)该系统采用双中断结构,时钟输出CLKOUT接INT0,

5、为低优先级,每一秒触发一次中断;键盘中断输出信号INT接INT1,为高优先级,每当有按键时触发中断。 (3)算法说明: l 10H-1DH:向PCF8563T输入的相关参数的数据块; l 20H-26H:从PCF8563T中读出的时间参数(秒、分、小时、日、星期、月、年)。 经过CHAIFEN子程序将20H-26H中获取时间参数拆分查表后送入下列缓冲区: l 28H-2FH:年(4单元)、月(2单元)、日(2单元); l 38H-3FH:小时、分钟、秒(各占单元)。 键盘修改时间子程序中先将键值读入A,经判断转换后送入缓冲区20H-22H。 主程序功能: Ø 将10H-1DH

6、中特定时间和控制命令送入PCF8563T对应寄存器中,等待中断。 Ø 由于PCF8563T的CLKOUT设定输出频率为1HZ,将其与INT0相连,每秒引发一次中断。在时钟中断服务程序中读取时间参数,调整各参数后进入整点报时子程序,判断是否报时。然后将时间参数经拆分查表等操作,将年、月、日送28H-2FH缓冲区,将小时、分、秒送38H-3FH缓冲区,最后根据P1.2电平决定哪个缓冲区内容送ZLG7290B进行显示。 Ø ZLG7290B的键盘中断输出信号INT与INT1相连,每当有按键是触发中断,先读入键值至A中,判断是A、B或C,分别对应修改时、分、秒,进入对应子程序然后在等待两次输入,经

7、转换设置成十位和个位,存入入12H-14H对应单元,再送入PCF8563T对应寄存器。 3 系统电路 4 外围接口模块硬件电路功能描述 (1)ZLG7290B:数码管动态显示驱动、键盘扫描管理芯片,可驱动8位共阴极结构LED数码管,同时可管理64个按键扫描识别,接口采用I2C结构。 (2)PCF8563T:由Philips公司设计的低功耗CMOS实时时钟日历芯片,具有1.0-5.5V的电压工作范围、一个可编程时钟输出和掉电检测电路,接口采用I2C结构,每次读写操作内部地址寄存器自动产生增量。 (3)交流驱动蜂鸣器:一种发声元件,体积小,使用PNP驱动,需要一交变信号驱动才能发出相

8、应频率的声音。 5 主程序中主要变量定义 RAM单元或工作寄存器定义、功能等。 变量名称 RAM单元/寄存器 功能 PCF8563T时间和控制命令参数 10H-1DH 设定PCF8563T时间和 命令参数的缓冲区 时间参数 20H-26H 从PCF8563T中读出的时间参数(秒、分、小时、日、星期、月、年)缓冲区 年月日 28H-2FH 拆分查表所得年月日缓冲区以待显示 时分秒 38H-3FH 拆分查表所得时分秒缓冲区以待显示 键值 1FH 读入的键值存储单元 6 系统软件中各个子程序的功能描述 子程序的名称、功能,以及入口、出口参数。 子程序名

9、称 入口参数 出口参数 功能 描述 INT_RCT 无 无 时钟中断服务子程序 PANDUAN 20-21H 无 判断并进行整点报时 CHAIFEN 20-26H 28-2FH、38-3FH 将时间参数拆分查表 CF A R4、R3 将A中数据拆违两独立的十六进制数并查表得到对应字型码 ADJUST 20-25H 20-25H 屏蔽各时间参数无关位 INT_7290 无 无 键盘修改时间中断服务子程序 RDKEY 无 A 读键值子程序 WR8563 R7、R0、R2、R3 无 向日历芯片写时间参数 WRNBYT R7、R

10、0、R2、R3 无 带有内部单元地址的多字节写操作子程序 RDADD R7、R0、R2、R3、R4 无 带有内部单元地址的多字节读操作子程序 时钟中断服务子程序 利用RDADD从PCF8563T中读出时间参数送20H-27H 利用ADJUST屏蔽掉参数中无用的位 调用PANDUAN子程序判断并进行整点报时 调CHAIFEN子程序将时间分别送28H-2FH、38H-3FH缓冲区 P1.2=1? 显示时分秒 显示年月日 RETI 主程序入口 开辟一数据区10H-1DH存储时间、命令参数 将10H=1D H存储时间命令参数送PCF8563T中 等待中

11、断 7 主程序程序流程图 N Y 键盘修改时间中断服务子程序 读取键值 A键? N B键?

12、 Y N 查询按键? N WAIT1 C键? N Y 分钟处理 (同小时处理) 读取键值,将此值送小时的十位

13、 Y 秒处理 (同小时处理) 查询按键? WAIT2 N Y 读取键值,将此值送小时的个位 向日历芯片写入10H-1DH中的时间参数 RETI 8 程序清单 ;************************************************************ ;由PCF8563提供时间参数并由ZLG7290进行显示 ;能够利用键盘实现时间参数的修改,修改过程可加入回显、闪烁、

14、容错等功能 ;利用蜂鸣器实现时钟系统整点报时功能 ;要求程序中有中断环节 ;转换显示:P1.2与KEY1连接,按下KEY1显示年月日,平时显示时分秒 ;设定时钟芯片CLKOUT输出秒脉冲且与P3.2连接 ;采用中断的方式来显示时间(每秒钟刷新一次显示) ;ZLG7290B芯片的RST_L复位端与P1.7口连接,以便复位操作 ;************************************************************ SDA BIT P1.0 ;定义I2C信号引脚 SCL BIT P1.1 WSLA_8563 EQU 0A2H ;P

15、CF8563T口地址 RSLA_8563 EQU 0A3H WSLA_7290 EQU 70H ;ZLG7290B口地址 RSLA_7290 EQU 71H ORG 8000H LJMP 8100H ORG 8003H LJMP INT_RCT ORG 8013H LJMP INT_7290 ORG 8100H START: MOV SP,#60H CLR P1.7 ;ZLG7290B复位 LCALL DELAY SETB P1.7 ;****************************** ;设定PCF8563T的时间和命

16、令参数 ;****************************** MOV 10H,#00H ;启动控制字 MOV 11H,#1FH ;设置报警及定时器中断 MOV 12H,#50H ;秒单元 MOV 13H,#59H ;分单元 MOV 14H,#10H ;时单元 MOV 15H,#29H ;日期单元 MOV 16H,#03H ;星期单元 MOV 17H,#04H ;月单元 MOV 18H,#15H ;年单元 MOV 19H,#00H ;设定分报警 MOV 1AH,#00H ;设定小时报警 MOV 1BH,#00H ;设定日报警 MO

17、V 1CH,#00H ;设定星期报警 MOV 1DH,#83H ;设定CLKOUT的频率(1S) ;***************************** MOV R7,#0EH ;写入参数个数(时间和控制字) MOV R0,#10H ;参数和控制命令缓冲区首地址 MOV R2,#00H ;从器件内部从地址 MOV R3,#WSLA_8563 ;准备向PCF8563T写入数据串 LCALL WRNBYT ;写入时间、控制命令到PCF8563T MOV IP,02H SETB EA SETB EX0 SETB EX1 SETB IT0

18、 SETB IT1 SJMP $ ;等待中断 ;****************************** ;时钟中断服务子程序 ;****************************** INT_RCT:MOV R7,#07H ;读出数个数 MOV R0,#20H ;目标数据块首地址 MOV R2,#02H ;从器件内部首地址 MOV R3,#WSLA_8563 MOV R4,#RSLA_8563 ;准备读PCF8563T的时间参数 LCALL RDADD ;调读数据子程序,将读出的数据存放于单片机20H~26H中 LCALL ADJUST

19、 ;调时间调整子程序 LCALL PANDUAN ;调判断键值子程序 LCALL CHAIFEN ;调拆分子程序(包含查表),将20H~26H中的参数分别存于28H~2FH、38H~3FH单元中 MOV R7,#08H MOV R2,#10H MOV R3,#WSLA_7290 JNB P1.2,YEARS ;使用P1.2控制显示内容 MOV R0,#38H ;显示小时、分钟和秒 SJMP DISP YEARS: MOV R0,#28H ;显示年月日 DISP: LCALL WRNBYT ;调ZLG7290B显示 JNB P3.2,$ R

20、ETI ;****************************** ;整点报时子程序 ;****************************** PANDUAN: MOV A,21H CJNE A,#59H,PDFEN MOV A,20H CJNE A,#56H,PD57 LCALL BAOSHI1 AJMP EXIT PD57: CJNE A,#57H,PD58 LCALL BAOSHI1 AJMP EXIT PD58: CJNE A,#58H,PD59 LCALL BAOSHI1 AJMP EXIT PD59: CJNE A,

21、59H,EXIT LCALL BAOSHI1 AJMP EXIT PDFEN: CJNE A,#00H,EXIT MOV A,20H CJNE A,#00H,EXIT LCALL BAOSHI2 EXIT: RET ;******************************* ;低音1S报时 BAOSHI1:PUSH PSW PUSH 00H MOV R0,#0FFH MOV TMOD,#10H MOV TL1,#00H MOV TH1,#0FEH SETB TR1 WORK1: JNB TF1,$ CLR TF1 MOV

22、TL1,#00H MOV TH1,#0FEH CPL P1.4 DJNZ R0,WORK1 POP 00H POP PSW RET ;***************************** ;高音1S报时 BAOSHI2:PUSH PSW PUSH 00H PUSH 01H MOV R0,#04H WORK2: MOV R1,#00H MOV TMOD,#10H MOV TL1,#00H MOV TH1,#0FFH SETB TR1 WORK3: JNB TF1,$ CLR TF1 MOV TL1,#00H MOV

23、TH1,#0FFH CPL P1.4 DJNZ R1,WORK3 DJNZ R0,WORK2 POP 01H POP 00H POP PSW RET ;****************************** ;各子程序 ;***************************** ORG 8300H CHAIFEN:PUSH PSW ;对20H~26H单元的参数拆分并在查表后送28H~2FH(年月日)和38H~3FH(时分秒) PUSH ACC PUSH 03H PUSH 04H MOV A,20H ;取秒参数 LCA

24、LL CF ;拆分、查表在R4、R3中 MOV 38H,R3 ;送秒的个位 MOV 39H,R4 ;送秒的十位 MOV 3AH,#02H ;送分隔符 MOV A,21H ;取分参数 LCALL CF MOV 3BH,R3 ;送分的个位 MOV 3CH,R4 ;送分的十位 MOV 3DH,#02H ;送分隔符 MOV A,22H ;取小时参数 LCALL CF MOV 3EH,R3 ;送小时的个位 MOV 3FH,R4 ;送小时的十位 MOV A,23H ;取日期参数 LCALL CF MOV A,R3

25、 MOV R3,A MOV 28H,R3 MOV 29H,R4 MOV A,25H ;取月参数 LCALL CF MOV A,R3 ORL A,#01H MOV R3,A MOV 2AH,R3 MOV 2BH,R4 MOV A,26H ;取年参数 LCALL CF MOV A,R3 ORL A,#01H MOV R3,A MOV 2CH,R3 MOV 2DH,R4 MOV 2EH,#0FCH ;年的高两位处理 MOV 2FH,#0DAH POP 04H POP 03H POP ACC POP

26、PSW RET ;************************************************************* ;将A中的数据拆分成两个独立的BCD码并查表,结果分别存放于R4、R3中 CF: PUSH 02H PUSH DPH PUSH DPL MOV DPTR,#LEDSEG MOV R2,A ANL A,#0FH MOVC A,@A+DPTR MOV R3,A MOV A,R2 SWAP A ANL A,#0FH MOVC A,@A+DPTR MOV R4,A POP DPL POP DPH

27、 POP 02H RET ;****************************************************************** LEDSEG: DB 0FCH,60H,0DAH,0F2H,66H,0B6H,0BEH,0E4H DB 0FEH,0F6H,0EEH,3EH,9CH,7AH,9EH,8EH ;****************************************************************** ;将20H~26H中从PCF8563T中读出的7个字节参数的无关位屏蔽掉 ;***************

28、 ADJUST: PUSH ACC MOV A,20H ANL A,#7FH MOV 20H,A MOV A,21H ANL A,#7FH MOV 21H,A MOV A,22H ANL A,#3FH MOV 22H,A MOV A,23H ANL A,#3FH MOV 23H,A MOV A,24H ANL A,#07H MOV 24H,A MOV A,25H ANL A,#1FH MOV 25H,A POP AC

29、C RET ;************************** ;延时子程序 ;*************************** DELAY: PUSH 00H PUSH 01H MOV R0,#00H DELAY1: MOV R1,#00H DJNZ R1,$ DJNZ R0,DELAY1 POP 01H POP 00H RET ;****************************** ;键盘修改时间中断服务子程序 ;******************************* INT_7290: PUSH 00

30、H PUSH 02H PUSH 03H PUSH 04H PUSH 07H PUSH ACC PUSH PSW LCALL RDKEY ;读取第一个按键值(功能键) ;************************* ;修改小时 ;******************************** AKEY: CJNE A,#0AH,BKEY ;判断是A键吗?不是跳转判断是B JB P3.3,$ ;以查询的方式等待下一次按键操作 LCALL RDKEY ;读取第二个按键值(小时的十位数?) SWAP A ANL 14H,#0FH O

31、RL 14H,A ;14H单元中的“十位数”生成 JB P3.3,$ ;以查询的方式等待下一次按键操作 LCALL RDKEY ;读取第三个按键值(小时的个位数) ANL 14H,#0F0H ;将键值数据处理成小时的个位 ORL 14H,A MOV R7,#01H MOV R0,#14H MOV R2,#04H MOV R3,#WSLA_8563 LCALL WRNBYT ;将修改后的时间参数送PCF8563T LJMP DOWN ;********************** ;修改分 BKEY: CJNE A,#0BH,CKEY J

32、B P3.3,$ LCALL RDKEY SWAP A ANL 13H,#0FH ORL 13H,A JB P3.3,$ LCALL RDKEY ANL 13H,#0F0H ORL 13H,A MOV R7,#01H MOV R0,#13H MOV R2,#03H MOV R3,#WSLA_8563 LCALL WRNBYT LJMP DOWN ;********************** ;修改秒 CKEY: CJNE A,#0CH,DOWN JB P3.3,$ LCALL RDKEY SWAP A ANL 12

33、H,#0FH ORL 12H,A JB P3.3,$ LCALL RDKEY ANL 12H,#0F0H ORL 12H,A MOV R7,#01H MOV R0,#12H MOV R2,#02H MOV R3,#WSLA_8563 LCALL WRNBYT LJMP DOWN ;******************* ;中断返回退出 DOWN: CLR IE0 POP PSW POP ACC POP 07H POP 04H POP 03H POP 02H POP 00H RETI ;************

34、 ;读键值子程序(出口参数累加器A,获取到的键值) RDKEY: MOV R0,#1FH ;键值缓冲单元 MOV R7,#01H ;取键值数据 MOV R2,#01H ;指向内部数据键值寄存器地址 MOV R3,#WSLA_7290 ;取器件写地址 MOV R4,#RSLA_7290 ;取器件读地址 LCALL RDADD ;读出7290的01H单元中的键值 MOV A,1FH ;取键值送缓冲单元 DEC A RET ;************************* ;向日历芯片中写入时间参数子程序 WR8536

35、 MOV R7,#07H ;写入参数个数(时间和控制字) MOV R0,#12H ;参数和控制命令缓冲区首地址 MOV R2,#02H ;从器件内部从地址 MOV R3,#WSLA_8563 ;准备向PCF8563T写入数据串 LCALL WRNBYT ;写入时间、控制命令到PCF8563T RET ;************************ ;相关I2C子程序 ;************************ ;带有内部单元地址的多字节写操作子程序 WRNBYT ;通用的I2C通讯子程序(多字节写操作) ;入口参数R7字节数,R0:源数据块

36、首地址 ;R0原数据块首地址;R2从器件内部子地址;R3:外围器件地址(写) ;相关子程序WRBYT、STOP、CACK、STA WRNBYT: PUSH PSW PUSH ACC WRADD: MOV A,R3 ;取外围器件地地址(包含r/w=0) LCALL STA ;发送起始信号S LCALL WRBYT ;发送外围地址 LCALL CACK ;检测外围器件的应答信号 JB F0,WRADD;如果应 MOV A,R2 LCALL WRBYT ;发送内部寄存器首地址 LCALL CACK ;检测外围器件的应答信号 JB F0,

37、WRADD;如果应答不正确返回重来 WRDA: MOV A,@R0 LCALL WRBYT ;发送外围地址 LCALL CACK ;检测外围器件的应答信号 JB F0,WRADD;如果应答不正确返回重来 INC R0 DJNZ R7,WRDA LCALL STOP POP ACC POP PSW RET ;*********************************** ;带有内部单元地址的多字节读操作子程序 RDADD ;入口参数R7字节数; ;R0目标数据块首地址;R2从器件内部子地址; ;R3器件地址(

38、写);R4器件地址(读) ;相关子程序WRBYT、STOP、CACK、STA、MACK、MNACK RDADD: PUSH PSW ;从PCF8563的02H单元读入7个参数 PUSH ACC ;存放于20H-26H单元 RDADD1: LCALL STA MOV A,R3 ;取器件地址(写) LCALL WRBYT ;发送外围地址 LCALL CACK ;检测外围器件的应答信号 JB F0,RDADD1;如果应答不正确返回重来 MOV A,R2 ;取内部地址 LCALL WRBYT ;发送外围地址 LCALL CACK ;检测外围器件的应答信

39、号 JB F0,RDADD1;如果应答不正确返回重来 LCALL STA MOV A,R4 ;取器件地址(读) LCALL WRBYT ;发送外围地址 LCALL CACK ;检测外围器件的应答信号 JB F0,RDADD1;如果应答不正确返回重来 RDN: LCALL RDBYT MOV @R0,A DJNZ R7,ACK LCALL MNACK LCALL STOP POP ACC POP PSW RET ACK: LCALL MACK INC R0 SJMP RDN ;***********************

40、 ;启动信号子程序S STA: SETB SDA ;启动信号S SETB SCL NOP ;产生4.7US延时 NOP NOP NOP NOP CLR SDA NOP ;产生4.7US延时 NOP NOP NOP NOP CLR SCL RET ;************************************** ;停止信号子程序P STOP: CLR SDA ;停止信号P SETB SCL NOP ;产生4.7US延时 NOP NOP NOP NOP

41、SETB SDA NOP ;产生4.7US延时 NOP NOP NOP NOP CLR SCL CLR SDA RET ;********************************** ;应答信号子程序 MACK MACK: CLR SDA ;发送应答信号ACK SETB SCL NOP ;产生4.7US延时 NOP NOP NOP NOP CLR SCL SETB SDA RET ;************************************** ;非应答法信号子程序MNACK MN

42、ACK: SETB SDA ;发送非应答信号NACK SETB SCL NOP ;产生4.7US延时 NOP NOP NOP NOP CLR SCL CLR SDA RET ;*************************************** ;应答检测子程序CACK CACK: SETB SDA ;应答位检测子程序 SETB SCL CLR F0 MOV C,SDA ;采样SDA JNC CEND ;应答正确时转CEND SETB F0 ;应答错误时F0置一 CEND: CLR SCL RET ;****

43、 ;发送一个字节子程序WRBYT WRBYT: PUSH 06H MOV R6,#08H ;发送一个字节子程序 WLP: RLC A ;(入口参数A) MOV SDA,C SETB SCL NOP ;产生4.7US延时 NOP NOP NOP NOP CLR SCL DJNZ R6,WLP POP 06H RET ;**************************************** ;接收一个字节子程序RDBYT RDBYT: PUSH 06

44、H MOV R6,#08H ;接收一个字节子程序 RLP: SETB SDA SETB SCL NOP ;产生大于15微秒的延时! NOP ;注意这是专门为ZLG7290 NOP ;添加的20微秒延时部分 NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP MOV C,SDA MOV A,R2 RLC A MOV R2,A CLR SCL DJNZ R6,RLP ;(出口参数R2) POP 06H RET END 9 系统调试运行

45、结果说明、分析所出现得问题,设计体会与建议 系统运行的硬件环境如下: 名称 型号 备 注 计算机系统 单片机综合仿真实验台 仿真器 台式机或便携式电脑均可 DP-51PROC TKSMonitor 51 具备COM口 软件环境为:KEIL集成调试软件μvirson2,设计语言:汇编语言。 调试运行结果:(1)正常情况下KEY拨至高电平,8位LED显示“时-分-秒”,且每秒跳变一次,时间增加1S;拨至低电平时显示“年.月.日”;(2)当时间为59分56秒蜂鸣器开始整点报时, 前4声低音,最后一声高音;(3)当按下B键,停止计时,再按两次分别输入小时十位和个位,可修改

46、小时;当按下C键,停止计时,再按两次分别输入分的十位和个位,可修改分;当按下D键,停止计时,再按两次分别输入秒的十位和个位,可修改秒;其它按键无反应。 遇到问题及解决方法:(1)整体结构:应设为双中断,且键盘修改时间子程序为高优先级,可使系统反应灵敏;(2)整点报时问题:报时子程序应放在调整后,且需重复调试高低音报警的计时初值;(3)键盘修改时间子程序的结构:先判断修改内容,修改后即中断返回,每次修改一个参数。 10 结论及设计体会 在该实验中,经过独立设计自动报时系统,我对单片机的应用和编程有了很深的理解。单片机技术是一种很实用的技术,入门并不困难,实验我们能够体会到很大乐趣。单片机的硬件实验电路应与程序一致,中断的位置不能连错。在编程过程中会出现很多难题,因此编程时应分成不同模块实现相应功能,多次应用的程序段应设置为子程序,先修改语法错误再修改算法错误。对于算法错误,可换个思路编程,也可请教她人。该实验基本满足了设计要求,但仍存在一些不足,如无键值范围限制,按键不太灵敏等问题,有待改进。总之,这次试验设计让我所获良多,受益终生。 参考文献 陈育斌编著.MCS-51单片机应用实践教程.大连理工大学出版社 刘文涛编著.MCS-51单片机培训教程(C51版).电子工业出版社

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4009-655-100  投诉/维权电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服