- 1、本文档共13页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
51单片机报告
实验名称:基于8255的LED显示函数信号发生器设计
一、课题内容和要求
基本要求:
1、用存储器或算法得到信源。
2、用DA转换器输出一函数信号(正弦、方波、三角、锯齿等,频率1000Hz),可以用示波器进行波形观察。
3、用数码管或LCD显示输出参数。
4、用功能键切换各信号的输出。
发挥部分:
1、通过键盘,可修改波的频率。每按一次键,频率值进给或后退1倍,频率范围不限。
2、通过按键可以修改输出波形的幅度。
3、按键时,蜂鸣器发出提示音,表示按键有效。
4、数码管或LCD显示的内容可以用频率值和周期值切换表示。
动态显示格式:
自定
二、总体设计
利用AT89S52单片机采用查表或算法产生三角波、正弦波和方波三种波形,再通过D/A转换器DAC0832将数字信号转换成模拟信号,最终由示波器显示出来,通过键盘来控制三种波形的类型选择、频率变化,最终输出显示各自的频率或者周期值。
单元设计
1、键盘扫描部分
矩阵键盘电路硬件图:
实验中采用8255的PA口和PC口的低四位进行键盘扫描,行由8255的PA0~PA3端口控制,列由8255的PC0~PC3端口控制,其中PA口工作在输出方式,PB口工作在输入方式。当PA0~PA3中一个口输出低电平时,对应的行线上的电平就为0,这是当有键按下时对应的列线上就变为低电平,这时PC口上对应位就可以检测到低电平从而判断是哪个键按下。
键盘扫描程序如下:
SCAN:MOV DPTR,#1FFCH;PA口地址
MOV A,#00H
MOVX @DPTR,A; PA0~PA3输出低电平
INC DPTR;DPTR指向PC口
INC DPTR
MOVX A,@DPTR;读PC口的值
ANL A,#0FH;屏蔽无用位
CJNE A,#0FH,DETAIL;判断是否有低电平
ACALL DELAY1;延时
ACALL DELAY1
AJMP SCAN;无键按下则继续扫描
DETAIL:ACALL DELAY1;消抖动
ACALL DELAY1
MOV DPTR,#1FFCH;再判断是否有键按下
MOV A,#00H
MOVX @DPTR,A
INC DPTR
INC DPTR
MOVX A,@DPTR
ANL A,#0FH
CJNE A,#0FH,CONTINUE;有键按下则做进一步的判断
AJMP SCAN;无键按下继续扫描
CONTINUE:CLR EA;有键按下驱动蜂鸣器
SETB P1.7
ACALL DELAY2
CLR P1.7
SETB EA
MOV R4,#02H;扫描行数送入R4中
MOV A,#0FEH
LINE:MOV DPTR,#1FFCH
MOV R2,A;行号送R2
MOVX @DPTR,A;置PA0为低电平
INC DPTR
INC DPTR
MOVX A,@DPTR
ANL A,#0FH
CJNE A,#0FH,FIND;判断第一行是否有键按下
MOV A,R2
RL A
DJNZ R4,LINE
SJMP SCAN;无键按下继续扫描
FIND:MOV R3,A列号存入R3中
MOV A,R2
CJNE A,#0FEH,LINE2;判断是否是第一行有键按下
LINE1:MOV A,R3;第一行有键按下
CJNE A,#0EH,L1R2;判断是哪个按键按下
L1R1:MOV R0,#01H;有波形键按下键按下
MOV R1,#01H;波形标志1
MOV R7,#00H
CLR TR1
CLR TR0
SETB TR0
SJMP SCAN
L1R2:CJNE A,#0DH,L1R3
MOV R0,#01H;有波形键按下键按下
MOV R1,#02H;方波标志
MOV R7,#00H
CLR TR0
CLR TR1
SETB TR1
SJMP SCAN
L1R3:MOV R0,#01H;有波形键按下键按下
MOV R1,#03H;三角波标志
MOV R7,#00H
CLR TR1
CLR TR0
SETB TR0
AJMP SCAN
LINE2:MOV A,R3;第二行有键按下
文档评论(0)