基于单片机的窄带脉冲宽度检测数字钟频率计电子琴程序.doc





《基于单片机的窄带脉冲宽度检测数字钟频率计电子琴程序.doc》由会员分享,可在线阅读,更多相关《基于单片机的窄带脉冲宽度检测数字钟频率计电子琴程序.doc(30页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、 JIANGSU TEACHERS UNIVERSITY OF TECHNOLOGY 单片机原理与应用课程设计 学院名称: 班 级: 姓 名: 学 号: 指导老师: 基于单片机(AT89C51)的频率计设计1.3 技术指标设计要求的技术指标有:输入脉冲幅度:0-5v周期量测量范围:0.1ms50ms测量精度1%显示方式:四位数字显示ORG 0000H ;程序复位入口地址AJMP MAIN ORG 001BH ;计时器T1的中断入口AJMP PTF0 ;跳转到中断程序中ORG 0033H ;主程序入口地址MAIN:MOV SP, #60H MOV TH1, #0FAH MOV TL1,#60H
2、;定时4mS SETB EA ;开放CPU中断 SETB ET1 ;开放定时器中断 MOV TH0,#00H MOV TL0,#00H ;给计数器T0赋初值0 MOV TMOD,#15H ;计时器T1工作在方式1定时模式,计数器T0工作在方式1 计数模式 MOV 30H,#0FAH ;循环250次,共定时1S MOV 40H,#0 ;用于判断显示数码管哪一位 SETB TR0 ;启动计数器0 SETB TR1 ;启动定时器1 LOOP1:ACALL ZHUANH ;将二进制数转换为压缩BCD码 ACALL CHAIF ;将压缩BCD码转换为非压缩BCD码 AJMP LOOP1 ; 循环处理计数
3、器T0采集得到的数据 PTF0:MOV TH1, #0F0H MOV TL1,#60H ;给定时器T1重新赋值 INC 40H ;数码管判断位加1 MOV A,50H CJNE A,#00H,DAY ;判断50H单元是否为零,若为0继续往下执行,若不为0,则跳转到子程序DAY中 MOV A,40H ;每4ms显示一位,从最高位开始,到最低位时,返回高位 CJNE A,#1,LOP1 ACALL QIANW AJMP TIAO LOP1:CJNE A,#2,LOP2 ACALL BAIW AJMP TIAO LOP2:CJNE A,#3,LOP3 ACALL SHIW AJMP TIAO LOP
4、3:ACALL GEW MOV 40H,#0 AJMP TIAO DAY: MOV A,40H CJNE A,#1,LP1 ACALL QIANW1 AJMP TIAO LP1:CJNE A,#2,LP2 ACALL BAIW1 AJMP TIAO LP2:CJNE A,#3,LP3 ACALL SHIW1 AJMP TIAO LP3:ACALL GEW1 MOV 40H,#0 TIAO:DJNZ 30H,PTFR ;判断是否到1S MOV 20H,TH0 MOV 21H,TL0 ;将计数器T0中的数转移到20H,21H中 MOV TH0,#0 MOV TL0,#0 ;将计数器T0重新赋0 M
5、OV 30H,#0FAHPTFR:RETIZHUANH:MOV R2,20H ;将计数得到的值存入R2和R3中 MOV R3,21H CLR A MOV R4 ,A ;将R4、R5、R6清零 MOV R5 ,A MOV R6,A MOV R7,#16 LOOP:CLR C ; 将16位二进制数逐位左移一位 ,移得的数据放入进位C中 MOV A,R3 RLC A MOV R3,A MOV A,R2 RLC A MOV R2,A MOV A,R6 ;(R4R5R6)+(R4R5R6)+C=(R4R5R6)*2+C ADDC A,R6 DA A MOV R6,A MOV A,R5 ADDC A,R5
6、 DA A MOV R5,A MOV A,R4 ADDC A,R4 DA A MOV R4,A DJNZ R7,LOOP RET CHAIF:MOV A,R5 ;将压缩BCD码R4R5R6转换为非压缩BCD码 ,从高到低依次放于50H、51H、52H、53H、54H ANL A,#0F0H SWAP A MOV 52H,A MOV A,R5 ANL A,#0FH MOV 51H,A MOV A,R6 ANL A,#0F0H SWAP A MOV 53H,A MOV A,R6 ANL A,#0FH MOV 54H,A MOV 50H,R4 RET QIANW: MOV A,52H ;频率不超过1
7、0KHZ时,以HZ为单位,四位显示,最高位为千位,以此类推 MOV DPTR,#TAB ;千位上显示51H单元中的内容 MOVC A,A+DPTR MOV P0,A MOV P2,#0F7H RET BAIW:MOV A,51H ;百位上显示52H单元中的内容 MOV DPTR,#TAB MOVC A,A+DPTR MOV P0,A MOV P2,#0FBH RET SHIW:MOV A,53H ;十位上显示53H单元中的内容 MOV DPTR,#TAB MOVC A,A+DPTR MOV P0,A MOV P2,#0FDH RET GEW:MOV A,54H ;个位上显示54H单元中的内容
8、MOV DPTR,#TAB MOVC A,A+DPTR MOV P0,A MOV P2,#0FEH RET QIANW1:MOV A,50H ;频率大于10KHZ时,小数点放千位,以KHZ为单位,省去个位,以四位显示 MOV DPTR,#TAB ;千位上显示50H单元中的内容 MOVC A,A+DPTR MOV P0,A MOV P2,#0F7H RET BAIW1:MOV A,52H ;百位上显示51H单元中的内容和显示小数点 MOV DPTR,#TAB1 MOVC A,A+DPTR MOV P0,A MOV P2,#0FBH RET SHIW1: MOV A,51H ;十位上显示52H单元
9、中的内容 MOV DPTR,#TAB MOVC A,A+DPTR MOV P0,A MOV P2,#0FDH RET GEW1:MOV A,53H ;个位上显示53H单元中的内容 MOV DPTR,#TAB MOVC A,A+DPTR MOV P0,A MOV P2,#0FEH RET TAB:DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH TAB1:DB 0F7H,0C1H,0BBH,0EBH,0CDH,0EEH,0FEH,0C3H,0FFH,0EFH NOP END基于单片机的数字钟设计1.3 技术指标设计要求的技术指标有:输入脉冲幅度:0-5v周期量
10、测量范围:0.1ms50ms测量精度1%显示方式:四位数字显示 ORG 0000H AJMP MAIN ORG 000BH AJMP PTF0 ORG 0033H TAB: DB 7EH,48H,3DH,6DH,4BH,67H,77H,4CH,7FH,6FH ;不带小数点TAB1: DB 0BFH,86H,0DBH,0CFH,0E6H,0EDH,0FDH,87H,0FFH,0EFH ;带小数点TAB2: DB 01H,02H,04H,08H,10H,20H,40H,80H,00H ;自检a-h PTF0: PUSH PSW ;保护现场PSW,ACC进栈 PUSH ACC ;选工作寄存器1区 M
11、OV TH0,#0ECH ;T0初始化 MOV TL0,#78H DJNZ 36H,PTFOR MOV 36H,#92 ;判断中断次数计数单元减1是否为0 XRL 33H,#0FFH DJNZ 37H,PTFOR ;中断次数计数单元36H,37H MOV 37H,#2 MOV A,32H ; 秒单元32H加1 ADD A,#1 DA A ;十进制调整 MOV 32H,A CJNE A,#60H,PTFOR ;判断单元是否计数到60 MOV 32H,#0 MOV A,31H ;分单元31H加1 ADD A,#1 DA A MOV 31H ,A CJNE A,#60H,PTFOR MOV 31H
12、,#0 MOV 32H ,#0 MOV A,30H ;时单元30H加1 ADD A,#1 DA A MOV 30H,A CJNE A,#24H,PTFOR ;判断计数单元是否到24 MOV 30H,#0 MOV 31H,#0 MOV 32H,#0 PTFOR: POP ACC ;恢复现场,ACC,PSW退栈 POP PSW RETI MAIN: MOV P2,#0FH ;数码管自检 MOV DPTR,#TAB2 SS: MOV R2,#00H SST: MOV A,R2 MOVC A,A+DPTR JZ SS MOV P0,A INC R2 ACALL DEL3 MOV A,P0 CJNE A
13、,#80H,SST MOV 30H,#00H ;状态数初始化 MOV 31H,#00H MOV 32H,#00H MOV 33H,#00H MOV 36H,#92 MOV 37H,#2 MOV SP,#0EFH ;栈指针初始化 MOV TH0,#0ECH MOV TL0,#78H MOV TMOD,#1 MOV IP,#2 MOV IE,#82H ;中断初始化 SETB TR0 ;允许T0计数LOOP: ACALL LOP0 JB P1.0,XX ;校时按键按下但未松开(低电平)转移到校时模块 ACALL JS1XX: JB P1.1,YY ;校分按键按下但未松开(低电平)转移到校分模块 AC
14、ALL JF1 ACALL LOP0YY: AJMP LOOP JS1: LCALL DEL JS2: JB P1.0, JS3 ;校时按键松开(高电平)校时 ACALL LOP0 AJMP JS2 JS3: MOV A,30H ADD A,#1 DA A MOV 30H,A CJNE A,#24H,RT ;校时到24时,采用24进制计时 MOV 30H,#0 JF1: LCALL DEL JF2: JB P1.1,JF3 ;校分按键松开(高电平)校分 ACALL LOP0 AJMP JF2JF3: MOV A,31H ADD A,#1 DA A MOV 31H,A CJNE A,#60H,R
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 单片机 窄带 脉冲宽度 检测 数字 频率计 电子琴 程序

限制150内