当前位置:文档之家› 单片机C语言程序设计实训100例--基于8051+PROTEUS仿真1

单片机C语言程序设计实训100例--基于8051+PROTEUS仿真1

单片机C语言程序设计实训100例--基于8051+PROTEUS仿真1
单片机C语言程序设计实训100例--基于8051+PROTEUS仿真1

《单片机C语言程序设计实训100例—基于8051+Proteus仿真》案例第01 篇基础程序设计

01 闪烁的LED

LED 名称:闪烁的/*

按设定的时间间隔闪烁说明:LED

*/

#include

#define uchar unsigned char

#define uint unsigned int

sbit LED=P1^0;

延时//void DelayMS(uint x)

{

uchar i;

while(x--)

{

for(i=0;i<120;i++);

}

主程序//void main()

{

while(1)

{

LED=~LED;

DelayMS(150);

}

}

从左到右的流水灯02

名称:从左到右的流水灯/*

LED8个口的说明:接在P0产生走从左到右循环依次点亮,马灯效果*/ #include

#include

#define uchar unsigned char

#define uint unsigned int

延时//

void DelayMS(uint x)

{

uchar i;

while(x--)

{

for(i=0;i<120;i++);

}

}

//主程序

void main()

{

while(1)

{

P0=_crol_(P0,1); //P0的值向左循环移动

DelayMS(150);

}

}

03 8只LED左右来回点亮

/* 名称:8只LED左右来回点亮

说明:程序利用循环移位函数_crol_和_cror_形成来回滚动的效果*/

#include

#include

#define uchar unsigned char

#define uint unsigned int

//延时

void DelayMS(uint x)

{

uchar i;

while(x--)

{

for(i=0;i<120;i++);

}

}

//主程序

void main()

{

P2=0x01;

while(1)

{

for(i=0;i<7;i++)

{

P2=_crol_(P2,1); //P2的值向左循环移动

DelayMS(150);

}

for(i=0;i<7;i++)

{

P2=_cror_(P2,1); //P2的值向右循环移动

DelayMS(150);

}

}

}

04 花样流水灯

/* 名称:花样流水灯

说明:16只LED分两组按预设的多种花样变换显示*/

#include

#define uchar unsigned char

#define uint unsigned int

uchar code Pattern_P0[]=

{

0xfc,0xf9,0xf3,0xe7,0xcf,0x9f,0x3f,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,

0xe7,0xdb,0xbd,0x7e,0xbd,0xdb,0xe7,0xff,0xe7,0xc3,0x81,0x00,0x81,0xc3,0xe7,0xff, 0xaa,0x55,0x18,0xff,0xf0,0x0f,0x00,0xff,0xf8,0xf1,0xe3,0xc7,0x8f,0x1f,0x3f,0x7f,

0x7f,0x3f,0x1f,0x8f,0xc7,0xe3,0xf1,0xf8,0xff,0x00,0x00,0xff,0xff,0x0f,0xf0,0xff,

0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,

0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe,

0xfe,0xfc,0xf8,0xf0,0xe0,0xc0,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0xc0,0xe0,0xf0,0xf8,0xfc,0xfe, 0x00,0xff,0x00,0xff,0x00,0xff,0x00,0xff

};

uchar code Pattern_P2[]=

{

0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xfc,0xf9,0xf3,0xe7,0xcf,0x9f,0x3f,0xff,

0xe7,0xdb,0xbd,0x7e,0xbd,0xdb,0xe7,0xff,0xe7,0xc3,0x81,0x00,0x81,0xc3,0xe7,0xff, 0xaa,0x55,0x18,0xff,0xf0,0x0f,0x00,0xff,0xf8,0xf1,0xe3,0xc7,0x8f,0x1f,0x3f,0x7f,

0x7f,0x3f,0x1f,0x8f,0xc7,0xe3,0xf1,0xf8,0xff,0x00,0x00,0xff,0xff,0x0f,0xf0,0xff,

0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f,

0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,

0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xfc,0xf8,0xf0,0xe0,0xc0,0x80,0x00,

0x00,0x80,0xc0,0xe0,0xf0,0xf8,0xfc,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,

0x00,0xff,0x00,0xff,0x00,0xff,0x00,0xff

};

延时//

void DelayMS(uint x)

{

uchar i;

while(x--)

{

for(i=0;i<120;i++);

}

}

//主程序

void main()

{

uchar i;

while(1)

{ //从数组中读取数据送至P0和P2口显示

for(i=0;i<136;i++)

{

P0=Pattern_P0[i];

P2=Pattern_P2[i];

DelayMS(100);

}

}

}

05 LED模拟交通灯

/* 名称:LED模拟交通灯

说明:东西向绿灯亮若干秒,黄灯闪烁5次后红灯亮,红灯亮后,南北向由红灯变为绿灯,若干秒后南北向黄灯闪烁5此后变红灯,东西向变绿灯,如此重复。

*/

#include

#define uchar unsigned char

#define uint unsigned int

sbit RED_A=P0^0; //东西向灯

sbit YELLOW_A=P0^1;

sbit GREEN_A=P0^2;

sbit RED_B=P0^3; //南北向灯

sbit YELLOW_B=P0^4;

sbit GREEN_B=P0^5;

uchar Flash_Count=0,Operation_Type=1; //闪烁次数,操作类型变量

//延时

void DelayMS(uint x)

{

uchar i;

while(x--) for(i=0;i<120;i++);

}

//交通灯切换

void Traffic_Light()

{

switch(Operation_Type)

{

case 1: //东西向绿灯与南北向红灯亮

RED_A=1;YELLOW_A=1;GREEN_A=0;

RED_B=0;YELLOW_B=1;GREEN_B=1;

DelayMS(2000);

Operation_Type=2;

break;

case 2: //东西向黄灯闪烁,绿灯关闭

DelayMS(300);

YELLOW_A=~YELLOW_A;GREEN_A=1;

if(++Flash_Count!=10) return; //闪烁5次

Flash_Count=0;

Operation_Type=3;

break;

case 3: //东西向红灯,南北向绿灯亮

RED_A=0;YELLOW_A=1;GREEN_A=1;

RED_B=1;YELLOW_B=1;GREEN_B=0;

DelayMS(2000);

Operation_Type=4;

break;

case 4: //南北向黄灯闪烁5次

DelayMS(300);

YELLOW_B=~YELLOW_B;GREEN_B=1;

if(++Flash_Count!=10) return;

Flash_Count=0;

Operation_Type=1;

}

}

//主程序

void main()

{

while(1) Traffic_Light();

}

06 单只数码管循环显示0~9

/* 名称:单只数码管循环显示0~9

说明:主程序中的循环语句反复将0~9的段码送至P0口,使数字0~9循环显示*/

#include

#include

#define uchar unsigned char

#define uint unsigned int

uchar code DSY_CODE[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xff}; //延时

void DelayMS(uint x)

{

uchar t;

while(x--) for(t=0;t<120;t++);

}

//主程序

void main()

{

uchar i=0;

P0=0x00;

while(1)

{ /*

for(;i<11;i++){ P0=~DSY_CODE[i];

DelayMS(300);} //注:另一方案*/

P0=~DSY_CODE[i];

i=(i+1)_x0010_;

DelayMS(300);

}

}

07 8只数码管滚动显示单个数字

/* 名称:8只数码管滚动显示单个数字

说明:数码管从左到右依次滚动显示0~7,程序通过每次仅循环选通一只数码管*/

#include

#include

#define uchar unsigned char

#define uint unsigned int

uchar code DSY_CODE[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};

//延时

void DelayMS(uint x)

{

uchar t;

while(x--) for(t=0;t<120;t++);

}

//主程序

void main()

{

uchar i,wei=0x80;

while(1)

{

for(i=0;i<8;i++)

{

P2=0xff; //关闭显示

wei=_crol_(wei,1);

P0=DSY_CODE[i]; //发送数字段码

P2=wei; //发送位码

DelayMS(300);

}

}

}

08 8只数码管动态显示多个不同字符

电路如上图

/* 名称:8只数码管动态显示多个不同字符

说明:数码管动态扫描显示0~7。

*/

#include

#include

#define uchar unsigned char

#define uint unsigned int

uchar code DSY_CODE[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90}; //延时

void DelayMS(uint x)

{

uchar t;

while(x--) for(t=0;t<120;t++);

}

//主程序

void main()

{

uchar i,wei=0x80;

while(1)

{

for(i=0;i<8;i++)

{

P2=0xff;

P0=DSY_CODE[i]; //发送段码

wei=_crol_(wei,1);

P2=wei; //发送位码

DelayMS(2);

}

}

}

09 8只数码管闪烁显示数字串

电路如上图

/* 名称:8只数码管闪烁显示数字串

说明:数码管闪烁显示由0~7构成的一串数字

本例用动态刷新法显示一串数字,在停止刷新时所有数字显示消失。

*/

#include

#define uchar unsigned char

#define uint unsigned int

//段码表

uchar code DSY_CODE[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90}; //位码表

uchar code DSY_IDX[]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80};

//延时

void DelayMS(uint x)

{

uchar t;

while(x--) for(t=0;t<120;t++);

}

//主程序

void main()

{

uchar i,j;

while(1)

{

for(i=0;i<30;i++)

{

for(j=0;j<8;j++)

{

P0=0xff;

P0=DSY_CODE[j]; //发送段码

P2=DSY_IDX[j]; //发送位码

DelayMS(2);

}

}

P2=0x00; //关闭所有数码管并延时

DelayMS(1000);

}

}

10 8只数码管滚动显示数字串

电路如上图

/* 名称:8只数码管滚动显示数字串

说明:数码管向左滚动显示3个字符构成的数字串

*/

#include

#include

#define uchar unsigned char

#define uint unsigned int

//段码表

uchar code DSY_CODE[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xff}; //下面数组看作环形队列,显示从某个数开始的8个数(10表示黑屏)

uchar Num[]={10,10,10,10,10,10,10,10,2,9,8};

//延时

void DelayMS(uint x)

{

uchar t;

while(x--) for(t=0;t<120;t++);

}

//主程序

void main()

{

uchar i,j,k=0,m=0x80;

while(1)

{ //刷新若干次,保持一段时间的稳定显示

for(i=0;i<15;i++)

{

for(j=0;j<8;j++)

{ //发送段码,采用环形取法,从第k个开始取第j个

P0=0xff;

P0=DSY_CODE[Num[(k+j)]];

m=_crol_(m,1);

P2=m; //发送位码

DelayMS(2);

}

}

k=(k+1); //环形队列首支针k递增,Num下标范围0~10,故对11取余

}

}

11 K1-K4 控制LED移位

/* 名称:K1-K4 控制LED移位

说明:按下K1时,P0口LED上移一位;

按下K2时,P0口LED下移一位;

按下K3时,P2口LED上移一位;

下移一位;LED口P2时,K4按下

*/

#include

#include

#define uchar unsigned char

#define uint unsigned int

//延时

void DelayMS(uint x)

{

uchar i;

while(x--)

for(i=0;i<120;i++);

}

//根据P1口的按键移动LED

void Move_LED()

{

if ((P1&0x10)==0) P0=_cror_(P0,1); //K1 else if((P1&0x20)==0) P0=_crol_(P0,1); //K2 else if((P1&0x40)==0) P2=_cror_(P2,1); //K3 else if((P1&0x80)==0) P2=_crol_(P2,1); //K4

}

//主程序

void main()

{

uchar Recent_Key; //最近按键

P0=0xfe;

P2=0xfe;

P1=0xff;

Recent_Key=0xff;

while(1)

{

if(Recent_Key!=P1)

{

Recent_Key=P1; //保存最近按键

Move_LED();

DelayMS(10);

}

}

}

12 K1-K4 按键状态显示

/* 名称:K1-K4 按键状态显示

说明:K1、K2按下时LED点亮,松开时熄灭,

点亮,再次按下并释放时熄灭;LED按下并释放时K4、K3 */

#include

#define uchar unsigned char

#define uint unsigned int

sbit LED1=P0^0;

sbit LED2=P0^1;

sbit LED3=P0^2;

sbit LED4=P0^3;

sbit K1=P1^0;

sbit K2=P1^1;

sbit K3=P1^2;

sbit K4=P1^3;

//延时

void DelayMS(uint x)

{

uchar i;

while(x--) for(i=0;i<120;i++);

}

//主程序

void main()

{

P0=0xff;

P1=0xff;

while(1)

{

LED1=K1;

LED2=K2;

if(K3==0)

{

while(K3==0);

LED3=~LED3;

}

if(K4==0)

{

while(K4==0);

LED4=~LED4;

}

DelayMS(10);

}

}

13 K1-K4 分组控制LED

/* 名称:K1-K4 分组控制LED

说明:每次按下K1时递增点亮一只LED,全亮时再次按下则再次循环开始,LED

按下后关闭所有K4,LED只4按下后点亮下面K3,LED只4按下后点亮上面K2 */

#include

#define uchar unsigned char

#define uint unsigned int

//延时

void DelayMS(uint x)

{

uchar i;

while(x--) for(i=0;i<120;i++);

}

//主程序

void main()

{

uchar k,t,Key_State;

P0=0xff;

P1=0xff;

while(1)

{

t=P1;

if(t!=0xff)

{

DelayMS(10);

单片机实训报告

单片机原理及应用 实训报告 班级: 学号: 姓名: 指导教师: 实训总成绩:

一、节日彩灯设计 题目:8位逻辑电平模块上的LED小灯从左向右呈现“鞭甩”的实验现象,状态间隔为0.25秒;按键1开始,按键2结束。 原理图 程序代码: #include #define uchar unsigned char uchar tab[]={0x7f,0x3f,0x1f,0x0f,0x07,0x03,0x01,0x00}; sbit S1=P1^4; sbit S2=P1^7; unsigned char i,j; delay(unsigned int x) { for(j=0;j

for(i=0;i<10;i++); } void main() { uchar i,b,d; while(1) {if (S1==0) {delay(50); if(S1==0); S1=b; b=0; {for(i=0;i<8;i++) { P2=tab[i]; delay(50); {if (S2==0) {delay(50); if(S2==0); S1=d; d=1; P2=0xff; }} } } } } } 设计思想总结 用C语言程序控制单片机最小系统,使IO口输出高低电平控制彩灯电路的闪烁。节日彩灯控制器是利用将单片机的CPU、RAM、ROM、定时器/计数器及输入/输出、I/O接口电路集成在一块集成电路芯片上的特点。通过其与发光二极

管及驱动电路的连接,从而构成一个完整的硬件电路。然后通过对单片机的ROM 进行编程,实现对彩灯闪烁的控制。 二、定时器实现流水灯 题目:利用定时器/计数器T0产生2秒钟的定时,每当2秒定时到来时,更换指示灯点亮,依次循环点亮。 原理图 程序代码 #include #include int lamp = 0xfe ; int cnt = 0; main() {P2 = 0xfe; TMOD = 0x01; TL0 = (65536 - 50000) % 256; TH0 = (65536 - 50000) / 256; TR0 = 1 ; ET0 = 1;

心得体会 单片机实训心得体会3篇

单片机实训心得体会3篇 随着电子技术的发展,特别是随着大规模集成电路的产生,给人们的生活带来了根本性的变化,如果说微型计算机的出现使现代的科学研究得到了质的飞跃,那么可编程控制器的出现则是给现代工业控制测控领域带来了一次新的革命。在现代社会中,温度控制不仅应用在工厂生产方面,其作用也体现到了各个方面。本学期我们就学习了单片机这门课程,感觉是有点难呢。也不知道整个学习过程是怎么过来得,可是时间不等人。 时光飞逝,一转眼,一个学期又进尾声了,本学期的单片机实习课题也在一周内完成了。俗话说"好的开始是成功的一半"。说这次实习,我认为最重要的就是做好程序调试,认真的研究老师给的题目。其次,老师对实验的讲解要一丝不苟的去听去想,因为只有都明白了,做起产品就会事半功倍,如果没弄明白,就迷迷糊糊的去做,到头来一点收获也没有。最后,要重视程序的模块化,修改的方便,也要注重程序的调试,掌握其方法。 虽然这次的实习算起来在实验室的时间只有几天,不过因为我们都有自己的实验板,所以在宿舍里做实验的时间一定不止三天。硬件的设计跟焊接都要我们自己动手去焊,软件的编程也要我们不断的调试,最终一个能完成课程设计的劳动成果出来了,很高兴它能按着设计的思想与要求运动起来。 当然,这其中也有很多问题,第一、不够细心比如由于粗心大意焊错了线,由于对课本理论的不熟悉导致编程出现错误。第二,是在

学习态度上,这次课设是对我的学习态度的一次检验。对于这次单片机综合课程实习,我的第一大心得体会就是作为一名工程技术人员,要求具备的首要素质绝对应该是严谨。我们这次实习所遇到的多半问题多数都是由于我们不够严谨。第三,在做人上,我认识到,无论做什么事情,只要你足够坚强,有足够的毅力与决心,有足够的挑战困难的勇气,就没有什么办不到的。 通过这次单片机实习,我不仅加深了对单片机理论的理解,将理论很好地应用到实际当中去,而且我还学会了如何去培养我们的创新精神,从而不断地战胜自己,超越自己。创新可以是在原有的基础上进行改进,使之功能不断完善,成为真己的东西。 这个设计过程中,我们通过在原有的计数器系统进行了改进,使之增添了暂停、计数、清零等的三个控制功能,使之成为一个更加适用,功能更加完备的属于自己的一个系统。设计结果能够符合题意,成功完成了此次实习要求,我们不只在乎这一结果,更加在乎的,是这个过程。这个过程中,我们花费了大量的时间和精力,更重要的是,我们在学会创新的基础上,同时还懂得合作精神的重要性,学会了与他人合作。作为一名自动化专业的快大三学生,我觉得做单片机实习是十分必要的。在已度过的大学时间里,我们大多数接触的是专业课。我们在课堂上掌握的仅仅是专业课的理论知识,如何去锻炼我们的实践能力?如何把我们所学的专业基础课理论知识运用到实践中去呢?我想做类似实习就为我们提供了良好的实践平台。 首先在做本次实习的过程中,我感触最深的当属查阅大量的设计

51单片机实验报告94890

《单片机与接口技术》实验报告 信息工程学院 2016年9月

辽东学院信息技术学院 《单片机与接口技术》实验报告 姓名:王瑛 学号: 0913140319 班级: B1403 专业:网络工程 层次:本科 2016年9月

目录 实验题目:实验环境的初识、使用及调试方法(第一章) 实验题目:单片机工程初步实验(第二章) 实验题目:基本指令实验(第三章)4 实验题目:定时器/计数器实验(第五章)4 实验题目:中断实验(第六章)4 实验题目:输入接口实验(第八章)4 实验题目:I/O口扩展实验(第九章)4 实验题目:串行通信实验(第十一章)4 实验题目:A/D,D/A转换实验(第十七章)4

实验题目:实验环境的初识、使用及调试方法实验 实验类型:验证性实验课时: 1 时间:2016年10月24日 一、实验内容和要求 了解单片机的基础知识 了解51单片机的组成和工作方法 掌握项目工程的建立、编辑、编译和下载的过程方法 熟练单片机开发调试工具和方法 二、实验结果及分析 单片机最小系统的构成: Keil集成开发环境:

STC-ISP:

实验题目:单片机工程初步实验 实验类型:验证性实验课时: 1 时间:2016 年10 月24 日一、实验内容和要求 点亮一个LED小灯 程序下载到单片机中 二、实验结果及分析 1、点亮一个LED小灯 点亮LED小灯的程序: #include //包含特殊功能寄存器定义的头文件 sbit LED = P0^0; sbit ADDR0 = P1^0; //sbit必须小写,P必须大写 sbit ADDR1 = P1^1; sbit ADDR2 = P1^2; sbit ADDR3 = P1^3; sbit ENLED = P1^4; void main() { ENLED = 0; ADDR3 = 1; ADDR2 = 1; ADDR1 = 1; ADDR0 = 0; LED = 0; //点亮小灯 while (1); //程序停止 } 2、程序下载 首先,我们要把硬件连接好,把板子插到我们的电脑上,打开设备管理器查看所使用的COM 口,如图所示:

《高级语言程序设计》复习题及答案

一、选择题 1.以下叙述正确的是( ): A)在C程序中,main函数必须位于程序的最前面 B) C程序的每行只能写一条语句 C) C语言使用库函数实现输入输出操作 D)注释中的拼写错误会影响编译结果 2、以下说法中正确的是() A) C语言程序总是从第一个的函数开始执行 B) C语言程序总是从main()函数开始执行 C)在C语言程序中,要调用的函数必须在main()函数中定义 D)C语言程序中的main()函数必须放在程序的开始部分 3、下列选项种说法正确的是( ) A)函数由声明部分和执行部分两部分组成 B)语言中main函数一定在程序的开始部分 C)C语言程序总是从第一个定义的函数开始执行 D)C程序的每行中只能写一条语句 4、设有说明:int a;float b; char c; double d; 则表达式1.3*a+2*b*c+d*(int) 2.6 值的类型为( )。 A)doubleB) char C) floatD) int 5、C语言的标识符只能由字母、数字和下划线三种字符组成,且第一个字符( ) A)必须为字母 B)必须为下划线 C)必须为字母或下划线 D)可以是字母、数字和下划线中任一种字符 6、以下不正确的C语言标识符是( )。 A) ABC B) abc C)a_bc D) void 7、下列运算符中优先级最高的是( ) A)< B)+ C)&& D)!= 8、以下选项中属于C语言中合法关键字的是( ) A)Float B)abc C)int D)CASE 9、若x、i、j和k都是int型变量,计算下面表达式后,x的值为( ) x=(i=4,j=16,k=32) A)4 B)16 C)32 D)52 10、在C语言中,要求数据必须是整型的运算符是( ) A)/ B)+ + C)!=D) % 11、若整型变量x的值为8,则下列表达式中值为1的表达式是 A)x+=x-=x B) x%=x-1 C) x%=x%=3 D) x/=x+x 12、若w=1,x=2,y=3,z=4,则条件表达式“w > x? w : y< z ? y : z”的值是( ) A)4 B)3 C)2 D)1 13、有以下程序,程序运行后的输出结果是。 main() {inti=1,j=2,k=3; if(i++==1&&(++j==3||k++==3)) printf("%d %d %d\n",i,j,k); }

单片机实训心得体会

单片机实训心得体会 导读:本文是关于单片机实训心得体会,希望能帮助到您! 单片机实训心得体会一 时光飞逝,一转眼,一个学期又进尾声了,本学期的单片机综合课程设计也在一周内完成了。 俗话说“好的开始是成功的一半”。说起课程设计,我认为最重要的就是做好设计的预习,认真的研究老师给的题目,选一个自己有兴趣的题目。其次,老师对实验的讲解要一丝不苟的去听去想,因为只有都明白了,做起设计就会事半功倍,如果没弄明白,就迷迷糊糊的去选题目做设计,到头来一点收获也没有。最后,要重视程序的模块化,修改的方便,也要注重程序的调试,掌握其方法。 虽然这次的课程设计算起来在实验室的时间只有三天,不过因为我们都有自己的实验板,所以在宿舍里做实验的时间一定不止三天。 硬件的设计跟焊接都要我们自己动手去焊,软件的编程也要我们不断的调试,最终一个能完成课程设计的劳动成果出来了,很高兴它能按着设计的思想与要求运动起来。 当然,这其中也有很多问题,第一、不够细心比如由于粗心大意焊错了线,由于对课本理论的不熟悉导致编程出现错误。第二,是在学习态度上,这次课设是对我的学习态度的一次检验。对于这次单片机综合课程实习,我的第一大心得体会就是作为一名工程技术人员,要求具备的首要素质绝对应该是严谨。我们这次实习所遇到的多半问题多数都是由于我们不够严谨。第三,在做人上,我认识到,无论做什么事情,只要你足够坚强,

有足够的毅力与决心,有足够的挑战困难的勇气,就没有什么办不到的。 在这次难得的课程设计过程中我锻炼了自己的思考能力和动手能力。通过题目选择和设计电路的过程中,加强了我思考问题的完整性和实际生活联系的可行性。在方案设计选择和芯片的选择上,培养了我们综合应用单片机的能力,对单片机的各个管脚的功能也有了进一步的认识。还锻炼我们个人的查阅技术资料的能力,动手能力,发现问题,解决问题的能力。并且我们熟练掌握了有关器件的性能及测试方法。 再次感谢老师的辅导以及同学的帮助,是他们让我有了一个更好的认识,无论是学习还是生活,生活是实在的,要踏实走路。课程设计时间虽然很短,但我学习了很多的东西,使我眼界打开,感受颇深。 单片机实训心得体会二 这个学期的单片机课已经早早的上完了,但是理论纯属理论,没有与实践的结合总让我们学的不踏实,感觉没有达到学以致用的效果。所庆幸的是在课程介绍考试完之后,老师给我们安排了这次单片机课程设计,给了我们学以致用的做好的实践。 关于这次课程设计,我们花费了比较多的心思,既是对课程理论内容的一次复习和巩固,还让我们丰富了更多与该专业相关的其他知识,比如软件应用等,在摸索中学习,在摸索中成长,在学习的过程中带着问题去学我发现效率很高,这是我做这次课程设计的又一收获,在真正设计之前我们做了相当丰富的准备,首先巩固一下课程理论,再一遍熟悉课程知识的构架,然后结合加以理论分析、总结,有了一个清晰的思路和一个完整的的软件流程图之后才着手设计。在设计程序时,我们不能妄想一次就将整个程序设计好,反复修改、不断改进是程序设计的必经之路;养成注释程序的好习惯是非常必要的,一个程序的完美与否不仅仅是实现功能,而应

51单片机实训报告

“51单片机”精简开发板的组装及调试实训报告

为期一周的单片机实习已经结束了。通过此次实训,让我们掌握了单片机基本原理的基础、单片机的编程知识以及初步掌握单片机应用系统开发实用技术,了解“51”单片机精简开发板的焊接方法。同时培养我们理论与实践相结合的能力,提高分析问题和解决问题的能力,增强学生独立工作能力;培养了我们团结合作、共同探讨、共同前进的精神与严谨的科学作风。 此次实训主要有以下几个方面: 一、实训目的 1.了解“51”精简开发板的工作原理及其结构。 2.了解复杂电子产品生产制造的全过程。 3.熟练掌握电子元器件的焊接方法及技巧,训练动手能力,培养工程实践概念。4.能运用51单片机进行简单的单片机应用系统的硬件设计。 5.掌握单片机应用系统的硬件、软件调试方法 二、实验原理 流水灯实际上就是一个带有八个发光二极管的单片机最小应用系统,即为由发光二极管、晶振、复位、电源等电路和必要的硬件组成的单个单片机。 它的电气性能指标:输入电压:DC4.5~6V,典型值为5V。可用干电池组供电,也可用直流稳压电源供电。 如图所示: 本流水灯实际上就是一个带有八个发光二极管的单片机最小应用系统,即为由发光二极管、晶振、复位、电源等电路和必要的硬件组成的单个单片机。 三、硬件组成 1、晶振电路部分 单片机系统正常工作的保证,如果振荡器不起振,系统将会不能工作;假如振荡器运行不规律,系统执行程序的时候就会出现时间上的误差,这在通信中会体现的很明显:电路将无法通信。他是由一个晶振和两个瓷片电容组成的,x1和x2分别接单片机的x1和x2,晶振的瓷片电容是没有正负的,注意两个瓷片电容相连的那端一定要接地。 2、复位端、复位电路 给单片机一个复位信号(一个一定时间的低电平)使程序从头开始执行;一般有两中复位方式:上电复位,在系统一上电时利用电容两端电压不能突变的原理给系统一个短时的低电平;手动复位,同过按钮接通低电平给系统复位,时如果手按着一直不放,系统将一直复位,不能正常。当要对晶体重置时,只要对此引脚电平提升至高电平并保持两个及其周期以上的时间便能完成系统重置的各

高级语言程序设计实验 C

陕西理工大学 《高级语言程序设计(C)》 实验报告 院系: 班级: 学号: 姓名:

目录

实验一:C开发环境与顺序结构程序设计 1.实验目的: (1) 了解集成开发环境VC++的使用方法,理解相关命令的含义,掌握编辑、编译、连接以及运行调试的方法,掌握程序的基本结构,掌握输入输出的方式。 (2) 掌握程序设计的基本要素中的数据类型、变量、运算符以及表达式的运用。 (3) 学会正确使用逻辑运算符和逻辑表达式以及关系运算符与关系表达式,掌握在程序设计中灵活使用顺序结构。 2.实验环境: (1) 硬件环境 CPU:Inter Pentium(R)4 CPU 以上 内存:2GByte (2) 软件环境 操作系统:Microsoft Windows 7 编译系统:Microsoft Visual C++ 3.实验步骤: 按如图所示流程进行实验内容的 调试。 (1) 在XP操作系统中,启动VC++ 编译环境; (2) 在VC++编译界面输入C源程 序; (3) 选择编译、组建、执行命令进 行编译、链接和运行,并记录实验 数据; (4) 按以上方法依次输入其他源程 序并调试、运行和记录实验数据。 4.实验内容: 输入并运行下列程序,查看程序运行的结果。 #include<>

void main() { printf(“* * * * * * * * * *\n”); printf(“Programing in c A Labrtry Maual\n”); printf(“* * * *\n”); printf(“*\n”); } 查看程序运行的结果 #include<> void main() { int i,j,m,n; i=8; j=10; m=++i; n=j--; printf(“%d,%d,%d,%d\n”,i,j,m,n); } 找出下列程序中的错误,改正后写出程序运行结果. #include<> void main() { Int x,y=z=5,aver; x=7; AVER=(x+y+z)/3 printf(“AVER=%d\n”,aver); }

《高级语言程序设计》答案

1. 输入两个整数,要求用两个函数求出其最大公约数和最小公倍数,最大公约数和最小公倍数都在主函数中输出。#include int main() { int i,j,t; int max(int,int); int min(int,int); scanf("%d%d",&i,&j); if(i int main() { int max4(int,int,int,int); //对max4的函数声明 int a,b,c,d; scanf("%d%d%d%d",&a,&b,&c,&d); //输入4个数 printf("max=%d\n",max4(a,b,c,d));//调用4个数中的最大者 return 0; } int max4(int a,int b,int c,int d) //定义max4函数 { int max2(int,int); //对max2的函数声明 return max2(max2(max2(a,b),c),d); //调用max2把作为函数值带回main函数} int max2(int a,int b) { return(a>b?a:b); //返回条件表达式的值,即a和b中的大者 } 3. 用递归调用的方法求5!。 #include int main() { int fac(int); int n; scanf("%d",&n);

上师大单片机综合实训报告

单片机系统应用综合设计报告 专业:班级: 姓名:学号: 指导教师:成绩: 完成日期:2014年12月18日

一、基于ADC0809芯片的简单采集系统设计 1.方案论证 1.1 系统的设计任务 1.用单片机、ADC0809芯片、数码管等组成温度数据采集显示系统。温度范围为0—255℃,数码管显示被测温度;当温度低于下限70℃时,实现低温报警,当温度高于上限150℃时,实现高温报警。 2.原理图设计 根据所确定的设计电路,利用Proteus 软件绘制电路原理图。 3.软件设计 根据电路工作过程,画出软件流程图,根据流程图编写相应的程序。利用Proteus 与Keil μVision4联调,直到实验现象正确为止。 4.设计报告按规定的规范和要求书写并打印。 1.2 设计方案 根据系统的设计要求,当温度传感器把所测得的温度通过驱动电路转换成电压信号,89C51通过控制ADC0809对AD 值进行采集并进行处理,把温度在数码管上显示。 利用89C51芯片控制温度传感器进行实时温度检测并显示能够实现快速测量环境温度。 1.3软、硬件开发环境 利用Proteus 软件绘制电路原理图、利用Proteus 与Keil μVision4联调。 2.系统硬件设计 2.1单片机主电路设计 单片机选用AT89C51 ·内含4KB 的FLASH 存储器,擦写次数1000次; ·内含28字节的RAM ; ·具有32根可编程I/O 线; ·具有2个16位可编程定时器; ·具有6个中断源、5个中断矢量、2级优先权的中断结构; ·具有1个全双工的可编程串行通信接口; ·具有一个数据指针DPTR; 图1:采集系统程序框图

合工大汇编语言程序设计实验报告

合肥工业大学计算机与信息学院 实验报告 课程:汇编语言程序设计专业班级:**************** 学号:********** 姓名:***** 目录

实验一 (3) 实验二 (7) 实验三 (12) 实验四 (22)

实验一Debug程序的使用 一.实验目的 1、熟悉DEBUG程序中的命令,学会在DEBUG下调试运行汇编语言源程序。 2、掌握8086/8088的寻址方式及多字节数据的处理方法。 二.实验内容 1、利用DEBUG程序中的“E”命令,将两个多字节数“003F1AE7H”和“006BE5C4H”分别送入起始地址为DS:0200H和DS:0204H两个单元中。 2、分别用直接寻址方式和寄存器间接寻址方式编写程序段,实现将DS:0200H 单元和DS:0204H单元中的数据相加,并将运算结果存放在DS:0208H单元中。要求: 本次实验的内容均在DEBUG下完成,实现数据的装入、修改、显示;汇编语言程序段的编辑、汇编和反汇编;程序的运行和结果检查。 三.实验过程和程序 实验内容一: e ds:0200 E7 1A 3F 00 e ds:0204 C4 E5 6B 00 实验内容二: (1)直接寻址方式 MOV AX,[0200] MOV BX,[0202] ADD AX,[0204] ADC BX,[0206] MOV [0208],AX MOV [020A],BX (2)寄存器间接寻址方式 MOV SI,0200H MOV DI,0204H MOV BX,0208H MOV AX,[SI] MOV DX,[SI+2] ADD AX,[DI] ADC DX,[DI+2]

最新单片机实训个人心得体会

单片机实训个人心得体会范文 通过为期一周的单片机实训,是我们对这门课有了许多新的了解,弥补了在课堂上学习的不足。相信这对我们以后的学习和工作都会有很大的帮助。我们一定要在最短的时间里对这些不足加以改正! 首先,在这次试训中我被单片机强大的功能所震撼,以前在课堂上完全没有能理解可编程单片机的优越性。这次通过实体仿真软件等辅助软件的共同效果,是这次试训有了鲜明的活力。换是我们认识 到这次试训不仅仅是一个软件的应用,更多的是使我们认识到学习到很多在课堂上无法得到的东西。特别是protues软件的功能是我们了解了当今开发系统的新方向,简直太不可思议啦! 单片机作为一种最简单的软件,与我们的日常生活息息相关,了解一些单片机程序的简单录入是费城必要的。如:LED显示器、键盘和显示器的应用和原理。 在被刺实训中我们每个人通过一个八位流水灯的制作,使我们深深地体会到了单片机在现实生活中的小小应用,既增强了我们的好奇心,又巩固了我们的理论知识。更让我们体会到了单片机手动的开 始平台的完善与成熟。只要你有想法,单片机就有可能让他成为现实。这里我学习完protues软件后的第一感觉是,虽然这软件工作不稳定,但是会有相当不错的效果出来。这对我以后的工作一定会有帮助的。在这次试训中不仅只对单片机编程有了新的认识,还对整个单片机的开发平台都有了一厅的了解,这是一笔不错的收获。 通过这几天的'试训,使我的感触很深,真实"条条大路通罗马",要达到目的,不同的人就有不同的方法。只要你的方法不错!五花八门都可以,而且是各有特色。走出来的结果都有各自的独到之处。在编程中"简"字贯穿于整个程序设计中,越简单越好,毕竟单片机留给用户的资源是有限的,所以我们要充分利用这些资源,达到更好的效果,这些是我们在以后的学习生活中应值得注意的地方。 在试训中有苦有甜,当我们为一个很难攻破的程序找出路时,心情烦躁,感觉自己很不可理喻,当程序一点一点编好后,自己从心底感觉到一点小小的安慰,看着自己的成果。感觉很欣慰,有一丝丝的甜意,几天的实训使自己的思维逻辑也有了小小的进步。 2.结束了两周的电视机实训,我们又迎来了单片机课程设计实训,真是让我们受益匪浅啊?学到了很多东西,不管怎么样,先感谢学校给我的这么多机会.真正的学到了东西.为期一周的单片机课程设计让我们受益匪浅.此次课程设计软件与硬件相结合,考察了我们的焊接水平与编程能力.对于我们应用电子技术的学生而言焊接是不成问题,也很顺利;可到了编程时就出现了很大的障碍,先开始的显示时钟还算顺利,下面的报警部分就花费了相当长的时间,还有加上报警时

单片机实验报告

实 验 报 告 实验课程:单片机原理及应用 班级: 12自动化2班 学号: 姓名: 教师:张玲 成绩: 实验日期:年月日 实验名称:实验1——计数显示器 一、实验目的: 学习Proteus 软件的使用,掌握单片机原理图的绘图方法。 二、实验内容: 1、绘制“计数显示器”电路原理图; 2、利用提供的hex文件验证此电路的运行效果。 三、实验要求: 提交的实验报告中应包括:1、绘图方法简述,要求说明元件与电源的选取、摆放及属性编辑,总线与标签的画法等内容;2、电路原理图; 3、仿真运行效果展示,要求就仿真文件加载方法及3~4幅运行截图进行简要说明;4、实验小结,说明遇到的主要问题或实验

1体会等。 参考电路原理图如下: 元件类别电路符号元件名称 Microproces sor ICs “U1”80C51 Miscellaneo us “X1”/12MHz CRYSTAL Capacitors“C1”~“C2” /1nF CAP Capacitors“C3”/22μF CAP-ELEC Resistors Packs “RP1”/7-100ΩRESPACK-7 Resistors“R1”/100ΩRES Optoelectro nics “LED1”~ “LED2” 7SEG-COM-CAT-G RN Switches & Relays “BUT”BUTTON 1、编程思路及C51源程序:

2、电路原理图: 3、仿真运行效果展示:

4、实验小结: 熟悉Proteus软件,了解软件的结构组成与功能;学习ISIS模块的使用方法, 学会设置图纸、选元件、线画总线、修改属性等基本操作;学会可执行文件 加载及程序仿法;理解Proteus在单片机开发中的作用,完成单片机电路原 理图的绘制。

选择结构程序设计-C语言程序实验报告

安徽工程大学 高级语言程序设计实验报告 班级姓名同组者/ 成绩 日期2019.10.10 指导教师 实验名称选择结构程序设计 一、实验目的 1.学会正确使用关系运算符和关系表达式。 2.学会正确使用逻辑运算符、逻辑表达式以及关系表达式等。 3.熟悉掌握if语句和switch语句的用法。 4.熟悉选择结构程序中的语句执行过程,掌握选择结构程序设计的方法。 二、实验内容 1.编写程序,判断从键盘上输入的一个字符类型,并按下列要求输出。 (1)若该字符是数字,输出字符串“0~9”。 (2)若该字符是大写或者小写字母,输出字符串“A~z”。 (3)若该字符是其他字母,输出“!,@,……”。 完善P56页第一个源程序,对源程序进行编译、连接并运行,完成调试报告。 2.编程并上机调试。 (1)给出一个不多于4位的正整数,求它是几位数。 (2)给出一个百分制成绩,要求输出成绩等级'A'、'B'、'C'、'D'、'E'。 90分以上为'A',80~90分为'B'70~79分为'C',60~69分为'D',60分 以下为'E'。用switch语句来实现。 (3)输入4个整数,要求按从小到大的顺序输出。 (4)输入3个整数,将最大数与最小数输出。 (5)输入一个字符,如果是数字字符,把它转换成相应的数字输出;如果不是,则以十进制整数形式输出其ASCⅠⅠ码值。 *思考题

3.若在实验内容1的程序第8行的语句else if (_)后多输入了一个分号,即“else if (_);”,分析程序,写出预期结果,然后输入调试,查看运行结果与预期结果是否一致并分析原因。 4.若在实验内容1的程序第8行的语句else if(_)法人括号内输入c>='A' &&c<='z'后,判断在调试时是否能得到正确结果,并分析原因。 三、算法流程图或实验步骤(可根据需要增删、修改) 1.(1)算法流程图 #include void main( ) { char c; scanf("%c",&c); if(c>='0'&&c<='9') printf("0~9\n"); else if((c>='a'&&c<='z')||(c>='A'&&c<='Z')) printf("A~z\n"); else printf("!,@,……\n"); } (2)实验步骤 Files→New→Files→C++source File→文件名:program3011.c→位置:E:\123\→确定→完善源程序→Buid→是→确认0error(s) 0warning(s)后→BuidExecute→查看运行结果 2.(1)算法流程图: #include void main ( ) { int a,b;

单片机实训项目

单片机实训项目

本文档包含了一批实训项目,各种实训的安排由浅入深,学生可根据不同能力层次选择相应的实训项目。 采用开放式实训教学模式。所谓开放式实训教学,是指由学生自己根据实训题目的要求,独立拟定设计方案,设计电路,完成开发过程,辅导老师只负责对方案进行审查,在实训过程中给予必要的启发与引导,实训完成以后对结果和报告进行评价。实训内容及要求应具有开放性、探索性和创新性,让学生在“开放的空间”里自由开动脑筋,形成自由学习的氛围。 学生能在这种开放、宽松的实训环境下,充分发挥自己的主观能动性和聪明才智,将实训做得更好、收获更大。按照开放式实训教程建设的指导思想:加强基础、突出创新、开拓思维、培养能力、提高素质。构建以“基本技能培养→综合设计能力培养→创新设计能力培养”三个培养层次的开放式实训教学体系。在有效地保证大面积学生教学质量的同时, 使优秀学生能脱颖而出,使学生创新能力和实践动手能力得到一定程度的锻炼。

第一篇单片机中级实训项目 (4) 1.1 数控直流稳压电源设计 (4) 1.2 数字电压表设计 (5) 1.3 水温控制系统设计 (5) 第二篇单片机高级实训项目 (6) 2.1 简易电阻、电容和电感测试仪 (6) 2.2电表IC卡管理装置的设计 (6) 2.3无线环境监测模拟装置设计 (7)

第一篇单片机中级实训项目 1.1 数控直流稳压电源设计 一、设计任务: 设计并制作出有一定输出电压范围和功能的数控电源。其原理示意图如下: 图1-2 数控直流稳压电源系统组成框图 图1 数控电源框图 二、设计要求: 1.基本要求 (1)输出电压:范围0~+9.9V,步进0.1V,纹波不大于10mV;、 (2)输出电流:500mA; (3)输出电压值由数码管显示; (4)由“+”、“-”两键分别控制输出电压步进增减; (5)为实现上述几部件工作,自制一稳压直流电源,输出±15V,+5V。 2.发挥部分 (1)输出电压可预置在0~9.9V之间的任意一个值; (2)用自动扫描代替人工按键,实现输出电压变化(步进0.1V不变); (3)扩展输出电压种类(比如三角波等);

单片机实验报告

本科生实验报告 实验课程单片机原理及应用 学院名称核技术与自动化工程学院 专业名称电气工程及其自动化 学生姓名 学生学号 指导教师任家富 实验地点6C902 实验成绩 二〇一五年三月二〇一五年六月 单片机最小系统设计及应用 摘要 目前,单片机以其高可靠性,在工业控制系统、数据采集系统、智能化仪器仪表等领域得到极其广泛的应用。因此对于在校的大学生熟练的掌握和使用单片机是具有深远的意义。通过本次课程设计掌握单片机硬件和软件方面的知识,更深入的了解单片机的实际应用,本次设计课程采用STC89C52单片机和ADC0804,LED显示,键盘,RS232等设计一个单片机开发板系统。进行了LED显示程序设计,键盘程序设计,RS232通信程序设计等。实现了单片机的各个程序的各个功能。对仿真软件keil的应用提升了一个新的高度。单片机体积小、成本低、使用方便,所以被广

泛地应用于仪器仪表、现场数据的采集和控制。通过本实验的学习,可以让学生掌握单片机原理、接口技术及自动控制技术,并能设计一些小型的、综合性的控制系统,以达到真正对单片机应用的理解。 关键词:单片机;智能;最小系统;ADC;RS232;显示;STC89C52 第1章概述 单片机又称单片微控制器,它不是完成某一个逻辑功能的芯片,而是把一个计算机系统集成到一个芯片上。相当于一个微型的计算机,和计算机相比,单片机只缺少了I/O设备。单片机采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计时器等功能(可能还包括显示驱动电路、脉宽调制电路、模拟多路转换器、A/D转换器等电路)集成到一块硅片上构成的一个小而完善的微型计算机系统。概括的讲:一块芯片就成了一台计算机。它的体积小、质量轻、价格便宜、为学习、应用和开发提供了便利条件。同时,学习使用单片机是了解计算机原理与结构的最佳选择。 它最早是被用在工业控制领域,由于单片机在工业控制领域的广泛应用,单片机由芯片内仅有CPU的专用处理器发展而来。最早的设计理念是通过将大量外围设备和CPU集成在一个芯片中,使计算机系统更小,更容易集成进复杂的而对体积要求严格的控制设备当中。 现代人类生活中所用的几乎每件电子和机械产品中都会集成有单片机。手机、电话、计算器、家用电器、电子玩具、掌上电脑以及鼠标等电脑配件中都配有1-2部单片机。汽车上一般配备40多部单片机,复杂的工业控制系统上甚至可能有数百台单片机在同时工作!单片机的数量不仅远超过PC机和其他计算的总和,甚至比人类的数量还要多。单片机的使用领域已十分广泛,如智能仪表、实时工控、通讯设备、导航系统、家用电器等。各种产品一旦用上了单片机,就能起到使产品升级换代的功效,常在产品名称前冠以形容词——“智能型”,如智能型洗衣机等。 第2章实验内容 2.1单片机集成开发环境应用

高级语言程序设计实验5_数组(完美运行版)

《高级语言程序设计》实验报告实验序号:5 实验项目:数组

附源程序清单: 1. #include main() { int a[100],b[100],x[100],i,j=0,k,l=0; printf("请输入数组x的个数:"); scanf("%d",&k); printf("请输入数组x中的整数,用空格隔开:"); for(i=0;i0) { a[j]=x[i];j++; } else if(x[i]<0) { b[l]=x[i];l++; } } printf("数组a:"); for(i=0;i #include int main() {

int array[1000]; int i=0, iter=0; for(i=0;i<1000;i++) array[i]=i+1; array[0]=0; iter=1; while(iter<1000) { if(array[iter]!=0) for(i=iter+1;i<1000;i++) { if( array[i]%array[iter]==0) array[i]=0; } iter++; } for(i=0;i<1000;i++) if(array[i]!=0) printf("%d\t",array[i]); printf("\n"); } 3.#include"stdio.h" #include"string.h" main() { char a[100];int i,j=0; printf("输入一串测试字符:\n"); scanf("%s",&a); for(i=0;i='0' && a[i]<='9')) { a[j]=a[i]; j++; } } printf("输出字符串为:%s",a); printf("\n"); }

MSP430单片机教学综合实训一例共4页word资料

MSP430单片机教学综合实训一例 1 概述 单片机应用广泛,成本低,种类多,功耗低,能够方便地组装成各种智能的控制设备,能够完成相对比较复杂的控制任务,环境适应性较强,可以很方便的实现多机和分布式控制,已成为微型计算机的一个重要分支,发展速度极快。单片应用人才需求广泛,高职院校在计算机应用类职业人才培养中大多开设单片机应用类课程。专业实训是高职人才培养中的重要一环,包括了从知识准备到实训器材选择、从程序设计到电路设计等环节,对提高学生实践能力起到了重要作用。 2 实训设计与要求 本实训采用现技术已比较成熟且难度适中的“数字温度计”制作作为实训内容。根据系统的设计要求,选择DS18B20作为温度传感器,可以省去采样/保持电路、运放、数/模转换电路以及串/并转换电路,可以有效简化电路,缩短系统的工作时间,降低了实训难度。选择MSP430单片机为测控系统的核心来完成数据采集、处理、显示、报警等功能。本实训采用MSP430单片机作为核心部件,MSP430系列单片机是一种16位的单片机,相对于8位的51单片机来说,它具有功能丰富、较大的内部RAM和程序存储空间,适合开发较复杂的系统。采用C语言开发,程序更容易编写和较好的可读性,可以大大提高软件开发的工作效率。 温度传感器DS18B20把所测得的温度发送到MSP430单片机上,经过单片机处理,将温度在LED数码管以动态扫描法实现显示。系统由主控制器、测温电路和显示电路3个模块组成。

对学生实训具体要求如下: (1)熟悉各元器件原理与使用方法,编写程序,实现以单片机为核心器件,使用温度传感器采集温度,通过LED数码管显示器显示温度值。 (2)编写程序,通过液晶显示模块实现汉字和温度值输出显示,实现温度报警功能。 (3)设计制作独立完整实验电路。 3 实训器材 采用MSP430-DEMO16X开发试验板,单片机的所有引脚都已经引出,便于学生进行扩展试验,并对实验的原理、实验环境配置和源程序都进行了详细的说明。使用IAR Embedded Workbench V3.42A MSP430集成开发环境。 MSP430-DEMO16X开发试验版集成了MSP430F169单片机、MAX7219显示驱动器、DS18B20温度传感器,DS1302实时时钟芯片、LED数码管、蜂鸣器等器件。为进一步提高实训的难度增强实训效果,还需准备1062液晶显示模块和12864多功能液晶显示模块各一块。 4 实训过程 (1)知识准备阶段。在之前的教学过程中和在实训的开始阶段让学生熟悉MSP430-DEMO16X开发试验版的结构使和用方法,各应用元器件的原理、功能、各引脚作用,各元器件之间的连接方法。 (2)程序设计阶段。由于MSP430-DEMO16X开发试验版已将各器件进行了连接,在熟悉硬件后即可指导学生进入程序设计阶段。 系统程序主要包括:①主程序。主要功能是负责温度的实时显示,读

单片机实训报告心得

广东轻工职业技术学院 实训报告 实训项目单片机实训 系别:电子通信工程系 专业:应用电子技术 班级:嵌入式091班 姓名:11222 学号:2009080202316 指导老师:丁向荣、赵慧 实训地点:第三实训楼C309 实训时间:2011年1月10日至1月14日

前言 单片机应用技术是现代电子设计的核心技术,学习单片机只是就是要将单片机应用到电子产品中,以单片机为控制核心实现电子系统所需实现的功能。单片机的应用能力很多程度上决定了电子类专业学生电子设计与电子应用的水平与能力,尤其是高职学生更是如此。 本项目要求设计一个简单的电子时钟,用六位LED数码管实现电子时钟的功能,显示方式为时、分、秒,采用24h(小时)计时方式,使用按键开关可实现时分调整。 通过电子闹钟项目的课题设计,让同学

们体验项目设计的要点,了解项目设计的流程,加深对单片机应用知识的学习,体会团队协作的力量所在。为日后的嵌入式专业学习巩固基础。 目录 1.概述………………………………………………………… 1.1 系统的作用……………………………………………………………… 1.2 系统的功能要求……………………………………………………………2.系统硬件设计……………………………………………….. 2.1系统的电路原理…………………………………………………………… 2.2 电路原理图……………………………………………………………… 2.3 各控制按钮控制功能说明………………………………………………. 3.系统软件设计………………………………………………. 4.系统调试……………………………………………………. 5. 总结…………………………………………………………

单片机实训报告范本精选5篇

Record the situation and lessons learned, find out the existing problems and form future countermeasures. 姓名:___________________ 单位:___________________ 时间:___________________ 单片机实训报告精选5篇

编号:FS-DY-20685 单片机实训报告精选5篇 单片机课程设计心得体会 在学校学习期间我有幸的参加了学校的单片机学习小组,在小组里我了解了什么是单片机,单片机有哪些用途,利用单片机可以实现哪些功能来方便人们的生活如交通灯,时钟,还有手机中,电子玩具等等,它们里面都有单片机的存在来实现某种功能。通过在单片机小组里的学习我简单总结了几点心得和体会: 第一:万事开头难,要勇敢的迈出第一步,不要总找借口说没有学习过就总推脱。凡事都有第一步可以先可简单的来,然后可以逐步的向深层次学习。可以从建项目开始,然后可以找一个简单的小程序先把它敲进单片机内然他运行起来,感觉一下单片机的运行,让自己了解单片机整个运行。 第二:对于知识点,学过的要掌握牢固,对于没有学的和暂时用不到的先不用学习。比如:小灯得点亮就没有用到

中断可以先不用看。这样可以避免知识过多记不住的麻烦。对于程序这里的知识点不能只停留在理论层次上,一定要结合着程序进行学习这样才能掌握的很牢靠,当用到哪里的知识点不记得了可以去看书,对于用不到的可以不去看。 第三:程序不要只是看别人得,一定要自己写过才是自己的。开始不懂可以参考别人的,看看每一句代表着什么意思,能够实现什么现象。明白之后自己再重新写一遍,你会发现看别人的能懂到自己写的时候很困难。当你自己能写出来的时候说明你真懂了。 第四:一定要学会程序调试的方法。有时候把程序写完了然后运行时不能实现理想的现象。这时有人就晕了不知该怎么办,然后就去问别人。当别人找出问题出在哪里时就会恍然大悟。其实当遇到问题一定要自己尝试着解决,不能遇到问题就去问别人。自己一定要掌握解决问的方法和思路。 第五:在学习初期看别人的代码,学习别人的思路这个很有用。通过看别人的代码特别是有多年编程经验的人的程序,可以迅速提高自己的编程水平。也可以结合着别人的手法,与自己的想法结合在一起写出更好的程序。但是切记将

相关主题
文本预览
相关文档 最新文档