南昌大学单片机课程设计报告书

3、此次课程设计采用分级评分,具体操作如下: 评分等级 所含硬件模块及功能要求 硬件模块:及格,中 a,b,c. 功能要求:(1),(2) 硬件模块:a,b,c,d或a,b,c,e. 中,良好 功能要求:(1)(2)(3)(4) 或(1)(2)(3)(5) 硬件模块:a,b,c,d,e. 优 功能要求:(1)(2)(3)(4) (5) 完成所要求电路设计、软件设计,正确为优秀 完成所要求电路设计、软件设计,仍须修改为良好 所要求电路设计仍有多于六处错误,软件逻辑流程错误为不及格 发现为抄袭,设计与任务定义表不匹配的一律不及格 完成所要求电路设计、软件设计,正确为良好 完成所要求电路设计、软件设计,仍须修改为中 所要求电路设计仍有多于五处错误,软件逻辑流程错误为不及格 发现为抄袭,设计与任务定义表不匹配的一律不及格 评价细则 完成所要求电路设计、软件设计,正确为中 完成所要求电路设计、软件设计,仍须修改为及格 所要求电路设计仍有多于三处错误,软件逻辑流程错误为不及格 发现为抄袭,设计与任务定义表不匹配的一律不及格 同学可以按照自己的兴趣和能力选择适合自己评分等级的课设任务。不需要在课程设计开始阶段确定自己选择何种评分等级,只是在最后提交的时候在资料袋封面标明即可。

.. ..

《2011级<微机原理与接口技术课程设计>任务定义表》说明: ※ 表中“键盘口线”定义详见附录。 ※ 表中键盘中断接口详见附录。 ※ 约定键键值排列见附录。

※ 按哪个约定键进入到哪种功能见附录。

※ A/D采集使用A/D的哪个通道进行采集见附录。

※ 表中“显示方式”是指在编制个人学号的后六位显示程序时,实现缓慢从左右上下逐步在数码管显示,显示速度由同学自主定义。

※ A/D中断入口见附录。

※ 表中“频率”是规定D/A输出时所采用的频率见附录。

※ 表中“波形”是规定D/A输出时所采用的波形见附录。 二、课程设计图纸内容及张数

1、单片机系统硬件电路原理图

1张(2号图纸)

要求布局合理,阅读方便,元器件绘制符合规范。每条信号线均采用直接连接方式,不准采用总线方式画法,每个元器件必须标注型号、参数或引脚号。

三、课程设计实物内容及要求

1、源程序清单

1份

要求在WAVE软件下汇编通过(提交的程序清单中包括程序机器码),并对程序进行功能和含义进行详细注解,对自己任务的要点予以标记,使用规范格式打印。 2、课程设计说明书

1份

要求针对所设计的软硬件内容进行说明(必须手写),具体内容包括:芯片地址的确定、分频电路的实现、定时/计数初值的求取、软件模块的流程图、设计心得等。

四、建议课程设计进度表(含周六、日)

1、第1天:

教师布置设计任务,学生理解设计任务,并准备资料; 系统硬件电路原理图设计;

2、第2-4天:

.. ..

3、第5-7天: 4、第8天:

编制系统程序,并进行汇编调试;

提交设计资料,并进行考核。

五、主要参考资料

ORG 0000H ;主程序入口 LJMP MAIN

ORG 0003H ;外部中断0入口 LJMP ZHAN2

ORG 0013H ;外部中断1入口 LJMP A2D

MAIN:SETB EA ;打开中断总允许

SETB EX0 ;打开外部中断0允许 MOV P1,#0F9H ;设置键盘初值 MOV R4,#30

XUEHAO: MOV DPTR,#XTAB ;学号显示子程程序 MOV R2,#3 ;从下到上滚动分三次

XUEHAO2:MOV R3,#5 ;每次发送5个显示码进数码管 XUEHAO1:MOV A,#0 ;A清零

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

.. ..

MOV 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,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,调用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 DPL,71H MOV DPH,72H MOV R3,73H MOV 74H,R2 MOV 75H,R5

.. ..

联系客服:779662525#qq.com(#替换为@)