南昌大学单片机课程设计.docx
- 文档编号:10300133
- 上传时间:2023-02-09
- 格式:DOCX
- 页数:27
- 大小:67.72KB
南昌大学单片机课程设计.docx
《南昌大学单片机课程设计.docx》由会员分享,可在线阅读,更多相关《南昌大学单片机课程设计.docx(27页珍藏版)》请在冰豆网上搜索。
南昌大学单片机课程设计
课程设计任务书
课程名称:
微机原理与接口技术
题目:
B5901112154型单片机系统的设计
学院:
机电工程学院系:
机电工程系
专业:
机械设计制造及其自动化
班级:
机制124班
学号:
**********
学生姓名:
起讫日期:
6.16---6.23
*******
系分管主任:
审核日期:
说明
打开上面的protus软件可以看到完整的电路图
1、课程设计任务书由指导教师填写,并经学院审定后下达给学生。
2、进度表是课程设计工作检查的主要依据。
3、学生根据指导教师下达的任务书,独立完成课程设计。
4、本任务书在课程设计完成后,与说明书、电路原理图和程序清单等资料一并上交指导教师,作为课程设计的主要档案资料。
一、课程设计的要求和内容(包括原始数据、技术要求、工作要求)
1、工作要求
单片机系统在各行各业自动控制领域的应用越来越广泛。
《微机原理与接口技术》课程设计实践教学环节要求同学们针对实际需求,灵活应用所学知识,独立进行系统综合设计,以达到巩固单片机基础知识、掌握单片机系统开发过程和提高动手实践能力的目的。
2、技术要求
每位学生应独立完整地设计一套单片机系统。
该系统CPU采用AT89S51芯片,晶振为12MHz。
硬件模块可包括:
a)显示模块,采用串行口串接74HC164芯片控制5个7段数码管;b)键盘模块,采用2X2行列键盘;c)声音控制模块,采用蜂鸣器发声;d)A/D采集模块,采用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)采用译码方式,通过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)
(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天:
提交设计资料,并进行考核。
五、主要参考资料
ORG0000H;主程序入口
LJMPMAIN
ORG0003H;外部中断0入口
LJMPZHAN2
ORG0013H;外部中断1入口
LJMPA2D
MAIN:
SETBEA;打开中断总允许
SETBEX0;打开外部中断0允许
MOVP1,#0F9H;设置键盘初值
MOVR4,#30
XUEHAO:
MOVDPTR,#XTAB;学号显示子程程序
MOVR2,#3;从下到上滚动分三次
XUEHAO2:
MOVR3,#5;每次发送5个显示码进数码管
XUEHAO1:
MOVA,#0;A清零
MOVCA,@A+DPTR;查表,给A赋值
MOVSBUF,A;将A中数据发送到串行口
JNBTI,$;判断串行口发送是否完毕
CLRTI;清除中断标志位,准备进行下一次发送
INCDPTR;DPTR加1,指向下一个字型码地址
DJNZR3,XUEHAO1;判断是否到了5个
LCALLDELAY1S;延迟1s,进行显示
DJNZR2,XUEHAO2;判断从下滚动三次是否完毕
LJMPXUEHAO;新一轮显示
ZHAN2:
MOV70H,A;响应中断,保存原数据
MOV71H,DPL
MOV72H,DPH
MOV73H,R3
MOV74H,R2
MOV75H,R5
MOV76H,R6
MOV77H,R7
LCALLDELAY10MS;延时10MS判断按键是否按下,没按下则返回
JBP3.2,ZHAN1
MOVDPTR,#STAB;键值显示表地址送给DPTR
LCALLJIANZHI;调用判断键值的程序
MOV7AH,A;将键值保存到7AH中
MOVCA,@A+DPTR;查表给A赋值
MOVR7,#5;发送5次键值
ZHAN:
MOVSBUF,A
JNBTI,$
CLRTI
DJNZR7,ZHAN;判断是否发送完毕
SELECT:
MOVP1,#0F9H;长按键判断开始,给键盘赋初值
JBP3.2,SELECTOUT;判断按键是否按下,没有则跳出中断
LCALLDELAY50MS;延时50ms
MOVP1,#0F9H;给键盘赋初值
JBP3.2,SELECTOUT;判断按键是否按下,没有跳出中断
DJNZR4,SELECT;判断按键是否按了1.5s,没有则跳出中断
ZHAN4:
MOVP1,#0F9H;按键超1.5s后,等待按键弹起
JBP3.2,ZHAN4
MOVP1,#0F9H;给键盘赋初值
MOVA,7AH;取出7AH中的键值
CJNEA,#0,SELECT1;判断是不是按了按键0,不是的话继续判断
LCALLD2A;确定是按键0,调用DA功能子程序
LJMPSELECTOUT1;完成功能,跳到中断返回程序
SELECT1:
CJNEA,#1,SELECT2;判断是否是按键1,不是的话继续判断
LCALLXUEHAOZHAN;确定是按键1,调用学号显示功能
LJMPSELECTOUT1;完成功能,跳到中断返回程序
SELECT2:
CJNEA,#3,SELECTOUT1;判断是否是按键3,不是跳中断返回程序
LCALLATOD;确定是按键3,调用AD功能子程序
LJMPSELECTOUT1;完成功能,跳到中断返回程序
ZHAN1:
MOVA,70H;按键没按下返回程序,取出中断前的数据
MOVDPL,71H
MOVDPH,72H
MOVR3,73H
MOV74H,R2
MOV75H,R5
MOV76H,R6
MOV77H,R7
RETI
SELECTOUT:
LCALLDELAY0A5MS;按键按下但时间不到1.5s的中断返回程序
MOVR4,#30;R4重新赋初值
MOVA,70H
MOVDPL,71H
MOVDPH,72H
MOVR3,73H
MOV74H,R2
MOV75H,R5
MOV76H,R6
MOV77H,R7
RETI
SELECTOUT1:
MOVP1,#0F9H;按键按下达到1.5s的中断返回程序
MOVR4,#30;R4重新赋初值
MOVA,70H
MOVDPL,71H
MOVDPH,72H
MOVR3,73H
MOV74H,R2
MOV75H,R5
MOV76H,R6
MOV77H,R7
RETI
D2A:
MOV60H,A;将A中的值保存到60H中
MOVDPTR,#0BFFFH;启动DA转换器
MOVA,#00H;梯形波的上升沿,时间控制0.5ms
MOVR2,#50;发送50个梯形波
D2A1:
MOVX@DPTR,A
INCA
CJNEA,#100,D2A1
LCALLDELAY0A5MS;梯形波峰值保持0.5ms
D2A2:
DECA;梯形波的下降沿,时间控制0.5ms
MOVX@DPTR,A
CJNEA,#0,D2A2
LCALLDELAY0A5MS;梯形波的谷值保持0.5ms
DJNZR2,D2A1;判断发送50个是否完毕
MOVA,60H;取出保存到60H的A值
RET
ATOD:
MOVP1,#0F9H;键盘赋初值
JNBP3.2,ATOD;判断按键是否弹起
MOV66H,A;暂存A,DPTR的内容
MOV67H,DPL
MOV68H,DPH
CLRA;清A中内容
SETBPX1;设置外部中断1的优先级
SETBIT1;设置下降沿触发中断
SETBEX1;打开中断1
MOVDPTR,#0FFF8H;DPTR指向ADC0808首地址
MOVX@DPTR,A;启动AD转换器
MOVA,66H;返还A,DPTR中的内容
MOVDPL,67H
MOVDPH,68H
RET
A2D:
MOVDPTR,#0FFF8H
A2D1:
SETBRS1
SETBRS0;打开第三组
MOVXA,@DPTR
CLREA;关闭所有中断
MOV24H,A;由于读入电压数字量顺序相反,故需要调整
MOV2AH,#00H;所以将A中的值倒置
JNB27H,TOP1;通过24H的位地址20H到27H及2AH的位地址
SETB50H;50H到57H进行处理,将A的值送到位地址
TOP1:
JNB26H,TOP2;20H到27H中,然后将位地址50H到57H清零
SETB51H;然后判断27H是否为1,是的话则使50H置1,否则
TOP2:
JNB25H,TOP3;50H中就仍为0,依次如此判断,从而达到把27H的
SETB52H;位值放到50H,把26H中的位值放到51H中,如此进
TOP3:
JNB24H,TOP4;行,直到将20H中的内容放到57H中调整完毕,2AH
SETB53H;中保存的就是经倒置调整的A值
TOP4:
JNB23H,TOP5
SETB54H
TOP5:
JNB22H,TOP6
SETB55H
TOP6:
JNB21H,TOP7
SETB56H
TOP7:
JNB20H,TOP8
SETB57H
TOP8:
MOVA,2AH;调整完毕
MOVB,#51;将A中的内容转成BCD码,A的范围是0--255,电压
DIVAB;是5V,故需除以51得到整数位,将其保存在R1中,余MOVR3,A;数乘以10,若乘出来超过255,即B中不为0,则第二
MOVA,B;是大于5的,将乘出来的结果的低八位,即A中内容
MOVB,#10;除以51的商加上5即为第二位
MULAB;若乘出来的结果没有超过255,则将A中的内容除以51即
MOVR6,A;得到第二位,第三位同理处理
MOVA,B
CJNEA,#00H,NUM1
MOVA,R6
MOVB,#51
DIVAB
MOVR2,A
AJMPLOOP
NUM1:
MOVA,R6;乘出来的结果大于255的情况
INCA
MOVB,#51
DIVAB
ADDA,#5
MOVR2,A
LOOP:
MOVA,B;取第三个分数
MOVB,#10
MULAB
MOVR6,A
MOVA,B
CJNEA,#00H,NUM2
MOVA,R6
MOVB,#51
DIVAB
MOVR1,A
AJMPLOOP5
NUM2:
MOVA,R6;乘出来的结果大于255的情况
INCA
MOVB,#51
DIVAB
ADDA,#5
MOVR1,A
LOOP5:
MOVA,R1;输出第三个分数
LCALLDIANYA
MOVA,R2;输出第二个分数
LCALLDIANYA
MOVA,R3;输出第一个整数
MOVDPTR,#ZRPTAB
MOVCA,@A+DPTR
ANLA,#7FH;使得整数带小数点
MOVSBUF,A
JNBTI,$
CLRTI
MOVR4,#2;灭掉的2个灯
TOP9:
MOVA,#0AH;给A赋第10个数
LCALLDIANYA
DJNZR4,TOP9
LCALLDELAY1S;调用1秒延时让电压值显示
SETBEA;开启中断
RETI
DIANYA:
MOVSCON,#00H;输出电压数字程序
MOVDPTR,#ZRPTAB
MOVCA,@A+DPTR
MOVSBUF,A
JNBTI,$
CLRTI
RET
LCALLDELAY1S
RET
JIANZHI:
MOVR0,#0
MOVA,#0
JNBP1.5,JP1
MOVR0,#1
JP1:
MOVP1,#9BH
JNBP1.1,JP2
MOVA,#2
JP2:
ADDA,R0
RET
DELAY1S:
MOVR5,#100;延时一秒子程序
DELAY1S1:
LCALLDELAY10MS
DJNZR5,DELAY1S1
RET
DELAY0A5MS:
MOVR6,#5;延时0.5ms的程序
DELAY0A5MS1:
MOVR7,#49
DJNZR7,$
DJNZR6,DELAY0A5MS1
RET
DELAY50MS:
MOVR5,#5;延时50ms的程序
DELAY50MS1:
LCALLDELAY10MS
DJNZR5,DELAY50MS1
RET
DELAY3MS:
MOVR6,#6;延时3ms子程序
DELAY3MS1:
MOVR7,#250
DJNZR7,$
DJNZR6,DELAY3MS1
RET
DELAY10MS:
MOVR6,#20;延时10ms子程序
DELAY10MS1:
MOVR7,#250
DJNZR7,$
DJNZR6,DELAY10MS1
RET
XUEHAOZHAN:
MOVDPTR,#XTABZHAN;学号显示子程程序
XUEHAOZHAN2:
MOVR3,#5;延时超1.5s的学号显示程序
XUEHAOZHAN1:
MOVA,#0
MOVCA,@A+DPTR
MOVSBUF,A
JNBTI,$
CLRTI
INCDPTR
DJNZR3,XUEHAOZHAN1
LCALLDELAY1S
RET
XTABZHAN:
DB99H,92H,0F9H,0A4H,0F9H;学号显示数字表
XTAB:
DB0FFH,0F7H,0FFH,0F7H,0FFH;学号显示表
DB0E3H,0A7H,0FBH,0A7H,0FBH
DB99H,92H,0F9H,0A4H,0F9H
STAB:
DB0F9H,0A4H,0B0H,99H;键值显示表
ZRPTAB:
DB0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H,0FFH;AD转换显示表
机器码
0000H020016LJMP0016H
0003H02003BLJMP003BH
0006HFFMOVR7,A
0007HFFMOVR7,A
0008HFFMOVR7,A
0009HFFMOVR7,A
000AHFFMOVR7,A
000BHFFMOVR7,A
000CHFFMOVR7,A
000DHFFMOVR7,A
000EHFFMOVR7,A
000FHFFMOVR7,A
0010HFFMOVR7,A
0011HFFMOVR7,A
0012HFFMOVR7,A
0013H020121LJMP0121H
0016HD2AFSETBEA
0018HD2A8SETBEX0
001AH7590F9MOVP1,#F9H
001DH7C1EMOVR4,#1EH
001FH900229MOVDPTR,#0229H
0022H7A03MOVR2,#03H
0024H7B05MOVR3,#05H
0026H7400MOVA,#00H
0028H93MOVCA,@A+DPTR
0029HF599MOVSBUF,A
002BH3099FDJNBTI,002BH
002EHC299CLRTI
0030HA3INCDPTR
0031HDBF3DJNZR3,0026H
0033H1201E3LCALL01E3H
0036HDAECDJNZR2,0024H
0038H02001FLJMP001FH
003BHF570MOV70H,A
003DH858271MOV71H,DPL
0040H858372MOV72H,DPH
0043H8B73MOV73H,R3
0045H8A74MOV74H,R2
0047H8D75MOV75H,R5
0049H8E76MOV76H,R6
004BH8F77MOV77H,R7
004DH120205LCALL0205H
0050H20B24BJBP3.2,009EH
0053H900238MOVDPTR,#0238H
0056H1201D0LCALL01D0H
0059HF57AMOV7AH,A
005BH93MOVCA,@A+DPTR
005CH7F05MOVR7,#05H
005EHF599MOVSBUF,A
0060H3099FDJNBTI,0060H
0063HC299CLRTI
0065HDFF7DJNZR7,005EH
0067H7590F9MOVP1,#F9H
006AH20B244JBP3.2,00B1H
006DH1201F4LCALL01F4H
0070H7590F9MOVP1,#F9H
0073H20B23BJBP3.2,00B1H
0076HDCEFDJNZR4,0067H
0078H7590F9MOVP1,#F9H
007BH20B2FAJBP3.2,0078H
007EH7590F9MOVP1,#F9H
0081HE57AMOVA,7AH
0083HB40006CJNEA,#00H,008CH
0086H1200E1LCALL00E1H
0089H0200C9LJMP00C9H
008CHB40106CJNEA,#01H,0095H
008FH12020ELCALL020EH
0092H0200C9LJMP00C9H
0095HB40331CJNEA,#03H,00C9H
0098H1200FFLCALL00FFH
009BH0200C9LJMP00C9H
009EHE570MOVA,70H
00A0H857182MOVDPL,71H
00A3H857283MOVDPH,72H
00A6HAB73MOVR3,73H
00A8H8A74MOV74H,R2
00AAH8D75MOV75H,R5
00ACH8E76MOV76H,R6
00AEH8F77MOV77H,R7
00B0H32RETI
00B1H1201EBLCALL01EBH
00B4H7C1EMOVR4,#1EH
00B6HE570MOVA,70H
00B8H857182MOVDPL,71H
00BBH857283M
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 南昌大学 单片机 课程设计
![提示](https://static.bdocx.com/images/bang_tan.gif)