单片机课程设计Word格式.docx

上传人:b****1 文档编号:4206413 上传时间:2023-05-02 格式:DOCX 页数:28 大小:222.83KB
下载 相关 举报
单片机课程设计Word格式.docx_第1页
第1页 / 共28页
单片机课程设计Word格式.docx_第2页
第2页 / 共28页
单片机课程设计Word格式.docx_第3页
第3页 / 共28页
单片机课程设计Word格式.docx_第4页
第4页 / 共28页
单片机课程设计Word格式.docx_第5页
第5页 / 共28页
单片机课程设计Word格式.docx_第6页
第6页 / 共28页
单片机课程设计Word格式.docx_第7页
第7页 / 共28页
单片机课程设计Word格式.docx_第8页
第8页 / 共28页
单片机课程设计Word格式.docx_第9页
第9页 / 共28页
单片机课程设计Word格式.docx_第10页
第10页 / 共28页
单片机课程设计Word格式.docx_第11页
第11页 / 共28页
单片机课程设计Word格式.docx_第12页
第12页 / 共28页
单片机课程设计Word格式.docx_第13页
第13页 / 共28页
单片机课程设计Word格式.docx_第14页
第14页 / 共28页
单片机课程设计Word格式.docx_第15页
第15页 / 共28页
单片机课程设计Word格式.docx_第16页
第16页 / 共28页
单片机课程设计Word格式.docx_第17页
第17页 / 共28页
单片机课程设计Word格式.docx_第18页
第18页 / 共28页
单片机课程设计Word格式.docx_第19页
第19页 / 共28页
单片机课程设计Word格式.docx_第20页
第20页 / 共28页
亲,该文档总共28页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

单片机课程设计Word格式.docx

《单片机课程设计Word格式.docx》由会员分享,可在线阅读,更多相关《单片机课程设计Word格式.docx(28页珍藏版)》请在冰点文库上搜索。

单片机课程设计Word格式.docx

//将P15位定义为P1.5引脚

sbitP16=P1^6;

//将P16位定义为P1.6引脚

sbitP17=P1^7;

//将P17位定义为P1.7引脚

sbitP05=P0^5;

sbitP06=P0^6;

sbitP07=P0^7;

sbitP36=P3^6;

sbitP37=P3^7;

sbitP35=P3^5;

unsignedcharcodeledcode[10]=

{

0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x67,

};

//数字0~9的段码

unsignedcharcodesaom[4]={0xfe,0xfd,0xfb,0xf7};

unsignedcharkeyval;

//定义变量储存按键值

voiddelay1ms(unsignedintms)//延时子程序

{

unsignedchari;

while(ms--)

{

for(i=0;

i<

120;

i++);

}

}

voidled_delay(void)

unsignedcharj;

for(j=0;

j<

200;

j++)

;

}

voidshui(unsignedcharxx)

{

switch(xx){

case1:

P2=0x7f;

P3=0xff;

delay1ms(500);

P2=0xbf;

P2=0xdf;

P2=0xef;

P2=0xf7;

P2=0xfb;

P2=0xfd;

P2=0xfe;

P2=0xff;

P3=0xdf;

P3=0xef;

P3=0xf7;

P3=0xfb;

break;

case2:

P2=0xff;

P2=0xfb;

P2=0xf7;

break;

defult:

}}

voiddisplay(unsignedchark)

{unsignedcharm;

P1=ledcode[k%10];

//显示十位

P0=saom[0];

//点亮数码管DS6

led_delay();

//动态扫描延时

//动态扫描延时

P0=0x00;

//显示个位

P0=saom[1];

//点亮数码管DS7

P0=saom[2];

P0=saom[3];

//点亮数码管DS7

voiddelay20ms(void)

unsignedchari,j;

for(i=0;

i<

100;

i++)

60;

voidmain(void)

{P2=0x00;

P3=0xc0;

delay1ms(2000);

P2=0x00;

P0=0x0f;

EA=1;

//开总中断

ET0=1;

//定时器T0中断允许

TMOD=0x01;

//使用定时器T0的模式1

TH0=0xee;

//定时器T0的高8位赋初值

TL0=0x00;

TR0=1;

//启动定时器T0

keyval=0x00;

//按键值初始化为0

while

(1)//无限循环

{

shui(keyval);

}

voidtime0_interserve(void)interrupt1using1//定时器T0的中断编号为1,使用第一组寄存器

{unsignedcharsao=0;

TR0=0;

//关闭定时器T0

P3=0x3f;

//所有行线置为低电平“0”,所有列线置为高电平“1”

P0=0xe0;

if(P0|0x0f!

=0xef)//列线中有一位为低电平“0”,说明有键按下

delay20ms();

//延时一段时间、软件消抖

=0xef)//确实有键按下

{P0=0xff;

P36=0;

//第一行置为低电平“0”(P1.0输出低电平“0”)

if(P05==0)//如果检测到接P1.4引脚的列线为低电平“0”

keyval=1;

//可判断是S1键被按下

if(P06==0)//如果检测到接P1.5引脚的列线为低电平“0”

keyval=2;

//可判断是S2键被按下

if(P07==0)//如果检测到接P1.6引脚的列线为低电平“0”

keyval=3;

//可判断是S3键被按下

P37=0;

//第二行置为低电平“0”(P1.1输出低电平“0”)

//可判断是S5键被按下

//可判断是S6键被按下

//可判断是S7键被按下

sao=sao+1;

if(sao==4){sao=0;

P0=saom[sao];

switch(keyval)

case1:

switch(sao){case0:

P1=ledcode[0];

case2:

case3:

P1=ledcode[1];

switch(sao){case0:

P1=ledcode[2];

case3:

P1=ledcode[3];

}

//开启定时器T0

//定时器T0的高8位赋初值

二、定时器或实时时钟实验

1、实验目的

1)数码管动态显示技术

2)定时器的应用

3)按键功能定义

1)通过按键可以设定定时时间,启动定时器,定时时间到,让12个发光二极管闪烁,完成定时器功能。

2)实时时钟,可以设定当前时间,完成钟表功能(四位数码管分别显示分钟和秒)。

上述二个功能至少完成一种功能。

1设计功能:

利用89C52RC单片机设计定时器,将按键定义为设置键、上翻键、下翻键、开始/取消键。

数码管显当前设置时间与正在计时时间。

可通过按键在1-99秒之间设置,按开始键启动计时,计时完成后驱动蜂鸣器发声提示。

1LED是发光二极管的英文缩写,LED显示器是由发光二极管构成的,它在单片机中的应用非常普遍。

通常所说的LED显示器由7个发光二极管组成,其排列形状如图所示。

此外,显示器中还有一个圆点型发光二极管以dp表示,用于小数点表示。

通过七个发光二极管亮暗的不同组合,可以显示多种数字、字母以及其它符号。

LED显示中的发光二极管共有两种连接方法:

2共阳极接法:

把发光二极管的阳极连在一起构成公共阳极。

使用时公共阳极接+5V。

这样阴极端输入低电平的段发光二极管就导通点亮,而输入高电平的则不亮。

3共阴极接法:

把发光二极管的阴极连在一起构成公共阴极。

使用时公共阴极接地。

这样阳极端输入高电平的段发光二极管就导通点亮,而输入低电平的则不亮。

4控制数码管驱动级的控制电路有静态式和动态式两类:

5静态驱动:

它是指每个数码管都要用一个译码器译码驱动。

6动态驱动:

它是所的数码管使用一个专门的译码驱动器,使各位数码管逐个轮流显示,它的扫描速度极快,因此显示效果与静态驱动相同。

7采用动态数码管显示,可以大幅度地降低硬件成本和电源的功耗,因为某一时刻只有一个数码管工作,就是所谓的分时显示,显示所需要的硬件电路可分时复用。

共阴极共阳极符号与引脚

如表1为共阳极与共阴极的代码表

2设计目的

1)注重培养综合运用所学知识、独立分析和解决实际问题的能力,培养创新意识和创新能力,并获得科学研究的基础训练;

2)了解89C52RC各个引脚功能,工作方式,计数/定时,I/O口,中断等的相关原理,并巩固学习嵌入式的相关内容知识;

3)通过软硬件设计实现定时器功能。

1.3设计任务

1)查阅相关文献资料,熟悉89C52RC芯片;

2)总体设计方案规划;

3)系统硬件设计,芯片设计及其各模块间的连线;

4)系统软件设计,用汇编语言编写程序,实现其定时器功能;

5)设计心得体会及总结。

2原理介绍

流程图

程序:

时钟c语言程序:

#include<

unsignedchartm=0,tf=60,o=0,u;

voiddisplay()

P1=ledcode[tf/10];

P1=ledcode[tf%10];

P1=ledcode[tm/10];

P1=ledcode[tm%10];

TH0=0x4c;

{

display();

//调用按键值的数码管显示子程序

if(tf==0&

tm==0)

for(u=0;

u<

49;

u=u+1)

P2=~P2;

P3=~P2;

delay20ms;

delay20ms;

voidtime0_interserve(void)interrupt1using1//定时器T0的中断编号为1,使用第一组寄存器

o=o+1;

if(o==20){

o=0;

tm=tm-1;

if(tm==-1)

{tm=59;

tf=tf-1;

if(tf==-1)

{tf=59;

}}}

P0=0xef;

=0xef){//列线中有一位为低电平“0”,说明有键按下

if(P05==0){//如果检测到接P1.4引脚的列线为低电平“0”

if(tf>

9){tf=tf-10;

while(P05==0);

}}//可判断是S5键被按下

if(P06==0){//如果检测到接P1.5引脚的列线为低电平“0”

0){tf=tf-1;

while(P06==0);

}}//可判断是S6键被按下

if(P07==0){//如果检测到接P1.6引脚的列线为低电平“0”

tf=60;

tm=0;

while(P07==0);

}//可判断是S7键被按下

}}

三、双机通信实验

UART串行通信接口技术应用

用两片核心板之间实现串行通信,将按键信息互发到对方数码管显示。

单片机串口原理图

串行口控制寄存器SCON(98H):

SCON:

SM0,SM1:

串行口4种工作方式的选择位。

00方式0:

8位移位寄存器,波特率固定为fosc/12

01方式1:

10位异步收发(1+8+1位),

波特率可变,按公式计算

10方式2:

11位异步收发(1+8+1+1位),

波特率固定=foscx1/32或1/64

11方式3:

波特率可变,按公式计算

RI,TI:

串行口收/发数据申请中断标志位

=1申请中断;

=0不申请中断

在方式0中,第8位发送结束时,由硬件置位。

在其他方式的发送停止位之前,由硬件置位。

TI置位既表示一帧信息发送结束,同时也是申请中断,可根据需要,用软件查询方法获得数据已发送完毕的信息,或者也可由中断的方式来发送下一个数据。

TI必须由软件清0

RI和TI道理相同也需要由软件清0

RB8:

在方式2、3中,是收到的第9位数据。

在多机通信中,用作区别地址帧/数据帧的

标志。

(奇偶校验)

TB8:

方式2、3中,是要发送的第9位数据。

多机通信中,TB8=0表示发送的是数据;

TB8=1表示发送的是地址。

REN:

串行口接收允许控制位

=1表示允许接收;

=0禁止接收。

程序设计(单片机与上位机通信):

unsignedchartmp;

voidmain(void){

P1=0xff;

TMOD=0x20;

//定时器1工作于8位自动重载模式,用于产生波特率

TH1=0xFD;

//波特率9600

TL1=0xFD;

SCON=0x50;

//设定串行口工作方式

PCON&

=0xef;

//波特率不倍增

TR1=1;

//启动定时器1

IE=0x0;

while

(1)

四:

交通灯实验

1)按键、数码管、发光二极管综合应用编程技术

2)数据存储于EEPROM的技术(也可以不使用)

3)定时中断技术

4)按键中断技术

1)对每个路口(主干道、次干道)的绿灯时间,及黄灯时间的设定。

2)设定参数掉电后不丢失(如果不使用EEPROM,此功能可以不实现)。

3)紧急按键功能,当按下该键时,所有路口变成红灯,相当于交警指挥特殊车辆通过。

再按该键,恢复正常显示。

一、设计目的

1、通过单片机课程设计,熟练掌握汇编语言的编程方法,将理论联系到实践中去,提高我们的动脑和动手的能力。

2、通过交通信号灯控制系统的设计,掌握定时/计数器及中断的使用方法,和简单程序的编写,最终提高我们的逻辑抽象能力。

二、设计任务和要求

任务:

设计一个能够控制十二盏交通信号灯的模拟系统

要求:

利用单片机的定时器定时,令十字路口的红绿灯交替点亮和熄灭,并用LED灯显示倒计时间。

1、东西绿灯亮,南北红灯亮2、黄灯亮3、东西红灯亮,南北绿灯亮

三、设计原理分析

1、首先了解实际交通灯的变化情况和规律。

假设一个十字路口如上图所以,为东南西北走向。

初始状态0:

为东西绿灯亮,南北红灯亮;

然后转状态1:

东西绿灯亮黄灯亮,南北红灯亮黄灯亮;

过后转状态2:

东西红灯亮,南北绿灯亮;

再转状态3:

东西红灯亮黄灯亮,南北绿灯亮黄灯亮。

一段时间后,又循环至状态0。

中间可通过中断按钮产生中断,跳入中断程序执行中断。

列出交通信号灯的状态表如下:

(其中,1代表灯亮,0代表灯灭)

状态

西

绿黄红

001

100

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

当前位置:首页 > 解决方案 > 学习计划

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2