中南大学单片机课程设计文档格式.docx
- 文档编号:7860243
- 上传时间:2023-05-09
- 格式:DOCX
- 页数:31
- 大小:251.55KB
中南大学单片机课程设计文档格式.docx
《中南大学单片机课程设计文档格式.docx》由会员分享,可在线阅读,更多相关《中南大学单片机课程设计文档格式.docx(31页珍藏版)》请在冰点文库上搜索。
if(t0==10)
t0=1;
temp=_crol_(temp,1);
}
else
if(t0%4==0)
P1=~P1;
if(t0==60)
{TR0=0;
P1=0xff;
flag1=1;
voidtimer1()interrupt3
TH1=(65536-50000)/256;
TL1=(65536-50000)%256;
t1++;
if(t1==5)
{t1=0;
shu--;
bai=shu/100;
shi=shu%100/10;
ge=shu%10;
if(shu==250)
TR0=1;
flag=1;
t0=0;
TR1=0;
voiddisplay(aa,bb,cc,dd,ee,bai,shi,ge)
{
wela=1;
P0=0xfe;
wela=0;
dula=1;
P0=table[aa];
delay
(1);
wela=1;
P0=0xfd;
P0=table[bb];
delay
(1);
wela=1;
P0=0xfb;
P0=table[cc];
P0=0xf7;
P0=table[dd];
P0=0xef;
P0=table[ee];
P0=0xdf;
P0=table[bai];
P0=0xbf;
P0=table[shi];
P0=0x7f;
P0=table[ge];
voiddelay(unitz)
{uniti,j;
for(i=z;
i>
0;
i--)
for(j=110;
j>
j--);
}
2.题目
通过按4*4的矩阵键盘在数码管上分别显示0~~F,例如按第一行第一列是显示0.按第一行第二列显示1·
·
实验程序:
sbitwela=P0^1;
sbitdula=P0^0;
Ucharcodetable[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71,0x36,0x76,0x38,0x3f,0};
voiddelay(unitz);
voiddisplay(ucharnum);
voidkeyscan();
dula=1;
P1=0;
dula=0;
wela=0;
{
keyscan();
voidkeyscan()
uchartemp,key;
P2=0xfe;
temp=P2;
temp=temp&
0xf0;
if(temp!
=0xf0)
delay(10);
temp=P2;
temp=temp&
{
temp=P2;
switch(temp)
case0x7e:
key=0;
break;
case0xbe:
key=1;
case0xde:
key=2;
case0xee:
key=3;
}
if(temp!
{
temp=P2;
temp=temp&
}
display(key);
voiddisplay(ucharnum)
{P1=table[num];
dula=1;
voiddelay(unitz)
一、实验目的与要求:
1、熟练掌握
KeilC51集成开发工具的操作及调试程序的方法,包括:
仿真调试与脱机运行间的切换方法;
2、熟练使用SST89C554RC单片机核心板及I/O扩展实验系统;
3、熟练掌握在KeilC51与Proteus仿真软件虚拟联机环境下,基于51单片机控制器数字接口电路的硬件、软件设计与功能调试;
4、完成MCS51单片机指令系统软件编程设计和硬件接口功能设计题;
二、基本实验内容(SST89E54RC单片机实现单片机实现)
实验一:
清零程序与拆字程序设计根据实验指导书之“第二章单片机原理实验”(P17~P23页)内容,熟悉实验环境及方法,完成思考题1、2(P23)基础实验项目。
(1)
(2)
1:
ORG0000H
LJMPMAIN
ORG0100H
MAIN:
MOVR0,#00H;
片内RAM首地址
MOVR1,#10H;
R1设定值
MOVDPTR,#7000H;
写入数据初值
MOVA,#00H
DIM:
LOOP:
MOVX@DPTR,A
INCDPTR
INCR0
CJNER0,#00H,LOOP
DJNZR1,DIM
SJMP$
END
2:
MOVA,#13H
MOVDPTR,#7000H
MOVX@DPTR,A
MOVXA,@DPTR
MOVB,A
SWAPA
ANLA,#0FH
MOVDPTR,#7001H
MOVA,B
MOVDPTR,#7002H
MOVX@DPTR,A
MOVX@DPTR,A
实验二:
拼字程序与数据传送程序设计汇编语言完成实验指导书P24思考题3、4题的基础实验项目。
(3)(4)
3:
ORG0100H
MOVX@DPTR,A;
给7000H赋初值
MOVA,#24H
7001H
ORLA,B
4:
AJMPMAIN
LOOPEQU50H
MAIN:
MOVR2,#70H
MOVR3,#00H
MOVR4,#70H
MOVR5,#20H
MOVR6,#00H
MOVR7,#05H
MOVDPH,R6
MOVDPL,R7
MOVA,#05H
MOVX@DPTR,A
MOVLOOP,A;
字节数
CS:
MOVDPH,R2
MOVDPL,R3
MOVXA,@DPTR;
首地址值里的内容
MOVDPH,R4
MOVDPL,R5
MOVX@DPTR,A;
首地址内容传送到R4R5的地址
CLRC;
进位端清零
MOVA,R3
ADDA,#01H
MOVR3,A
JCC1
JMPC3
C1:
MOVA,R2
ADDA,#01H
MOVR2,A;
地址后移
C3:
CLRC
MOVA,R5
MOVR5,A
CLRA
ADDCA,R4;
R4R5地址后移
MOVR4,A
C4:
DJNZLOOP,CS
SJMP$
END
实验三:
散转与排序程序设计汇编语言完成实验指导书P24思考题5、6题的基础实验项目。
(5)(6)
5:
MOVR0,#30H
MOVR1,#0AH
MOVA,@R0
LOG:
INCR0
CJNEA,@R0,MIN
MIN:
JCMMN
SJMPMON
MMN:
MOV@R0,B
MON:
DJNZR1,LOG
6:
ORG0000H
MOVR0,#30H;
数据块起始地址
MOVR1,#0AH;
比较数据个数
DECR1
MOVA,R0
CLRPSW.5;
清标志位
MST:
MOVA,R4
MOVR0,A
MOVA,R1
MOVR3,A
MOVR2,A
CLRC
SUBBA,R2
JCMON;
前数小于后数,不变
SETBPSW.5;
清标志位
DECR0
MOV@R0,A
DJNZR3,LOG
JBCPSW.5,MST
实验四:
数字量输入输出实验
基本部分:
阅读、验证C语言程序功能。
使用汇编语言编程,完成实验指导书
之“3.1数字量输入输出实验”基本实验项目(P36)。
汇编程序:
ORG0000h
LJMPSTART
ORG0060H
START:
MOVA,#0F0H;
准备给P1口高四位置高,做输入
MOVP1,A;
给P1口高四位置高
MOVA,P1;
读P1口
SWAPA;
交换A的高四位与低四位MOVP1,A;
将读到的数送P1口显示(通过P1口的低四位接的发光二极管显示)
LJMPSTART;
重新扫描
END
提高部分:
题目一:
LED交通灯控制(使用8255接口芯片)
要求:
使用汇编语言编程,功能为:
通过开关实现LED灯工作方式即时控制,完成LED交通灯的开关控制显示功能和LED交通灯自动循环显示功能。
题目二:
LED灯控制(使用8255接口芯片)
通过KK1实现LED灯工作方式即时控制完成LED开关控制显示和LED灯左循环、右循环、间隔闪烁功能。
题目三:
键盘扫描与数码管显示设计(使用8255接口芯片)
要求:
阅读、验证C语言参考程序功能。
使用汇编语言完成编程与功能调
试(P69)。
实验五:
定时器/计数器实验
之“3.3定时/计数器实验”基本实验项目(P40)。
(任选一题完成)
题目一:
定时器控制LED灯
由单片机内部定时器1,按方式1工作,即作为16位定时器使用每0.05秒钟T1溢出中断一次。
P1口的P1.0-P1.7分别接八个发光二极管。
编写程序模拟时序控制装置。
开机后第一秒钟L1,L3亮,第二秒钟L2,L4亮,第三秒钟L5,L7亮,第四秒钟
L6,L8亮,第五秒钟L1,L3,L5,L7亮,第六秒钟L2,L4,L6,L8亮,第七秒钟八个
LED灯全亮,第八秒钟全灭,以后又从头开始,L1,L3亮,然后L2,L4亮……一直循环下去。
汇编程序:
ORG00H
LJMPMAIN
MOVSP,#30H
MOVP1,A
L0:
MOVA,#05H;
第1s
LCALLDELAY
MOVA,#0AH
MOVP1,A
LCALLDELAY
MOVA,#50H
LCALLDELAY
MOVA,#0A0H
MOVA,#55H
MOVA,#0AAH
MOVA,#0FFH
CLRA;
第8s
LJMPL0
DELAY:
;
1s定时,初始化定时器
MOVTMOD,#10H
MOVTH1,#9EH
MOVTL1,#58H
MOVIE,#00H
MOVR0,#14H
SETBTR1
LOOP1:
JBCTF1,LOOP2
AJMPLOOP1
LOOP2:
MOVTH1,#9EH
CLRTF1
DJNZR0,LOOP
RET
计数器实验:
单片机内部定时计数器,按计数器模式和方式1工作,对
P3.4(T0)引脚进行计数。
使用T1作定时器,50ms中断一次,看T0内每0.50来了多少脉冲,将其数值按二进制在LED灯上显示出来,5秒后再次测试。
急救车与交通灯(外部中断实验)
完成交通灯基本功能基础上,当有急救车到达时,两向交通信号为
全红,以便让急救车通过。
假定急救车通过路口时间为10秒,急救车通过后,
交通灯恢复中断前状态。
本实验题以按键为中断申请,表示有急救车通过。
实验六:
A/D、D/A转换实验
基本部分:
阅读、验证
C语言程序功能。
使用汇编语言编程,完成实验指导书之“4.3A/D转换实验”项目(P64)和“4.4D/A转换实验”项目(P67)。
实验目的:
1.学习数/模转换的基本原理
2.掌握DAC0832的使用方法。
实验内容:
设计实验电路图实验线路并编写程序,实现D/A转换,要求产生锯齿波、脉冲波,并用示波器观察电压波形。
实验原理:
D/A转换器是一种将数字量转换成模拟量的器件,其特点是:
接收、保持和转换的数字信息,不存在随温度、时间漂移的问题,其电路抗干扰性较好。
大多数的D/A转换器接口设计主要围绕D/A集成芯片的使用及配置响应的外围电路。
DAC0832是8位芯片,采用CMOS工艺和R-2RT形电阻解码网络,转换WR1结果为一对差动电流Iout1和Iout2输出,其主要性能参数如表4-4-1示,引脚如图4-4-1所示。
实验步骤
1.实验接线图如图4-4-2所示,按图接线;
2.编写实验程序,经编译、链接无误后装入系统,启动调试;
3.运行程序,用示波器测量DA的输出,观察实验现象;
4.自行编写实验程序,产生三角波形,使用示波器观察输出,验证程序功能。
AD:
ORG00H
STREQU7F08H;
转换值存储地址
MOVR0,#08
MOVDPTR,#7F00H;
转换值起始地址
NOP
JNBP3.3,$
MOVXA,@DPTR
MOVP2,STR
MOVR0,STR+1
INCSTR
DJNZR0,LOOP
DA:
MOVDPTR,#7FFFH
MOVA,#00H;
初始值,产生锯齿波
LP1:
MOVX@DPTR,A
INCA
SJMPLP1
提高部分:
(要求在PROTERUS中完成)
小键盘给定(并显示工作状态),选择信号源输出波形类型(D/A
转换方式),经过A/D采样后,将采样数据用LED灯,显示当前模拟信号值大小及变化状态。
实验七:
串行通信实验
阅读、调试C语言程序功能。
之“3.7串口通讯实验”项目。
(要求:
实验仪器上完成)
利用单片机实验系统,实现与PC机通讯。
功能要求:
将从实验系统键盘上键入的数字,字母显示到PC机显示器上,将PC机键盘输入的字符(0-F)显示到单片机实验系统的数码管上。
1.学习MCS-51单片机串口的工作原理及程序设计;
2.了解使用SSTEasyIAP11F.EXE软件实现程序脱机运行的方法;
3.熟悉启动加载代码与SoftICE相互切换的方法。
MCS-51单片机内部的全双工串行接口部分,包含有串行接收器和串行发送器。
有两个物理上独立的接收缓冲器和发送缓冲器。
接收缓冲器只能读出接收的数据,但不能写入。
发送缓冲器只能写入发送的数据,但不能读出。
因此可以同时收、发数据,实现全双工通讯。
两个缓冲器是特殊功能寄存器SBUF,它们公用地址为99H,SBUF是不可位寻址的。
此外,还有两个寄存器SCON和PCON分别用于控制串行口的工作方式以及波特率,定时器T1可以用作波特率发生器SST89E554RC提供了增强型全双工串行接口,具有帧错误检测和自动地址识别的功能。
由于SST89E554RC的串口用作调试目的,所以KeilC51软件提供了串口模拟窗口,可以借助此窗口调试串口通讯程序。
也可以将程序编译生成目标代码(.HEX),脱机运行。
实验内容
编写实验程序,每隔一定的时间单片机向串口发送一次数据“Xi’anTangduCorp.”。
ORG0023H;
中断设置
LJMPXJM
MOVR1,#50H;
初始化,选定时器1产生19200b/S的波特率
MOVR0,#00H
MOVTMOD,#20H
MOVTL1,#0FDH
MOVTH1,#0FDH
MOVSCON,#50H
MOVR7,#20H
SETBTR1;
开启定时器
SETBES;
开串行中断
SET
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 中南 大学 单片机 课程设计