人人范文网 其他范文

单片机毕业设计(精选多篇)

发布时间:2022-05-24 21:04:20 来源:其他范文 收藏本文 下载本文 手机版

推荐第1篇:电子,单片机毕业设计毕业论文

706.波形发生器、频率计和数字电压表设计 707.水位遥测自控系统 毕业论文

708.宽带视频放大电路的设计 毕业设计 709.简易数字存储示波器设计毕业论文 710.球赛计时计分器 毕业设计论文 711.IIR数字滤波器的设计毕业论文 712.PC机与单片机串行通信毕业论文 713.基于CPLD的低频信号发生器设计毕业论 714.基于51单片机的多路温度采集控制系统 715.仓库温湿度的监测系统 716.基于单片机的电子密码锁 717.单片机控制交通灯系统设计

718.智能抢答器设计

719.基于DSP的IIR数字低通滤波器的设计与实现 720.基于LabVIEW的PC机与单片机串口通信 721.DSP设计的IIR数字高通滤波器的设计 722.单片机数字钟设计 723.数字自动打铃系统

724.激光切割轨道系统的上位机设计 725.由AT89C51控制的太阳能热水器 726.单片机歩进电机转速控制器的设计 727.频率特性测试仪的设计

728.用集成温度传感器组成测温控制系统 729.微尺度观测仪的物理原理及应用 730.低频数字式相位差测量仪的设计 731.智能开关稳压电源的设计

732.智能家居系统CAN总线通信模块设计 733.智能家居系统GPRS通信模块设计 734.智能家居GUI模块设计

735.小型风光互补路灯控制器设计

736.基于MCS-51单片机的高精度数字测相装置的设计 737.基于单片机的火灾自动报警系统 738.数字显示多路电压设计 739.智能防盗报警系统设计 740.数字调频立体收音机

741.基于单片机的水温控制系统 742.电子广告牌的设计

743.电力变压器保护

744.变电站综合自动化系统研究 745.智能象棋比赛定时器的设计 746.基于单片机的电动车跷跷板 747.艺术彩灯设计

748.基于单片机的密码锁设计 749.双输出可调稳压电源的设计 750.用IC卡实现门禁管理系统

751.智能消毒柜控制系统 752.自动太阳光追踪器

753.基于89C51的点阵屏显示设计

754.利用AT89C5单片机实现节日彩灯控制 755.自动温度控制系统 756.室内温度控制报警器 757.8751H单片机控制步进电机 758.高精密多路计时器 759.小型触摸式防盗报警器 760.频率特性测试仪设计 761.出租车计价器

762.数控直流稳压电源设计

763.数字电度表--具有远程抄表功能

764.基于多单片机的数据测控硬件系统的设计

765.基于MATLAB的他励直流电机虚拟教学实验系统的设计与开发 766.基于87C196MC交流调速系统主电路硬件的设计与开发 767.基于80C196MC交流调速系统控制电路的硬件设计与开发 768.多环教学实验系统模拟电子电路控制模板的设计与开发 769.双闭环控制系统模拟控制模板设计

770.双闭环V-M直流调速虚拟实验系统的开发 771.双闭环PWM直流调速虚拟实验系统的开发 772.基于8098单片机实现的SPWM变频调速系统 773.调幅收音机的原理与调试 774.电力线载波系统

775.基于单片机的温室电炉的控制系统

776.基于MCS-51单片机的变色灯控制系统设计与实现 777.基于单片机的频率计的设计 778.烤箱温度控制系统 779.电容测量仪

780.基于AT89S51单片机的波形发生器设计 781.简易低频信号发生器

782.基于单片机的红外遥控开关

783.发动机电喷内核模型的研究及实践 784.基于AT89S52的函数信号发生器

785.智能住宅的功能设计与实现原理研究 786.基于PIC16F876A单片机的超声波测距仪 787.基于单片机的呼叫系统的设计 788.电容测量电路的设计

789.电压频率变换器

790.基于单片机的IC卡门禁系统设计 791.压阻式传感器在压力方面的技术应用 792.全集成电路高保真扩音机

793.单片机控制的三相全控桥触发系统设计 794.IC卡智能燃气表的研制

795.传感器信号模拟电路设计研究

796.基于C8051F040单片机的智能电导率分析仪 797.基于MODBUS协议的远程端口控制系统 798.两路电力线加载信号检测识别系统 799.单片机的语音存储与重放的研究 800.基于单片机的电器遥控器的设计

推荐第2篇:电子类(单片机类)毕业设计目录

电子类(单片机类)毕业设计目录

001CDMA通信系统中的接入信道部分进行仿真与分析.doc 002LED显示屏动态显示和远程监控的实现.doc

003MCS-51单片机温度控制系统.doc

004PLC电路在备用自动投入中.doc

005PLC在变电站变压器自动化中的实现.doc

006USB接口设计.pdf

007USB数据采集系统论文.doc

008OFDM通信系统基带数据.pdf

009变频恒压供水控制系统的研究.doc

010超声波测距模块的设计.doc

011车辆牌照图像识别算法研究与实现.doc

012城市交通决策支持系统.doc

013出租车计价器课程设计任务书.doc

014单片机CHMOS技术毕业设计.doc

015单片机程序控制语音播放.doc

016单片机串行通信发射机.doc

017单片机的数字钟设计.doc

018单片机的智能电源管理系统.doc

019单片机课程设计__电子密码锁报告.doc

020单片机课程设计-交通灯.doc

021单片机控制步进电机.doc

022单片机控制交通灯.doc

022单片机软件喂狗方式和硬件喂狗方式的比较.pdf 023单片机小系统板安装实习报告.doc

024单片机作息时间控制1.doc

025单片机作息时间控制.doc

026点阵电子显示屏设计.doc

027电动智能小车(完整论文).doc

028电力电子技术在绿色照明电路中的应用.doc

029电力拖动控制系统设计.doc

030电力线载波调制解调器设计.doc

031电气火灾自动保护型断路器的设计.doc

032电视伴音红外转发器的设计.doc

033电信运营商收入保障系统设计与实现.doc

034电子测评仪的设计.doc

035电子电路的电子仿真实验研究.doc

036电子设计大赛点阵电子显示屏(A题).doc

037对漏电保护安全性能的剖析.doc

038多传感器障碍物检测系统的软件设计.doc

039火灾自动报警系统设计.doc

040基于16位单片机的语音电子门锁系统.doc

041基于51单片机的多路温度采集控制系统设计.doc 042基于AC3的虚拟环绕声实现.doc

043基于GSM短信模块的家庭防盗报警系统.doc

044基于Linux的SNMP构建中小规模企业网管理系统.kdh

045基于Lotus DominoNotes的办公自动化系统研究与实现.caj

046基于PLC的中密度纤维板生产线智能监控系统的研究.NH

047基于SNMP的网络应用软件监控系统设计.caj

048基于VB实现PC机与单片机的串行通讯.doc

049基于WEB的CAI课件写作系统的设计与实现.NH

050基于XML的WEB数据库信息发布系统的研究与设计.nh

051基于车轮制动力测量系统评价汽车制动性能.KDH

052基于单片机的电器遥控器设计.doc

053基于单片机的多功能智能小车设计(电路+程序+论文).doc

054移相全桥型零电压开关PWM电路的设计.doc

055基于单片机的数码录音与播放系统.doc

056基于单片机控制的霓虹灯控制器.doc

057基于定点DSP的MP3解码系统设计与实现.CAJ

058基于网络的虚拟仪器测试系统.doc

059门控自动照明电路.doc

060全遥控数字音量控制的D 类功率放大器.doc

061数控直流稳压电源完整论文.doc

062数字密码锁设计.doc

063数字抢答器(数字电路).doc

064数字时钟1.doc

065水箱单片机控制系统.doc

066同步电机模型的MATLAB仿真.doc

067温度监控系统的设计.doc

068一种基于ST62单片机的称重显示控制器.pdf

069用单片机控制直流电机.doc

070用单片机实现温度远程显示1.doc

071用单片机实现温度远程显示.doc

072直流斩波器.doc

073智能家用电热水器控制器.pdf

074自动加料机控制系统.doc

07516×16点阵(滚动显示)

076出租车计费系统的设计(有任务书)

077单片机串行通信发射部分设(翻译)

078电气工程系06届毕业设计开题报告

079电子时钟(图纸)

080基于GSM模块的车载防盗系统设计 TC35i 资料(带图)

081数字式竞赛抢答器(带图)

082镇流器生产自动检测系统开发

083智能型充电器的电源和显示的设计(整套)

084VHDL电路设计论文.doc

085仓库温湿度的监测系统.doc

086单片机控制交通灯.doc

087智能充电程序(完整)

0886.2PC机与单片机串口通信

089计算器模拟系统设计(论文加图纸).doc

090同步电机模型的MATLAB仿真

091高压钠灯点火系统

092遥控小汽车的设计研究论文(含程序和原理图等)

093乒乓球比赛游戏机设计

094单片机课程设计__电子密码锁报告.doc

095基于51的电子密码锁,有多种功能.可设置密码,可加密.用PROTUS仿真.在周立功实验箱上通过测试

096基于单片机的红外遥控电子密码锁

097交通灯控制器

098温度传感器DS18B20测量环境温度_红外数据传输的过程.doc

099基于PLC的工业以太网控制的实现

100利用plc制作交通灯

101CCD相机电子快门控制技术的研究

102CMOS图像传感器数码相机的研究

103PSD检测系统的电路研究

104任意波形发生器

105光栅莫尔条纹细分技术的的研究

106光电传感器在光通信中的应用

107光电密码锁的设计

108全自动生化分析仪的研究

109半自动生化分析仪的研究

110单片机控制直流电机稳速调速系统的研究

111基于89C51的电机自动调速系统的设计

112基于89C55的温度实验箱的研究

113基于AT89S51的无线接收发送温度控制系统

114基于AVR单片机的电机恒流控制研究

115基于CPLD技术的医用微量注射仪电控系统的研究

116基于CPLD技术的镀膜机膜厚测量装置的研究

117基于CPLD的光功率检测装置的设计

118基于CPLD的线阵CCD驱动电路的研究

119基于DDS的信号发生器的研究

120基于DSP2407的电机控制的研究

121基于FPGA技术的膜厚测量装置的研究

推荐第3篇:单片机数字温度计毕业设计提纲 大纲 参考

毕业论文设计提纲

生:

专业: 电子信息工程技术

指导教师:

职称: 高级电子工程师 【题目】

《 单片机数字温度计显示设计 》 【摘要】

(对设计进行评估)

【关键字】

单片机、温度传感器、数字显示

设计准备:搜集、分析相关资料确定实现的系统功能,及相关配套知识。 设计功能: 1.设计内容

采用数字式温度传感器为检测器件,进行单点温度检测。用数码管直接显示温度值,微机系统作为数字温度计的控制系统。

(1)检测的温度范围:0℃~100℃,检测分辨率 0.5℃。 (2)用4位数码管来显示温度值。 (3)超过警戒值(自己定义)要报警提示。 2.拟达到目标

设计出来的电子温度计能够精确的测量出温度值,能够显示0℃~120℃的温度,超过或者低于设定上下线时能够准确的发出警报(自定义)。 ////////蓝色字体可不用 【内容】

第1章 系统总体设计及功能

1.1

设计背景

1.2

电路工作原理

1.3

设计实现功能

1.4

设计所需软件

第2章

单片机原理与应用系统硬件选取

2.1

AT89S51概述

(功能、参数具体在分小节) 2.2

DS18B20概述

(参数、实用方法在分小节) 第3章 系统硬件原理电路设计

3.1 单片机最小系统电路设计 3.2 温度传感器电路设计 3.3 显示电路设计

3.4 报警电路设计 (可选) 第4章

系统应用软件设计

4.1 系统程序流程图 4.2 系统程序代码

第5章

系统软件仿真及硬件测试

5.2

应用仿真软件仿真测试

5.3

进行实物硬件测试 (可选) 第6章

全文设计总结

6.1

设计整体效果

6.2

设计发展及期待 致谢

参考文献

( 后备上 ) 附件

(可选)

推荐第4篇:单片机

1.主机开发板一套(配齐板上所有元件)。

2.9孔对9孔串口通讯电缆一条(兼程序下载线)。

3.USB电缆线两条,一条为下载线,另一条为电源线。

4.1602字符液晶一块(只能显示数字和英文,不能显示汉字)。

5.光盘两张DVD(内附天祥老师13讲40小时高清视频教程及开发板全套资料)。

6.SST89E516单片机仿真芯片一块。

7.天祥电子彩色宣传册一本。

8.固定电路板支撑柱4个。

9.我公司正规机打出库单据一张,客户认证序列号条形码(板底贴好)。

10.精美包装盒。

GTX TX-1C扩展板是天祥电子在TX-1C 51单片机学习板基础上开发的扩展学习板,补充了TX-1C学习板欠缺的功能,主要集成了以下功能模块和扩展接口:

1.红外接收模块;(可学习用遥控器无线控制功能)

2.DS1302实时时钟模块;(可学习时钟功能)

3.DS12C887实时时钟模块;(可实现TX-1C学习板配套视频中时钟实验)

4.8×8点阵模块;(可学习点阵的静态显示与动态显示功能)

5.继电器模块;(可学习继电器控制功能)

6.直流电机接口;(可学习TX-1C学习板配套书籍《新概念51单片机C语言教程》中电机实验)

7.步进电机接口(5/6线);(可学习TX-1C学习板配套书籍《新概念51单片机C语言教程》中电机实验)

8.舵机接口;(可学习TX-1C学习板配套书籍《新概念51单片机C语言教程》中舵机实验)

9.TX4432无线模块接口;(可学习433M无线数据传输功能)

10.超声波模块接口;(可学习超声波测距功能)

11.电源扩展(5V、3.3V、GND)接口;

12.四个独立按键扩展接口;

13.40P STC系列单片机最小系统接口,IO口全部引出;(此接口可以用来安装STC 40P直插封装的各种单片机,所有IO口均独立引出,可通过杜邦线连接TX-1C板下载程序或连接扩展板上其它模块完成实验)

推荐第5篇:单片机

PLC电路在备用自动投入中

PLC在变电站变压器自动化中的实现

VHDL电路设计

变频恒压供水控制系统的研究

超声波测距模块的设计

车辆牌照图像识别算法研究与实现

城市交通决策支持系统

出租车计费系统的设计

串口通信控制器

串口通讯 -

单片机程序控制语音播放

单片机串行通信发射部分设计

单片机的多功能智能小车

单片机的数字钟设计

单片机的智能电源管理系统

单片机精确计时的电源开关

单片机课程设计__电子密码锁报告

单片机课程设计-交通灯

单片机控制步进电机

单片机软件喂狗方式和硬件喂狗方式的比较

单片机实现的步进电机控制系统设计(论文+DWG图纸+外文翻译+任务书+文献综述) 单片机实现温度远程显示

单片机小系统板安装实习报告

单片机作息时间控制

电力电子技术在绿色照明电路中的应用

电力电子技术在绿色照明电路中的应用

电力线载波调制解调器设计

电气火灾自动保护型断路器的设计

电梯升降的PLC控制设计

基于PLC的液位控制系统的设计(论文+外文翻译+开题报告+文献综述)

基于单片机的多功能转速表(论文+DWG图纸+开题报告+外文翻译+英文文献) 某小区的智能化系统设计(论文+DWG图纸+开题报告+文献综述)

全数字化双闭环可逆直流PWM调速系统的研究(论文+DWG图纸+外文翻译+任务书+文献综述)

推荐第6篇:单片机

µ¥Æ¬»ú¶¨Ê±Æ÷c³ÐĞò

2010-07-06 15:26220090304?|?·ÖÀࣺÆäËû±à³ÌÓïÑÔ?|?ä¯ÀÀ3903´Î ÎÒÏëʵÏÖÒ»¸ö´øĞβεĶ¨Ê±Æ÷³ÐĞò£¬º¯ÊıÃûΪdelay_s(uchar t)£¬ÒªÇóÑÓʱtÃ룬Óö¨Ê±Æ÷t0£¬Ä£Ê½1¹¤×÷·½Ê½

·ÖÏíµ½£º

2010-07-20 21:07ÌáÎÊÕß²ÉÄÉ

//-------------------

// º¯ÊıÃû³Æ£º void delay_s(uchar t)

// º¯Êı¹¦ÄÜ£º ÀûÑö¨Ê±Æ÷ÑÑʱtÃë×ѳÐĞò

//-------------------

delay_s(uchar t)

{

uchar count,a;

TMOD=0x10;//¶¨Ê±Æ÷1£¬Ä£Ê½1

TH0=(65536-50000)/256;// ¶¨Ê±Îª50ms

TL0=(65536-50000)%256;

EA=1;

ET1=1;

TR1=1;

while(1)

{

if(a==t)break;

}

}

void timer1() interrupt 3//¶¨Ê±Æ÷1

{

TR1=0;

TH1=(65536-50000)/256;// ¶¨Ê±Îª50ms

TL1=(65536-50000)%256;

count++;

if(count==20)//ÅжÏÊÆ·ñµ´1Ãë

{

count=0;

a++;

}

TR1=1;

}

推荐第7篇:基于51单片机的智能小车控制源代码(毕业设计)

/****************************************************// //***************************************************// // 智能小车控制器基于51单片机实现前进后退转弯与智能采样控制功能 #include #include unsigned int tata[8]; unsigned char flag=0,flag2=0,flag3=0,n,m; unsigned int Angle,q,length,temp1; sbit A1=P3^2; sbit A2=P3^3; sbit B1=P3^4; sbit B2=P3^5; sbit ENA=P3^6; sbit ENB=P3^7;

sbit red1=P1^3; sbit red2=P1^6;

void InitUART(void) {

TMOD = 0x20;

SCON = 0x50;

TH1 = 0xFD;

TL1 = TH1;

PCON = 0x00;

ES

= 1;

TR1 = 1; EA

= 1; ENA = 1; ENB = 1; }

void delay(void)

//直线延时延时函数 {

unsigned char a,b;

for(b=255;b>0;b--)

for(a=38;a>0;a--); }

void delay1(void)

//转角延时函数 {

unsigned char w,y,c;

for(c=1;c>0;c--)

for(y=97;y>0;y--)

for(w=3;w>0;w--); }

void delay3(void)

//避障延时函数 {

unsigned char a,b,c;

for(c=98;c>0;c--)

for(b=100;b>0;b--)

for(a=40;a>0;a--); }

void delay2(void)

//手动控制延时函数 {

unsigned char a,b,c;

for(c=98;c>0;c--)

for(b=15;b>0;b--)

for(a=17;a>0;a--)

{

if(m)

{

break;

}

} } void qianjin() //前进 { unsigned char f; A1=1;A2=0;B1=1;B2=0;

for(f=0;f

A1=1;A2=0;B1=1;B2=0; }

void zuozhuan() //左转 { A1=1;A2=0;B1=0;B2=1; }

void youzhuan() //右转 { A1=0;A2=1;B1=1;B2=0; }

void houtui() { A1=0;A2=1;B1=0;B2=1; } void tingzhi() { A1=0;A2=0;B1=0;B2=0; }

void main() { unsigned char temp; InitUART(); while(1) {

if(flag)

{

flag=0;

for(temp=2;temp

{

tata[temp]=tata[temp]%16;

}

//执行转角指令

Angle=10*(tata[2]*100+tata[3]*10+tata[4]);

m=0;

if(Angle

//地面小角度摩擦校正函数

{

Angle++;

}

if(tata[1]==\'L\')

{

for(q=0;q

{

zuozhuan();

delay1();

if(m)

{

break;

}

} } else if(tata[1]==\'R\') { for(q=0;q

{

youzhuan();

delay1();

if(m)

{

break;

}

} } tingzhi(); delay(); for(temp=2;temp

{

tata[temp]=tata[temp]%16; }

//执行前进指令

length=100*(tata[5]*100+tata[6]*10+tata[7]); // m=0; if(!m) { for(q=0;q

{

qianjin();

delay();

delay();

if(m)

{

break;

}

if(!red1)

{

delay1();

if(!red1)

{

youzhuan();

delay3();

while(!red1);

}

}

if(!red2)

{

delay1();

if(!red2)

{

zuozhuan();

delay3();

while(!red2);

}

}

if((!red1)||(!red2))

{

houtui();

delay3();

while((!red1)||(!red2));

}

}

}

}

if(flag3)

{

m=0;

flag3=0;

if(tata[1]

==\'W\'){qianjin(); }

else if(tata[1]==\'A\'){A1=0;A2=0;B1=0;B2=1;}

else if(tata[1]==\'S\'){houtui();}

else if(tata[1]==\'D\'){A1=0;A2=1;B1=0;B2=0;}

else if(tata[1]==\'T\'){tingzhi(); }

delay2();

}

tingzhi(); } }

void UARTInterrupt(void) interrupt 4 {

if(RI)

{

m=1;

RI = 0;

if(SBUF==\'$\')

{

flag2=1;

}

if(flag2)

{

}

} } tata[n]=SBUF; n++;

if(n==9&&tata[8]==\'*\') { n=0; flag=1; flag2=0; } if(n==3&&tata[2]==\'#\') { n=0; flag3=1; flag2=0; }

推荐第8篇:单片机实验报告

单片机原理与应用实

学校:合肥工业大学

班级:计算机科学与技术

学号:

姓名:

验报告

第一章MC51 单片机原理及应用软件实验

实验1:系统认识实验

1. 实验目的

(1)了解ZY15MCU12BC2单片机实验开发装置的接线与安排。掌握实验箱内拨位开关KF,KC的使用方法。 (2)通过实例程序的编辑、编译、链接及调试,熟悉Keil C51软件的使用方法和基本操作。 (3)教育学生爱抚实验装置,养成良好的实验习惯。

2. 试验设备

(1)ZY15MCU12BC2单片机实验开发装置一台。 (2)PC系列微机及相关软件。

3. 试验内容

(1)使用串行通讯电缆将实验开发装置与PC机相连。

(2)开启PC机及实验开发装置,启动Keil C51软件进入uVision2集成开发环境。 (3)确认拨位开关KF的开关为A端,确认89C51处于仿真状态。 (4)在uVision2开发平台上建立并编辑示例程序:

计算N个数求和程序。 其中N个数分别放在片内RAM区50H到55H单元中,N=6, 求和的结果放在片内RAM区03H(高位)和04H(低位)单元中。

题目:

1)32H+41H+01H+56H+11H+03H=? 2)895H+02H+02H+44H+48H+12H=? (5)编译连接源程序。

(6)在Keil uVision2主菜单窗口进入DEBUG调试环境,打开存储器窗口输入数据至片内RAM区50H到55H单元中,全速运行程序,并检查程序的运行结果,即观察在存储器窗口片内RAM区03H(高位)、04H(低位)单元中的数据是否正确。 (7)实验结束,撤出接线,将一切整理复原。

4. 实验源程序

ORG 0000H LJMP MAIN ORG 1000H MAIN: MOV R2,#06H MOV R3,#03H MOV R4,#04H MOV R0,#50H L1: MOV A,R4 ADD A,@R0 MOV R4,A INC R0 CLR A ADDC A,R3 MOV R3,A DJNZ R2,L1 END

5. 实验结果截图

6. 实验总结

这次试验,熟悉了单片机开发的基本流程,对于实验的两道题目 1)32H+41H+01H+56H+11H+03H=? 2)895H+02H+02H+44H+48H+12H=? 实验结果如上图所示50H~54H存放数据,第一道题计算出来是0x00DEH,第二道题目 计算出来是0x0137H,实验结果和预期相符,成功的完成了实验。 这次试验对硬件开发有了基本的认识,特别是对于单片机的存储器有了进一步的认识,在程序中把数据放入RAM中,结果存放在R3和R4中,实验时不知道R3和R4的地 址,后来了解到R3和R4可以直接用他的地址03H和04H,这样进一步深化了书本上 的知识。另外通过这次试验,对于51单片机的几种寻址方式也有了具体的认识。总之,还是要多动手虽然程序不是自己写的,但是阅读理解了还是有点收获的。

实验六.数据排序实验

1. 实验目的

(1)理解并掌握排序程序的设计方法。 (2)掌握减法指令的功能,并联系其使用。

(3)逐步提高调试程序的能力及编写程序的能力。

2. 试验设备

(1)ZY15MCU12BC2单片机实验开发装置一台。 (2)PC系列微机及相关软件。

3. 试验内容

(1)使用串行通讯电缆将实验开发装置与PC机相连。

(2)开启PC机及实验开发装置,启动Keil C51软件进入uVision2集成开发环境。

(3)编写程序,实现从平台连续输入六个数,数码管将马上从小到大的顺序显示这六个数。要求被排序的数放在70H到7FH单元中。 (4)编译连接源程序。

(5)调试程序,在存储器窗口输入被排序数放在70H到7FH单元中,全速运行程序,并检查程序员的运行结果,观察是否正确。

(5)若程序中出现错误,则可以采用单步分段调试,排除程序错误,直到正确为止。

4. 实验源程序

MAIN:

LOP2:

LOP1:

LOP5:

ORG 0000H LJMP MAIN ORG 0030H MOV R2,#70H MOV R3,#71H MOV R4,#0FH ACALL LOP1 DJNZ R4,LOP2 LJMP LOP6 MOV A,R2 MOV R0,A MOV A,R3 MOV R1,A MOV A,@R0 CLR C SUBB A,@R1 JC LOP4 MOV A,@R0 XCH A,@R1

LOP4:

LOP6:

MOV @R0,A INC R1 INC R0 MOV A,@R0 CJNE

R1,#80H,LOP5 RET END 5. 实验结果截图

6. 实验总结

本次试验是在冒泡排序算法实现对70H~7FH中的数据进行排序,如上第一张图所示RAM中70H~7FH存放了数据,第二张图显示的是通过冒泡排序整理过的数据。成功完成了实验,收到了预期效果。

对于习惯了使用高级语言编程的我,看这些绕来绕去的汇编还是有些头大,觉得这个例子写的不太好,跳来跳去,程序层次不分明,可读性很差,冒泡不应该有内外两层吗,看书上有一个例子就写得很好,跟用高级语言写差不多,然而实验的这个好像是要考我们对各种跳转指令的了解,所以读起来晕头转向的。 从另一方面来说,通过这次试验,我也熟悉了汇编的跳转与分支指令。另外,所以ORG 0000H

LJMP MAIN

ORG 0030H,这三句ljmp这句跳到了main,那么还要后面一句干嘛。不甚理解。

总之,这次实验让我了解了各种分支与跳转,还是有所收获的。

第二章MC51 单片机原理及应用硬件实验

实验一:广告灯实验

1. 实验目的

(1)熟悉ZY15MCU12BC2单片机实验开发装置的试验箱,学会选用其功能电路,连接成实验需要的系统。掌握实验箱内拨位开关KF\\KC使用。 (2)加深了解MCS-51单片机P1端口的应用方法。 (3)学习编写接口应用程序。

2. 试验设备

(1)ZY15MCU12BC2单片机实验开发装置一台。 (2)PC系列微机及相关软件。

3. 试验内容

(1)使用串行通讯电缆将实验开发装置与PC机相连,确认拨位开关KF的位置。 (2)开启PC机及实验开发装置,启动Keil C51软件进入uVision2集成开发环境,确认89C51处于仿真状态。

(3)用试验箱上的发光二极管L0到L7模拟外界各种场合的动态广告灯,将试验箱上的发光二极管L0到L7分别与单片机的P1.0到P1.7相连。

(4)编写程序,实现从P1口输出信号驱动发光二极管L0到L7模拟外界广告灯动态点亮的功能。

(5)在uVision2开发平台上输入程序,编译、连接程序,调试通过后将拨位开关KF拨至B端。

(6)单步执行程序,观察是否进入表格首地址。

(7)单步执行程序,观察发光二极管L0到L7的变化。

(8)全速运行程序,观察发光二极管L0到L7的变化,并注意程序将循环下去。 (9)实验结束,撤除接线,将一切整理复原。

4. 实验源程序

ORG 0000H MAIN: MOV DPTR,#TAB

MOV R5,71H LOOP: MOV A,#00H

MOVC A,@A+DPTR

MOV P1,A

ACALL DELAY

ACALL DELAY

INC DPTR

DJNZ R5,LOOP

LJMP MAIN DELAY: MOV R7,#00H

MOV R6,#00H DE:

DJNZ R7,$

DJNZ R6,DE

RET TAB: DB 0FEH,0FDH,0FBH,0F7H,0EFH,0DFH,0BFH,7FH

DB 0FFH,7FH,0BFH,0DFH,0EFH,0F7H,0FBH,0FDH

DB 80H,00H,80H,0C0H,0E0H,0F0H,0F8H,0FCH

DB 0FEH,0FFH,7FH,3FH,1FH,0FH,07H,03H

DB 01H,00H,01H,03H,07H,0FH,1FH,3FH

DB 7FH,0FFH,7EH,3CH,18H,00H,18H,3CH

DB 7EH,0FFH,0FEH,0FCH,0FCH,0F9H,0F3H,0E7H

DB 0CFH,9FH,3FH,7FH,0FFH,7FH,3FH,9FH

DB 0CFH,0E7H,0F3H,0F9H,0FCH,0FEH,0FFH

DB 0FEH,0FCH,0F8H,0F0H,0E0H,0C0H,80H,00H

DB 80H,40H,20H,10H,08H,04H,02H,01H,00H

DB 01H,02H,04H,08H,10H,20H,40H,80H,00H

DB 80H,0C0H,0E0H,0F0H,0F8H,0FCH,0FEH,0FFH

END

5.实验结果

6.

实验总结

广告灯按照程序所给的效果循环的有序的点亮,如果应用到广告霓虹灯,的确可以到达璀璨的效果,程序的最后的TAB是最纠结的,你要按照效果一点一点的编写十六进制的数字,换算出效果,可见真正的商业广告的效果的确是很麻烦的一件事,通过这个实验,我清楚地认识到了单片机的控制的灵活性,另外对于查表指令也有所理解。实验二:P1端口应用实验

1. 实验目的

(1)进一步熟悉ZY15MCU12BC2实验箱上的资源,掌握实验箱内拨位开关KF,KC使用。 (2)加深了解MCS-51单片机P1端口的应用方法。 (3)学习编写接口应用程序。

2. 试验设备

(1)ZY15MCU12BC2单片机实验开发装置一台。 (2)PC系列微机及相关软件。

3. 试验内容

(1)使用串行通讯电缆将实验开发装置与PC机相连,确认拨位开关KF的位置。 (2)开启PC机及实验开发装置,启动Keil C51软件进入uVision2集成开发环境,确认89C51处于仿真状态。

(3)将试验箱上的L0到L3接到P1.0到P1.3,开关K0到K3接到P1.4到P1.7。 (4)编写程序实现如下功能: 拨动K0到K3,使L0到L3出现以下组合变化。 K3 K2 K1 K0 L3 L2 L1 L0 0 0 0 0 全亮 0 0 0 1 全暗

0 0 1 0 一灯亮其余灯暗并左环依 0 0 1 1 一灯亮其余灯暗并右环依 0 1 0 0 一灯暗其余灯亮并左环依 0 1 0 1 一灯暗其余灯亮并右环依

1 ? ? ? 显示开关状态Ki为0,Li灯亮 要求:

1)设40H单元为标志单元,(40H)=0时开关状态无变化,(40H)=FFH时开关状态发生变化。

2)设41H单元为开关状态缓冲器,读入开关状态和41H单元内容比较,相同时开关状态无变化,不同是开关状态有变化。 3)设42H单元为当前指示灯状态。

(4)在uVision2开发平台上输入程序,编译、连接程序,调试通过后将拨位开关KF拨至B端。

(5)根据准双向口的特性,对P1口写操作使灯L0到L7的状态随写入P1.0到P1.3的内容而变化;读P1口的高四位,读出内容随开关状态的变化而变化。如不对,则检查开关K0到K3的接线,检查K0到K3的电平是否随开关状态变化而变化。

(6)从开始运至BK1处,检查A的内容是否对应开关状态,接着单步运行程序,检查是否转到相应入口使L0到L3状态产生相应的变化。 (7)全速运行程序至BK2,在检查A的内容是否与开关状态一致,如不对,则检查前面对P1口的操作指令。

(8)全速运行程序实现所要求的功能。

4. 实验源程序

ORG 0000H STRL: MOV A,P1

SWAP A

ANL A,#0FH

MOV 41H,A

MOV 40H,#0FFH MLP0: CJNE A,#6,$+3

JNC PK6

MOV DPTR,#CTAB

MOV R1,A

RL

A

ADD A,R1

JMP @A+DPTR CTAB: LJMP PK0

LJMP PK1

LJMP PK2

LJMP PK3

LJMP PK4

LJMP PK5 PK6:

MOV 42H,A

LJMP MLP1 PK5:

MOV A,40H

CJNE A,#0FFH,PK51

MOV 42H,#01

LJMP MLP1 PK51: MOV A,42H

LCALL RR7

ANL A,#0FH

JNZ PK52

MOV A,#1 PK52: MOV 42H,A

LJMP MLP1 PK4:

MOV A,40H

CJNE A,#0FFH,PK41

MOV 42H,#1

LJMP MLP1 PK41: MOV A,42H

LCALL RL9

ANL A,#0FH

JNZ PK42

MOV A,#1 PK42: MOV 42H,A

LJMP MLP1 PK3:

MOV A,40H

CJNE A,#0FFH,PK31

MOV 42H,#0F7H

LJMP MLP1 PK31: MOV A,42H

LCALL RR9

ANL

A,#0FH

CJNE A,#0FH,PK32

MOV

A,#0F7H PK32: ORL

A,#0F0H

MOV

42H,A

LJMP MLP1 PK2:

MOV

A,40H

CJNE A,#0FFH,PK21

MOV

42H,0FEH

LJMP MLP1 PK21: MOV

A,42H

RL A

ANL A,#0FH

CJNE A,#0FH,PK22

MOV A,#0FEH PK22: ORL A,#0F0H

MOV 42H,A

LJMP MLP1 PK1:

MOV 42H,#0FH

LJMP MLP1 PK0:

MOV 42H,#0 MLP1: MOV A,42H

ORL A,#0F0H

MOV P1,A

MOV R7,#0

MOV R6,#0 DEL1: DJNZ R6,DEL1

DJNZ R7,DEL1

MOV

A,P1

SWAP A

ANL A,#0FH

CJNE A,41H,MLP2

MOV 40H,#0

LJMP MLP0 MLP2: MOV 41H,A

MOV 40H,#0FEH

LJMP MLP0 RR9:

RR A

RR A RR7:

RR A

RR A

RR A

RR A

RR A

RR A

RR A

RET RL9:

RL A

RL A RL7:

RL A

RL A

RL A

RL A

RL A

RL A

RL A

RET

END

5.

实验结果截图

6.

实验结论

试验中我们把P1口作为输入输出口来测试以下的内容 1.P1 口做输出口,接八只发光二极管循环点亮。 2.P1 口低四位接四只发光二极管L1-L4, P1 口高四位接开关K1-K4,编写程序,将开关的状态在发光二极管上显示出来。

在这次试验中我认识到课本上的关于P1口的介绍的知识 P1 口为准双向口,P1 口的每一位都能独立地定义为输出线或输入线,作为输入的口线,必须向锁存器相应位写入“1”,该位才能作为输入。8031中所有口锁存器在复位时均置为“1”,如果后来往口锁存器写入过“0”,再作为输入时,需要向口锁存器对应位写入“1”。延时程序的编写可以用两种方法,一种是用定时器来实现,一种使用指令循环来实现。在系统时间允许的情况下可以采用后一种方法。

实验三:串转并实验

1. 实验目的

(1)掌握51系列单片机串口工作方式0的应用。

(2)学习8位串行输入和并行输出的同步移位寄存器74LS164和8位并行输入和穿行 输出的同步移位寄存器74LS165两个接口芯片的应用性能。 (3)研究单片机串行口如何用于扩展并行I/O口。

2. 试验设备

(1)ZY15MCU12BC2单片机实验开发装置一台。 (2)PC系列微机及相关软件。

3. 试验内容

(1)使用串行通讯电缆将实验开发装置与PC机相连,确认拨位开关KF的位置。 (2)开启PC机及实验开发装置,启动Keil C51软件进入uVision2集成开发环境,确 认89C51处于仿真状态。 (3)实验步骤:

1)通过单片机串口用一片8位串行输入/并行输出的同步移位寄存器74LS164扩展 8位并行输出口。

2)通过单片机串口用一片8位并行输入/串行输出的同步移位寄存器74LS165扩展 8位并行输入口。 (4)将单片机的RXD端与74LS164的串行输入端SERIAL(PA)相连,将单片机的TXD 端与74LS164的脉冲CLOCK(PB)相连,74LS164的输出Q0到Q7接发光二极管 L8到 L15。 (5)调试程序:

1)实验采用终端方式调试,既目标程序装入仿真器后,使操作界面进入终端方式。 2)单步进入执行程序,打开Keil的寄存器窗口,观察串口数据缓冲区SBUF里的值有何变化。

3)单步执行程序,注意中断标志T1的变化以及所亮的发光二极管的位置。

4. 实验源程序

ORG 0000H SJMP MAIN ORG 0023H SJMP SBV MAIN: MOV SCON,#00H SETB EA SETB ES MOV A,#80H MOV SBUF,A MOV SBUF,A MOV SBUF,A SJMP $ SBV: ACALL DELAY CLR T1 RR A MOV SBUF,A RETi DELAY: MOV R7,#00H MOV R6,#00H DEL: DJNZ R7,$

5.

实验结果截图

6.

实验结论

在实验中我明白了串行口和并行口的相关知识8位串行输入和并行输出的同步移位寄存器74LS164和8位并行输入和穿行输出的同步移位寄存器74LS165两个接口芯片的应用性能。知道了单片机串行口如何用于扩展并行I/O口

推荐第9篇:单片机实验报告

实验名称:单片机C语言程序结构和设计(实验

2、3) 姓名_ __

学号_ 实验班号_ 机器号__

一、实验目的:

1.掌握单片机C语言程序结构;2.掌握单片机C语言程序调试方法;

3.掌握MSP430FG2553基本I/O控制方法;4.巩固编写和调试单片机C语言程序方法; 5.了解简单接口电路的控制方法;

6.了解MSP430汇编格式的寻址方式和指令系统

二、实验基本任务

1、练习调试程序

内容:用跳线将实验板上的8个发光二极管与单片机连接。编写的程序L2_debug.C如下,功能是控制与单片机相连接的8个发光二极管在全亮与全灭这两种状态下循环变换。 该程序没有语法上的错误, 但运行后不能实现上述现象, 请上机调试其中的问题, 指出程序的问题,并修改程序。

答: 将单片机P2端口的8个引脚与L1~L8相连。电路如下:

原有程序为:

通过上机调试,发现原程序有以下错误:

① 由于是P2端口上引脚与LED相接,所以应该设置P2而不是P1 ② 应将P2端口调为基本I/O端口,仅通过DIR寄存器是不行的 ③ 源程序没有对P2OUT进行初始化,无法达到全亮全灭的效果

④ 没有循环结构,无法达到全亮全灭的循环效果,可用for(;;)或while(1)结构 ⑤ delay()函数延时过短,人眼几乎无法感受亮灭的变化 正确的程序应为: #include \"io430.h\" void delay(); int main( void ) {

WDTCTL = WDTPW + WDTHOLD; //关闭看门狗

P2SEL=0;

//将P2端口设为基本I/O端口

P2SEL2=0;

P2DIR=0Xff;

//设置端口2为输出方向

P2OUT=0;

//初始化P2端口引脚,

For(;;){

P2OUT=~P2OUT;

delay();} } void delay() {

unsigned int j;

for (j=0;j

//延时 } 2.

控制发光二极管的显示变化

在任务 1 的连线基础上,编程控制 8 个发光二极管按下面的 2 种规律循环变换,即规 律 1→规律 2→规律 1→规律 2→……,如此循环反复。

1) 规律 1:8 个 LED 灯顺时针一个一个单独点亮,即 L1 L2……L7 L8 亮, 每次只有一个灯亮,其他灯灭;

2) 规律 2:8 个LED灯两两点亮,顺序为 L1 和 L8,L2和 L7,L3 和 L6,L4 和 L5, 每次只有两个灯亮,其他灯灭; 答:程序如下: #include \"io430.h\" void delay(); void rule1(); void rule2(); int main( void ) {

WDTCTL = WDTPW + WDTHOLD; //关闭看门狗

P2SEL=0;

//将P2端口设为基本I/O端口

P2SEL2=0;

P2DIR=0Xff;

//设置端口2为输出方向

P2OUT=0;

//初始化P2端口引脚,

for(;;){

rule1();

rule2();

} } void rule1()

//规律1 {

unsigned char LED_0=0x01,LED_temp;

LED_temp=LED_0;

for(unsigned int i=0;i

{

P2OUT=~LED_temp;

delay();

LED_temp=LED_temp

} } void rule2()

//规律2 {

unsigned char LED_data[]={0x81,0x42,0x24,0x18};

for(unsigned int i=0;i

{

P2OUT=~LED_data[i];

delay();

} } void delay() {

unsigned int j;

for (j=0;j

//延时 }

思考:

如果选择用单片机的 P1 端口控制 8 个发光二极管,如何在实验板上设计连线、并编程实现任务 2 的功能?

答:

设计连线:将P1端口的8个引脚与L1~L8对应相连。

程序设计:将原先程序中所有关于P2端口的操作都换为P1端口即可 3. 用按键控制发光二极管的显示变化

在任务 2 基础上,增加 2 个按键与单片机的引脚相连,编程实现由按键控制发光二级管 的显示变化:当按下实验板上的 K1 键时,8 个发光二极管按任务 2 中的规律 1 变化; 当按下实验板上的 K2 键时,8 个发光二极管按任务 2 中的规律 2 变化。

答:在实验1的连线基础上,将P1.0、P1.1分别于K

1、K2相连。如下图

程序如下:

#include \"io430.h\" void delay(); void rule1(); void rule2(); int main( void ) {

WDTCTL = WDTPW + WDTHOLD; //关闭看门狗

P2SEL=0;

//将P2端口设为基本I/O端口

P2SEL2=0;

P2DIR=0xff;

//设置端口2为输出方向

P2OUT=0; //初始化P2端口引脚,

P1SEL&=~(BIT0+BIT1);//设置P1为基本I/O

P1SEL2&=~(BIT0+BIT1);

P1DIR&=~(BIT0+BIT1);//设置P1.0和P1.1为输入状态

P1REN=0x03;//使P1.0和P1.1能上拉电阻

P1OUT=0x03;

int key=2;

for(;;)

{

if((P1IN&BIT0)==0)

key=0;

else if((P1IN&BIT1)==0)

key=1;

if(key==0)

rule1();

else if(key==1)

rule2();

} }

void rule1()

//规律1 {

unsigned char LED_0=0x01,LED_temp;

LED_temp=LED_0;

for(unsigned int i=0;i

{

P2OUT=~LED_temp;

delay();

LED_temp=LED_temp

} } void rule2()

//规律2 {

unsigned char LED_data[]={0x81,0x42,0x24,0x18};

for(unsigned int i=0;i

{

P2OUT=~LED_data[i];

delay();

} } void delay() {

unsigned int j;

for (j=0;j

//延时 } 4. 并行方式控制数码管的显示

参看附录A, 掌握 MSP430G2553 扩展板上 4 个数码管的工作原理, 用单片机的 8 个 I/O 引脚并行控制数码管的控制端 Sh~Sa,设计相关连线。编程完成下面任务:

1) 画出单片机与 4 个数码管连接的原理图,分析控制方法;

2) 编程控制四个数码管从右到左、依次每个数码管分别循环显示 0~

9、A~F。

3) 用 4 个数码管做一个电子表,高两位数码管显示分钟值,低两位数码管显示秒值。 每计数到 5分钟时,控制蜂鸣器发出一报警声,然后又从 0 开始重新计时。

其中 1 秒时间可通过延时完成,如执行 for (i=0; i

思考:每个数码管显示的时间不能太长,也不能太短,为什么?

答:

1) 原理图如下:

控制方法:

P2.0~P2.7与S a~S h相连,控制LED灯的亮灭,P1.0~P1.3控制选择哪一个数码管进行输出。

2) 编程控制四个数码管从右到左、依次每个数码管分别循环显示 0~

9、A~F。程序如下: #include \"io430.h\" void delay(); const char LEDtab[16]={~0x3F,~0x06,~0x5B,~0x4F,~0x66,~0x6D,~0x7D,~0x07,~0x7F,~0x6F,~0x77,~0x7C,~0x39,~0x5E,~0x79,~0x71}; int main( void ) { WDTCTL = WDTPW + WDTHOLD;//关闭看门狗 P1SEL=0;//设置P1为基本I/O P1SEL2=0; P1DIR=0xff;//设置P1为输出出口 P1OUT=0; P2SEL=0;//设置P2为基本I/O P2SEL2=0; P2DIR=0xff;//设置P2为输出出口 P2OUT=0xff; unsigned int i; for(;;){ P1OUT=BIT0; //第一个数码管开始输出 for(i=0;i

其中 1 秒时间可通过延时完成,如执行 for (i=0; i

答:在上述连线的基础上,将P1.7与BUZZ相连,程序如下

#include \"io430.h\" void delay(); void second(); const char LEDtab[10]={~0x3F,~0x06,~0x5B,~0x4F,~0x66,~0x6D,~0x7D,~0x07,~0x7F,~0x6F}; unsigned char a,b,c,d; int main( void ) { // 关闭看门狗

WDTCTL = WDTPW + WDTHOLD; P1SEL=0; P1SEL2=0; P1DIR=0xff; P1OUT=0+BIT7; P2SEL=0; P2SEL2=0; P2DIR=0xff; P2OUT=0xff; //初始化 for(;;){ a=b=c=d=~0x3F; for(int k=0;k

答:时间过长,没有连续的效果;时间过短,不利于观察读数。 5.汇编格式指令和寻址方式的学习(可在simulator下完成)

L2_2.c源程序见下,建立C项目,进入DEBUG状态,点击view/disaembly,在反汇编 窗口得到L2_2.c汇编格式指令的程序代码,如图2-1和图2-2,阅读该程序的汇编格 式代码。

1) 程序用到了哪些指令?

答:数据传送指令;调用指令;逻辑运算指令;跳转指令;堆栈操作指令;减法运算指令;加法运算指令;返回指令;无条件转移指令。 2) 程序用到了哪几种寻址方式?

答:立即数寻址;寄存器寻址;绝对地址寻址;符号地址寻址。

3) 修改l2_2.C,将变量i定义为全局变量,通过反汇编的代码,比较与定义为局部变

量的不同;

答:定义为全局变量时寻址方式为绝对寻址;而定义为局部变量时为寄存器寻址;全局变量在分配内存是是分配在数据区的,所以所有的程序代码都可以访问,但是局部变量是在堆栈段,所以局部变量在使用完成之后就消失了的

4) 修改L2_2.C, 将变量i的类型从 unsigned int 类型,改为unsigned long 类型,

反汇编看看函数delay的代码发生了什么变化?程序执行的结果有什么不同?为什 么?(需在实验板上运行) 。

答:

① 代码增加了。 unsigned int类型下

Unsigned long 类型下:

② 程序执行时,发光二极管亮灭的时间间隔增大 ③ delay程序执行时间增长

三、已完成的选做任务

1.(选做)用蜂鸣器、发光二极管显示按键信息

设计在实验板上用 3 个相邻发光二极管、8 个按键、1 个蜂鸣器与单片机的连接,编程

完成每按下某一个键,8个发光二极管以二进制形式显示该键值, K1~K8 的键值分别 为 000~111B,同时每按下一次键,蜂鸣器响一下,用声音提示接收到按键信息。 答:连线:将P2.0~P2.2分别于L1~L3相连,P2.3与BUZZ相连,P1.0~P1.7分别与K1~K8 相连.程序如下:

#include \"io430.h\" void delay(); int main( void ) {

WDTCTL = WDTPW + WDTHOLD;

P2SEL&=0xf0;

P2SEL2&=0xf0;

P2OUT|=0x0f;

P2DIR=0xff;

P1REN=0xff;

P1OUT=0xff;

P1SEL=0;

P1SEL2=0;

P1DIR=0x00;

//初始化

for(;;){

if((P1IN&BIT0)==0)

//按下K1

{

P2OUT=0x07;

//LED灯显示为000,蜂鸣器响

delay();

P2OUT+=BIT3;

//蜂鸣器停止响

};

if((P1IN&BIT1)==0)

{

P2OUT=0x06;

delay();

P2OUT+=BIT3;

};

if((P1IN&BIT2)==0)

{

P2OUT=0x05;

delay();

P2OUT+=BIT3;

};

if((P1IN&BIT3)==0)

{

P2OUT=0x04;

delay();

P2OUT+=BIT3;

};

if((P1IN&BIT4)==0)

{

P2OUT=0x03;

delay();

P2OUT+=BIT3;

};

if((P1IN&BIT5)==0)

{

P2OUT=0x02;

delay();

P2OUT+=BIT3;

};

if((P1IN&BIT6)==0)

{

P2OUT=0x01;

delay();

P2OUT+=BIT3;

};

if((P1IN&BIT7)==0)

{

P2OUT=0x00;

delay();

P2OUT+=BIT3;

};

}; } void delay(){

unsigned int i;

for(i=0;i

//延时 } 2.(选做)增加按键控制功能:

按下 K1 键开始计时(或称继续计时)

K2 键暂停计时,计时保持不变,此后若

;按下 按下 K1 键将继续计时;按下 K3 键将计时归零,并停止计时,若此后按下 K1 键,将开始计时。

答:在前面并行电路制作电子表连线的基础上,将P1.4~P1.6与K1~K3相连

程序如下:

#include \"io430.h\" void delay(); void second(); const char LEDtab[10]={~0x3F,~0x06,~0x5B,~0x4F,~0x66,~0x6D,~0x7D,~0x07,~0x7F,~0x6F}; unsigned char a,b,c,d; unsigned char key=0; int main( void ) { // 关闭看门狗

WDTCTL = WDTPW + WDTHOLD; P1SEL=0; P1SEL2=0; P1DIR=0x8f; //设置P1引脚的输入输出状态 P1REN=0x70; //使P1.4~P1.6能上拉电阻 P1OUT=BIT4+BIT5+BIT6+BIT7; P2SEL=0; P2SEL2=0; P2DIR=0xff; P2OUT=0xff; //初始化 while(1){ while(key!=1){ //等待按K1键开始计时 if((P1IN&BIT4)==0) key=1;} a=b=c=d=~0x3f; unsigned char flag=1; for(int k=0;k

1) 画出单片机与 4 个数码管连接的原理图,分析控制方法;

2) 编程控制四个数码管从右到左、依次每个数码管分别循环显示 0~

9、A~F。

3) 用 4 个数码管做一个电子表,高两位数码管显示分钟值,低两位数码管显示秒值。 每计数到 5分钟时,控制蜂鸣器发出一报警声,然后又从 0 开始重新计时。 其中 1 秒时间可通过延时完成,如执行 for (i=0; i

1) 原理图如下:

2) 编程控制四个数码管从右到左、依次每个数码管分别循环显示 0~

9、A~F。答: 连线方式:

将P1.0~P1.3与S1~S4相连,P1.4与DS相连,P1.5与SHCP相连,P1.6与STCP相连,Sa~Sh与Q0~Q7相连。 程序如下:

#include \"io430.h\" void output(char Data); void delay(); const char LEDtab[16]={~0x3F,~0x06,~0x5B,~0x4F,~0x66,~0x6D,~0x7D,~0x07,~0x7F,~0x6F,~0x77,~0x7C,~0x39,~0x5E,~0x79,~0x71}; int main( void ) {

WDTCTL = WDTPW + WDTHOLD;

P1SEL=0;

P1SEL2=0;

P1DIR=0XFF;

P1OUT=BIT7;

//初始化

while(1)

{

P1OUT=BIT0+BIT7;

//第一个数码管输出

for(int i=0;i

{

output(LEDtab[i]);

for(int i=0;i

P1OUT=BIT1+BIT7;

for(int i=0;i

{

output(LEDtab[i]);

for(int i=0;i

P1OUT=BIT2+BIT7;

for(int i=0;i

{

output(LEDtab[i]);

for(int i=0;i

P1OUT=BIT3+BIT7;

for(int i=0;i

{

output(LEDtab[i]);

for(int i=0;i

} }

void output(char Data)

//串行方式输出指定信号 {

for(int i=0;i

{

if((Data&BIT7)==0)

P1OUT&=~BIT4;

else

P1OUT|=BIT4;

Data=Data

P1OUT|=BIT5;

delay();

P1OUT&=~BIT5;

}

P1OUT|=BIT6;

delay();

P1OUT&=~BIT6; } void delay()

//延时函数 {

for(int i=0;i

WDTCTL = WDTPW + WDTHOLD; // 关闭看门狗

P1SEL=0;

P1SEL2=0;

P1DIR=0XFF;

P1OUT=BIT7;

//初始化

for(;;){

a=b=c=d=~0x3F;

for(int k=0;k

//分钟

{

c=LEDtab[k];

for(int j=0;j

//秒钟十位

{

b=LEDtab[j];

for(int i=0;i

{

a=LEDtab[i];

second();

}

}

}

P1OUT=~BIT7;

//报警声

for(int j=0;j

} } void output(char Data)

//串行方式向数码管输出信号 {

for(int i=0;i

{

if((Data&BIT7)==0)

P1OUT&=~BIT4;

else

P1OUT|=BIT4;

Data=Data

P1OUT|=BIT5;

delay();

P1OUT&=~BIT5;

}

P1OUT|=BIT6;

delay();

P1OUT&=~BIT6; } void delay()

//延时函数 {

for(int j=0;j

for(int j=0;j

output(a);

P1OUT=BIT0+BIT7;

delay();

output(b);

P1OUT=BIT1+BIT7;

delay();

output(c);

P1OUT=BIT2+BIT7;

delay();

output(d);

P1OUT=BIT3+BIT7; delay();}} 思考:

如果数码管电路的控制端DS、SHCP、STCP分别与单片机的P2.0~P2.2相连,如何修改程序? 答:引脚初始化时也将P2端口的前三个引脚初始化,然后将上述程序中的output()函数定义改为:

void output(char Data)

//串行方式向数码管输出信号 {

for(int i=0;i

{

if((Data&BIT7)==0)

P2OUT&=~BIT0;

else

P2OUT|=BIT0;

Data=Data

P2OUT|=BIT1;

delay();

P2OUT&=~BIT1;

}

P2OUT|=BIT2;

delay();

P2OUT&=~BIT2;} 如果程序中没有关闭看门狗那条语句,后果是什么?

答:后果是一直保持初始状态不变。根据查阅的资料,看门狗是防止程序出现跑飞死机的问题,当开启看门狗后,没有相应的喂狗程序,就会自动复位,使得程序执行失败。

推荐第10篇:单片机实验报告

单片机实验报告

一、实验目的

1.熟练使用Keil、Protues两款软件 2.通过上机操作,增强个人动手实践能力 3.加深对理论知识的理解

4.培养运用汇编语言进行初步编写程序的能力

二、实验内容

1.将片外RAM3050-306FH中数据转移至片内70-8FH中。

要求:可以从Keil或Protues上看到RAM的数据转移结果。 2.设计一个外部中断触发流水灯系统:当外部中断来临时,启动流水灯,即令P2口的LED轮流循环点亮。

要求:开发板或Prrotues演示

3.将片内存储器80H中存放的BCD码转换为ASCII码,要求使用表格查询技术。

要求:在Keil或Protues上看到数据转换结果。

4.各使用中断方式和查询方式设计一个方波发生器,频率为50HZ。

要求:Protues使软件间示波器显示方波。

三、实验程序

1.\\将片外RAM3050-306FH中数据转移至片内70-8FH中

ORG 0000H AJMP MAIN \\上电,转向主程序

ORG 0030H \\主程序入口

MAIN: MOV DPTR,#3050H \\数据指针指向地址3050H MOV A,#04H \\将立即数04H送A寄存器

MOV R0,#20H NEXT: MOVX @DPTR,A INC DPTR \\数据指针DPTR自加一

DJNZ R0,NEXT \\判断是否跳转到NEXT或继续向下执行

MOV DPTR,#3050H MOV R0,#70H MOV R2,#20H NEXT1: MOVX A,@DPTR MOV @R0,A INC DPTR INC R0 DJNZ R2,NEXT1

SJMP $ \\等待

END 2.\\设计一个外部中断触发流水灯系统:当外部中断来临时,启动流水灯,即令P2口的LED轮流循环点亮 ORG 0000H SJMP MAIN \\上电,转向主程序

ORG 0003H \\外部中断0向量入口

AJMP INSER ORG 0030H \\主程序入口

MAIN: SETB EX0 \\ SETB IT0 \\

SETB EA \\CPUHERE: SJMP HERE \\ ORG 0200H INSER: MOV R2,#08H \\ MOV A,#01H \\NEXT: MOV P2,A \\ LCALL DELAY \\ RL A \\ DJNZ R2,NEXT \\NEXT或继续向下执行

RETI \\DELAY: MOV R3,#0FFH \\DEL2: MOV R4,#0FFH DEL1: NOP

允许外部中断0中断 选择边沿触发方式 开中断 等待中断 设置循环次数 赋初值,设置高电平亮 将初值送往P2口 延时 左移一位

判断循环次数,是否跳转到中断返回 延时程序 DJNZ R4,DEL1 DJNZ R3,DEL2 RET END 3.\\将片内存储器80H中存放的BCD码转换为ASCII码,要求使用表格查询技术 ORG 0000H LJMP MAIN ORG 0030H\\主程序起始地址 MAIN: MOV 80H,#05H \\将立即数50H转送内存单元80H MOV A,80H \\将内存单元80H中的内容送寄存器A MOV DPTR,#TAB MOVC A,@A+DPTR \\A寄存器内容加指针偏移量后送A寄存器 MOV 80H,A RET TAB: DB 30H,31H,32H,33H,34H DB 35H,36H,37H,38H,39H 4.1\\中断方式产生50HZ方波

ORG 0000H

AJMP MAIN

ORG 0030H \\主程序入口 MAIN: MOV TMOD,#10H \\设置定时器工作模式为模式1 MOV TH1,#0D8H \\装入T1计数初值

MOV TL1,#0F0H

SETB ET1 \\开中断

SETB EA \\CPU开中断

SETB TR1 \\启动定时器T1 HERE: SJMP HERE \\等待中断 ORG 001BH \\T1中断向量地址

CLR TF1 \\将TF1清零

CPL P2.0 \\P2.0取反输出

MOV TH1,#0D8H \\重装初值

MOV TH0,#0F0H

RETI;中断返回

END 4.2 \\查询方式产生50HZ方波

ORG 0000H

AJMP MAIN

ORG 0030H \\主程序入口

MAIN: MOV TMOD,#10H \\设置定时器的工作模式为模式1 SETB TR1 \\启动定时器T1 LOOP: MOV TH1,#0D8H \\装入T1计数初值

MOV TH0,#0F0H JNB TF1,$ \\T1没有溢出则等待

CLR TF1

\\产生溢出,清标志位

CPL P2.0 \\P2.0取反输出

SJMP LOOP \\循环

END

四、实验结果截图

1.

2

3.

4.1

4.2

第11篇:单片机实验报告

单片机原理与接口技术

单片机实验报告

【实验一】

一、实验名称:

分支循环程序设计

二、实验内容:

30H~3FH单元中存放了16个无符号数,编写程序找出最大值,存放到40H单元中。

三、实验代码:

org 0000h ljmp main org 0030h mov sp,#60h mov 40h,30h mov r2,#16 mov r0,#30h clr c mov a,40h subb a,@r0 jnc lp1 mov 40h,@r0 inc r0 djnz r2,lp2 sjmp $ end main:

lp2:

lp1:

1 / 5

单片机原理与接口技术

四、实验结果:

结果分析:将片内地址30H~3FH的内存分别改为如上值,运行之后0x40的值为30H~3FH中的最大值8C。

2 / 5

单片机原理与接口技术

【实验二】

一、实验名称:

外部中断实验

二、实验内容:

单片机的P1.0引脚连接LED指引灯D0;单片机的P3.2引脚(INT0)连接按键开关K,作为按键都会触发INT0中断;在INT0中断服务程序中将P1.0端口的信号取反,使LED指示灯D0在点亮和熄灭两种状态间切换,产生LED指示灯由按键开关K控制的效果。

三、实验代码:

org 0000h ljmp main org 0003h ljmp e_int org 0100h mov sp,#60h setb it0 setb ea setb ex0 sjmp $ org 0200h cpl P1.0 reti end main:

e_int:

3 / 5

单片机原理与接口技术

四、实验结果:

4 / 5

单片机原理与接口技术

如图所示,按K键,LED实现切换。

5 / 5

第12篇:单片机实验报告

实验

四、中断交通灯实验

林立强

1000850116

一、实验目的

1、了解MCS-51单片机的组成、中断原理,中断处理过程、外部中断的中断方式。

2、掌握中断响应及处理的编程方法。

二、实验原理

MCS-51的中断系统中有5个中断源:外部中断INTO,INT1,定时器/计数器TO、T1中断和串口UART中断,它们对应不同的中断矢量。 如表:

IE是中断允许寄存器,其中EXO,ETO,EX1,ET1,ES分别是上述5个中断的允许控制位,EA位是中断总允许位,每个中断只有在相应中断允许且总中断也允许的情况下,才能得到中断响应。80XX51的5个中断都可以设为高低2个优先级,IP是中断优先级寄存器,其中PXO,PTO,PX1,PT1,PS位分别对应5个中断的优先级设置,置“1”时设为高优先级中断,为“0”时是低优先级中断。在有中断嵌套要求时,低优先级中断可被高优先级所中断。当同一级的中断同时到来时,先响应中断矢量排在前面的中断。

三、实验电路

电路原理图如下,所需元件为:AT89C

51、SW-SPDT、LED-RED、LED-GREEN、LED-YELLOW、RES、TRAFFICLIGHTS

四、实验内容

参照实验电路,设计交通灯控制系统。模拟交通信号灯控制:一般情况下正常显示,东西-南北交替放行,各方向通行时间为30秒。有救护车或警车到达时,两个方向交通信号灯全为红色,以便让急救车或警车通过,设通行时间为10秒,之后交通恢复正常。用单次脉冲模拟急救车或警车申请外部中断。

1、在生成HEX文件后,用Proteus软件对电路图进行计算机仿真;

2、程序下载到单片机实验板上验证;(实验板数码管的驱动程序见附件)。

五、程序流程图

仿真图:

紧急情况:

源程序:

ORG 0000H

AJMP START

ORG 0023H //串口中断地址

AJMP SBR1

START:MOV TMOD,#00100000B

//定时器方式2

MOV TL1,#0FDH //9600bps/11.0592MHz

MOV TH1,#0FDH

SETB TR1

MOV SCON,#01100000B //方式1

MOV R0,#20H

MOV R1,#40H

ACALL SOUT

SJMP $

SBR1: JNB RI,SEND

ACALL SIN

SJMP NEXT SEND: ACALL SOUT NEXT: RETI

SOUT: MOV A,@R0

MOV C,P

CPL C

MOV ACC.7,C

INC R0

MOV SBUF,A

CLR TI

RET

SIN: MOV A,SBUF

MOV C,P

CPL C

ANL A,#7FH

MOV @R1,A

INC R1

CLR RI

RET

PLAY: MOV A,R7

MOV B,#10

RET

TAB: DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH,77H,7CH,39H,5EH,79H,71H

// 0

A B C D E F

END

第13篇:单片机实验报告

51单片机控制流水灯

目录

(1)51精简开发板简介 (2)实验目的 (3)实验内容 (4)元件 (5)原理图 (6)实验步骤

(7)主要功能介绍

(8)实验错误及分析 (9)调试及程序 (10)系统测试 (11)实验心得

一、51精简开发板简介

它是一款以8051系列单片机为核心的精简开发板。8051系列单片机是一款应用非常广泛的8位微处理芯片,由于其功能齐全,产品技术成熟,资料广泛,又是学习其他很多单片机的基础,所以它是初学者学习单片机的不二之选,是大学生进行电子实习、课程设计、毕业设计的必备的单片机。

本款51单片机精简开发板较市面上所出售的一般开发板的方便之处在:

1 支持STC及ATMEL AT全系列51/52单片机芯片,具有两种方便的下载方式,并且能够通过串口方便地和电脑进行通信。

2.省去了一般开发板高成本的外围扩展器件,但仍可以进行单片机I/O口输入输出、定时/计数器、中断、串口通信等常用实验项目。方便的扩展功能使用户能够根据自身需要配备实用的外围器件。

3.具有市面上一般单片机所不具有的超强扩展性能。每组I/O口两侧都与单片机供电电源相连,免去了以往单片机接扩展板时还需另行供电的麻烦。

4.开发板总体布局美观、大方,所有元件均采用直插式封装,便于焊接。 学习51板单片机应由浅入深,逐步掌握,先是模仿实验,再是自己动手。51板单片机的开发环境是Keil uVision3,简单易懂,详细用法本书后面也做了说明。另外书后还附有几个有趣的实验,方便学生测试51板,也作为学生学习、修改之用。

二.实验目的

1.了解“51” 精简开发板的工作原理及结构;

2.了解复杂电子产品生产制造的全过程;

3.熟练掌握电子元器件的焊接方法及技巧,训练动手能力,培养工程实践观念。

三.实验内容

学会焊接电路,在开发板上实现八个流水现象以及通过使用汇编语言,控制流水灯过程。 四.元件

1、单片机

STC89C52 一块

2、晶振 11.0592MHz一只

3、PCB板

4、电阻 三支

5、电容 八只

6、双路自锁开关 一个

7、LED 发光二极管 八只

8、排针

9、4.5V电池盒

10、串口下载线 1.5米

11、串口电平转换芯片 NAX232

12、9针排阻 10千欧姆

13、复位按键

14、

14、PCB板 五.原理图

本产品是一套完整的8位单片机开发系统,若将程序下到51板上,它将成为一个极其有趣的智能玩具。

1.主要性能指标

输入电压:DC 4.5V~5V;典型值:5V

2.功能分区与模块简介

图10.1 51板框图

[1] 单片机

单片机也称单片微控制器(Single Chip Microcontroller),它集成度高、运算快、体积小、运行可靠、价格低廉,在过程控制、数据采集、机电一体化、智能仪器仪表、家用电器以及网络技术等方面得到广泛应用。MCS-51单片机结构框图如图10.2所示。

图10.2单片机结构

[2] 电源部分

电源部分由开关、稳压集成、电源指示灯几部分组成,本款51板输入电压4.5V~5V,典型输入电压为5V,也可通过板上的稳压集成芯片78M05给单片机提供5V电压,可使单片机正常工作。图10.1中的DS0为电源指示灯。 [3] 串行下载部分

这一部分由串口、下载缓冲器MAX232组成,通过MAX232芯片把TTL电平转换成RS-232电平格式,可以用于单片机与微机通信。再通过DB9接口由一条串口线与电脑串口相连,可以利用程序下载软件(下载方法书后将做介绍)向单片机下载程序,也可通过一些串口调试软件与电脑进行串口通信。但是,只有STC89S系列单片机支持串口下载,而AT89S系列单片机不支持串口下载。 [4] ISP下载

ISP下载是AT89S系列单片机的下载方式,不能用于STC89S系列单片机,它由一条并口线与电脑并口相连,通过Easy下载软件向单片机下载程序,但下载器需另行购买。

[5] 输入/输出接口

51板将32个I/O口全部引出:其中P0口、P1口、P2口、P3口各有8个I/O口用排针引出,排针两端为与单片机共地的5V电源,方便进行外接扩展,而单片机的EA、ALE、PSEN端口也在靠近排阻下方引出,以方便日后进行一些高级扩展。P1口接有8个发光LED,以供测试之用,P0口外接10K的上拉电阻。这些I/O口即可做输出,又可做输入口,51单片机内部可自行识别,不必要设置。

[6] 外部复位

复位是对单片机硬件的初始化,51单片机具有外部复位功能,高电平有效,即在单片机9脚加上高电平单片机就被复位。此产品的复位电路由按键S2,电容C3和电阻R9组成。

六.实验步骤:

1.拿到51单片机套件后,首先应按照附录的元器件清单表逐一检查元件数目和规格,确保产品完整。

2.详细阅读硬件说明部分,并将元件对号入座,确保一次性焊接成功。

3.先对较矮小的元件进行焊接,比如电阻、稳压集成,再对高一些的元件进行焊接,比如芯片座、排阻等,依此类推,最后焊接高大的元件,比如串口、ISP下载口等。焊接时应注意一些元件的正负极和方向。

4.由于此套件标准配置不包含稳压集成VR1(78M05),所以焊接完成后要用导线将VR1的

1、3焊盘短接,芯片才能正常供电,此时只能使用4.5-5V的直流稳压电源供电;如果将自购VR1(78M05)焊接在板子上,那么就可以使用7.2V-15V的宽电源供电。

5.焊接并检查无误后先不要急于插入芯片,应该先对芯片供电电压进行测量。插上电源,用万用表检查单片机的20、40脚及MAX232的

15、16脚间电压,看是否为+5V(±0.5V),然后用跳线帽接通P6的中间一针和上面一针,使单片机EA端(31脚)与电源正极相接,之后再插上芯片,进行系统测试。七.主要功能介绍: MCS-51单片机

也称单片微控制器,;它集成度高,运算快,体积小,运行可靠,价格低廉,在过程控制数据采集,机电一体化,智能仪表,家用电器, 及网络技术等方面得到广泛应用。 串口下载部分

由串口,下载缓冲器MAX232组成,通过MAX232芯片把TTL电平转换为RS232电平格式可以用单片机与电脑通信,再通过DB9接口有一条串口线与电脑串口相连,可以利用程序下载软件向单片机下载程序,也可以通过一些串口调试软件与电脑串口通信,而我们所使用的STC89C系列单片机只支持串口下载。 电源部分

电源部分有开关,稳压集成,电源指示灯几部分组成,熟人电压4.5V到6V。典型值为5V.ISP下载

ISP下载是AT89S系列单片机下载方式而我们所用的是STC89C所以在此不多详细介绍。 输入/输出接口

本开发板将4个并行I/O端口全部用排针引出来,共32个个排针,

排针两端为与单片机共地的5V电源,方便进行外拓展;单片机的ALE,PSEN端口也靠近排阻下方引出以方便日后进行高级拓展。 外部复位

对单片机硬件初始化操作,在系统加电时或出现故障时,在单片机RESET引脚加上一定时间的高电平就可以使单片机复位,这次制作的单片机复位系统是由按键,电容C1和电阻R3构成。 八.实验错误及分析:

1.接好电源盒,电源指示灯不亮。

原因:1电源插座存在虚焊现象,接触不良。

2 电源拔断开关存在虚焊现象,接触不良。 方法:修复虚焊点。 2.不能正常下载程序。

原因:1 电路板电源没有正常接通

2 下载线焊接组装有误

3 51板、下载线、PC机没有正常连接 4 电池电压低 方法:1 电源正常接通

2 更正正确

3 换新

4 更换或修复焊点

3.下载程序完成后,不能完成流水灯功能 原因:1 电池电压过低

2 发光二极管损坏或管脚虚焊 3 电阻R1开路或管脚虚焊 方法:1 更换电池

2 更换或修复焊点 3更换或修复焊点 九.程序:

#include \"reg51.h\" void main() { unsigned inti=10; P1=0xfe; while(1) {

while(--i) {; } P1=(P1

while(P1==0xff) { while(--i){;} P3=(P3>>1) | 0x80;

if(P3==0xff)

{

P1=0xfe; P3=0xff; } } } }

十、系统测试

1.串口测试

接上单片机电源和串口线,打开电源开关,电源指示灯DS0亮,使用STC89C系列单片机,其本身自带了一个测试程序,上电之后DS1-DS7便会两个两个的闪烁。或者自己下载一个程序,如果下载成功,说明串口正常,如不成功,请仔细检查焊点及串口线。

2.I/O口测试

下载程序一,将跳线P5接ON一端,如发现上排LED逐个亮或有规律的亮,说明P1检测正常;

根据程序一的特点,仔细分析程序二各语句功能,并猜测其结果,接着将程序二下载到单片机上,仍将跳线P5接ON一端,自己观察小灯跳变规律,看与自己分析结果是否一致。 十一.心得体会:

在通过本次课程中,我遇到很多问题,但是与此同时,我也学到了很多,对于本次课题的心得体会,我觉得有以下几点:

1、不管做什么事,计划是很重要的。没有一个完好的计划,做事情就会没有一个好的顺序,做事情会比较乱,很难成功。而有一个好的计划,不管做什么事都会事半功倍,做事心中有数,明确重点和缓急,不会有疏漏。这样才能提高成功率。

2、做事要多动脑,选出最好的方法。一件事往往有多种解决方法,一个好的方法,不仅能使事情事半功倍,而且往往决定最后的成与败,所以做事时一定要多动一下脑筋,想出最好的方法。

3、要识,也要注意细节,不要因一个关键地方的一个细节而导致满盘皆输。

4、,在本次课题中,我也注意细节。细节决定成败,这句话在这次课题中不仅一次得到了印证,特别是在软件的编程过程中,一点点的错误就会使你整个程序不能运行。因此我不仅仅要有整体意学会了不懂就问,不仅事半功倍,而且发现了一些好的有趣的构想,使我对单片机有了更浓的兴趣。

5、最后,也是最重要的一点,通过这次课题,我学到了很多有关单片机方面的知识,也对单片机有了更深入的了解,受益匪浅。

算 机 基 本 技 能 训 练

学校:西安科技大学

班级:电气工程及其自动化1202班

姓名:张小雨

学号:1206060202

日期:2014年1月2日

第14篇:单片机实验报告

单片机实验一

实验报告

课程名称: 姓

名: 系

别: 专

业: 年

级: 学

号: 指导教师:

单片机原理及应用实验

陈璐 信息系

电气工程及其自动化

2012级 120712041 李莉

2015 年

6 月 25

1.实验目的和要求

1)熟悉Keil 软件界面,以及编辑、编译、运行程序的步骤;

2)熟悉Proteus软件界面,掌握用Proteus画仿真图的方法。 2.主要仪器设备

Keil 软件与Proteus仿真软件 3. 实验设计要求

利用单片机、1个开关和1个发光二极管,构成一个简单的开关检测系统的仿真电路图。单片机P3.0引脚接按钮开关,P1.0引脚接发光二极管的阴极。当开关闭合时,发光二极管亮;开关打开时,发光二极管灭;按钮开关与发光二极管没有任何电气上的联系。

单片机对开关K的状态的检测由程序检测P3.0引脚的输入电平。当开关K闭合,即P3.0脚输入低电平;当开关K打开,即P3.0脚输入高电平。使用发光二极管,阳极接+5V,阴极接P1.0端口。当程序控制P1.0输出高电平时,发光二极管D1灭;当程序控制P1.0输出低电平时,发光二极管D1亮。 4.操作方法与实验步骤

(1)Keil C51软件使用

在Keil C51集成开发环境下,建立一个工程并编辑以下源程序,熟悉Keil C51集成开发环境下各种菜单、命令的使用。

#include \"reg51.h\" #define uchar unsigned char #define uint unsigned int sbit in=P3^0; sbit out=P1^0; void main(void) { while(1) { in=1; if(in= =0)out=0; else out=1; } } (2)建立新文件

进入Proteus ISIS界面,单机主菜单项【文件】→“新建设计”选项,就会弹出“新建设计”窗口,窗口中提供了多种模版选择。其中横向图纸为Landscape,纵向图纸为Portrait,DEFAULT为默认模版。单击选择的模版图标,再单击“确定”按钮,即建立一个该模版的空白文件。如果直接单击“确定”按钮,即选用系统默认的DEAFAUILT模版。

单击保存按钮,在弹出的对话框“保存ISIS设计文件”中输入文件名再单击“保存”,则完成新建设计文件的保存操作,其后缀自动为“.DSN”。

(3)设定绘图纸大小 单击菜单中的【系统】→“设置图纸大小”,选择所需图纸的尺寸位A4。

(4)选取元器件并添加到对象选择窗口中

单击器件选择按钮,弹出选取元器件对话框。在其左上角“关键字”一栏中输入元器件名称“AT89C51”,则出现关键字匹配的元器件列表。选中AT89C51所在行或单击AT89C51所在行后,再单击“确定”按钮,便将元器件AT89C51加入到ISIS对象选择窗口中。按此操作方法逐一完成其他元器件的选取。本设计中使用的各元器件的关键字相应为“AT89C51”、“BUTTON”(按钮开关)、“CAP”(瓷片电容)、“CAP-ELEC”(电解电容)、“CRYSTAL”(晶振)、“RES”(电阻)等。被选取的元器件加入到ISIS对象选择窗口中。 (5)放置、移动、旋转元器件

单击ISIS对象选择窗口中的元器件名,蓝色条出现在该元器件名上。把鼠标指针移到编辑区某位置后,单击就可放置元器件于该位置,每单击一次,就放置一个元器件。如果要移动元器件,先右击元器件使其处于选中状态,再按住鼠标左键进行拖动,达到目标处后,松开鼠标即可。如要调整元器件方向,先将指针指在元器件上单击鼠标右键选中,再单击相应的旋转按钮。若多个对象一起移动或转向,可选择相应的块操作命令。 (6)放置电源、地(终端)

单击工具箱的终端模式按钮,然后在对象选择窗口中单击POWER来选中电源,然后使用元器件调整工具按钮进行方向调整,最后在编辑区中单击放置电源。 (7)电路图布线

单击元器件引脚间、线间等接线处,自动生成连线。 (8)电气检测

单击电器检查快捷键按钮,根据电气检查列表的指示修改设计中的错误,完成实验。 5.实验内容及实验数据记录

每当按下K时,LED灯就会发光。

C2U130pF19XTAL1P0.0/AD0P0.1/AD1P0.2/AD2P0.3/AD3P0.4/AD4P0.5/AD5P0.6/AD6P0.7/AD7P2.0/A8P2.1/A9P2.2/A10P2.3/A11P2.4/A12P2.5/A13P2.6/A14P2.7/A15P3.0/RXDP3.1/TXDP3.2/INT0P3.3/INT1P3.4/T0P3.5/T1P3.6/WRP3.7/RD393837363534333221222324252627281011121314151617X112MHz18XTAL2D1R24.7K930pFRSTR4220293031C310uFPSENALEEAKR310K10K12345678P1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7AT89C51LED-GREENC1R1220 6.实验数据处理与分析

每当按下K时,in(p3.0)I/O口就会变为低电平,该信号使得CPU给out(p3.0)I/O口发送低电平,使得LED灯发亮。 7.实验过程中遇到的问题及解决方法

一开始安装软件的时候最后一步设置完通信设置时,鼠标点击“好”,但是屏幕一直显示“通信错误”的提示,经过重复操作,还是没有成功,结果是因为“端口选择”处选择错了,改正后最终安装成功。 8.心得体会

对于这次单片机实验不仅巩固了以前所学过的知识,而且学到了很多在书本上没有学到过的知识,掌握了一种系统的研究方法,可以进行一些简单的编程。通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,从而提高自己的实际动手能力和独立思考的能力。同时在设计的过程中发现了自己的不足之处,例如对以前所学过的知识理解得不够深刻,掌握得不够牢固等,在以后的学习中尤其应该注意。

第15篇:单片机课程设计

基于单片机的火灾智能报警控制系统的设计

前言

在各种灾害中,火灾是最经常、最普通地威胁公众安全和社会发展的灾害之一。人类能够对火进行利用和控制,是文明进步的一个重要标志。火,给人类带文明进步、光明和温暖。但是,失去控制的火,就给人类造成灾害。 据统计, 我国 70 年代火灾年平均损失不到 2.5 亿元,80 年代火灾年平均损失不到

3.2 亿元。进入 90 年代, 特别是 1993 年以来,火灾造成的直接财产损失上升到年均十几亿元,年均死亡 2000 多人。2010年上海静安区高层住宅着火,导致58人死亡,70余人受伤。2014年1月云南香格里拉大火,烧毁房屋100多栋,直接经济损失1亿多元人民币。火灾事件经常发生,防止火灾事故关系到人民群众的生命财产安全和社会和谐稳定。现在各种电子产品的普及,再加上人们防火意识的不强,这些都给火灾的发生带来了巨大的安全隐患。

对于火灾最关键的问题在于预防,目前防火报警系统趋于智能化、自动化,灵敏程度也越来越高。在这种背景下,基于单片机的火灾智能报警控制系统能突显出其巨大的优越性。目前,国内大多数偏重于商场、宾馆、高级写字楼、大型仓库等大型火灾报警系统的研发和设计。本系统侧重于小型火灾智能报警系统的设计,可在火灾发生初期检测到并且报警,还能够实时显示温度和烟雾浓度。

第16篇:单片机第六章

第六章

3、89C51定时器有哪几种工作模式?有何区别?

答:有四种工作模式:模式0,模式1,模式2,模式3

(1)模式0:选择定时器的高8位和低5位组成一个13位定时器/计数器。TL低5位溢出时向TH进位,TH溢出时向中断标志位TF进位,并申请中断。

定时时间t=(213-初值)×振荡周期×12;计数长度位213=8192个外部脉冲

(2)模式1:与模式0的唯一差别是寄存器TH和TL以全部16位参与操作。定时时间t=(216-初值)×振荡周期×12;计数长度位216=65536个外部脉冲

(3)模式2:把TL0和TL1配置成一个自动重装载的8位定时器/计数器。TL用作8位计数器,TH用以保存初值。TL计数溢出时不仅使TF0置1,而且还自动将TH中的内容重新装载到TL中。

定时时间t=(28-初值)×振荡周期×12;计数长度位28=256个外部脉冲

(4)模式3:对T0和T1不大相同

若设T0位模式3,TL0和TH0被分为两个相互独立的8位计数器。TL0为8位计数器,功能与模式0和模式1相同,可定时可计数。

TH0仅用作简单的内部定时功能,它占用了定时器T1的控制位TR1和中断标志位TF1,启动和关闭仅受TR1控制。

定时器T1无工作模式3,但T0在工作模式3时T1仍可设置为0~2。

4、89C51内部设有几个定时器/计数器?它们是由哪些特殊功能寄存器组成?

答:89C51单片机内有两个16位定时器/计数器,即T0和T1。

T0由两个8位特殊功能寄存器TH0和TL0组成;T1由TH1和TL1组成。

6、简述定时器4种工作模式的特点,如何选择设定?

答:(1)模式0:选择定时器的高8位和低5位组成一个13位定时器/计数器。TL低5位溢出时向TH进位,TH溢出时向中断标志位TF进位,并申请中断。

定时时间t=(213-初值)×振荡周期×12;计数长度位213=8192个外部脉冲

置TMOD中的M1M0为00

(2)模式1:与模式0的唯一差别是寄存器TH和TL以全部16位参与操作。定时时间t=(216-初值)×振荡周期×12;计数长度位216=65536个外部脉冲

置TMOD中的M1M0为01

(3)模式2:把TL0和TL1配置成一个自动重装载的8位定时器/计数器。TL用作8位计数器,TH用以保存初值。TL计数溢出时不仅使TF0置1,而且还自动将TH中的内容重新装载到TL中。

定时时间t=(28-初值)×振荡周期×12;计数长度位28=256个外部脉冲

置TMOD中的M1M0为10

(4)模式3:对T0和T1不大相同

若设T0位模式3,TL0和TH0被分为两个相互独立的8位计数器。TL0为8位计数器,功能与模式0和模式1相同,可定时可计数。

TH0仅用作简单的内部定时功能,它占用了定时器T1的控制位TR1和中断标志位TF1,启动和关闭仅受TR1控制。

定时器T1无工作模式3,但T0在工作模式3时T1仍可设置为0~2。 置TMOD中的M1M0为11

11、89C51定时器作定时和计数时其计数脉冲分别由谁提供?

答:作定时器时计数脉冲由89C51片内振荡器输出经12分频后的脉冲提供,作计数时计数脉冲由外部信号通过引脚P3.4和P3.5提供。

15、单片机8031的时钟频率为6MHz,若要求定时值分别为0.1ms,1ms,10ms,定时器0工作在模式0、模式1和模式2时,其定时器初值各应是多少?

解:(1)0.1ms

模式0:

T0低5位01110B=0EH

T0高8位:11111110B=FEH

模式1:

模式2:

(2)1ms

模式0:

T0低5位01100B=0CH

T0高8位:11110000B=F0H

模式1:

模式2:

在此情况下最长定时为512μs,无法一次实现定时1ms,可用0.1ms循环10次

(3)10ms

模式0:

T0低5位11000B=18H

T0高8位:01100011B=63H

模式1:

模式2:在此情况下最长定时为512μs,无法一次实现定时10ms,可用0.1ms循环100次 第七章

4、89C51串行口有几种工作方式?有几种帧格式?各工作方式的

波特率如何确定?

答:89C51串行口有4种工作方式:

方式0(8位同步移位寄存器),方式1(10位异步收发),方式2(11位

异步收发),方式3(11位异步收发)。

有2种帧格式:10位,11位

方式0:方式0的波特率≌fosc/12(波特率固定为振荡频率1/12)

方式2:方式2波特率≌2SMOD/64×fosc

方式1和方式3:方式1和方式3波特率≌2SMOD/32×(T1溢出速率)

如果T1采用模式2则:

5、若异步通信接口按方式3传送,已知其每分钟传送3600个字符,其波

特率是多少?

答:已知每分钟传送3600个字符,方式3每个字符11位,则:

波特率=(11b/字符)×(3600字符/60s)=660b/s

第17篇:单片机实验报告

《单片机原理及应用》

实 验 报 告

2017—2018学年第一学期

班级: 152 专业: 电子科学与技术 姓名: 子路 学号: 教师:

实验一:Keil C51

一、实验目的

1、熟悉Keil C51单片机应用开发系统

2、熟悉Keil C51的调试技巧

二、实验内容

1、安装好了Keil软件以后,我们打开它。打开以后界面如下:

2、我们先新建一个工程文件,点击“Project->New Project„”菜单,如下图:

3、选择工程文件要存放的路径 ,输入工程文件名 LED, 最后单击保存.

4、在弹出的对话框中选择 CPU 厂商及型号

5、选择好 Atmel 公司的 AT89S52 后 , 单击确定

6、在接着出现的对话框中选择“是”。

7、新建一个 C51 文件 , 单击左上角的 New File 如下图所示:

8、保存新建的文件,单击SAVE如下图:

9、在出现的对话框中输入保存文件名MAIN.C(注意后缀名必须为.C),再单击“保存”,如下图:

10、保存好后把此文件加入到工程中方法如下 : 用鼠标在 Source Group1 上单击右键 , 然后再单击 Add Files to Group ‘Source Group 1' 如下图:

11、选择要加入的文件 , 找到 MAIN.C 后 , 单击 Add, 然后单击 Close

12、在编辑框里输入如下代码:

13、到此我们完成了工程项目的建立以及文件加入工程 , 现在我们开始编译工程如下图所示 : 我们先单击编译, 如果在错误与警告处看到 0 Error(s) 表示编译通过:

14、生成 .hex 烧写文件,先单击Options for Target,如图:

15、在下图中,我们单击 Output, 选中 Create HEX F。再单击“确定”

16、打开文件夹‘实验1’,查看是否生成了HEX文件。如果没有生成,在执行

一遍步骤10到步骤12,直到生成。

三、实验工具(软件、硬件等)

1、Keil

2、计算机

实验二:Proteus软件学习

一、实验目的

1、了解Proteus的基本功能

2、熟悉Proteus的设计环境Preoteus ISIS及第三方编译工具Keil

3、掌握Proteus中实现单片机系统设计与仿真的步骤与方法

二、实验内容

设计与仿真的开发过程

Proteus强大的单方机系统设计与仿真功能,使之成为单片机系统应用开发和改进手段之一。

开发的整个过程都是在计算机上完成的,其过程一般分为三步: 1) Proteus 电路设计:在ISIS平台上进行单片机系统电路设计、选择元器件、接插件、连接电路和电气现则检查等。

2) Proteus 源程序设计和生成目标代码文件:在ISIS平台上或借助第三方编译工具进行单片机系统程序设计、编辑、汇编编译、代码级调试,最后生成目标代码文件(*hex)。

3)Proteus仿真:在ISIS平台上将目标代码文件加载到单片机系统中,由此实现系统实时交互与协同伤真。

三、实验工具(软件、硬件等)

1、载有Proteus的计算机一台

实验三:LED流水灯

一、实验目的

1、用Keil软件编写程序并利用开发板仿真

2、学习LED灯工作原理

二、实验内容

延时实现LED流水灯效果P2口八个灯作跑马灯。采用了寄存器存中间数。

三、实验工具(软件、硬件等) 1.载有Keil软件的计算机一台 2.开发板一套

四、实验结果及分析

实验四:静态数码管

一、实验目的

1、用Keil软件编写程序并利用开发板仿真

2、学习静态显示管工作原理

二、实验内容

静态数码管流动显示0~9

二、实验工具(软件、硬件等) 1.载有Keil软件的计算机一台 2.开发板一套

四、实验结果及分析

实验五:按键移位动态显示

一、实验目的

1、用Keil软件编写程序并利用开发板仿真

2、学习静态显示管工作原理

二、实验内容

静态显示管,按键不同显示不同

三、实验工具(软件、硬件等) 1.载有Keil软件的计算机一台 2.开发板一套

四、实验结果及分析

实验六:中断INT0+INT1

一、实验目的

1、用Keil软件编写程序并利用开发板仿真

2、学习中断INT0和INT1的工作原理

二、实验内容

试验数码管上显示外部中断计数,用单片机脚直接控制数码管和外部中断使用

三、实验工具(软件、硬件等) 1.载有Keil软件的计算机一台 2.开发板一套

四、实验结果及分析

第18篇:单片机原理

1.一个完整的微机系统由硬件和软件两大部分组成。

2.8051 的引脚RST是IN脚(IN脚还是OUT脚),当其端出现高电平时,8051进入复位状态。8051一直维持这个值,直到RST脚收到低电平,8051才脱离复位状态,进入程序运行状态,从ROM0000H单元开始取指令并翻译和执行。

3.半导体存储器分成两大类:RAM ROM,其中RAM 具有易失性,常用于存储临时性数据。

4.求十进制数-102的补码(以2位16进制数表示),该补码为 9AH。

5.PC存放_CPU将要执行的指令所在的ROM单元的地址,具有自动加1特性。在8051中决定程序执行顺序的是PC还是DPTRPC?它是16位?不是(是,不是)SFG?

6.123=01010010 B= 52 H。

7.8051内部有4个并行口,P0口直接作输出口时,必须外接 上拉电阻;并行口作输入口时,必须先将口锁存器置1 ,才能读入外设的状态。

8.MCS-51的堆栈只可设置在 内RAM低128B区,其最大容量为128B,存取数据的原则是 先进后出。堆栈寄存器SP是8位寄存器,存放堆栈栈顶的地址。9.中断处理的全过程分为以下3个段: 中断请求、中断响应、中断服务 。

10.定时和计数都是对 脉冲进行计数,定时与计数的区别是定时是对周期已知的脉冲计数;计数是对周期未知的脉冲计数。

1.MCS51的中断系统有几个中断源?几个中断优先级?中断优先级是如何控制的?在出现同级中断申请时,CPU按什么顺序响应(按由高级到低级的顺序写出各个中断源)?各个中断源的入口地址是多少? 答:MCS51单片机有5个中断源,2个中断优先级,中断优先级由特殊功能寄存器IP控制,在出现同级中断申请时,CPU按如下顺序响应各个中断源的请求:INT0、T0、INT

1、T

1、串口,各个中断源的入口地址分别是0003H、000BH、0013H、001BH、0023H。

2.已知单片机系统晶振频率为6MHz,若要求定时值为10ms时,定时器T0工作在方式1时,定时器T0对应的初值是多少?TMOD的值是多少?TH0=?TL0=?(写出步骤)

答:定时值为10ms时,定时器T0工作在方式1时,定时器T0对应的初值是1388H

TMOD的值是00000001B,TH0=13H;TL0=88H。

3.MCS51系列单片机的内部资源有哪些?说出80

31、8051和8751的区别。

答:MCS51系列单片机上有1个8位CPU、128B的RAM、21个SFR、4个并行口、1个串行口、2个定时计数器和中断系统等资源。80

31、8051和8751的区别是8031内无ROM;8051内有4KB的掩膜ROM;8751内有4KB的EPROM。

第19篇:单片机课程设计

单片机课程设计

MCS-51单片机课程设计

指导教师:黄东

电管081,082,建电081,08

2单片机课程设计目的:

单片机原理及接口技术是一门专业技术基础课,是一门实践性很强的课程,单片机课程设计要求将所学的理论知识通过实践加强理解和认识,提高学生们的单片机接口电路的设计能力和实践动手能力。

单片机课程设计题目: 1. 2. 3. 4.

日历时钟设计 数字温度计设计 数字频率测量仪设计 数字电压表设计

课程设计实验装置:

DP-51PRO.NET三合一多功能实验仪 课程设计拟使用主要电子元器件:

说明:由于单片机课程设计题目将利用DP-51PRO.NET三合一多功能实验仪来实现,因此

本课程设计建议采用实验仪能提供的电子元器件。

设计时间:两周

单片机课程设计报告要求:

1.根据设计题目要求进行系统总体设计

2.设计系统总体电路图,阐述系统中各个单元电路的工作原理 3.系统的硬件设计、电路中元器件的选择,参数确定

--- 1 ---

4.系统的软件设计、主程序流程图和主要子程序流程图 5.给出系统设计硬件元器件清单 6.列出参考资料

注意事项:

1) 设计期间旷课3天或以上本设计不及格; 2) 设计雷同50%以上不及格; 3) 设计报告少于3000字不及格。4)设计封面和硬件图要求打印其他手写。

题目一日历时钟设计

一、设计内容:

采用MCS-51系列单片机进行日历时钟设计并通过实验仪验证通过。

二、设计要求:

1. 设计单片机最小系统电路(包括复位、晶振电路、外扩3个2764共24KROM、

3个6264共24KRAM等) 2. 设计键盘/显示器接口电路。

3. 通过软件编程实现日历时钟的显示(显示年、月、日和时:分:秒) 4. 通过键盘可预置日历时钟。 5. 实现作息时间控制输出。

题目二数字温度计设计

一、设计内容:

采用MCS-51系列单片机进行数字温度计设计并通过实验仪验证通过。

二、设计要求:

1.设计单片机最小系统(电路包括复位、晶振电路、外扩3个2764共24KROM、3个6264共24KRAM等) 2.设计键盘/显示器接口电路。 3.设计温度测量接口电路

4.通过软件编程实现环境温度的测量和显示(温度显示:25.8℃) 5.通过键盘可预置温度报警值,实现温度越限报警功能。

题目三数字频率测量仪设计

一、设计内容:

采用MCS-51系列单片机进行数字频率计设计并通过实验仪验证通过。

二、设计要求:

1.设计单片机最小系统电路(包括复位、晶振电路、外扩3个2764共24KROM、3个6264共24KRAM等) 2.设计键盘/显示器接口电路。

3.通过软件编程实现数字频率计的测量和显示(显示使用六位数码显示器)

4.通过键盘可控制频率计的闸门时间。

题目四数字电压表设计

一、设计内容:

采用MCS-51系列单片机进行数字电压表设计并通过实验仪验证通过。

二、设计要求:

1.设计单片机最小系统电路(包括复位、晶振电路、外扩3个2764共24KROM、3个6264共24KRAM等) 2.设计键盘/显示器接口电路。 3.设计A/D转换器接口

4.通过软件编程实现模拟电压测量和显示(显示取2位小数) 5.通过键盘可预置电压报警值,实现电压越限报警功能。

单片机课程设计硬件参考电路

一、单片机最小系统

1.89C52单片最小系统

XTAL1

2.8032总线型最小系统(3片组成)

XTAL1

第20篇:单片机设计任务书

单片机课程设计任务书

一、基本情况

学时:2周学分:2学分适应班级:电气工程及其自动化

二、课程设计的意义、性质、目标、要求

1.意义

课程设计是单片机课程教学的最后一个环节,是对学生进行全面的系统的训练。进行课程设计可以让学生把学过的比较零碎的知识系统化,真正的能够把学过的知识落到实处,能够开发简单的系统,也进一步激发了学生再深一步学习的热情,因此课程设计是必不少的,是非常必要的。

2.性质

课程设计是提高学生单片机技术应用能力以及文字总结能力的综合训练环节,是配合单片机课程内容掌握、应用得的专门性实践类课程。

3.目标

通过典型实际问题的实际,训练学生的软硬件的综合设计、调试能力以及文字组织能力,建立系统设计概念,加强工程应用思维方式的训练,同时对教学内容做一定的扩充。

4.要求

(1)课程设计的基本要求

单片机课程设计的主要内容包括:理论设计与撰写设计报告等。其中理论设计又包括选择总体方案,硬件系统设计、软件系统设计;硬件设计包括单元电路,选择元器件及计算参数等;软件设计包括模块化层次结构图,程序流程图。程序设计是课程设计的关键环节,通过进一步完善程序设计,使之达到课题所要求的指标。课程设计的最后要求是写出设计总结报告,把设计内容进行全面的总结,若有实践条件,把实践内容上升到理论高度。

(2)课程设计的教学要求

单片机课程设计的教学采用相对集中的方式进行,以班为单位全班学生集中到设计室进行。做到实训教学课堂化,严格考勤制度,在实训期间(两周)累计旷课达到6节以上,或者迟到、早退累计达到8次以上的学生,该课程考核按不及格处理。在实训期间需要外出查找资料,必须在指定的时间内方可外出。

课程设计的任务相对分散,每3—5名学生组成一个小组,完成一个课题的设计。小组成员既有分工、又要协作,同一小组的成员之间可以相互探讨、协商,可以互相借鉴或参考别人的设计方法和经验。但每个学生必须单独完成设计任务,要有完整的设计资料,独立撰写设计报告,设计报告雷同率超过50%的课程设计考核按不及格处理。

三、课程设计题目及设计过程

(一)十字路口交通灯控制系统的设计

利用单片机的定时器产生秒信号,控制十字路口的红绿黄灯交替点亮和熄灭。要求能用按键设置两个方向的通行时间(绿灯点亮的时间)和暂缓通行时间(黄灯点亮的时间),系统的工作符合一般交通灯控制要求。

(二)设计过程

1、设计要求

十字交叉路口的交通灯控制系统的结构如图1.1所示。往南和往北的信号一致,即红灯(绿灯或黄灯)同时亮或同时熄灭。实现红、绿、黄灯的循环控制。要实现此功能需要表示三种不同颜色的LED灯分别接在P1个管脚,用软件实现。往东和往西方向的信号一致,其工作方式与南北方向一样,也采用三种不同颜色的LED灯分别接在P1个管脚,用软件实现。当南北方向为绿灯和黄灯时,东西向的红灯点亮禁止通行;而东西方向为绿灯和黄灯时,南北向的红灯点亮禁止通行。

图1.1 十字路口交通灯控制示意图

假设南北方向为主干道,通行时间为20秒,东西方向是次干道,通行时间为20秒,黄灯点亮的时间均为5秒,则其工作方式如表1.1所示循环点亮信号灯。

具体设计要求如下:

1、设计一交通灯控制系统,其结构如图1.1所示,工作方式满足上述要求。

2、主干道和次干道的通行时间及黄灯点亮的时间可以手动设置。

3、在没有手动设置通行时间时,系统自动按表1.1的模式进行工作。

2、设计要点

(1)硬件设计:

实现红、绿、黄灯的循环控制。要实现此功能需要表示三种不同颜色的LED灯分别接在P1个管脚,用软件实现。

要求东西车道和南北车道上的车辆交替运行,每次通行时间为20s; 要求黄灯先亮5秒钟,才能变换车道。

黄灯亮时要求每秒闪亮一次;

要求绘出原理图;

根据设计要求和技术指标设计好电路。

(2)本系统的工作流程:

1)接通电源时或系统复位后,系统按程序给定的时间工作,即南北向通行20秒,东西向通行20秒,黄灯亮5秒,工作模式如表1.1所示。首先南北向通行,然后东西向通行,如此循环。

(3) 软件设计:

1)系统资源分配:为了便于程序的设计、阅读及修改,需要先对系统的存储器资源进行分配和说明。

2)软件模块:根据上述工作流程和设计要求,软件设计可以分为以下几个功能模块:

先了解实际交通灯的变化规律,假设一个十字路口为东西南北走向。初始状态0为东西红灯,南北红灯;然后转状态1南北绿灯通车,东西红灯。过一段时间转状态2,南北绿灯闪几次转黄灯,延时几秒,东西仍然红灯。再转状态3,东西绿灯通车,南北红灯。过一段时间转状态4,东西绿灯闪几次转亮黄灯,延时几秒,南北仍然红黄灯,最后回到状态1,不断循环。

(1).当东西方向为红灯,此道禁止通行,东西到行人可通过;南北道为绿灯,此道车辆通过,行人禁止通行。市建委20秒。

(2).黄灯闪烁5秒,警示车辆和行人红、绿灯状态即将切换。

(3).当东西方向为绿灯,此道车辆通行;南北方向为红灯,南北道车辆禁止通过,行人通行。时间为20秒。东西方向车流大,通行时间长。

(4).这样如上表的时间和红、绿、黄灯出现的顺序依次出现这样行人和车辆就能安全畅通的通行。

硬件设计的要求:

(1)确定元器件的型号及参数。

(2)画出硬件设计的结构框图。

(3)画出各部分电路的原理图,并说明各部分电路的工作原理设计依据;画出完整的原理图。

(4)列出元器件清单。

4、软件设计

根据设计要点,软件设计首先应对系统资源进行进行分配和说明。为了增加程序的可读性,理清程序的编写思路,建议程序采用模块化结构。

软件设计的要求:

(1)画出整个控制系统的程序流程图。

(2)画出各功能部分的程序流程图,并能够编写相应的原程序。

四、设计报告

设计完成后,必须撰写课程设计报告。设计报告必须独立完成,格式符合要求,文字(不含图形、程序)不少于3000字,图形绘制规范报告书用A4纸书写,装订成册。设计报告的格式如下:

1、封面

2、内容提要(摘要)

3、目录

4、正文

(1) 所作题目的意义、本人所做的工作及系统的主要功能;

(2) 硬件电路设计及描述;

1)确定元器件的型号及参数。

2)画出完整的原理图。

3)列出元器件清单。

(3) 软件设计流程及描述;

5、心得体会(总结)

6、参考文献

7、附录(源程序代码)

8、有关图纸

五、进度安排

单片机课程设计共安排2周,合计80学时,具体分配如下:

实习动员及准备工作:2学时

总体方案设计:10学时

硬件设计:16学时

软件设计:20学时

撰写设计报告:12学时

答辩与总结:8学时

教师辅导:12学时

六、考核方法

单片机课程设计的考核方式为考查,考核结果为优秀、良好、中等、及格和不及格五等,分数在90-100之间为优秀,80-89分之间为良好,70-79分之间为中等,60-69分之间为及格,60分以下为不及格。

考核分三个方面进行:平时表现20%;设计过程25%;设计报告 40%;设计答辩15%。

有下列情形之一者,课程设计考核按不及格处理:

1、设计期间累计迟到、早退达8次;

2、设计期间累计旷课达6节;

3、设计报告雷同率超过50%或无设计报告;

4、不能完成设计任务,达不到设计要求。

说明:下为可供参考的题目,可以从中选取,也可自己定题

2、题目:免超载长途车自动控制系统设计

设计要求:

(1)当检测到有人进车时能够自动开启车门,开启后延时10秒自动关闭。开门系统由电动机控制,开门时电动机正转,闭门时电动机反转。开门限度由限位开关确定;

(2)能够自动记录进入车内人的个数,当人数超过50时不在开启进车门;

(3)当车内人员有特殊情况需外出时,只能通过按下车内请求按钮,后门开启才能离开,离开之后记录人数自动减一;

(4)当车内人员未满绿色显示灯亮,正常满员时,车门上黄色显示灯亮;当有超载情况出现时,车内报警器自动报警,同时车门红色灯亮。

3、题目:半导体致冷恒温系统设计

设计要求:

(1)通过温度传感器测量制冷片的温度,并能通过数码管显示,显示3位即可;

(2)通过单片机控制半导体制冷温度为恒温。即若温度过高,可以将电压调高,制冷效果好,温度降低;若温度低,可以将电压调低,制冷效果差,温度升高。

(3)若温度正常时绿色显示灯亮,温度过高时红色显示灯亮,温度过低时黄色显示灯亮,温度异常报警。

4、题目:多功能绿色垃圾桶设计

设计要求:

(1)当有人投放垃圾时,垃圾桶打开,持续一段时间自动关闭;

(2)当桶内垃圾过多时,不再开启垃圾桶,此时垃圾桶上红色指示灯亮;垃圾未满时,绿色指示灯亮;

(3)垃圾桶控制系统的电源有太阳能电池提供,若遇到太阳能电池电量不足时,能够利用自带的5V备用直流电源供电。

5、题目:单片机控制的60s倒计时设计

设计要求:

应用定时计数器及其中断实现60s的,并将倒计时过程显示在LED数码管上,倒计时循环进行。

(1) 硬件设计:

1)单片机建议选用AT89C51,它与8051系列单片机全兼容,但其内部 带有4KB的FLASH ROM,设计时无需外接程序存储器,为设计和调试带来极大的方便。

2)LED显示系统:

采用2个数码管倒计时,时钟信号采用的是内部时钟方式。带有复位功 能,P1口和P2口分别接个位和十位数码管。

3)电源供电系统:本系统采用220V电源供电,应设计相应的稳压电源 电路。但课程设计受时间限制,也可采用现成的5V直流稳压电源供电,这样可以节约设计时间、简化设计过程。

(2)、软件设计

根据设计要点,软件设计首先应对系统资源进行进行分配和说明。为了增加程序的可读性,理清程序的编写思路,建议程序采用模块化结构。主程序和定时中断服

6、题目:基于单片机16×16点阵控制系统设计

设计要求:

16x16点阵需要32个驱动,分别为16个列驱动及16个行驱动。每个行与每个列可以选中一个发光管,共有256个发光管,采用动态驱动方式。每次显示一行,10ms后再显示下一行。

(1) 硬件设计:

1)单片机建议选用AT89C51,它与8051系列单片机全兼容,但其内部带有4KB的FLASH ROM,设计时无需外接程序存储器,为设计和调试带来极大的方便。

2)LED显示系统:16×16LED点阵

3)74159集成芯片:其功能是将4位输入译为16输出(低电平有效)。

4)电源供电系统:课程设计受时间限制,也可采用现成的5V直流稳压电源供电,这样可以节约设计时间、简化设计过程。

(2)、软件设计

根据设计要点,软件设计首先应对系统资源进行进行分配和说明。为了增加程序的可读性,理清程序的编写思路,建议程序采用模块化结构。

单片机毕业设计
《单片机毕业设计.doc》
将本文的Word文档下载到电脑,方便编辑。
推荐度:
点击下载文档
相关专题
点击下载本文文档