




已阅读5页,还剩40页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
单片机课程设计说明书 第 I 页 共 I 页目 录 1 绪论11.1 课题背景及意义11.2 课题设计任务 22 总体方案论证 32.1 基于ZLG7290键盘显示系统设计 32.2 信号发生器的方案设计 33 硬件电路设计 43.1 ZLG7290键盘显示系统设计 53.2 信号发生器的硬件设计 74 软件部分设计 84.1 ZLG7290键盘显示软件设计 94.2 信号发生器软件设计 205 实验结果及分析 325.1 实验步骤 325.2 实验结果 33设计心得 41参考文献 42附录 整体电路图 43 单片机课程设计说明书 第 44 页 共 43 页1 绪论 单片机,采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU、随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计时器等功能集成到一块硅片上构成的一个小而完善的微型计算机系统,在工业控制领域的广泛应用。从早期的4位、8位、16位单片机发展到现在的32位、64位等具备更高处理能力的单片机。ZLG7290键盘/LED驱动器是周立功公司针对仪器仪表行业的需要自行研制的一款芯片。该芯片能自动完成8位LED数码管的动态扫描和(最多)64按键检测扫描,大大减轻单片机的用于显示/键盘的工作时间和程序负担,可使集中资源用于信号的检测和控制。信号发生器是指产生所需参数的电测试信号的仪器。按信号波形可分为正弦信号、函数(波形)信号、脉冲信号和随机信号发生器等四大类。信号发生器又称信号源或振荡器,在生产实践和科技领域中有着广泛的应用。各种波形曲线均可以用三角函数方程式来表示。能够产生多种波形,如三角波、锯齿波、矩形波(含方波)、正弦波的电路被称为函数信号发生器。1.1 课题背景及意义 课程设计是培养学生综合运用所学的知识的重要环节。本课程设计的时间安排在大四上学期,也就是接近毕业的时候了,通过这次为期两周的课程设计,我们能够更多的学习到单片机的相关内容。从设计中,我们能够发现,提出,分析和解决问题,锻炼实践能力,这是对学生实际工作能力的具体训练和考察过程。随着科技发展的日新月异,单片机已经成为当今计算机应用中空前活跃的领域,在生活中可以说是无处不在。因此作为二十一世纪的大学生来说,掌握单片机的开发技术是十分重要的。1.2 课题设计任务1.2.1 基于7290的键盘显示设计设计内容:利用51单片机,7290接口芯片设计一个键盘显示系统,要求8位显示,16个按键,通过汇编语言定义每个按键的功能,并显示出结果。设计要求:熟练掌握I2C总线的控制,灵活运用I2C主控器软件包,ZLG7290键盘LED控制的各种功能。实验设备及器件:IBM PC 机 一台 DP-51PROC 单片机综合仿真实验仪 一台1.2.2 信号发生器的设计设计内容:利用51单片机,DAC0832转换芯片,键盘显示系统,LM324运算放大器,设计一个信号发生器,可以产生正弦波,三角波,方波,锯齿波,通过键盘控制,用汇编语言设计。设计要求:理解掌握DAC0832的D/A转换器原理和并行D/A转换器接口的编写方法,学会使用DAC0832并行数/模转换器实现电压信号采集的方案设计。设计设备及器件:IBM PC 机 一台 DP-51PROC 单片机综合仿真实验仪 一台 DAC0832 PARK模块 一块 示波器 一台2 总体方案论证2.1 基于ZLG7290的键盘显示系统设计ZLG7290的核心是一块ZLG7290B芯片,它采用I2C接口,能直接驱动8位共阴式数码管,同时可扫描管理多达64只按键,实现人机对话的功能资源十分丰富。除具有自动消除抖动功能外,它还具有段闪烁、段点亮、段熄灭、功能键、连击键计数等强大功能,并可提供10种数字和21种字母的译码显示功能,用户可以直接向显示缓存写入显示数据,而且无需外接元件即可直接驱动数码管,还可扩展驱动电压和电流。此外,ZLG7290B的电路简单,使用也很方便。按要求设计系统框图如图2.1所示: 晶振 89C51 ZLG7290 复位电路 显示 电源 图2.1 ZLG7290键盘显示系统框图2.2 信号发生器的系统方案设计 本设计就是在基于51单片机和ZLG7290芯片的基础上完成一个可以产生正弦波,三角波,方波,锯齿波的信号发生器的设计,系统框图就是在ZLG7290键盘显示系统框图的基础上加上DAC0832模块。信号发生器的系统框图如图2.2所示: 晶振 89C51 ZLG7290 复位电路 显示 电源 DAC0832图2.2信号发生器的系统框图3 硬件电路设计31 ZLG7290键盘显示系统设计ZLG7290能够直接驱动8 位共阴式数码管(或64 只独立的LED),同时还可以扫描管理多达64 只按键。其中有8 只按键还可以作为功能键使用,就像电脑键盘上的Ctrl、Shift、Alt 键一样。另外ZLG7290B 内部还设置有连击计数器,能够使某键按下后不松手而连续有效。采用I2C 总线方式,与微控制器的接口仅需两根信号线。可控扫描位数,可控任一数码管闪烁。3.1.1 ZLG7290芯片 ZLG7290的核心是一块ZLG7290B芯片,它采用I2C接口,能直接驱动8位共阴式数码管,同时可扫描管理多达64只按键,实现人机对话的功能资源十分丰富。除具有自动消除抖动功能外,它还具有段闪烁、段点亮、段熄灭、功能键、连击键计数等强大功能,并可提供10种数字和21种字母的译码显示功能,用户可以直接向显示缓存写入显示数据,而且无需外接元件即可直接驱动数码管,还可扩展驱动电压和电流。此外,ZLG7290B的电路简单,使用也很方便。 ZLG7290键盘显示系统原理图如图3.1所示图3.1 ZLG7290键盘显示系统原理图3.1.2 LED数码管 当数码管特定的段加上电压后,这些特定的段就会发亮,以形成我们眼睛看到的字样了。如:显示一个“2”字,那么应当是a亮b亮g亮e亮d亮f不亮c不亮dp不亮。发光二极管的阳极连接到一起连接到电源正极的称为共阳数码管,发光二极管的阴极连接到一起连接到电源负极的称为共阴数码管。常用LED数码管显示的数字和字符是0、1、2、3、4、5、6、7、8、9、A、B、C、D、E、F。数码管原理图如3.2所示:图3.2 数码管原理图3.1.3 键盘系统键盘有如下几个基本功能:(1)键盘去抖动处理:做去抖动处理是为了不引起按键盘命令错误,以便读取稳定的键盘状态。(2)双键互锁处理:当有两个按键同时按下时,ZLG7290只采样优先级高的按键。(3)连击处理:当按下某个按键时,输出一次键值后,如果该按键还未释放,该键值连续有效。(4)功能键处理:功能键实现2个以上按键同时按下来扩展按键数目或实现特殊功能。键盘的原理图如图3.3所示:图3.3 键盘原理图 3.2 信号发生器的硬件设计3.2.1 DAC0832芯片 DAC0832是采样频率为八位的D/A转换芯片,集成电路内有两级输入寄存器,使DAC0832芯片具备双缓冲、单缓冲和直通三种输入方式,以便适于各种电路的需要(如要求多路D/A异步输入、同步转换等),所以这个芯片的应用很广泛。D/A转换结果采用电流形式输出。若需要相应的模拟电压信号,可通过一个高输入阻抗的线性运算放大器实现。运放的反馈电阻可通过RFB端引用片内固有电阻,也可外接。DAC0832逻辑输入满足TTL电平,可直接与TTL电路或微机电路连接。4 软件部分设计4.1 ZLG7290键盘显示软件设计4.1.1 ZLG7290键盘显示流程图 设置P1口为准双向口 向ZLG7290送入显示初值 有键按下否 否 是 为功能键否 是 使8个数码管同时闪烁否 读出键值 数码管显示左移2位 将键值输出到数码管并使其闪烁4.1.2 ZLG7290键盘显示程序ZLG7290键盘显示程序清单:SDABIT P1.7SCL BIT P1.6RST BIT P1.0KEY_INT BIT P3.2MTD EQU 40HMRD EQU 49HZLG7290 EQU 70HACK BIT 10HSLA DATA 50HSUBA DATA 51HNUMBYTE DATA 52HORG0000HLJMPMAINORG0100HMAIN:MOVSP,#70HCLR RSTLCALLDELAYSETBRSTLCALDELAYMAIN1:MOV R4,#67HMOVR7,#08HMAINLOOP:JNBKEY_INT,KEY_HANDLESJMPMAINLOOPKEY_HANDLE:MOVSLA,#ZLG7290MOVSUBA,#01HMOVNUMBYTE,#01HLCALLIRDNBYTELCALLDELAYHANDLELOOP:MOVA,R4MOVMTD,APUSH ACCMOVA,MRDCJNZA,#10H,NEXTMOVMRD,#0HNEXT:MOVMTD+1,MRDMOVSLA,#ZLG7290MOVSUBA,#07HMOVNUMBYTE,#02HLCALLIWRNBYTELCALLDELAYPOP ACCDECR4DJNZ R7,MAINLOOPSJMP MAIN1DELAY:MOVR5,#50HDELAY1:MOVR6,#0FFHDJNZR6,$DJNZR5,DELAY1RETSTART:SETBSDANOPSETBSCLACALLWAITCLR SDAACALLWAITCLRSCLNOPRETSTOP: CLRSDANOPSETBSCLACALLWAITSETBSDAACALLWAITRETMACK:CLRSDANOPNOPSETBSCLACALLWAITCLRSCLRETMNACK:SETBSDANOPNOPSETBSCLACALLWAITCLRSCLNOPNOPRETCACK:SETBSDANOPNOPSETBSCLCLRACKNOPNOPMOVC,SDAJCCENDSETBACKCEND:NOPCLRSCLNOPRETWRBYTE:MOVR0,#08HWLP:RLCAJCWR1SJMPWR0WR1:SETBSDANOPSETBSCLACALLWAITCLRSCLSJMPWLP1WR0:CLRSDANOPSETBSCL ACALLWAITCLRSCLWLP1:DJNZR0,WLPNOPRETRDBYTE:MOVR0,#08HRLP:SETBSDAACALLWAITSETBSCLACALLWAITMOVC,SDAMOVA,R2CLRSCLRLCAMOVR2,AACALLWAITDJNZR0,RLPRETIWRNBYTE:MOVA,NUMBYTEMOVR3,ALCALLSTARTMOVA,SLALCALLWRBYTELCALLCACKJNBACK,RETWRNMOVA,SUBALCALLWRBYTELCALLCACKMOVR1,#MTDWRDA:MOVA,R1LCALLWRBYTELCALLCACKJNBACK,IWRNBYTEINCR1DJNZR3,WRDARETWRN:LCALL STOPRETIRDNBYTE:MOVR3,NUMBYTELCALLSTARTMOVA,SLALCALLWRBYTELCALLCACKJNBACK,RETRDNMOVA,SUBALCALLWRBYTELCALLCACKLCALLSTARTMOVA,SLAINCALCALLWRBYTELCALLCACKJNBACK,IRDNBYTEMOVR1,#MRDRDN1:LCALLRDBYTEMOVR1,ADJNZR3,SACKLCALLMNACKRETRDN:LCALLSTOPRETSACK:LCALLMACKINCR1SJMPRDN1WAIT:NOPNOPNOPNOPNOPRETEND4.1.2 学号程序(02040221)SDABIT P1.7 SCLBIT P1.6 RSTBIT P1.0 KEY_INTBIT P3.2 MTD EQU 40H MRD EQU 49H ZLG7290EQU 70H ACKBIT 10H SLADATA50H SUBADATA51H NUMBYTEDATA52H ORG0000H LJMPMAIN ORG0100HMAIN: MOVSP,#70H CLRRST LCALLDELAY SETBRST LCALLDELAYMAIN1: MOVR4,#67H MOVR7,#08H MOVR2,#0H CLRRST LCALLDELAY SETBRSTLOOP: MOVSLA,#ZLG7290 MOV SUBA,#07H MOV NUMBYTE,#02H MOVMTD,R4 MOVA, R2 MOVDPTR,#DISWORD MOVCA,A+DPTR MOVMTD+1,A LCALLIWRNBYTE LCALLDELAY LCALLDELAY LCALLDELAY INCR2 DECR4 DJNZR7,LOOP LCALLDELAY LCALLDELAYLCALLDELAY LCALLDELAY LCALL DELAY LCALLDELAYHERE: SJMP$START: SETBSDANOPSETBSCL ACALLWAITCLRSDA ACALLWAITCLRSCL NOP RETSTOP: CLRSDANOPSETB SCL ACALLWAITSETBSDA ACALLWAITRETCACK: SETBSDAACALLWAITSETBSCLCLRACKACALLWAIT MOVC,SDAJCCENDSETBACK CEND: NOPCLRSCLNOPRETWRBYTE: MOVR0,#08HWLP: RLCA JCWR1SJMPWR0 WR1: SETBSDA NOPSETBSCLACALLWAIT CLRSCLSJMPWLP1WR0: CLRSDA NOPSETBSCLACALLWAITCLRSCLWLP1: DJNZ R0,WLPNOPRETIWRNBYTE: MOV A,NUMBYTEMOVR3,ALCALLSTART MOVA,SLALCALLWRBYTE LCALLCACKJNBACK,IWRNBYTE MOVA,SUBA LCALLWRBYTELCALLCACKMOVR1,#MTDWRDA: MOVA,R1LCALLWRBYTE LCALLCACKJNBACK,IWRNBYTEINCR1DJNZR3,WRDA RETWRN: LCALLSTOPRETDELAY: MOVR5,#50HDELAY1:MOVR6,#0FFH DJNZR6,$ DJNZR5,DELAY1RETWAIT: MOV R5,#08H DJNZR5, $ RETDISWORD: DB 00H,02H,00H,04H,00H,02H,02H,01H END4.2 信号发生器软件设计信号发生器程序清单: SDA BIT P1.7 ;I2C总线定义 SCL BIT P1.6 RST BIT P1.0 KEY_INT BIT P3.2 MTD EQU 40H ;发送数据缓冲器 MRD EQU 49H ;接受数据缓冲区 ;定义器件地址 ZLG7290 EQU 70H ;ZLG7290的器件地址 ACK BIT 10H ;应答标志位 SLA DATA 50H ;器件的从地址 SUBA DATA 51H ;器件的子地址 NUMBYTE DATA 52H ;读/写的字节数变量 ORG 0000H LJMP MAIN ORG 0100H;主程序如下: MAIN: MOV SP,#70H ;定义指针地址 CLR RST LCALL DELAY ;调用延时程序 SETB RST ;发送1 LCALL DELAY MAINLOOP: MOV R0,#0 ;R0初始值 JNB KEY_INT,KEY_HANDLE SJMP MAINLOOP KEY_HANDLE: LCALL DELAY LCALL DELAY INC R0 JISHU: JNB KEY_INT,PANDUAN LCALL DELAY LCALL DELAY INC R0 PANDUAN: LCALL DELAY LCALL DELAY JB KEY_INT,MAINA ;是1跳转到MAINA SJMP JISHUMAINA: CJNE R0,#1,MAINA1 ;R0是1执行FANGBO, 否则执行MAINA1 SJMP FANGBO MAINA1: CJNE R0,#2,MAINA2 ;R0是2执行JUCHI SJMP JUCHI MAINA2: CJNE R0,#3,MAINA3 SJMP SANJIAO MAINA3: CJNE R0,#4,MAINA4 SJMP ZHENGXIAN MAINA4: CJNE R0,#5,MAINLOOP SJMP TIXING;方波 FANGBO: LJMP LJ F1: MOV DPTR,#7FFFH ;指向0832 MOV A,#255 MOVX DPTR,A ;高电平 LCALL DELAY11 LCALL DELAY11 LCALL DELAY11 MOV A,#0 MOVX DPTR,A ;低电平 LCALL DELAY11 LCALL DELAY11 LCALL DELAY11 JNB KEY_INT,KEY_HANDLE AJMP F1 ;重复上述过程,形成连续方波;锯齿波JUCHI: LJMP LJF2: MOV DPTR,#7FFFH ;指向0832AA4: MOV A,#0AA5: MOVX DPTR,A ;向DAC送锯齿波最小值0 INC A ;加1 CJNE A,#255,AA5 ;循环256次,形成锯齿波的上升沿 JNB KEY_INT,KEY_HANDLE SJMP AA4;三角波SANJIAO: LJMP LJF3: MOV DPTR,#7FFFH ;指向0832AA6: MOV A,#0AA7: MOVX DPTR,A ;向DAC送最小值0 INC A ;加1CJNE A,#255,AA7 ;循环256次,形成上升沿AA8: MOVX DPTR,ADEC A ;递减,形成下降沿CJNE A,#0,AA8JNB KEY_INT,KEY_HANDLESJMP AA6;正弦波ZHENGXIAN: LJMP LJF4: MOV SP,#70H MOV DPTR,#7FFFH MOV A,#0H MOV R1,00H MOV R2,#20 AA9: MOV DPTR,#0800H MOVC A,A+DPTR MOV DPTR,#7FFFH MOVX DPTR,A ACALL DELAYA INC R1 MOV A,R1JNB KEY_INT,AAAA SJMP AA9;梯形波TIXING: LJMP LJF5: MOV DPTR,#7FFFH ;指向0832A6: MOV A,#0A7: MOVX DPTR,A ;向DAC送最小值0INC A ;加1CJNE A,#255,A7 ;循环256次,形成上升沿 LCALL DELAY11 LCALL DELAY11 LCALL DELAY11A8: MOVX DPTR,ADEC A ;递减,形成下降沿CJNE A,#0,A8 LCALL DELAY11 LCALL DELAY11 LCALL DELAY11JNB KEY_INT,AAAASJMP A6 AAAA:MOV R0,#1 LJMP JISHU DELAYA: MOV R2,#20H DELAYA1: NOP NOP DJNZ R2,DELAYA1 RETORG 0800H DB 127,130,133,136,139,142,145,148 DB 151,154,157,160,163,166,169,172 DB 175,178,181,184,186,189,192,194 DB 197,200,202,205,207,209,212,214 DB 216,218,221,223,225,227,229,230 DB 232,234,235,237,239,240,241,243 DB 244,245,246,247,248,249,250,250 DB 251,252,252,253,253,253,253,253 DB 254,253,253,253,253,253,252,252 DB 251,250,250,249,248,247,246,245 DB 244,243,241,240,239,237,235,234 DB 232,230,229,227,225,223,221,218 DB 216,214,212,209,207,205,202,200 DB 197,194,192,189,186,184,181,178 DB 175,172,169,166,163,160,157,154 DB 151,148,145,142,139,136,133,130 DB 127,123,120,117,114,111,108,105 DB 102,99,96,93,90,87,84,81 DB 78,75,72,69,67,64,61,59 DB 56,53,51,48,46,44,41,39 DB 37,35,32,30,28,26,24,23 DB 21,19,18,16,14,13,12,10 DB 9,8,7,6,5,4,3,3 DB 2,1,1,0,0,0,0,0 DB 0,0,0,0,0,0,1,1 DB 2,3,3,4,5,6,7,8 DB 9,10,12,13,14,16,18,19 DB 21,23,24,26,28,30,32,35 DB 37,39,41,44,46,48,51,53 DB 56,59,61,64,67,69,72,75 DB 78,81,84,87,90,93,96,99 DB 102,105,108,111,114,117,120;延时程序DELAY: MOV R5,#50HDELAY1: MOV R6,0FFH DJNZ R6,$ DJNZ R5,DELAY1 RETDELAY11: MOV R2,#40hDELAY111: NOP NOP DJNZ R2,DELAY111 RET;显示程序;主程序LJ: MOV SP,#70H CLR RST LCALL DELAY SETB RST LCALL DELAYMAIN1:MOV R4,#69H MOV R7,#0AH MOV R2,#0H CLR RST LCALL DELAY SETB RSTLOOP: MOV SLA,#ZLG7290 ;指定器件地址 MOV SUBA,#07H ;指定子地址 MOV NUMBYTE,#02H ;发送2字节数据 LCALL IWRNBYTE ;调用写2字节数据程序 LCALL DELAY POP ACC DEC R4 DJNZ R7,LOOPTY: CJNE R0,#1,TY1 LJMP F1TY1: CJNE R0,#2,TY2 LJMP F2TY2: CJNE R0,#3,TY3 LJMP F3TY3: CJNE R0,#4,TY4 LJMP F4TY4: CJNE R0,#5,TY5 LJMP F5TY5: LJMP MAINLOOPSTART:SETB SDA NOP SETB SCL ;起始条件建立时间大于4.7us ACALL WAIT CLR SDA ACALL WAIT CLR SCL ;钳位总线,准备发数据 NOP RET;结束总线子程序STOP: CLR SDA NOP SETB SCL ;发送结束条件的时钟信号 ACALL WAIT SETB SDA ;结束总线 ACALL WAIT RET;检查应答位子程序;返回值,ACK=1时表示有应答CACK: SETB SDA ACALL WAIT SETB SCL CLR ACK ACALL WAIT MOV C,SDA JC CEND SETB ACK ;判断应答位CEND: NOP CLR SCL NOP RET;发送字节子程序;字节数据放入ACC ;每发送一个字节要调用一次CACK子程序,去应答位WRBYTE: MOV R5,#08HWLP: RLC A ;取数据
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 纸的发明与文化传播教学教案:初中历史课程
- 上海华二附中高一(下)期末数学试题及答案
- 2022学年上海进才中学高一(下)期末政治试题及答案
- 2021学年上海控江中学高一(下)期中语文试题及答案
- 百年孤独的经典名句解读:文学鉴赏教学教案
- 英语现在完成时态结构与应用实例讲解教案
- 夏日海滩的回忆抒情类作文13篇
- 公交公司比赛活动方案
- 公交职工互助活动方案
- 公众号元旦活动方案
- 丝网除沫器小计算
- 制钵机的设计(机械CAD图纸)
- 《土木工程生产实习报告》
- 11分泌性中耳炎学习课程
- 明基逐鹿eHR白皮书(DOC 30页)
- 三年级下册美术课件-第15课色彩拼贴画|湘美版(共11张PPT)
- 水稻病虫统防统治工作总结
- 水在不同温度下的折射率、粘度和介电常数
- 四柱特高弟子班绝密资料——席学易
- 呼吸机基础知识最终版
- 广安市教育局文件材料归档范围及保管期限表
评论
0/150
提交评论