C51单片机实训论文

时间:2019-05-14 20:12:54下载本文作者:会员上传
简介:写写帮文库小编为你整理了多篇相关的《C51单片机实训论文》,但愿对你工作学习有帮助,当然你在写写帮文库还可以找到更多《C51单片机实训论文》。

第一篇:C51单片机实训论文

上海第二工业大学

实训课程

课 程: 二级项目(电子设计)

学生姓名:

许奇峰

学 号:

104827477

学院名称:

电子与电气工程学院

专业班级:

10测控C1

摘要

近年来随着科技的飞速发展,单片机的应用正在不断深入,同时带动传统控制检测技术日益更新。在实时检测和自动控制的单片机应用系统中,单片机往往作为一个核心部件来使用,仅单片机方面知识是不够的,还应根据具体硬件结构软硬件结合,加以完善。

本实验采用的单片机为C51,以C语言为程序设计的基础,通过4*4的矩阵键盘上的特定的按键来控制1602液晶显示屏,以显示设计人的姓名、学号,还有时钟来显示时、分、秒、日期,并且显示当时的温度,PWM和A/D转换等功能。

一. 实验目的

通过此次实训,让我们掌握了单片机基本原理的基础、单片机的编程知识以及初步掌握单片机应用系统开发实用技术,了解单总线的读/写控制方法。同时培养学生理论与实践相结合的能力,提高分析问题和解决问题的能力,增强学生独立工作能力;培养了我们团结合作、共同探讨、共同前进的精神与严谨的科学作风。本次实验的目的主要有以下几点:

1、熟悉51单片机的基本构造和原理基础;

2、能运用51单片机进行简单的单片机应用系统的硬件设计;

3、掌握单片机应用系统的硬件、软件调试方法; 4、4*4矩阵键盘的应用,1602液晶显示屏幕的应用等;

5、运用C51单片机来设计显示时钟、温度、PWM、A/D转换。

二.硬件组成

·51单片机最小系统

1、震荡器

单片机系统正常工作的保证,如果振荡器不起振,系统将会不能工作;假如振荡器运行不规律,系统执行程序的时候就会出现时间上的误差,这在通信中会体现的很明显:电路将无法通信。他是由一个晶振和两个瓷片电容组成的,x1和x2分别接单片机的x1和x2,晶振的瓷片电容是没有正负的,注意两个瓷片电容相连的那端一定要接地。

2、复位端 复位电路

给单片机一个复位信号(一个一定时间的低电平)使程序从头开始执行;一般有两中复位方式:上电复位,在系统一上电时利用电容两端电压不能突变的原理给系统一个短时的低电平;手动复位,同过按钮接通低电平给系统复位,时如果手按着一直不放,系统将一直复位,不能正常

·AT89C51 1)简介

A89C51是一种带4K字节闪烁可编程可擦除只读存储器(FPEROM—Flash Programmable and Erasable Read Only Memory)的低电压,高性能CMOS 8位微处理器,俗称单片机。单片机的可擦除只读存储器可以反复擦除100次。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器。AT89C51单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。外形及引脚排列如图所示。2)功能特性 ·与MCS-51 兼容

·4K字节可编程闪烁存储器

·寿命:1000写/擦循环

·数据保留时间:10年

·全静态工作:0Hz-24MHz

·三级程序存储器锁定

·128×8位内部RAM

·32可编程I/O线

·两个16位定时器/计数器

·5个中断源

·可编程串行通道

·低功耗的闲置和掉电模式

·片内振荡器和时钟电路

·矩阵键盘(如附录2,图2)

在键盘中按键数量较多时,为了减少I/O口的占用,通常将按键排列成矩阵形式。在矩阵式键盘中,每条水平线和垂直线在交叉处不直接连通,而是通过一个按键加以连接。这样,一个端口(如P1口)就可以构成4*4=16个按键,比之直接将端口线用于键盘多出了一倍,而且线数越多,区别越明显,比如再多加一条线就可以构成20键的键盘,而直接用端口线则只能多出一键(9键)。由此可见,在需要的键数比较多时,采用矩阵法来做键盘是合理的。

矩阵式结构的键盘显然比直接法要复杂一些,识别也要复杂一些,上图中,列线通过电阻接正电源,并将行线所接的单片机的I/O口作为输出端,而列线所接的I/O口则作为输入。这样,当按键没有按下时,所有的输出端都是高电平,代表无键按下。行线输出是低电平,一旦有键按下,则输入线就会被拉低,这样,通过读入输入线的状态就可得知是否有键按下了。

·蜂鸣器

通过加一个低电压,大电流,小信号的PNP型硅三极管Q8550来放大电流达到驱动蜂鸣器的作用,蜂鸣器的正极接到Q的集电极C上,蜂鸣器的负极接地,三极管的发射极E接电源VCC,基极B经过限流电阻R9后与单片机P1.3的引脚相连,当单片机P1.3引脚输出高电平时,三极管截止,没有电流通过线圈,蜂鸣器不发声;当单片机P1.3引脚输出低电平时,三极管导通,电流形成回路,蜂鸣器发声。

·LED1602液晶屏

1602液晶也叫1602字符型液晶它是一种专门用来显示字母、数字、符号等的点阵型液晶模块它有若干个5X7或者5X11等点阵字符位组成,每个点阵字符位都可以显示一个字符。每位之间有一个点距的间隔每行之间也有间隔起到了字符间距和行间距的作用,正因为如此所以他不能显示图形。引脚定义:

1脚:VSS为电源地;

2脚:VDD接5V电源正极;

LED1602引脚图

3脚:V0为对比度调整端,接正电源时对比度最弱,接地电源时最高;

4脚:RS为寄存器选择,高电平时数据寄存器、低电平时指令寄存器;

5脚:RW为读写信号线,高电平时进行读操作,低电平时进行写操作;

6脚:E(或EN)端为使能(enable)端;

7~14脚:D0~D7为8位双向数据端;

15~16脚:空脚或背灯电源;15脚背光正极,16脚背光负极。

二.实验过程

1.启动KEIL,使用自己做的含C51芯片的单片机电路板。2.在main.c中编写主程序代码

3.选用build target 生成目标,然后编译连接工程

4.打开STC-ISP-V4.86-NOT-SETUP-CHINESE,选择com口,将编译的文件下载到电路板上

5.按键操作,显示,观察。。

开始初始化While 1NN有键盘按下Y再次从新扫描延时一段时间真的有键盘按下吗Y键盘扫描处理根据不同的扫描值赋值于Key根据Key值做相应程序处理结束

实验流程图

四. 实验总结

随着电子技术的日益进步,微型计算机取得了突飞猛进的发展。作为微型计算机的一个重要分支,单片机以其体积小、功能齐全、价格低廉、可靠性高等特殊优点,在工业测控、智能仪表器、机电一体化产品、家电等领域取得了快速的发展。

通过几天的实习,深有体会,学习单片机只有对着电脑,反复敲打键盘,不断编写、修改、做记录,才能很好了解单片机、学好单片机。相信捉住这条思维,在以后学习中,能给予很大的帮助。几天下来,在我个人方面,学到的东西还是挺多的。

经过一个学期的单片机学习,使我们收获不少,在这个设计中,也学到了不少东西,从找设计开始,各种元件的选择,和同学一起分享画图,敲程序,学到了制作的过程,对数字电子钟也有了一定的认识。十分感谢老师和同学们一学期以来的帮助。这次实验,不仅学会了电子钟的制作,也对单片机的知道有了更加深入的了解,对自己帮助非常大,扩展了自己的视野。一.实验附录

附录一(效果图)

图一.菜单显示 图二.菜单显示

图三.菜单显示 图四.时间显示

图五.A/D转换显示 图四.温度显示

附录二(参考程序):

#include #include //#include #define uint unsigned int #define uchar unsigned char sbit bell=P3^2;sbit led=P3^4;uchar key,m,p=0,flag=0,keyboard=0;uchar hour=12,min=0,sec=0;uchar count_10ms=0;char num=0;uchar*Anum[]={“NO.1_Time...”,“NO.2_Tempture...”,“NO.3_AD...”,“NO.4_PWM...”,“NO.5_Else...”};void delay(uint z)

//延时程序 { uint x,y;

for(x=z;x>0;x--)

for(y=110;y>0;y--);} void wr_com(unsigned char com)

//写命令 { delay1ms(5);EN=0;

//使能端给一个高脉冲,因为初始化函数中已经将lcden置为0 RS=0;

//选择写命令模式

RW=0;

//P0=com;

//将要写的命令送到数据总线上

EN=1;

//将使能端置0以完成高脉冲

} void wr_dat(unsigned char dat)

//写数据 { delay1ms(5);EN=0;RS=1;RW=0;

P0=dat;EN=1;} void init()

//清屏

{wr_com(0x38);

//设置16*2,显示5*7点阵,8位数据接口

wr_com(0x0C);

//设置开显示,不显示光标

wr_com(0x06);

//写一个符号地址指针自动加一

wr_com(0x01);

//显示清0,数据指针清0} void MoveKey(uchar Num){ lcd_clr();

wirte_str(0,0,Anum[Num]);

wirte_str(1,0,Anum[Num+1]);

lcd_wcmd(0x0f);} void keypress(uchar key)

//显示

keypress

功能

{ if(key==12)

//下

{ MoveKey(num);

keyboard=num+1;

num--;if(num<0)num=5;delay(10);}

if(key==16)

//上

{

MoveKey(num);

keyboard=num+1;

num++;

if(num>5)num=0;delay(10);}

if(key==11)

//退出

{ lcd_clr();

wirte_str(0,0,“Xu Qifeng”);

wirte_str(1,0,“104827477”);}} void getKey(){ uchar temp,readRow;P2=0xFE;

temp=P2;

temp=temp&0xf0;

if(temp!=0xf0)

{ delay(10);

readRow=~temp>>4;switch(readRow){case 1:key=10;break;

//enter 进入

case 2:key=11;break;

//esc

退出

case 4:key=12;break;

//下

case 8:key=16;break;

//上

default:break;}

while(temp!=0xf0)

{temp=P2;

temp=temp&0xf0;} delay(10);

keypress(key);} P2=0xFD;

temp=P2;

temp=temp&0xf0;

if(temp!=0xf0)

{ delay(10);

readRow=~temp>>4;switch(readRow){case 1:{key=14;m++;if(m==10)m=0;};break;//右

case 2:key=3;break;case 4:key=6;break;

case 8:key=9;break;}

while(temp!=0xf0)

{temp=P2;

temp=temp&0xf0;}

delay(10);

keypress(key);} P2=0xFB;

temp=P2;

temp=temp&0xf0;

if(temp!=0xf0)

{ delay(10);

readRow=~temp>>4;switch(readRow){case 1:{key=13;m--;if(m==0)m=10;};break;//左

case 2:key=2;break;case 4:key=5;break;case 8:key=8;break;}

while(temp!=0xf0)

{temp=P2;

temp=temp&0xf0;}

delay(10);

keypress(key);} P2=0xF7;

temp=P2;

temp=temp&0xf0;

if(temp!=0xf0)

{delay(10);

readRow=~temp>>4;switch(readRow){case 1:key=0;break;case 2:key=1;break;case 4:key=4;break;case 8:key=7;break;}

while(temp!=0xf0)

{temp=P2;temp=temp&0xf0;} delay(10);keypress(key);}} voidtime1()interrupt3

//显示

Time

功能

{ TH1=0xdc;TL1=0x00;

count_10ms++;}

void time1_init(){ TMOD=0x10;TH1=0xdc;TL1=0x00;EA=1;ET1=1;TR1=1} uchar disp_buf[6]={0x00,0x00,0x00,0x00,0x00,0x00};void lcd_dat(uchar h,m,s)

//读取时间

{disp_buf[0]=h/10+0x30;disp_buf[1]=h%10+0x30;

disp_buf[2]=m/10+0x30;disp_buf[3]=m%10+0x30;

disp_buf[4]=s/10+0x30;disp_buf[5]=s%10+0x30;} void lcd_display()

//显示时间 { lcd_wcmd(0x44|0x80);lcd_wdat(disp_buf[0]);lcd_wdat(disp_buf[1]);

lcd_wdat(0x3a);lcd_wdat(disp_buf[2]);lcd_wdat(disp_buf[3]);

lcd_wdat(0x3a);lcd_wdat(disp_buf[4]);lcd_wdat(disp_buf[5]);} void Time()

{keyboard=0;

time1_init();

lcd_init();

wirte_str(0,0,“Time”);

while(1)

{ if(count_10ms>=100)

{ count_10ms=0;

sec++;} if(sec>=60)

{sec=0;min++;

if(min>=60)

{ min=0;hour++;

if(hour>=24)

{ hour=0;min=0;sec=0;} } } lcd_dat(hour,min,sec);

lcd_display();

getKey();

if(key==11)break;}}} voidTempture()

//显示

Temp

功能

{ void display()

{ unsigned long temp;

temp=Temp*100;

disdata[0]=temp/1000+0x30;//十位数

disdata[1]=temp%1000/100+0x30;// 个位数

disdata[2]=temp%100/10+0x30;//小数

disdata[3]=temp%10+0x30;

if(disdata[0]==0x30)

{ disdata[0]=0x20;//如果十位为 0,不显示

if(disdata[1]==0x30)

//如果十位为 0,个位为 0 也不显示

{ disdata[1]=0x20;} }

lcd_wcmd(0xc1);

lcd_wdat(disdata[0]);//显示十位

lcd_wdat(disdata[1]);//显示个位

lcd_wdat(0x2e);//显示小数点

lcd_wdat(disdata[2]);//显示小数

lcd_wdat(disdata[3]);} uchar disdata[5];float Temp;

void delayms(uint xms){ uint i,j;

for(i=xms;i>0;i--)

for(j=110;j>0;j--);}} voidAD_Init()

// 显示

A/D

功能

{ P1M0=0x0f;

//设置P1口低4位为开漏模式,AD采集

P1M1=0x0f;

P1ASF=0x0f;

//P1口模拟功能控制位,ADC_CONTR=0xe0;

//开启AD转换并选择最高转换速度

AUXR1=0x00;

//数据格式设置

高八位在ADC_RES 低二位在ADC_RESL

delayms(100);} int GetAD(uchar channel)//选择通道号

并获取数据 {uchar AD_finished=0;

int result;

ADC_CONTR|=channel;

//选择通道号

ADC_CONTR|=0x08;

//启动AD转换

while(AD_finished=0)

{ AD_finished=(ADC_CONTR&0x10);//查询ADC_FLAG是否置1} result=ADC_RES*4+ADC_RESL;ADC_CONTR&=0xef;//清除转换结束标志

return(result);} float Ad_Av(uchar channel)//对获取的数据进行处理 {float Val_Av=0;

uchar num;

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

{Val_Av+=GetAD(channel);}

Val_Av/=100.0;

Val_Av=Val_Av*5/1024;

return(Val_Av);} void AD()

{ keyboard=0;

AD_Init();

lcd_init();

lcd_wcmd(0x80);//显示字符

AD

lcd_wdat(0x41);

lcd_wdat(0x44);

while(1)

{delayms(500);

Temp=Ad_Av(0);

//通道0进行数据采集

display();getKey();if(key==11)break;}} sbitPwm=P1^0;

//显示

PWM

功能 uchar n=0,m=0;void delayms(uint xms);void Timer0_init();void PWM(){ keyboard=0;

time1_init();

lcd_init();

lcd_clr();

wirte_str(0,0,“PWM”);

while(1)

{ if(count_10ms>=10){ count_10ms=0;

if(n<=m)

Pwm=1;

else

Pwm=0;

n++;

if(n==10)n=0;}

getKey();

if(key==11)break;}} voidElse()

{lcd_clr();wirte_str(0,0,“That's all”);wirte_str(1,0,“Thank you”);delay(100);keyboard=0;} void main()

{ lcd_init();

wirte_str(0,0,“Xu Qifeng”);

wirte_str(1,0,“104827277”);

while(1)

{getKey();

if(key==10)

//enter

{switch(keyboard)

{ case 1:Time()break;

case 2:Tempture();break;

case 3:AD();break;

case 4:PWM();break;

case 5:Else();break;

default:break;}}}

//显示

Else 功能

//主函数

第二篇:单片机实训

单片机应用课程设计教学大纲

开课学院:机电工程学院 适用专业:电子科学与技术 课程编号:2009404 课程英文名称:Single-chip Microcomputer Application System Design 实验课程总学时:36 实验课程总学分:1

一、课程性质和目的:

单片机原理及应用是一门技术性、应用性很强的学科,实验教学是它的一个极为重要的教学环节,除实验教学环节,单片机课程设计也是重要的实践教学环节,通过这一环节可使学生不但能够将课堂上学到的理论知识与实践应用结合起来,而且能够对电子电路、电子元器件、印制电路板等方面的知识进一步加深认识,同时在软件编程、排错调试、相关仪器设备的使用技能等方面得到较全面的锻炼和提高,为今后能独立进行单片机应用系统的开发设计工作打良好的基础。

二、本课程与其它课程的联系与分工

先修课程:电路分析、模拟电路、数字电路、微机原理、单片机、电子线路常用软件 后续课程:传感器技术、数字信号处理等

三、单片机课程设计的基本要求

1、原则上每生一项设计,不能重复设计。

2、项目大的可多人从事,但每人必须承担足够的设计任务。

3、项目结题需要提供电路图、程序清单、设计说明书等资料,还要提供实物作品,运行照片等。

4、参加科技节展出及评奖的作品,要给与适量的加分。优秀的设计人员优先推荐参加省机电大赛或电子大赛。

5、整个课程设计过程中,严格执行考核制度,对于无故旷课、扰乱课堂秩序、玩游戏、玩手机、不从事设计和制作的行为给予严肃处理。

6、对于课堂表现好的同学,进行加分奖励。

四、课程设计的实施过程

1、基本开发工具的使用

电路设计及仿真运行工具Proteus软件、编程及编译环境Keil uVision软件、程序烧写器的使用及驱动程序的安装。

2、单片机应用系统的搭建方法

电源的设计、振荡电路参数的选择、复位电路的设计、内置及外置程序程序存储器的选择,各端口的驱动能力及接口方法。

3、学生实践能力的摸底测试

通过简单的单片机应用设计,如:流水灯、数码显示、键盘控制等,进行软环境编程测试及硬环境测试。

软环境测试:利用Proteus、Keil C51 进行仿真测试。硬环境测试:搭建具体电路,利用编程器烧写程序,进行调试。

4、选择设计题目

学生可根据自身能力和爱好,选择或自拟设计题目,并进行系统的分析和调研、可行性分析、性价比分析,形成设计任务书。指导教师处备案。

5、确定实施方案

经过方案论证,找出最优化的实施方案。以此评价开发思路。

6、加强指导

指导教师对学生的共性问题进行集中指导,对零散问题进行分别指导。

7、硬件电路设计

根据实施方案,利用Proteus软件设计原理图。原理图的质量作为考核依据。

8、软件设计

根据系统工作过程画出各部分流程图,根据流程图编写程序并进行整合,程序和流程图的质量作为考核依据。

9、仿真调试

编译后的程序加载到原理图上进行仿真,调试,调试成功后的仿真图片作为考核的依据。

10、电路搭建

根据电路原理图设计,进行布线图设计。购买电子元件,焊接线路板,线路板的焊接质量作为考核依据。

11、系统调试

系统调试成功之后,考察功能实现情况,作为考核依据。

12、撰写课程设计论文

要求从选题、论证、设计、仿真、调试、形成作品到感想写入论文内,要符合正规论文格式。

五、考核方案

1、考核分四部分进行:实物作品、课程设计论文、平时成绩、课堂表现

2、实物作品从实现功能和焊接质量进行评分,占总成绩的40%。

3、课程设计论文从论文的规格、要求进行评分,占总成绩的30%。

4、平时成绩就是平时阶段性的检查成绩,占总成绩的20%。

5、课堂表现指出勤、课堂纪律,占总成绩的10%。

6、科技节加分:一等奖5分、二等奖4分、三等奖3分、参展2分。

六、单片机课程设计题目(备选)

1、基于单片机的智能电压表设计

2、基于单片机的LED流水灯系统设计

3、基于单片机的智能船模设计

4、基于单片机的电梯控制模型设计

5、基于单片机的水位控制系统设计

6、基于单片机的多路数据采集系统设计

7、基于单片机的抢答器设计

8、基于单片机的数字温度计设计

9、基于单片机的智能小车设计

10、基于单片机的遥控器设计

11、基于单片机的串行通信发射机设计

12、基于单片机的简易智能电动车设计

13、基于单片机的太阳能热水器控制器设计

14、MCS-51单片机温度控制系统的设计

15、直流电动机的转速检测与脉宽调速

16、基于单片机的智能机器人的设计

17、基于单片机的简易无线竞赛系统的设计

18、基于单片机的车辆闯红灯监控系统设计

19、基于单片机控制的井下瓦斯监控系统设计 20、基于单片机的煤气泄漏检测报警装置设计

21、基于单片机的井式渗碳炉控制系统设计

22、基于单片机的蔬菜大棚温湿度智能控制系统设计

23、基于单片机的电子钟设计

24、基于单片机的液位控制器设计(8051)

25、基于单片机的点阵电子显示屏设计

26、基于单片机的智能寻迹避障小车设计

27、基于单片机的热敏电阻测温系统设计

28、基于单片机的智能型电话远程遥控器设计

29、基于单片机的数控直流电源设计 30、基于单片机的电子万年历设计

31、基于单片机的红外防盗报警器设计

32、基于单片机的花卉温室控温系统设计

33、基于单片机的焊机温度控制系统设计

34、基于单片机的路灯控制器设计

35、基于单片机的车床刀架控制系统设计

36、基于单片机的电机智能综合保护装置设计

37、基于单片机的太阳能热水器控制器设计

38、基于单片机的智能型矿用磁力启动器设计

39、基于单片机的无氧退火炉温控系统设计

40、基于单片机的电厂锅炉过热蒸汽温度监测系统设计

41、基于单片机的摩托车里程表研制

42、基于单片机的自动车库门的设计

43、基于单片机的自动滴灌控制系统的设计

44、基于单片机的预付费电度表设计

45、基于单片机的智能电子秤设计

46、基于单片机的油井巡视定位系统设计

47、基于单片机的照明控制系统

48、基于单片机的锅炉液位控制系统设计

49、基于单片机的洗衣机设计

50、基于单片机的锅炉汽包水位控制系统设计

51、基于单片机的多功能秒表设计

52、基于单片机的无线监护系统的设计

53、基于串行通信的红外线智能家电控制系统

54、基于单片机的智能遥控器设计

56、基于单片机的公用电话网远程控制器的设计

57、基于单片机的多功能节能微波炉控制器设计

58、基于单片机的多功能数显表设计(气压、冲击频率)

59、基于单片机的仓库温湿度测量仪设计 60、基于单片机的自动加料系统 62、基于单片机的远程温度显示系统

63、基于89C51单片机的传感器水位测量系统 64、基于51单片机的广告灯设计 65、基于单片机的水箱水位控制系统设计 66、动态电子秤设计

67、基于单片机的非接触式热量测量系统设计 68、基于单片机的非接触式位移传感器设计 69、基于单片机的非接触式温度测试仪设计 70、基于单片机的工业电加热炉的微机控制系统设计 71、基于单片机的户用超声波热量表设计 72、基于单片机的火灾自动探测报警系统设计 73、基于单片机的住宅智能化险情报警系统设计 74、基于单片机的数字温度测量及显示系统设计 75、火灾自动报警系统设计

76、基于GSM短信模块的家庭防盗报警系统 77、基于GSM模块的车载防盗系统设计 78、基于单片机的16×16点阵(滚动显示)79、基于单片机的仓库温湿度的监测系统 80、基于单片机的点阵电子显示屏设计 81、基于单片机的电子密码锁设计 82、基于单片机的温度远程显示实现 83、基于单片机的直流电机控制系统 84、基于单片机的自动加料机控制系统 85、数控直流稳压电源设计

86、智能型充电器的电源和显示的设计 87、基于CPLD的出租车计价器设计 88、基于IC卡的楼宇门禁系统的设计 89、基于SPCE061A的语音遥控小车设计 90、基于单片机的短信收发系统设计

91、智能机器人的研究与设计(自动循轨和语音控制的实现)92、PC机与单片机的串口通信 93、基于单片机的红外线防盗报警系统 94、基于单片机的转速测量系统设计 95、基于单片机的电梯控制模型设计与仿真

学习参考资料:

1、谢维成 杨加国:《单片机原理与应用及C51程序设计》,清华大学出版社,2009年7月第2版

2、彭伟主编:《单片机C语言程序设计实训100例——基于8051+Proteus仿真》,电子工业出版社,2009年6月第1版

3、周兴华主编:《手把手教你学单片机C程序设计》,北京航空航天大学出版社,2007年10月 第1版

学习参考网站:

http://xxgcxy.qdbhu.edu.cn/jsjdlzzsx/index.html http://www.xiexiebang.com

执笔人:陈振军

编写日期:2013年3月5日 审核人:

第三篇:单片机实训题目

电气1001班综合实训任务(单片机控制系统运行与维护)

第1题

模拟交通灯

任务要求:

1、主干道绿灯40秒,支干道绿灯20秒,黄灯都是5秒;

2、要求用定时器实现定时时间;

3、要求显示器同步显示主干道时间的倒计时;

4、如果有按键按下,表示有紧急车辆通过(救火车等),2路都亮红灯,蜂鸣器响,如果另外一个按键按下则恢复正常。

第2题

基于单片机的电子秒表

本设计以MCS-51系列单片机为核心,采用常用电子器件设计,一个电源开关,两个按键,三位数码管显示,打开电源开关后显示8,每秒循环左移一位,即□□8—>□8□—>8□□—>□□8—>…,按A键开始计时,实时显示所经历的时间,按B键停止计时并显示从开始到当前时刻的时间,要求精确到0.1秒,量程为0~99.9秒。

要求按键输入采用中断方式,按键A接INT0,按键B接INT1。

第3题

采用单片机和DAC设计波形发生器

任务要求:1 利用单片机和DAC0832产生锯齿波、三角波、正弦波等波形 完成DAC与运放的连接,输出可供示波器显示。3 用按键改变波型的种类,波形的幅值与频率。

第4题

基于单片机的精确时钟

本设计以单片机为核心,采用常用电子器件设计,一个电源开关,1个按键负责设置时间和开始走时,1个按键负责循环递增时间,16位数码管显示,可实时显示年,月,日,时,分,秒,百分秒,要求精确到0.01秒。具有整点播放音乐,并根据时针输出相应次数的嘟嘟声,最后一声较尖锐,为准确整点时间。

要求按键输入采用中断方式,按键A接INT0,按键B接INT1.第5题

智能温控器

本设计以单片机为核心,采用常用电子器件设计,一个电源开关,两个控制温度设定按键(增大 / 减小),四位数码管分别显示设定温度和实际温度,量程为0~99度,打开电源开关后设定温度值初始化为26度。按键输入采用中断方式,两个按键分别接INT0和INT1.采用铂电阻(Pt100)温度传感器进行温度测量,模数转换采用ADC0809.单片机根据设定温度S和实测温度P控制继电器R的动作,死区设为2度:

当P<=S-1时,控制R接通电加热回路; 当P>S+1时,控制R断开电加热回路; 当S-1

第6题

电子密码锁

任务要求:

1、密码锁由4X4键盘和4位数码管组成。

2、当输入密码时,只显示“8.”,当密码位数输入完毕按下确认键时,对输入的密码与设定的密码进行比较,若密码正确,则门开,此处用LED发光二极管亮一秒钟做为提示。若密码不正确,则可以从新输入密码。如连续三次输入错误,则禁止输入。

第7题

抢答器

任务要求:

1、有一主持人和8个参赛队。

2、当主持人按下抢答按键,参赛队在10秒钟内可以抢答。如超过10秒则不能抢答。如抢答成功,则显示抢答的队号。

3、如抢答成功必需在60秒内回答完成。如超过时间则抢答无效,且显示无效指示。如在60秒内回答完成(抢答队再次按下抢答按键表示回答完成)则抢答正确成功,且显示有效。

4、当主持人按下复位按键时,系统回到初始状态。

第8题

篮球比赛计分器

任务要求:

1、能显示2个队的当前比分;

2、根据各自得分情况进行加1、2、3分;

3、显示当前进攻队的进攻时间倒计;

4、计时归零时候鸣响。

第9题

班级投票显示器

任务要求:

1、设计一个投票系统,具有计票显示功能;

2、可实现6人同时进行投票,累计票数在显示器上显示;

3、主持人使用一个按键开关控制开始投票,终止投票和清零;

4、投票开始后每人能且仅能投一次票,多投无效;

第10题

基于单片机的直流电机调速系统

本设计以系列单片机为核心,采用常用电子器件设计,一个启动开关,1个停止开关,1个正向开关,1个反向开关,8位拨码开关负责设置占空比,进行脉冲宽度调制,可实现电动机的正转,反转,刹车,滑行,4种状态,并可根据占空比调节转速。

第11题

基于单片机的锅炉报警系统

本设计以单片机为核心,采用常用电子器件设计,采用蜂鸣器输出声音报警,LED输出红灯报警,并可根据指示灯确定哪个参量越限,6位数码管显示越限参量值,可对锅炉的水位上下限,炉膛温度上下限,蒸汽压力上下限,6个极限值进行报警。

第12题

步进电机控制

任务要求:1 完成单片机与功率驱动电路及小功率步进电机的连接 控制步进电机的转动方向、转动速度及转过指定的角度。3 通过按键改变电机的转向、转速等参数。

第四篇:单片机实训操作规程

单片机实训室安全规章制度

1、学生(学员)进入教室应服从实习指导教师的安排,按指定位置就坐上课。

2、进入教室应换鞋或带好鞋套,并保持室内安静及卫生。

3、操作带电设备时应注意安全,穿好绝缘鞋。

4、不得将与教学无关的东西带入教室。不做与教学无关的事。教室内禁止吃东西,不得将水杯放在操作台及设备上。

5、严禁私自将外来软件带入教室上机运行,一经发现除没收软件外,视情节轻重给予一定的处罚。

6、不得随意开关电源及重启设备,发现异常时应及时与带班老师联系。若因不遵守操作规程而造成设备损坏时,除适当赔偿外,还将视情节轻重给予教育或处分。

7、下课前每位同学(学员)应正常关闭设备,并做好本机位卫生工作。值日生应认真做好教室的卫生工作,离开时应关闭总电源,关好门窗。

8、实验结束后,由辅导教师检查仪器设备有无损坏等情况,认真如实填写使用记录并签字。

9、外来培训人员,需经实验室管理人员批准,并事先安排好时间,学习以

上规章制度后方可进入,并遵守以上管理制度,听从本室工作人指导。

单片机实训室操作规程

1、实训人员要树立“安全第一”的思想,严格遵守安全操作规程。

2、实验人员在实验前,要做好实验预习、并写好预习报告,方可进行实验,接线前先熟悉实验台上各单元、元器件的功能及其接线位置,特别要熟知各单片机引线及接线位置。

3、实验前认真检查电源、线路、设备是否正常,防止事故的发生。

4、实验时,严格按照的实验步骤逐一进行操作,确认一切正常后,由老师检查正确后方可进行通电实验。实验始终,板上要保持整洁,不可随意放置杂物,特别是导电的工具和导线等,以免发生短路等故障。

5、实验时使用到的由外部交流电源供电的仪器(如检测仪器、示波器等),其外壳应有可靠接地。实验中出现异常现象,应立即断电,排除故障后方可继续实验。

6、本实验装置上的直流电源及各信号源原则上仅供实验使用。一般不外接负载或电路。如作它用,要注意使用的负载不能超出本电源或信号源允许的范围。实验完毕后,及时关闭实验桌和仪器设备的电源,将仪器设备和元气件整理好整齐的摆放在实验桌上,并填好学生实验登记表。.

第五篇:单片机实训教案

苏州经贸职业技术学院

实训项目1 报警器控制

一、项目要求

调研实际报警器的使用,设计一个应用开关控制报警器发声报警。

二、项目实践技能目标

1.通过项目的训练,锻炼理论联系实际的能力,熟练掌握单片机控制系统,掌握单片机的定时器的技术等知识。

2.掌握C语言或汇编语言。掌握软件延时或定时器延时程序的设计。

3.根据设计要求,在PROTUES开发平台上,完成硬件系统的电路组装,完成系统软件设计要求,并提交程序设计框图和程序清单;完成系统软硬件的综合调试,实现设计要求。

4.通过该项目的训练,提高学生的实际动手操作能力,养成学生的工程道德观念,建立工程敬业精神和团队合作精神。

三、参考电路

苏州经贸职业技术学院

实训项目2 简易音乐播放器设计

一、项目要求

1、用一个按键实现选定播放的音乐段,在播放的过程中可用此按键暂停;

2、用另一个按键选择待播放的几段音乐中的一段;

3、选择的曲目可以在数码管上显示。

二、项目实践技能目标

1、通过该项目的训练巩固单片机定时器技术、中断技术的应用;

2、学会C语言中二维数组的使用,学习音乐索引和节拍的设计,学习通过每个高脉冲或低脉冲的延时形成某种频率的声音输出方法,学习控制每个不同频率声音输出的时间长短形成节拍的方法,学习高低音的方法等。

3、根据设计要求,在PROTUES开发平台上,完成硬件系统的电路组装,完成系统软件设计要求,并提交程序设计框图和程序清单;完成系统软硬件的综合调试,实现设计要求。

4、通过该项目的训练,提高学生的实际动手操作能力,养成学生的工程道德观念,建立工程敬业精神和团队合作精神。

三、参考电路

四、思考题

苏州经贸职业技术学院

设计一个音乐门铃。

实训项目3 单片机之间双向通信

一、项目要求

两片单片机工作于串口模式1,整个系统实现双机双向通信;

工作任务:

1.甲机的K1按键可通过串口分别控制乙机的LED1点亮,LED2点亮,LED1和LED2全亮或全灭.2.乙机按键可向甲机发送数字,甲机接收上午数字显示在其P0端口的数码管上。

应用软件完成硬件电路的设计并实现电气意义;完成软件设计;并实现仿真调试或实物调试。

二、项目实践技能目标

1.通过实际项目,来理解和掌握串行通信基本知识,串行口及应用技术等知识。2.根据设计要求,在PROTUES开发平台上,完成硬件系统的电路组装,完成系统软件设计要求,并提交程序设计框图和程序清单;完成系统软硬件的综合调试,实现设计要求。

3.通过该项目的训练,提高学生的实际动手操作能力,养成学生的工程道德观念,建立工程敬业精神和团队合作精神。

4.核心技能教学目标:培养学生的对于通信的概念理解和掌握,在教学中注意引导学生自己提出问题,分析问题,培养他们独立解决问题的能力,培养学生融合课程间知识的相关联系能力,以及外语能力和再学习能力,并培养学生质疑精神。

5.考核标准:单片机串行通信基本知识;串行口及应用技术的基本知识30%;硬件连接及PROTUES使用10%;软件设计20%;系统调试20%;回答问题10%;创新能力(在原有基础上有能力拓展)10%。

三、参考电路

苏州经贸职业技术学院

四、思考题

1.如何实现双工通信?试编写通讯程序。

2.如何利用中断方式实现串行通讯?试编写通讯程序。

实训项目4

8*8LED点阵屏显示数据

一、项目要求

8*8LED点阵屏循环显示数字0~9; 刷新过程由定时器中断完成。

二、项目实践技能目标

1.通过项目的训练,掌握点阵屏的结构以及与单片机的接口技术;掌握点阵屏形成的字符编码。

2.根据设计要求,在PROTUES开发平台上,完成硬件系统的电路组装,完成系统软件设计要求,并提交程序设计框图和程序清单;完成系统软硬件的综合调试,实现设计要求。

苏州经贸职业技术学院

3.通过该项目的训练,提高学生的实际动手操作能力,养成学生的工程道德观念,建立工程敬业精神和团队合作精神。

三、基础知识点

LED显示屏是将发光二极管按行按列布置的,驱动时也就按行按列驱动。在扫描驱动方式下可以按行扫描按列控制,当然也可以按列扫描按行控制。LED显示屏现多采用多块8X8点阵显示单元拼接而成。8X8点阵LED结构如图其等效电路如图所示,8X8点阵LED结构图

从图中可以看出,8X8点阵共需要64个发光二极管组成,且每个发光二极管是放置在行线和列线的交叉点上。要实现显示图形或字体,只需考虑其显示方式,通过编程控制各显示点对应LED阳极和阴极端的电平,就可以有效的控制各显示点的亮灭。当采用按行扫描按列控制的驱动方式时,LED显示屏8行的同名列共用一套列驱动器。行驱动器一行的行线连接到电源的一端,列驱动器一列的列线连接到电源的另一端。应用时还应在各条行线或列线上接上限流电阻。扫描中控制电路将行线的1到 8轮流接通高电位,使连接到各该行的全部LED器件接通正电源,但具体那一个LED导通,还要看它的负电源是否接通,这就是列控制的任务了。当对应的某一列置0电平,则相应的二极管就亮;反之则不亮。例如:如果想使屏幕左上角LED点亮,左下角LED熄灭的话,在扫描到第一行时,第 8X8点阵LED等效电路图

一列的电位就应该为低,而扫描到第八行时第一列的电位就应该为高。这样行线上一行一行的轮流导通,列线上进行通断控制,实现了行扫描列控制的驱动方式。

0x00,0x3C,0x66,0x42,0x42,0x66,0x3C,0x00 显示0 0x00,0x08,0x38,0x08,0x08,0x88,0x3E,0x00 显示1 0x00,0x3C,0x42,0x04,0x08,0x32,0x7E,0x00 显示2 0x00,0x3C,0x42,0x1C,0x02,0x42,0x3C,0x00 显示3 0x00,0x0C,0x14,0x24,0x44,0x3C,0x0C,0x00 显示4 0x00,0x7E,0x40,0x7C,0x02,0x42,0x3C,0x00 显示5 0x00,0x3C,0x40,0x7C,0x42,0x42,0x3C,0x00 显示6 0x00,0x7E,0x44,0x08,0x10,0x10,0x10,0x00 显示7 0x00,0x3C,0x42,0x24,0x5C,0x42,0x3C,0x00 显示8 苏州经贸职业技术学院

0x00,0x38,0x46,0x42,0x3E,0x06,0x3C,0x00 显示9

四、参考电路

五、思考题

1.完整显示一个汉字需要几个8*8LED点阵屏?汉字的编码怎样形成?试编写汉字显示程序。

实训项目5 ADC0809 实现输出PWM波形

一、项目要求

调节ADC0809(ADC0808)芯片的0通道输入的可变电阻器,从而实现控制输出脉冲的占空比变化(0%~100%),从而实现脉冲宽度调制(PWM)。

二、项目实践技能目标

1.通过项目的训练,理解数据采集技术;

2.学会A/D转换器的结构和原理,及与单片机的接口技术,掌握软件设计技术。3.巩固单片机基础知识点。

苏州经贸职业技术学院

4.根据设计要求,在PROTUES开发平台上,完成硬件系统的电路组装,完成系统软件设计要求,并提交程序设计框图和程序清单;完成系统软硬件的综合调试,实现设计要求。

三、参考电路

4.思考题

对于代码中两个if语句,如果去掉这几句语句,观察一下示波器的输出波形,读者思考两个if语句有什么作用?如果不用中断子程序提供时钟信号,如何实现该功能?

实训项目6

数字波形信号的合成技术

一、项目要求

利用数字波形信号的合成技术来生成正弦波。

二、程序设计思路和实现过程

数字波形合成技术是一个斜升波的合成过程,它根据已设定的输出波形参数,先由CPU算出输出波形数据并存入ROM中,再将输出波形在采样点的ROM中的数字值依次通过D/A转换器转换为模拟量输出。要采用数字波形合成技术产生工频正弦信号,可预 苏州经贸职业技术学院

先将一个周期的正弦信号分成K个点,经计算求得各点的幅值并数字量化后存于RAM(或程序的数组)中。若需输出波形时,按照一定的频率从RAM中取出每点的量化值送D/A,D/A就可恢复原来一个周期的完整正弦波信号,经过连续的循环即可得到连续的正弦信号输出。

工频信号的输出频率可由式fout=fc/K确定,其中fc为采样(取点)频率,K为一周期所分割的点数。本设计中为了使相位设置方便,把正弦波每周期分成了180个点,所以K=180,那么在K不变的情况下,可以通过改变采样频率fc,就可改变输出频率值。程序设计过程类似于锯齿波的产生设计过程,关键是每点的D/A值的确定。

三、项目实践技能目标

1.通过项目的训练,理解数据采集技术;

2.学会D/A转换器的结构和原理,及与单片机的接口技术,掌握软件设计技术。3.巩固单片机基础知识点。

4.根据设计要求,在PROTUES开发平台上,完成硬件系统的电路组装,完成系统软件设计要求,并提交程序设计框图和程序清单;完成系统软硬件的综合调试,实现设计要求。

三、参考电路

RP110k1U119XTAL1P0.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/RD*********617S1S2S1123D34D25D16D07VREF8910D0D1D2D3D4D5D6D72019***3121123456789R4RV11k100%+12ABVREFCD18XTAL29RSTU210kS2D4D5D6D7238R51k293031PSENALEEA12345678P1.0/T2P1.1/T2EXP1.2P1.3P1.4P1.5P1.6P1.7AT89C52CSVCCWR1ILE(BY1/BY2)GNDWR2DI3XFERDI2DI4DI1DI5DI0DI6VREFDI7RFBIOUT2GNDIOUT1DAC0832R2-1215kR315k4U3:A1TL0824R17.5k658U3:B7TL082+12 图7-1 数字波形信号的合成技术仿真电路图

苏州经贸职业技术学院

图7-2 输出的三角波和正弦波信号

四、思考题

(1)对于代码中提供的正弦信号sine_tab[256] 数组是如何确定的?如果要频率提高一倍,如何重新确定数组?

(2)修改程序,使之能输出三角波。

(3)程序对应的仿真电路图如图7-1所示;相应的运行结果如图7-2所示。

实训项目7 利用LCD1602设计的可调式电子钟

一、项目要求

利用单片机的定时器控制时钟运行,运行过程中的误差,通过K1~K4键进行调节; K1键用来选择调节时/分,K2键与K3键用于增减当前的小时或分钟,调整完成后按下K4键确定,电子钟继续运行;

利用LCD1602显示电子日历与时钟。

二、项目实践技能目标

1.通过项目的训练,理解LCD1602芯片的结构和原理,及与单片机的接口技术,掌握 苏州经贸职业技术学院

LCD忙检测、初始化、设置位置、写命令、写数据函数等的软件设计。2.掌握利用单片机的定时器实现时钟功能。

3.根据设计要求,在PROTUES开发平台上,完成硬件系统的电路组装,完成系统软件设计要求,并提交程序设计框图和程序清单;完成系统软硬件的综合调试,实现设计要求。

4.通过该项目的训练,提高学生的实际动手操作能力,养成学生的工程道德观念,建立工程敬业精神和团队合作精神。

三、参考电路

五、思考题

1.利用时钟芯片DS1302实现可调式电子表,完成软硬件的设计。

实训项目8

16*16点阵屏设计

一、项目要求

利用单片机控制实现16*16点阵屏的汉字滚动显示

二、项目实践技能目标

1、巩固8*8点阵屏的知识点,学习实现一个汉字需要4片8*8点阵屏的硬件知识点,以及实现汉字点阵的数组知识。

2、掌握单片机扩展原理,加强芯片的认知能力、以及使用能力。

苏州经贸职业技术学院

3、掌握软件设计的技巧和方法。

4、根据设计要求,在PROTUES开发平台上,完成硬件系统的电路组装,完成系统软件设计要求,并提交程序设计框图和程序清单;完成系统软硬件的综合调试,实现设计要求。

5、通过该项目的训练,提高学生的实际动手操作能力,养成学生的工程道德观念,建立工程敬业精神和团队合作精神。

三、参考电路

苏州经贸职业技术学院

四、思考题

实现多个汉字滚动显示,怎样完成?

实训项目9

计算器的设计

一、项目要求

利用单片机控制系统实现单行液晶显示的计算器。

二、项目实践技能目标

1、巩固单片机的硬件系统知识,熟练掌握单片机的指令系统以及软件设计方法。

2、练习并行扩展存储单元的原理

3、根据设计要求,在PROTUES开发平台上,完成硬件系统的电路组装,完成系统软件设计要求,并提交程序设计框图和程序清单;完成系统软硬件的综合调试,实现设计要求。

4、通过该项目的训练,提高学生的实际动手操作能力,养成学生的工程道德观念,建立工程敬业精神和团队合作精神。

苏州经贸职业技术学院

三、参考电路

四、思考题

1、重新修改代码,使计算器实现保留两位小数精度的数值计算

2、设计一部电子秤

下载C51单片机实训论文word格式文档
下载C51单片机实训论文.doc
将本文档下载到自己电脑,方便修改和收藏,请勿使用迅雷等下载。
点此处下载文档

文档为doc格式


声明:本文内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:645879355@qq.com 进行举报,并提供相关证据,工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。

相关范文推荐

    单片机实训心得

    单片机课程设计实训体会为期一周的单片机实训让我们受益匪浅.本来还以为编程会很简单的,等到实际操作起来才知道它的复杂性,没有想像中的那么得心应手,理解流程是有思维的前......

    单片机实训心得体会

    通过今次单片机实训,使我对单片机的认识有了更深刻的理解。系统以51单片机为核心部件,利用汇编软件编程,通过键盘控制和数码管显示实现了基本时钟显示功能、时间调节功能,能实现......

    单片机实训报告范文

    四川电子机械职业技术学院 单片机原理及应用 实 训报告1 班级:应电14.2班 姓名:刘华利 学号:140302058 指导教师:向兵 四川电子机械职业技术学院 摘要: 《单片机应用系统设计项......

    单片机实训总结

    一、任务与目的  本课程的实训是使我们综合应用所学习的理论知识,使用STAR-MT51实验板完成单片机控制下的实时温度测量及显示的软件编程。 本课程实训涉及的知识包括:单片机......

    单片机实训报告

    单片机原理及应用 实训报告 班级: 学号: 姓名: 指导教师: 实训总成绩: 一、 节日彩灯设计 题目:8位逻辑电平模块上的LED小灯从左向右呈现“鞭甩”的实验现象,状态间隔为0.25秒;按......

    单片机实训(精选5篇)

    #include //用AT89C51时就用这个头文件 //#include //用华邦W78E58B时必须用这个头文件 #include /*Intrins.h文件包含只是编译器产生嵌入原有代码的程序的原型*///注意那......

    单片机实训报告

    目录 一 方案设计说明: ............................................................................................ 2 二 硬件设计说明: ..................................

    单片机实训报告

    沧州职业技术学院单片机实训报告 原理图 沧州职业技术学院单片机实训报告 双位数码管显示控制程序及说明 START: MOV R0,#0 ;清零 MOV DPTR,#TABLE ;指定查表起始地址 LO......