南昌大学单片机课程设计.doc

上传人:罗晋 文档编号:7208139 上传时间:2020-11-06 格式:DOC 页数:21 大小:550.01KB
返回 下载 相关 举报
南昌大学单片机课程设计.doc_第1页
第1页 / 共21页
南昌大学单片机课程设计.doc_第2页
第2页 / 共21页
南昌大学单片机课程设计.doc_第3页
第3页 / 共21页
南昌大学单片机课程设计.doc_第4页
第4页 / 共21页
南昌大学单片机课程设计.doc_第5页
第5页 / 共21页
点击查看更多>>
资源描述

《南昌大学单片机课程设计.doc》由会员分享,可在线阅读,更多相关《南昌大学单片机课程设计.doc(21页珍藏版)》请在三一文库上搜索。

1、课程设计任务书课程名称: 微机原理与接口技术 题 目: B5901112154型单片机系统的设计 学 院: 机电工程学院 系: 机电工程系 专 业: 机械设计制造及其自动化 班 级: 机制124班 学 号: 5901112154 学生姓名: 起讫日期: 6.16-6.23 指导教师: 胡瑢华 系分管主任: 审核日期: 说 明打开上面的protus软件可以看到完整的电路图1、课程设计任务书由指导教师填写,并经学院审定后下达给学生。2、进度表是课程设计工作检查的主要依据。3、学生根据指导教师下达的任务书,独立完成课程设计。4、本任务书在课程设计完成后,与说明书、电路原理图和程序清单等资料一并上交指

2、导教师,作为课程设计的主要档案资料。一、课程设计的要求和内容(包括原始数据、技术要求、工作要求)1、工作要求单片机系统在各行各业自动控制领域的应用越来越广泛。微机原理与接口技术课程设计实践教学环节要求同学们针对实际需求,灵活应用所学知识,独立进行系统综合设计,以达到巩固单片机基础知识、掌握单片机系统开发过程和提高动手实践能力的目的。2、技术要求每位学生应独立完整地设计一套单片机系统。该系统CPU采用AT89S51芯片,晶振为12MHz。硬件模块可包括:a)显示模块,采用串行口串接74HC164芯片控制5个7段数码管;b)键盘模块,采用2X2行列键盘;c)声音控制模块,采用蜂鸣器发声;d)A/D

3、采集模块,采用ADC0809采集电位计的电压值;e)D/A输出模块,采用DAC0832输出某种波形。要求实现以下功能:(1)系统上电后,按照从下进入,在数码管上显示学号的后五位12154。(2)查询键盘,当用户按1至4号键时在数码管上显示相应数值(例如按1键数码管显示5个1,以此类推),同时伴随蜂鸣器响(只要按键处于按下的状态蜂鸣器就响,按多久就响多久,按键弹起后终止)。需编制键盘去抖动程序(按键中断接INT0,行线接P1.1,P1.2,列线接P1.5,P1.6)。(3)按键长按(超过1.5秒)则按键可进行功能选择(1号键显示学号,3号键A/D采集,0号键D/A转换功能运行)。(4)采用译码方

4、式,通过D/A输出频率为500Hz梯形波(5)采用译码方式,启动通道0的A/D转换,进行采样,A/D转换结束后(通过INT1中断),将采集到的值转换为BCD码,并予以显示(使用三个七段数码管显示例如显示3.75)。3、此次课程设计采用分级评分,具体操作如下:评分等级所含硬件模块及功能要求评价细则及格,中硬件模块:a,b,c.功能要求:(1),(2)完成所要求电路设计、软件设计,正确为中完成所要求电路设计、软件设计,仍须修改为及格所要求电路设计仍有多于三处错误,软件逻辑流程错误为不及格发现为抄袭,设计与任务定义表不匹配的一律不及格中,良好硬件模块:a,b,c,d或a,b,c,e.功能要求:(1)

5、(2)(3)(4)或(1)(2)(3)(5)完成所要求电路设计、软件设计,正确为良好完成所要求电路设计、软件设计,仍须修改为中所要求电路设计仍有多于五处错误,软件逻辑流程错误为不及格发现为抄袭,设计与任务定义表不匹配的一律不及格优硬件模块:a,b,c,d,e.功能要求:(1)(2)(3)(4)(5)完成所要求电路设计、软件设计,正确为优秀完成所要求电路设计、软件设计,仍须修改为良好所要求电路设计仍有多于六处错误,软件逻辑流程错误为不及格发现为抄袭,设计与任务定义表不匹配的一律不及格同学可以按照自己的兴趣和能力选择适合自己评分等级的课设任务。不需要在课程设计开始阶段确定自己选择何种评分等级,只是

6、在最后提交的时候在资料袋封面标明即可。2011级任务定义表说明: 表中“键盘口线”定义详见附录。 表中键盘中断接口详见附录。 约定键键值排列见附录。 按哪个约定键进入到哪种功能见附录。 A/D采集使用A/D的哪个通道进行采集见附录。 表中“显示方式”是指在编制个人学号的后六位显示程序时,实现缓慢从左右上下逐步在数码管显示,显示速度由同学自主定义。 A/D中断入口见附录。 表中“频率”是规定D/A输出时所采用的频率见附录。 表中“波形”是规定D/A输出时所采用的波形见附录。二、课程设计图纸内容及张数1、单片机系统硬件电路原理图 1张(2号图纸)要求布局合理,阅读方便,元器件绘制符合规范。每条信号

7、线均采用直接连接方式,不准采用总线方式画法,每个元器件必须标注型号、参数或引脚号。三、课程设计实物内容及要求1、源程序清单1份要求在WAVE软件下汇编通过(提交的程序清单中包括程序机器码),并对程序进行功能和含义进行详细注解,对自己任务的要点予以标记,使用规范格式打印。2、课程设计说明书1份要求针对所设计的软硬件内容进行说明(必须手写),具体内容包括:芯片地址的确定、分频电路的实现、定时/计数初值的求取、软件模块的流程图、设计心得等。四、建议课程设计进度表(含周六、日)1、第1天:教师布置设计任务,学生理解设计任务,并准备资料;2、第24天:系统硬件电路原理图设计;3、第57天:编制系统程序,

8、并进行汇编调试;4、第8天:提交设计资料,并进行考核。五、主要参考资料ORG 0000H ;主程序入口 LJMP MAIN ORG 0003H ;外部中断0入口 LJMP ZHAN2 ORG 0013H ;外部中断1入口 LJMP A2DMAIN:SETB EA ;打开中断总允许 SETB EX0 ;打开外部中断0允许 MOV P1,#0F9H ;设置键盘初值 MOV R4,#30XUEHAO: MOV DPTR,#XTAB ;学号显示子程程序 MOV R2,#3 ;从下到上滚动分三次 XUEHAO2:MOV R3,#5 ;每次发送5个显示码进数码管 XUEHAO1:MOV A,#0 ;A清零

9、 MOVC A,A+DPTR ;查表,给A赋值 MOV SBUF,A ;将A中数据发送到串行口 JNB TI,$ ;判断串行口发送是否完毕 CLR TI ;清除中断标志位,准备进行下一次发送 INC DPTR ;DPTR加1,指向下一个字型码地址 DJNZ R3,XUEHAO1 ;判断是否到了5个 LCALL DELAY1S ;延迟1s,进行显示 DJNZ R2,XUEHAO2 ;判断从下滚动三次是否完毕 LJMP XUEHAO ;新一轮显示ZHAN2: MOV 70H,A ;响应中断,保存原数据 MOV 71H,DPL MOV 72H,DPH MOV 73H,R3 MOV 74H,R2 MO

10、V 75H,R5 MOV 76H,R6 MOV 77H,R7 LCALL DELAY10MS ;延时10MS判断按键是否按下,没按下则返回 JB P3.2,ZHAN1 MOV DPTR,#STAB ;键值显示表地址送给DPTR LCALL JIANZHI ;调用判断键值的程序 MOV 7AH,A ;将键值保存到7AH中 MOVC A,A+DPTR ;查表给A赋值 MOV R7,#5 ;发送5次键值 ZHAN:MOV SBUF,A JNB TI,$ CLR TI DJNZ R7,ZHAN ;判断是否发送完毕SELECT: MOV P1,#0F9H ;长按键判断开始, 给键盘赋初值 JB P3.2

11、,SELECTOUT ;判断按键是否按下,没有则跳出中断 LCALL DELAY50MS ;延时50ms MOV P1,#0F9H ;给键盘赋初值 JB P3.2,SELECTOUT ; 判断按键是否按下,没有跳出中断 DJNZ R4,SELECT ;判断按键是否按了1.5s,没有则跳出中断 ZHAN4: MOV P1,#0F9H ;按键超1.5s后,等待按键弹起 JB P3.2 ,ZHAN4 MOV P1,#0F9H ;给键盘赋初值 MOV A,7AH ;取出7AH中的键值 CJNE A,#0,SELECT1 ;判断是不是按了按键0,不是的话继续判断 LCALL D2A ;确定是按键0,调用

12、DA功能子程序 LJMP SELECTOUT1 ; 完成功能,跳到中断返回程序 SELECT1: CJNE A,#1,SELECT2 ;判断是否是按键1,不是的话继续判断 LCALL XUEHAOZHAN ;确定是按键1,调用学号显示功能 LJMP SELECTOUT1 ;完成功能,跳到中断返回程序 SELECT2: CJNE A,#3,SELECTOUT1 ;判断是否是按键3,不是跳中断返回程序 LCALL ATOD ;确定是按键3,调用AD功能子程序 LJMP SELECTOUT1 ;完成功能,跳到中断返回程序ZHAN1:MOV A,70H ;按键没按下返回程序,取出中断前的数据 MOV

13、DPL,71H MOV DPH,72H MOV R3,73H MOV 74H,R2 MOV 75H,R5 MOV 76H,R6 MOV 77H,R7 RETISELECTOUT:LCALL DELAY0A5MS ;按键按下但时间不到1.5s的中断返回程序 MOV R4,#30 ;R4重新赋初值 MOV A,70H MOV DPL,71H MOV DPH,72H MOV R3,73H MOV 74H,R2 MOV 75H,R5 MOV 76H,R6 MOV 77H,R7 RETISELECTOUT1:MOV P1,#0F9H ;按键按下达到1.5s的中断返回程序 MOV R4,#30 ; R4重

14、新赋初值 MOV A,70H MOV DPL,71H MOV DPH,72H MOV R3,73H MOV 74H,R2 MOV 75H,R5 MOV 76H,R6 MOV 77H,R7 RETID2A:MOV 60H ,A ; 将A中的值保存到60H中 MOV DPTR,#0BFFFH ; 启动DA转换器 MOV A,#00H ; 梯形波的上升沿,时间控制0.5ms MOV R2,#50 ; 发送50个梯形波 D2A1: MOVX DPTR,A INC A CJNE A,#100,D2A1 LCALL DELAY0A5MS ; 梯形波峰值保持0.5ms D2A2:DEC A ; 梯形波的下降

15、沿,时间控制0.5ms MOVX DPTR ,A CJNE A,#0,D2A2 LCALL DELAY0A5MS ; 梯形波的谷值保持0.5ms DJNZ R2,D2A1 ; 判断发送50个是否完毕 MOV A,60H ; 取出保存到60H的A值 RETATOD: MOV P1,#0F9H ; 键盘赋初值 JNB P3.2 ,ATOD ; 判断按键是否弹起 MOV 66H,A ; 暂存A,DPTR的内容 MOV 67H,DPL MOV 68H,DPH CLR A ; 清A中内容 SETB PX1 ; 设置外部中断1的优先级 SETB IT1 ;设置下降沿触发中断 SETB EX1 ;打开中断1

16、 MOV DPTR,#0FFF8H ;DPTR指向ADC0808首地址 MOVX DPTR,A ; 启动AD转换器 MOV A,66H ; 返还A,DPTR中的内容 MOV DPL,67H MOV DPH,68H RETA2D: MOV DPTR,#0FFF8HA2D1: SETB RS1 SETB RS0 ;打开第三组 MOVX A,DPTR CLR EA ;关闭所有中断 MOV 24H,A ;由于读入电压数字量顺序相反,故需要调整 MOV 2AH,#00H ; 所以将A中的值倒置 JNB 27H,TOP1 ;通过24H的位地址20H到27H及2AH的位地址 SETB 50H ;50H到57

17、H进行处理,将A的值送到位地址 TOP1:JNB 26H,TOP2 ;20H到27H中,然后将位地址50H到57H清零 SETB 51H ;然后判断27H是否为1,是的话则使50H置1,否则 TOP2:JNB 25H,TOP3 ;50H中就仍为0,依次如此判断,从而达到把27H的 SETB 52H ;位值放到50H,把26H中的位值放到51H中,如此进 TOP3:JNB 24H,TOP4 ;行,直到将20H中的内容放到57H中调整完毕,2AH SETB 53H ;中保存的就是经倒置调整的A值 TOP4:JNB 23H,TOP5 SETB 54H TOP5:JNB 22H,TOP6 SETB 5

18、5HTOP6:JNB 21H,TOP7 SETB 56H TOP7:JNB 20H,TOP8 SETB 57H TOP8:MOV A,2AH ;调整完毕 MOV B,#51 ;将A中的内容转成BCD码,A的范围是0-255,电压 DIV AB ;是5V,故需除以51得到整数位,将其保存在R1中,余 MOV R3,A ;数乘以10,若乘出来超过255,即B中不为0,则第二 MOV A,B ;是大于5的,将乘出来的结果的低八位,即A中内容 MOV B,#10 ;除以51的商加上5即为第二位 MUL AB ;若乘出来的结果没有超过255,则将A中的内容除以51即 MOV R6,A ;得到第二位,第三

19、位同理处理 MOV A,B CJNE A,#00H,NUM1 MOV A,R6 MOV B,#51 DIV AB MOV R2,A AJMP LOOP NUM1:MOV A,R6 ;乘出来的结果大于255的情况 INC A MOV B,#51 DIV AB ADD A,#5 MOV R2,A LOOP:MOV A,B ; 取第三个分数 MOV B,#10 MUL AB MOV R6,A MOV A,B CJNE A,#00H,NUM2 MOV A,R6 MOV B,#51 DIV AB MOV R1,A AJMP LOOP5 NUM2:MOV A,R6 ;乘出来的结果大于255的情况 INC

20、A MOV B,#51 DIV AB ADD A,#5 MOV R1,A LOOP5: MOV A,R1 ;输出第三个分数 LCALL DIANYA MOV A,R2 ;输出第二个分数 LCALL DIANYA MOV A,R3 ;输出第一个整数 MOV DPTR,#ZRPTAB MOVC A,A+DPTR ANL A,#7FH ;使得整数带小数点 MOV SBUF,A JNB TI,$ CLR TI MOV R4,#2 ;灭掉的2个灯 TOP9:MOV A,#0AH ;给A赋第10个数 LCALL DIANYA DJNZ R4,TOP9 LCALL DELAY1S ;调用1秒延时让电压值显示

21、 SETB EA ;开启中断 RETIDIANYA: MOV SCON,#00H ;输出电压数字程序 MOV DPTR,#ZRPTAB MOVC A,A+DPTR MOV SBUF,A JNB TI,$ CLR TI RET LCALL DELAY1S RETJIANZHI: MOV R0,#0 MOV A,#0 JNB P1.5,JP1 MOV R0,#1 JP1:MOV P1,#9BH JNB P1.1,JP2 MOV A,#2 JP2:ADD A,R0 RETDELAY1S: MOV R5,#100 ;延时一秒子程序DELAY1S1: LCALL DELAY10MS DJNZ R5,DE

22、LAY1S1 RETDELAY0A5MS: MOV R6,#5 ;延时0.5ms的程序DELAY0A5MS1:MOV R7,#49DJNZ R7,$DJNZ R6,DELAY0A5MS1RETDELAY50MS: MOV R5,#5 ;延时50ms的程序DELAY50MS1: LCALL DELAY10MS DJNZ R5,DELAY50MS1 RETDELAY3MS: MOV R6,#6 ;延时3ms子程序DELAY3MS1:MOV R7,#250 DJNZ R7,$ DJNZ R6,DELAY3MS1 RETDELAY10MS: MOV R6,#20 ;延时10ms子程序DELAY10MS

23、1:MOV R7,#250 DJNZ R7,$ DJNZ R6,DELAY10MS1 RETXUEHAOZHAN:MOV DPTR,#XTABZHAN ;学号显示子程程序XUEHAOZHAN2:MOV R3,#5 ;延时超1.5s的学号显示程序XUEHAOZHAN1:MOV A,#0 MOVC A,A+DPTR MOV SBUF,A JNB TI,$ CLR TI INC DPTR DJNZ R3,XUEHAOZHAN1 LCALL DELAY1S RET XTABZHAN:DB 99H,92H,0F9H,0A4H,0F9H ;学号显示数字表XTAB:DB 0FFH,0F7H,0FFH,0F7

24、H,0FFH ;学号显示表 DB 0E3H,0A7H,0FBH,0A7H,0FBH DB 99H,92H,0F9H,0A4H,0F9HSTAB:DB 0F9H,0A4H,0B0H,99H ;键值显示表ZRPTAB:DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H ,0FFH ;AD转换显示表机器码0000H 020016 LJMP 0016H0003H 02003B LJMP 003BH0006H FF MOV R7, A0007H FF MOV R7, A0008H FF MOV R7, A0009H FF MOV R7, A000AH FF M

25、OV R7, A000BH FF MOV R7, A000CH FF MOV R7, A000DH FF MOV R7, A000EH FF MOV R7, A000FH FF MOV R7, A0010H FF MOV R7, A0011H FF MOV R7, A0012H FF MOV R7, A0013H 020121 LJMP 0121H0016H D2AF SETB EA0018H D2A8 SETB EX0001AH 7590F9 MOV P1, #F9H001DH 7C1E MOV R4, #1EH001FH 900229 MOV DPTR, #0229H0022H 7A03

26、MOV R2, #03H0024H 7B05 MOV R3, #05H0026H 7400 MOV A, #00H0028H 93 MOVC A, A+DPTR0029H F599 MOV SBUF, A002BH 3099FD JNB TI, 002BH002EH C299 CLR TI0030H A3 INC DPTR0031H DBF3 DJNZ R3, 0026H0033H 1201E3 LCALL 01E3H0036H DAEC DJNZ R2, 0024H0038H 02001F LJMP 001FH003BH F570 MOV 70H, A003DH 858271 MOV 71H

27、, DPL0040H 858372 MOV 72H, DPH0043H 8B73 MOV 73H, R30045H 8A74 MOV 74H, R20047H 8D75 MOV 75H, R50049H 8E76 MOV 76H, R6004BH 8F77 MOV 77H, R7004DH 120205 LCALL 0205H0050H 20B24B JB P3.2, 009EH0053H 900238 MOV DPTR, #0238H0056H 1201D0 LCALL 01D0H0059H F57A MOV 7AH, A005BH 93 MOVC A, A+DPTR005CH 7F05 M

28、OV R7, #05H005EH F599 MOV SBUF, A0060H 3099FD JNB TI, 0060H0063H C299 CLR TI0065H DFF7 DJNZ R7, 005EH0067H 7590F9 MOV P1, #F9H006AH 20B244 JB P3.2, 00B1H006DH 1201F4 LCALL 01F4H0070H 7590F9 MOV P1, #F9H0073H 20B23B JB P3.2, 00B1H0076H DCEF DJNZ R4, 0067H0078H 7590F9 MOV P1, #F9H007BH 20B2FA JB P3.2,

29、 0078H007EH 7590F9 MOV P1, #F9H0081H E57A MOV A, 7AH0083H B40006 CJNE A, #00H, 008CH0086H 1200E1 LCALL 00E1H0089H 0200C9 LJMP 00C9H008CH B40106 CJNE A, #01H, 0095H008FH 12020E LCALL 020EH0092H 0200C9 LJMP 00C9H0095H B40331 CJNE A, #03H, 00C9H0098H 1200FF LCALL 00FFH009BH 0200C9 LJMP 00C9H009EH E570

30、MOV A, 70H00A0H 857182 MOV DPL, 71H00A3H 857283 MOV DPH, 72H00A6H AB73 MOV R3, 73H00A8H 8A74 MOV 74H, R200AAH 8D75 MOV 75H, R500ACH 8E76 MOV 76H, R600AEH 8F77 MOV 77H, R700B0H 32 RETI00B1H 1201EB LCALL 01EBH00B4H 7C1E MOV R4, #1EH00B6H E570 MOV A, 70H00B8H 857182 MOV DPL, 71H00BBH 857283 MOV DPH, 72

31、H00BEH AB73 MOV R3, 73H00C0H 8A74 MOV 74H, R200C2H 8D75 MOV 75H, R500C4H 8E76 MOV 76H, R600C6H 8F77 MOV 77H, R700C8H 32 RETI00C9H 7590F9 MOV P1, #F9H00CCH 7C1E MOV R4, #1EH00CEH E570 MOV A, 70H00D0H 857182 MOV DPL, 71H00D3H 857283 MOV DPH, 72H00D6H AB73 MOV R3, 73H00D8H 8A74 MOV 74H, R200DAH 8D75 MO

32、V 75H, R500DCH 8E76 MOV 76H, R600DEH 8F77 MOV 77H, R700E0H 32 RETI00E1H F560 MOV 60H, A00E3H 90BFFF MOV DPTR, #0BFFFH00E6H 7400 MOV A, #00H00E8H 7A32 MOV R2, #32H00EAH F0 MOVX DPTR, A00EBH 04 INC A00ECH B464FB CJNE A, #64H, 00EAH00EFH 1201EB LCALL 01EBH00F2H 14 DEC A00F3H F0 MOVX DPTR, A00F4H B400FB

33、 CJNE A, #00H, 00F2H00F7H 1201EB LCALL 01EBH00FAH DAEE DJNZ R2, 00EAH00FCH E560 MOV A, 60H00FEH 22 RET00FFH 7590F9 MOV P1, #F9H0102H 30B2FA JNB P3.2, 00FFH0105H F566 MOV 66H, A0107H 858267 MOV 67H, DPL010AH 858368 MOV 68H, DPH010DH E4 CLR A010EH D2BA SETB PX10110H D28A SETB IT10112H D2AA SETB EX10114H 90FFF8 MOV DPTR, #0FFF8H0117H F0 MOVX DPTR, A0118H E566 MOV A, 66H011AH 856782 MOV DPL, 67H011DH 856883 MOV DPH, 68H0120H 22

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 科普知识


经营许可证编号:宁ICP备18001539号-1