版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、摘要本实验是基于philips at89c51 单片机所设计的,可以实现键位与数字动态显示的一种频率可调方波发生器。通过键盘键入(10hz-9999hz)随机频率,使用七段数码管显示,每一个数码管对应一个键位。单片机对各个键位进行扫描,确定键位的输入,然后数码管显示输入的数值,方波发生器输出以数码管显示的数值为频率的方波。关键词:单片机 七段数码管 键盘电路 频率可调方波发生器一、目的和功能1.1 目的:设计一种频率范围限定且可调的方波发生器,志在产生特定频率的方波。1.2功能:假设键盘是4*4的键盘,当键盘输入范围在10hz-9999hz的数字,单片机控制数码管显示该数值,并把该数值当做方波
2、发生器的输入频率,单片机控制该方波发生器以该数值作为频率显示方波,从而得到我们想要频率的方波。二、硬件设计2.1 硬件设计思想键盘的数字和键位关系固定,通过键盘输入产生频率,通过led数码管显示出来,每一个数码管对应一个键位。基本设备是基于philips at89c51单片机,外围设备采用的是4个七段数码管,philips at89c51单片机,1个oscilloscope 方波发生器,16个button,若干电阻,电源电池。2.2 部分硬件方案论述2.2.1 七段数码管扫描显示方式的方案比较方案一: 静态显示方式:静态显示方式是指当显示器显示某一字符时,七段数码管的每段发光二极管的位选始终被
3、选中。在这种显示方式下,每一个led数码管显示器都需要一个8位的输出口进行控制。静态显示主要的优点是显示稳定,在发光二极管导通电流一定的情况下显示器的亮度大,系统运行过程中,在需要更新显示内容时,cpu才去执行显示更新子程序,这样既节约了cpu的时间,又提高了cpu的工作效率。其不足之处是占用硬件资源较多,每个led数码管需要独占8条输出线。随着显示器位数的增加,需要的i/o口线也将增加。方案二: 动态显示方式:动态显示方式是指一位一位地轮流点亮每位显示器(称为扫描),即每个数码管的位选被轮流选中,多个数码管公用一组段选,段选数据仅对位选选中的数码管有效。对于每一位显示器来说,每隔一段时间点亮
4、一次。显示器的亮度既与导通电流有关,也与点亮时间和间隔时间的比例有关。通过调整电流和时间参数,可以既保证亮度,又保证显示。若显示器的位数不大于8位,则显示器的公共端只需一个8位i/o口进行动态扫描(称为扫描口),控制每位显示器所显示的字形也需一个8位口(称为段码输出)。动态显示器的优点是节省硬件资源,成本较低。但在控制系统运行过程中,要保证显示器正常显示,cpu必需每隔一段时间执行一次显示子程序,占用cpu大量时间,降低了cpu的工作效率,同时显示亮度较静态显示器低。由于philips at89c51单片机本身提供的i/o口有限,因此我们选择方案二动态扫描方式。扫描方式中在轮流点亮扫描过程中,
5、每位显示器的点亮时间是极为短暂的约1ms,但由于人的视觉暂留现象及发光二极管的余辉效应,尽管实际上各位显示器并非同时点亮,但只要扫描的速度足够快,给人的印象就是一组稳定的显示数据,不会有闪烁感。节约了电能,节省 了i/o口。2.2.2 键盘连接方式方案比较方案一:独立式键盘一个具有4个按键的独立式键盘,每一个按键的一端都接地,另一端接mega16的i/o口。独立式键盘每一按键都需要一根i/o线,占用mega16的硬件资源较多。因此独立式键盘只适合按键较少的场合。键盘是一组按键或开关的集合,键盘接口向计算机提供被按键的代码。特点:使用方便、结构复杂、成本高。方案二:矩阵式键盘我们采用44矩阵式键
6、盘,键盘的行线x0x3通过电阻接+5v,当键盘没有键闭合时,所有的行线和列线断开,行线x0x3均呈高电平。当键盘上某一键闭合时,该键所对应的行线与列线短路,此时该行线的电平将由被短路的列线电平所决定。如果将行线接至单片机的输入端口,列线接至单片机的输出端口,则在单片机的控制下使列线y0为低电平,其余三根列线y1、y2、y3均为高电平,然后单片机读输入口状态(即键盘行线状态),若x0、x1、x2、x3均为高电平,则y0这一列上没有键闭合,如果读出的行线状态不全为高电平,则为低电平的行线和0相交的键处于闭合状态。如果y0这一列没有键闭合,紧接着使列线y1为低电平,其余列线为高电平,用同样的方法检查
7、y1这一列有无键闭合,如此类推。这种逐行逐列地检查键盘状态的过程称为对键盘的扫描。cpu对键盘的扫描可以采取程序控制的随机方式,cpu空闲时才扫描键盘;也可以采取定时控制方式,每隔一段时间,cpu对键盘扫描一次;还可以采用中断方式,当键盘上有键闭合时,向cpu请求中断,cpu响应键盘发出的中断请求,对键盘进行扫描,以识别哪一个键处于闭合状态,并对键输入信息作相应处理。因为如果采用独立式键盘philips at89c51的i/o口对于方案一来说将是远远不够用的,为了节省i/o口,使我们的设计能够顺利进行,我们选用方案二矩阵连接式键盘。为了能够较为简单的编程,和节省cpu的资源,我们采用定时扫描,
8、每隔一段时间,cpu对键盘扫描一次,并将键值读入。2.3 硬件电路图三、软件3.1 软件设计基本思想:键盘的不间断扫描。4个八段数码管的动态显示。方波发生器方波的输出3.2 程序框图产生初值是否有按键按下初始化8端数码管的显示键值读取键值显示方波显示3.3 程序功能初始化后单片机产生初值,将初值以动态扫描的方式显示于八段数码管 ,同时还对键盘进行实时扫描,在扫描后,单片机读取键值,并将键值通过数码管模块显示出来,方波发生器输出该频率的方波。四、总结4.1 已达到的成果:硬件电路图和键盘及显示的程序。4.2 未完成的部分:软件关于实行初值计算部分以及仿真。4.3 设计感悟:这一次课程设计遇到了很
9、多问题。硬件基本上是没有问题的,每个人都会做;但是程序是我们的弱点,还有就是分工合作,很多时候都是有分歧,还好最后还有水兵帮忙,使得我们的程序进一步完善。做完这个程序只是我们学做程序的开始吧,今后会继续加强我们在做程序上的功力。附录一 程序代码disbuf equ 30hsegbuf equ 34hledsp equ 37hhdhz bit 20h.1 org 0000h ljmp main org 001bh ljmp timer1 org 000bh ljmp timer0 org 0030hmain: mov sp,#5fh lcall scan ;跳转到键盘控制电路子程序 lcall
10、ft0th ;利用频率求初值程序 mov t2con,#04h mov th2,s1 mov tl2,s0 mov rcap2h,s1 mov rcap2l,s0 setb et2 setb ea anl tmod,#0f0h orl tmod,#10h mov th0,#8ah mov tl0,#0d0h setb et1 setb tr1 setb eaft0th: mov r0,#divbuf1 ;|除数赋值 10进制转换为16进制 mov r1,#divbuf2mov a,r0add a,#3;|53hmov r0,amov r1,#0inc r1mov a,r0mov r1,adec
11、 r0 ;| 52hmov a,r0mov b,#10mul abclr caddc a,r1mov r1,adec r0 ;| 51hmov a,r0mov b,#100mul abaddc a,r1mov r1,adec r1mov a,r1addc a,bmov r1,adec r0 ;| 50hinc r1mov a,r0mov b,#10mul abmov b,#100mul abaddc a,r1mov r1,adec r1mov a,r1addc a,bmov r1,a ;|choice:movr0,#divamov r0,#00h;|被除数为5*105 = 0007a120h
12、inc r0mov r0,#07hinc r0mov r0, #0a1hinc r0mov r0, #20hdiv3216:mov 40h,#0 ;|除法运算mov 41h,#0mov r7,#32;键盘部分scan: jnb keyvaled,$clr keyvaledlcall keyscanmov a,keynametimer1:push pswpush awsetb rs1clr rs0mov th1,#8ahmov tl1,#0d0hmov p3,#0fhmov a,p3anl a,#0fhcjne a,#0fh,next21setb cjmp next22next21:clr cn
13、ext22:mov a,keysturlc a mov keystu,aanl a,#07hcjne a,#2,next23anl keystu,#00h jmp exit2next23: cjne a,#4,next24setb keyvaledjmp exit2next24:cjne a,#5,exit2orl keystu,#07hexit2:pop accpop pweretikeyscan:mov r7,#4mov r5,#0mov r6,#11110111bop1:mov a,r6rl a mov r6,amov p3,amov a,p3anl a,#0fhrl a,#0fhjnz
14、 next31inc r5djnz r7,loop1sjmp exit3next31:jne acc.0,next32mov r4,#0sjmp next35next32:jnb acc.1,next33mov r4,#1sjmp next35next33:jnb acc.2,next34mov r4,#2sjmp next35next 34:mov r4,#3next35:mov a,r4rl a rl aadd a,r5mov dptp,#keytabmovc a,a+dptpmov keyname,aexit3:retdisplay:mov ledsp,#00hlcall bin t0b
15、cdlcall bcd t0segljmp looptime r0:push pswpush accsetb rs0clr rs1mov th0,#0e4amov tl0,#0a8hmov a.cedspanl a,#04hcjne a,#0,next11mov p2,#00001d00badd a#segbufmov r0,amov p0,amov p0,r0cjmp exit1next11:cjne a,#2,next12mov p2,#00000100badd a,#segbufmov r0,amov p0,r0lkmp exit1next12:cjne a,#1,next13mov p2,#00000010badd a,#segbufmov r0,amov p0,r0ljmp exit1next13:mov p2,300000001bad a,#segbufmov r0,amov p0,r0exit1:inc ledspmov a,ledspanl a,#01acjne a,#04a,belowbelow:jc retunmov ledsp,#00hreturn:pop accpop pswretibin t0bcd:mov r0,3disbuf+3mov a,keynamemov b,#10
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 春天的押韵诗句
- 2025版高考物理二轮复习 素养培优5 带电粒子在三维空间中的运动
- 辽宁省沈阳市部分学校2024-2025学年上学期第二次月考九年级数学试题(含简要答案)
- 《销售模式及案例》课件
- 叶东-危机公关及经典案例分析
- 在2024年省委组织部干部教育培训提质增效专项调研座谈会上的汇报发言
- 巡视检查监理记录
- 2025届高考语用复习:语言得体
- 《梁的应力计算》课件
- 教学课件-传统文化素养专题突破
- 公司报案的委托书(5篇)
- 基于人工智能的健身应用程序的隐私保护与数据安全
- 2024年中国中煤招聘笔试参考题库含答案解析
- 铅锌矿选矿过程中的渣滓处理与利用
- 大学生职业生涯规划舞蹈学专业
- 幼儿园课件:手机本领大-大班-社会
- 幼儿园装修设计的尺寸说明
- 学生公寓的工作总结
- 某工程管理咨询公司职位体系咨询报告
- 厦门大学2022年826物理化学考研真题(含答案)
- 《杵针疗法技术操作规范》编制说明
评论
0/150
提交评论