基于51单片机的智能计算机实训报告(51单片机程序设计实验报告)

http://www.itjxue.com  2023-02-01 20:15  来源:未知  点击次数: 

急求大专单片机实训报告

实训报告总结~

 高职高专教育培养的是技术应用型人才,学校为了培养我们学生的创新精神和和工程实践能力,提高我们的综合素质,故在底13周带领全校学生进行为期一周的实训,在时间中互相学习和进步。

现在我们已步入大二下学期,经过两年的在校学习,对我们计算机控制专业有了比较全面的认识和理解,但在校期间,一直忙于理论知识的学习,没能有机会走出校园,真正切身感受本专业的实际应用。所以在实训之前,本专业对我来说是比较抽象的,但通过这次实训,我们揭开了她神秘的面纱,离我们不再遥远!

第一天的实训,我们去了深圳艾克瑞电气有限公司,在去公司之前,公司的史总经理特地抽空来到本班,对艾克瑞公司以及他们公司所开发研究的产品进行了一系列的讲解。所谓“艾克瑞”也就是根据英文“XRAY”直翻译过来的,也就是生产X光。通过他的讲解,我学到了很多东西,比如说X线的产生,X线的特点以及组成等等。X光机主要是用于医疗机构,我们都知道X光的医疗效果是很显著的,可见它的发明及应用,对于我们人类生活,作出了多么巨大的贡献。

第二天我们同样去了艾克瑞公司,哪天让我真正地做到了学以致用,更学到了很多做人的道理,对我来说受益非浅。因为做开发研究的地方都是没有空调的,温度很高,看着那些技术人员流着满身大汗仍然 对自己的工作乐此不疲,我真的很感动也很钦佩。除此之外,我还学会了如何更好地与别人沟通,如何更好地去陈述自己的观点,如何说服别人认同自己的观点。第一次亲身感受了所学知识与实际的应用,理论与实际的相结合,让我大开眼界。

第四天,我们去了深圳百事可乐公司,坐了一个小时左右的车去到那里,到达那里后给我的第一印象就是:规模庞大。不愧是世界品牌。那里的建筑也主要是以蓝,白为主,真正的体现了了百事可乐的清爽,舒服的意念。通过公司里的工作人员的讲解,知道了百事已经有109年的历史了,听到这里,真的很让我惊讶!1898年8月28日,是百事可乐“PEPSI-COLA”诞生的日子。这是每一个关爱百事可乐的人们都引以为骄傲且不会忘却的日子。一百多年来,百事可乐在喧嚣,纷乱,竞争的氛围中,随着时代的步伐,与美国和世界一起成长壮大。

遗憾的是,由于停电的关系,我们没能参观到他们整个的生产过程,只是参观了一下他们的重要生产线。真的不能简单以一个“规模庞大”的词来形容的。在参观的过程中,我们知道了瓶装可乐可以每分钟生产600多瓶,而罐装可乐,甚至每分钟可生产1000多瓶,真的很不可思议。

“纸上得来终觉浅,绝知此事要躬行!”在短暂的实习过程中,让我深深的感觉到自己在实际运用中的专业知识的匮乏,刚开始的一段时间里,对一些工作感到无从下手,茫然不知所措,这让我感到非常的难过。在学校总以为自己学的不错,一旦接触到实际,才发现自己知道的是多么少,这时才真正领悟到“学无止境”的含义。

“千里之行,始于足下”,这是一个短暂而又充实的实习,我认为对我走向社会起到了一个桥梁的作用,过渡的作用,是人生的一段重要的经历,也是一个重要步骤,对将来走上工作岗位也有着很大帮助。

突然想起鲁迅先生的一句话:这里本来没有路,只是走的人多了,也便成了路。生活的路呢?生活的路也是人走出来的,每个人一生总要去很多陌生的地方,然后熟悉,而接着又要启程去另一个陌生的地方。

作为初涉社会的开端,这里有许多回忆和联想,面对残酷的现实社会,每个人都无法选择逃避,除了勇敢面对,我们也无从选择!

走向明天,我依然走我自己!不再茫然…

高分求单片机课程设计报告

手边有一些你需要的关于单片机的论文设计资料 需要的话加QQ 晚上7点以后隐身在线,直接加就行,说明要的资料名字就好。嘿嘿 楼主 要是觉的好的话 可别忘了给分哦。

51单片机智能数据采集系统课程设计

//采集并返回

unsigned int Adc0832(unsigned char channel)

{

uchar i=0;

uchar j;

uint dat=0;

uchar ndat=0;

if(channel==0)channel=2;

if(channel==1)channel=3;

ADDI=1;

_nop_();

_nop_();

ADCS=0;//拉低CS端

_nop_();

_nop_();

ADCLK=1;//拉高CLK端

_nop_();

_nop_();

ADCLK=0;//拉低CLK端,形成下降沿1

_nop_();

_nop_();

ADCLK=1;//拉高CLK端

ADDI=channel0x1;

_nop_();

_nop_();

ADCLK=0;//拉低CLK端,形成下降沿2

_nop_();

_nop_();

ADCLK=1;//拉高CLK端

ADDI=(channel1)0x1;

_nop_();

_nop_();

ADCLK=0;//拉低CLK端,形成下降沿3

ADDI=1;//控制命令结束

_nop_();

_nop_();

dat=0;

for(i=0;i8;i++)

{

dat|=ADDO;//收数据

ADCLK=1;

_nop_();

_nop_();

ADCLK=0;//形成一次时钟脉冲

_nop_();

_nop_();

dat=1;

if(i==7)dat|=ADDO;

}

for(i=0;i8;i++)

{

j=0;

j=j|ADDO;//收数据

ADCLK=1;

_nop_();

_nop_();

ADCLK=0;//形成一次时钟脉冲

_nop_();

_nop_();

j=j7;

ndat=ndat|j;

if(i7)ndat=1;

}

ADCS=1;//拉低CS端

ADCLK=0;//拉低CLK端

ADDO=1;//拉高数据端,回到初始状态

dat=8;

dat|=ndat;

return(dat); //return ad data

}int main(void)

{

while(1)

P3=Adc0832(0);

}

基于51单片机的简易计算器设计,急

//功能 0 1 2 3 4 5 6 7 8 9 + - × ÷ = 清零 ?表3-1 ?3.2 计算器的软件设计?

#includereg51.h ? //头文件

#define uint unsigned int //

#define uchar unsigned char

sbit lcden=P2^3; //定义引脚

sbit rs=P2^4;

sbit rw=P2^0;

sbit busy=P0^7;

char i,j,temp,num,num_1;

long a,b,c; ? ? //a,第一个数 b,第二个数 c,得数

float a_c,b_c;

uchar flag,fuhao;//flag表示是否有符号键按下,fuhao表征按下的是哪个符号

uchar code table[]={ 7,8,9,0, 4,5,6,0, 1,2,3,0, 0,0,0,0};

uchar code table1[]={

7,8,9,0x2f-0x30,

4,5,6,0x2a-0x30,

1,2,3,0x2d-0x30,

0x01-0x30,0,0x3d-0x30,0x2b-0x30};

void delay(uchar z) // 延迟函数

{

uchar y;

for(z;z0;z--)

for(y=0;y110;y++);

} ? void check() // 判断忙或空闲

{

do{

P0=0xFF;

rs=0; ? ? //指令

rw=1; ? ? //读

lcden=0; ? ? //禁止读写

delay(1); //等待,液晶显示器处理数据

lcden=1; ? ? //允许读写

}while(busy==1); //判断是否为空闲,1为忙,0为空闲

}

void write_com(uchar com) // 写指令函数

{

P0=com; ? ?//com指令付给P0口

rs=0;

rw=0;

lcden=0;

check();

lcden=1;

}

void write_date(uchar date) // 写数据函数

{

P0=date;

rs=1;

rw=0;

lcden=0;

check();

lcden=1;

}

void init() //初始化

{

num=-1;

lcden=1; //使能信号为高电平

write_com(0x38); //8位,2行

write_com(0x0c); //显示开,光标关,不闪烁*/

write_com(0x06); //增量方式不移位 显竟獗暌贫 柚?

write_com(0x80); //检测忙信号

write_com(0x01); //显示开,光标关,不闪烁

num_1=0;

i=0;

j=0;

a=0; ? ? //第一个参与运算的数

b=0; ? ? //第二个参与运算的数

c=0;

flag=0; //flag表示是否有符号键按下,

fuhao=0; // fuhao表征按下的是哪个符号

}

void keyscan() // 键盘扫描程序

{

P3=0xfe;

if(P3!=0xfe)

{

delay(20); //延迟20ms

if(P3!=0xfe)

{

temp=P30xf0;

switch(temp)

{

case 0xe0:num=0;

break;

case 0xd0:num=1;

break;

case 0xb0:num=2;

break;

case 0x70:num=3;

break;

}

}

while(P3!=0xfe);

if(num==0||num==1||num==2)//如果按下的是'7','8'或'9

{

if(j!=0)

{

write_com(0x01);

j=0;

}

if(flag==0)//没有按过符号键

{

a=a*10+table[num];

}

else//如果按过符号键

{

b=b*10+table[num];

}

}

else//如果按下的是'/'

{

flag=1;

fuhao=4;//4表示除号已按

}

i=table1[num];

write_date(0x30+i);

}

P3=0xfd;

if(P3!=0xfd)

{

delay(5);

if(P3!=0xfd)

{

temp=P30xf0;

switch(temp)

{

case 0xe0:num=4;

break;

case 0xd0:num=5;

break;

case 0xb0:num=6;

break;

case 0x70:num=7;

break;

}

}

while(P3!=0xfd);

if(num==4||num==5||num==6num!=7)//如果按下的是'4','5'或'6'

{

if(j!=0)

{

write_com(0x01);

j=0;

}

if(flag==0)//没有按过符号键

{

a=a*10+table[num];

}

else//如果按过符号键

{

b=b*10+table[num];

}

}

else//如果按下的是'/'

{

flag=1;

fuhao=3;//3表示乘号已按

}

i=table1[num];

write_date(0x30+i);

}

P3=0xfb; if(P3!=0xfb)

{

delay(5);

if(P3!=0xfb)

{

temp=P30xf0;

switch(temp)

{

case 0xe0:num=8;

break;

case 0xd0:num=9;

break;

case 0xb0:num=10;

break;

case 0x70:num=11;

break;

}

}

while(P3!=0xfb);

if(num==8||num==9||num==10)//如果按下的是'1','2'或'3'

{

if(j!=0)

{

write_com(0x01);

j=0;

}

if(flag==0)//没有按过符号键

{

a=a*10+table[num];

}

else//如果按过符号键

{

b=b*10+table[num];

}

}

else if(num==11)//如果按下的是'-'

{

flag=1;

fuhao=2;//2表示减号已按

}

i=table1[num];

write_date(0x30+i);

}

P3=0xf7;

if(P3!=0xf7)

{

delay(5);

if(P3!=0xf7)

{

temp=P30xf0;

switch(temp)

{

case 0xe0:num=12;

break;

case 0xd0:num=13;

break;

case 0xb0:num=14;

break;

case 0x70:num=15;

break;

}

}

while(P3!=0xf7);

switch(num)

{

case 12:{write_com(0x01);a=0;b=0;flag=0;fuhao=0;}//按下的是"清零"

break;

case 13:{ ? ? ? ? ? ? ? ?//按下的是"0"

if(flag==0) ? ? ? ? ?//没有按过符号键

{

a=a*10;

write_date(0x30);

P1=0;

}

else if(flag==1)//如果按过符号键

{

b=b*10;

write_date(0x30);

}

}

break;

case 14:{j=1;

if(fuhao==1){write_com(0x80+0x4f);//按下等于键,光标前进至第二行最后一个显示处

write_com(0x04); ? ? //设置从后住前写数据,每写完一个数据,光标后退一格

c=a+b;

while(c!=0)

{

write_date(0x30+c%10);

c=c/10;

}

write_date(0x3d); ? ? //再写"="

a=0;b=0;flag=0;fuhao=0;

}

else if(fuhao==2){write_com(0x80+0x4f); ? //光标前进至第二行最后一个显示处

write_com(0x04); ? ? //设置从后住前写数据,每写完一个数据,光标后退一格

//(这个照理说顺序不对,可显示和上段一样)

if(a-b0)

c=a-b;

else

c=b-a;

while(c!=0)

{

write_date(0x30+c%10);

c=c/10;

}

if(a-b0)

write_date(0x2d);

write_date(0x3d); ? ? //再写"="

a=0;b=0;flag=0;fuhao=0;

}

else if(fuhao==3){write_com(0x80+0x4f);

write_com(0x04);

c=a*b;

while(c!=0)

{

write_date(0x30+c%10);

c=c/10;

}

write_date(0x3d);

a=0;b=0;flag=0;fuhao=0;

}

else if(fuhao==4){write_com(0x80+0x4f);

write_com(0x04);

i=0;

c=(long)(((float)a/b)*1000);

while(c!=0)

{

write_date(0x30+c%10);

c=c/10;

i++;

if(i==3)

write_date(0x2e);

}

if(a/b=0)

write_date(0x30);

write_date(0x3d);

a=0;b=0;flag=0;fuhao=0;

}

}

break;

case 15:{write_date(0x30+table1[num]);flag=1;fuhao=1;}

break;

}

}

}

main()

{

init();

while(1)

{

keyscan();

}

}

基于51单片机的汉字LCD智能显示模块设计 毕业论文

用单片机进行温度的控制及LCD显示系统的设计论文编号:JD909 包括开题报告,任务书。 论文字数:14253,页数:45摘 要 温度测量与控制是工程实践中常见的问题,在工业生产中有着广泛的应用。针对此领域的发展方向,本论文设计了一个基于单片机的智能温度测量系统。本系统以AT89C51单片机为微控制器,采用数字温度传感器DS18B20作为测温元件, 温度传感器DS18B20采集温度信号送给单片机处理,单片机再把处理后的温度数据送到LCD上显示出来。 能够实现快速、准确的测温功能和越限声光报警功能。本论文完成了系统硬件电路的设计,给出了软件流程框图,并编写了相关的软件程序。 关键词:温度测量;传感器 ;单片机;LCD显示

Abstract

Temperature measuring and the controlling are very common in the project practice and are widely adopted in the industry production . In view of development direction of this domain, this paper introduces a temperature measuring system which take the AT89C51 single chip microcontroller as an controlling unit and the digital temperature sensor --DS18B20, as temperauture measuring transducer. The collected temperature signals of the digital temperature transducer--DS18B20 are processed by the single chip microcontroller. The processed temperature signals are displayed on the LCD.This system has achieved prompt and precise temperature measuring and the super warnning function by sound and light .This paper has finished the design of hardware curcuit and compiled related software program..

Key word: Temperature measuring;Sensor;Single Chip Microcontroller ;LCD Display 目 录摘 要 I

Abstract II

绪 论 1

1系统的设计方案 3

2硬件设计

2.1 单片机的选用 4

2.2 温度检测电路的设计 6

2.3 键盘模块的设计 10

2.4 液晶显示模块的设计 12

2.5 声光报警电路的设计 16

3软件设计

3.1 程序设计语言和软件开发环境 17

3.2 软件程序设计 18

4抗干扰设计

4.1. 硬件方面的措施 26

4.2 软件抗干扰技术 26

结 论 28

致 谢 29

参考文献 30

附录: 源程序 31以上回答来自:

(责任编辑:IT教学网)

更多

推荐网页文字特效文章