资源预览内容
第1页 / 共14页
第2页 / 共14页
第3页 / 共14页
第4页 / 共14页
第5页 / 共14页
第6页 / 共14页
第7页 / 共14页
第8页 / 共14页
第9页 / 共14页
第10页 / 共14页
亲,该文档总共14页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
摘要摘要本实验是基于 PHILIPS AT89C51 单片机所设计的,可以实现键位与数字动态显示的一种频率可调方波发生器。通过键盘键入(10HZ-9999HZ)随机频率,使用七段数码管显示,每一个数码管对应一个键位。单片机对各个键位进行扫描,确定键位的输入,然后数码管显示输入的数值,方波发生器输出以数码管显示的数值为频率的方波。关键词:关键词:单片机 七段数码管 键盘电路 频率可调方波发生器一、目的和功能一、目的和功能1.11.1 目的:目的:设计一种频率范围限定且可调的方波发生器,志在产生特定频率的方波。1.21.2 功能:功能:假设键盘是 4*4 的键盘,当键盘输入范围在 10hz-9999hz 的数字,单片机控制数码管显示该数值,并把该数值当做方波发生器的输入频率,单片机控制该方波发生器以该数值作为频率显示方波,从而得到我们想要频率的方波。二、硬件设计二、硬件设计2.12.1 硬件设计思想硬件设计思想键盘的数字和键位关系固定,通过键盘输入产生频率,通过 LED 数码管显示出来,每一个数码管对应一个键位。基本设备是基于 PHILIPS AT89C51 单片机,外围设备采用的是4 个七段数码管,PHILIPS AT89C51 单片机,1 个 OSCILLOSCOPE 方波发生器,16 个Button,若干电阻,电源电池。2.22.2 部分硬件方案论述部分硬件方案论述2.2.12.2.1 七段数码管扫描显示方式的方案比较七段数码管扫描显示方式的方案比较方案一: 静态显示方式:静态显示方式是指当显示器显示某一字符时,七段数码管的每段发光二极管的位选始终被选中。在这种显示方式下,每一个 LED 数码管显示器都需要一个 8 位的输出口进行控制。静态显示主要的优点是显示稳定,在发光二极管导通电流一定的情况下显示器的亮度大,系统运行过程中,在需要更新显示内容时,CPU 才去执行显示更新子程序,这样既节约了 CPU 的时间,又提高了 CPU 的工作效率。其不足之处是占用硬件资源较多,每个 LED 数码管需要独占 8 条输出线。随着显示器位数的增加,需要的I/O 口线也将增加。方案二: 动态显示方式:动态显示方式是指一位一位地轮流点亮每位显示器(称为扫描) ,即每个数码管的位选轮流选中,多个数码管公用一组段选,段选数据仅对位选选中的数码管有效。对于每一位显示器来说,每隔一段时间点亮一次。显示器的亮度既与导通电流有关,也与点亮时间和间隔时间的比例有关。通过调整电流和时间参数,可以既保证亮度,又保证显示。若显示器的位数不大于 8 位,则显示器的公共端只需一个 8 位 I/O 口进行动态扫描(称为扫描口) ,控制每位显示器所显示的字形也需一个 8 位口(称为段码输出) 。动态显示器的优点是节省硬件资源,成本较低。但在控制系统运行过程中,要保证显示器正常显示,CPU 必需每隔一段时间执行一次显示子程序,占用 CPU 大量时间,降低了CPU 的工作效率,同时显示亮度较静态显示器低。由于 PHILIPS AT89C51 单片机本身提供的 I/O 口有限,因此我们选择方案二动态扫描方式。扫描方式中在轮流点亮扫描过程中,每位显示器的点亮时间是极为短暂的约1ms,但由于人的视觉暂留现象及发光二极管的余辉效应,尽管实际上各位显示器并非同时点亮,但只要扫描的速度足够快,给人的印象就是一组稳定的显示数据,不会有闪烁感。节约了电能,节省 了 I/O 口。2.2.22.2.2 键盘连接方式方案比较键盘连接方式方案比较方案一:独立式键盘一个具有 4 个按键的独立式键盘,每一个按键的一端都接地,另一端接 mega16 的 I/O口。独立式键盘每一按键都需要一根 I/O 线,占用 mega16 的硬件资源较多。因此独立式键盘只适合按键较少的场合。键盘是一组按键或开关的集合,键盘接口向计算机提供被按键的代码。特点:使用方便、结构复杂、成本高。方案二:矩阵式键盘我们采用 44 矩阵式键盘,键盘的行线 X0X3 通过电阻接+5V,当键盘没有键闭合时,所有的行线和列线断开,行线 X0X3 均呈高电平。当键盘上某一键闭合时,该键所对应的行线与列线短路,此时该行线的电平将由被短路的列线电平所决定。如果将行线接至单片机的输入端口,列线接至单片机的输出端口,则在单片机的控制下使列线 Y0 为低电平,其余三根列线 Y1、Y2、Y3 均为高电平,然后单片机读输入口状态(即键盘行线状态),若X0、X1、X2、X3 均为高电平,则 Y0 这一列上没有键闭合,如果读出的行线状态不全为高电平,则为低电平的行线和0 相交的键处于闭合状态。如果 Y0 这一列没有键闭合,紧接着使列线 Y1 为低电平,其余列线为高电平,用同样的方法检查 Y1 这一列有无键闭合,如此类推。这种逐行逐列地检查键盘状态的过程称为对键盘的扫描。CPU 对键盘的扫描可以采取程序控制的随机方式,CPU 空闲时才扫描键盘;也可以采取定时控制方式,每隔一段时间,CPU 对键盘扫描一次;还可以采用中断方式,当键盘上有键闭合时,向 CPU 请求中断,CPU 响应键盘发出的中断请求,对键盘进行扫描,以识别哪一个键处于闭合状态,并对键输入信息作相应处理。因为如果采用独立式键盘 PHILIPS AT89C51 的 I/O 口对于方案一来说将是远远不够用的,为了节省 I/O 口,使我们的设计能够顺利进行,我们选用方案二矩阵连接式键盘。为了能够较为简单的编程,和节省 CPU 的资源,我们采用定时扫描,每隔一段时间,CPU对键盘扫描一次,并将键值读入。2.32.3 硬件电路图硬件电路图XTAL218XTAL119ALE30EA31PSEN29RST9P0.0/AD039P0.1/AD138P0.2/AD237P0.3/AD336P0.4/AD435P0.5/AD534P0.6/AD633P0.7/AD732P1.01P1.12P1.23P1.34P1.45P1.56P1.67P1.78P3.0/RXD10P3.1/TXD11P3.2/INT012P3.3/INT113P3.4/T014P3.7/RD17P3.6/WR16P3.5/T115P2.7/A1528P2.0/A821P2.1/A922P2.2/A1023P2.3/A1124P2.4/A1225P2.5/A1326P2.6/A1427U1AT89C510123456789ABCDEFABCDR19.1k三、软件三、软件3.13.1 软件设计基本思想:软件设计基本思想:键盘的不间断扫描。4 个八段数码管的动态显示。方波发生器方波的输出3.23.2 程序框图程序框图产生初值是否有按键按下初始化8 端数码管的显示键值读取键值显示方波显示3.33.3 程序功能程序功能初始化后单片机产生初值,将初值以动态扫描的方式显示于八段数码管 ,同时还对键盘进行实时扫描,在扫描后,单片机读取键值,并将键值通过数码管模块显示出来,方波发生器输出该频率的方波。四、总结四、总结4.1 已达到的成果:硬件电路图和键盘及显示的程序。已达到的成果:硬件电路图和键盘及显示的程序。4.2 未完成的部分:软件关于实行初值计算部分以及仿真。未完成的部分:软件关于实行初值计算部分以及仿真。4.3 设计感悟:这一次课程设计遇到了很多问题。硬件基本上是没设计感悟:这一次课程设计遇到了很多问题。硬件基本上是没有问题的,每个人都会做;但是程序是我们的弱点,还有就是分工有问题的,每个人都会做;但是程序是我们的弱点,还有就是分工合作,很多时候都是有分歧,还好最后还有水兵帮忙,使得我们的合作,很多时候都是有分歧,还好最后还有水兵帮忙,使得我们的程序进一步完善。做完这个程序只是我们学做程序的开始吧,今后程序进一步完善。做完这个程序只是我们学做程序的开始吧,今后会继续加强我们在做程序上的功力。会继续加强我们在做程序上的功力。附录一附录一 程序代码程序代码DISBUF EQU 30H SEGBUF EQU 34H LEDSP EQU 37H HDHZ BIT 20H.1ORG 0000HLJMP MAINORG 001BHLJMP TIMER1ORG 000BHLJMP TIMER0ORG 0030H MAIN: MOV SP,#5FHLCALL SCAN ;跳转到键盘控制电路子程序LCALL FT0TH ;利用频率求初值程序MOV T2CON,#04HMOV TH2,S1MOV TL2,S0MOV RCAP2H,S1MOV RCAP2L,S0SETB ET2SETB EAANL TMOD,#0F0HORL TMOD,#10HMOV TH0,#8AHMOV TL0,#0D0HSETB ET1SETB TR1SETB EA FT0TH: MOV R0,#DIVBUF1 ;|除数赋值 10 进制转换为 16 进制MOV R1,#DIVBUF2 MOV A,R0 ADD A,#3;|53H MOV R0,A MOV R1,#0 INC R1 MOV A,R0 MOV R1,A DEC R0 ;| 52H MOV A,R0MOV B,#10 MUL AB CLR C ADDC A,R1 MOV R1,A DEC R0 ;| 51H MOV A,R0 MOV B,#100 MUL AB ADDC A,R1 MOV R1,A DEC R1 MOV A,R1 ADDC A,B MOV R1,A DEC R0 ;| 50H INC R1 MOV A,R0 MOV B,#10 MUL AB MOV B,#100 MUL AB ADDC A,R1 MOV R1,A DEC R1 MOV A,R1 ADDC A,B MOV R1,A ;| CHOICE:MOVR0,#DIVA MOV R0,#00H;|被除数为 5*105 = 0007A120HINC R0 MOV R0,#07H INC R0 MOV R0, #0A1H INC R0 MOV R0, #20H DIV3216:MOV 40H,#0 ;|除法运算 MOV 41H,#0 MOV R7,#32 ;键盘部分 SCAN:JNB KEYVALED,$CLR KEYVALED LCALL KEYSCAN MOV A,KEYNAME TIMER1:PUSH PSW PUSH AW SETB RS1 CLR RS0 MOV TH1,#8AH MOV TL1,#0D0H MOV P3,#0FH MOV A,P3 ANL A,#0FH CJNE A,#0FH,NEXT21 SETB C JMP NEXT22 NEXT21: CLR C NEXT22: MOV A,KEYSTU RLC A MOV KEYSTU,A ANL A,#07H CJNE A,#2,NEXT23 ANL KEYSTU,#00HJMP EXIT2 NEXT23:CJNE A,#4,NEXT24 SETB KEYVALED JMP EXIT2 NEXT24: CJNE A,#5,EXIT2 ORL KEYSTU,#07H EXIT2: POP ACC POP PWE RETI KEYSCAN: MOV R7,#4 MOV R5,#0 MOV R6,#11110111B OP1: MOV A,R6RL A MOV R6,A MOV P3,A MOV A,P3 ANL A,#0FH RL A,#0FH JNZ NEXT31 INC R5 DJNZ R7,LOOP1 SJMP EXIT3 NEXT31: JNE Acc.0,NEXT32 MOV R4,#0 SJMP NEXT35 NEXT32:JNB Acc.1,NEXT33 MOV R4,#1 SJMP NEXT35 NEXT33:JNB Acc.2,NEXT34 MOV R4,#2 SJ
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号