东北大学信息学院级电子信息工程专业.docx

上传人:b****4 文档编号:11681366 上传时间:2023-03-30 格式:DOCX 页数:30 大小:143.92KB
下载 相关 举报
东北大学信息学院级电子信息工程专业.docx_第1页
第1页 / 共30页
东北大学信息学院级电子信息工程专业.docx_第2页
第2页 / 共30页
东北大学信息学院级电子信息工程专业.docx_第3页
第3页 / 共30页
东北大学信息学院级电子信息工程专业.docx_第4页
第4页 / 共30页
东北大学信息学院级电子信息工程专业.docx_第5页
第5页 / 共30页
点击查看更多>>
下载资源
资源描述

东北大学信息学院级电子信息工程专业.docx

《东北大学信息学院级电子信息工程专业.docx》由会员分享,可在线阅读,更多相关《东北大学信息学院级电子信息工程专业.docx(30页珍藏版)》请在冰豆网上搜索。

东北大学信息学院级电子信息工程专业.docx

东北大学信息学院级电子信息工程专业

 

东北大学信息学院2010级电子信息工程专业

生产实习报告

 

姓名:

学号:

班级:

电话:

Email:

 

2013年7月10日

目录

目录II

1.引言1

1.1实习目的和要求1

1.2实习内容1

2.企业参观1

3.出租车计价器单片机应用系统设计2

3.1题目的意义、特点,系统的主要功能2

3.1.1题目意义2

3.1.2系统主要功能2

3.2系统功能设计3

3.2.1硬件设计4

3.2.2软件设计7

3.2.3程序代码

3.3调试中遇见的问题及解决办法9

4.参考文献9

 

1.引言

生产实习是我们电子专业学习的一个重要的环节,是将课堂上学到的理论知识与实际相结合的一个很好的机会,对强化我们所学到的知识,拓展我们的视野有很好的帮助。

同时,这是我们深入了解企业单位的一个很好的机会,对即将毕业参加工作的同学有非常大的帮助。

1.1实习目的和要求

通过对沈阳广播发射站的参观学习,使我们对广播发射原理与实际工作情况联系起来,加深对所学课程知识的理解,特别是电磁波调幅原理的认识,使学习与实践相结合。

1.2实习内容

参观沈阳广播A033台的机房和发射天线,了解广播的基本流程和主要发射设备,了解站台的发展历史和中国广播设备发展历史。

2.企业参观

参观内容:

首先,由站台工作人员给我们大致讲解了A033台的发展历史。

电台从最初的几台小功率发射机到现在的大功率3D先进的发射机的进程,折射出了中国电台的发展历史。

电台最初的时候,由于当时的政治原因,发射机都是从俄罗斯进口的。

后来也有更新换代,让我诧异的是现在居然还有一台颇为古董的发射机在工作。

当工作人员介绍到最新引进的3D发射机的时候,言语中不乏称赞之意,其中当然有发射机优良的性能的原因。

当时我就想中国什么时候才能有实力制造出来。

这也反映出我国整个电子行业在高端领域缺乏竞争力。

介绍完电台历史,工作人员带领我们参观发射机房,为我们详细讲解了发射机的工作流程。

广播信号经过电缆传输到发射机上,然后经发射机调幅后发射出去。

发射机内部用到了大量的FPGA芯片,这跟FPGA优异的性能密不可分。

由于发射机发热量大,所以机房内配备了大功率风扇来制冷。

当时我就问工作人员空调的制冷效果更好,为什么没用空调呢。

工作人员听后笑着对我说机房内的发射机总功率非常的大,根据能量守恒,若果用空调制冷耗电量非常大,是不可取的。

由此可见,企业非常关注经济效益,没有最好,只有更经济适用。

因此,在以后的工作学习中,我们学生要一改不重视成本的坏习惯,不能盲目追求高性能的产品,要更注重产品的成本控制。

最后,工作人员讲解了发射天线的有关情况。

其中,工作人员讲得最多的是天线的防雷技术。

具体是什么我不记得了。

但是有一点我印象十分深刻。

因为这个电台的防雷工作十分到位,吸引了别的电台来参观学习。

但是由于别的电台技术人员没有做到虚心学习,认真思考,最后还是没有把防雷技术学到手。

由此可见,向比自习做得好的同行学习是十分重要的。

在以后的工作中,我们应该互相学习,虚心受教,万不可自视高人一筹。

通过这次参观实习,让我学到了许多在学校难以学到的东西。

在以后的工作学习中,我们要注重以下几点:

1.要认真思考企业追求的是什么。

有的企业追求速度,有的企业追求质量,侧重点都不一样。

向A033台追求的应该更多的是可靠、稳定。

2.虚心学习非常重要。

在学校中学到的知识非常有限,只有不断学习才不会被时代落下。

尤其是我们电子行业,更新速度可以说是用天计算都不为过。

所以,不断学习就显得尤其重要。

3.不要忽视成本控制。

一个好的企业,在成本控制方面是十分严格的。

只有合理的成本才会被市场认可,企业才得以发展。

希望以后能有更过的机会走进企业。

3.出租车计价器单片机应用系统设计

3.1题目的意义、特点,系统的主要功能

3.1.1题目意义

出租车是我们经常使用的交通工具,所以了解计价器的大概功能就显得比较主要。

通过这次课程设计,能将课程知识在实际题目中得到应用,锻炼自己的实际动手能力,熟悉单片机C语言在实际中的应用。

3.1.2系统主要功能

0~9数字键;

B:

开始计价;

C:

清除数据;

D:

(P)设置单价键,按一次后,再按数字键进行设置;

E:

(T)设置时间键,按一次后,再按数字键进行设置;

F/A:

完成设置键。

程序运行后,时间照常显示。

出现滚动屏幕,此时可以进行单价和时间的设置。

按B键开始计价,运行中也可以进行单价和时间的设置。

按C键清除上次费用和路程

3.2系统功能设计

1.外部测速单元有模拟直流电动机(通过直流电机测速以及对速度进行采样)和光电耦合器组成,输出脉冲信号由计数器输入单片机进行处理,其中电动机速度可调;

2.4×4键盘和8位LED由8279管理,IRQ接INT0,CLK接ALE,键盘由十个数字键和五个功能键组成,其中一个键重复定义,LED用字母和数字显示表示当前的状态、进行的操作以及输入的数据;

3.LCD显示信息,如下图;

3.2.1硬件设计

(1)按键管理模块

利用8279芯片管理键盘与显示,可有效减轻单片机I/O资源负担。

键盘由74LS138译码扫描,当有按键时,有8279自行编值,并引发中断。

在中断程序中读取键值。

8279采用单±5V电源供电,40脚封装。

DB0~DB7:

双向数据总线,用来传送8279与CPU之间的数据和命令。

CLK:

时钟输入线,用以产生内部定时的时钟脉冲。

RESET:

复位输入线,8279复位后被置为字符显示左端输入,二键闭锁的触点回弹型式,程序时钟前置分频器被置为31,RESET信号为高电平有效。

CS:

片选输入线,低电平有效,单片机在CS端为低时可以对8279读/写操作。

A0:

缓冲器低位地址,当A0为高电平时,表示数据总线上为命令或状态,当为低电平时,表示数据总线上为命令或状态,当为低电平时,表示数据总线上为数据。

RD:

读信号输入线,低电平有效,将缓冲器读出,数据送往外部总线。

WR:

写信号输入线,低电平有效,将缓立器读出,将数据从外部数据总线写入8279的缓冲器。

(2)显示模块

显示部件采用液晶模块RT12864,可显示汉字和图形,内置8192个中文汉字和128个字符,黄绿背光,与单片机采用并行连接方式,片选信号由读写线和138译码输出。

液晶显示电路

(3)定时器与计数器

利用模拟直流定动机模拟出租车,转盘上有孔,利用光电转换变成电脉冲。

利用计数器进行计数,定时器进行定时。

 

(4)实时时钟

出租车上的显示器上要求有时钟,选择DS12887时钟芯片作为时钟控制单元。

 

(5)AD转换模块

德州仪器公司(TI)推出的TLC549是的CMOS8位A/D转换器。

该芯片有一个模拟输入端口,3态的数据串行输出接口可以方便的和微处理器或外围设备连接。

TLC549仅仅使用输入/输出时钟(I/OCLOCK)和芯片选择(/CS)信号控制数据。

最大的输入输出时钟(I/OCLOCK)为1.1MHz。

本次用到TLC549作为水位监测功能实现,当检测水位高于或低于标准水位时,报警输出。

A/D转换电路

3.2.1软件设计

(1)程序流程框图

先进行初始化,显示计价初始值,然后等待开始计价或者进行设置。

计价分两种情况:

速度超过设定值时,按当时速度进行计价;速度低于设定值时,自动进行计数,当计数每达到一分钟时,价格按照一公里长度计。

修改分、修改时间和单价。

清零用于清除当前路程和费用,以便进行下次计价。

(2)中断程序框图

计时器中断程序流程图

 

在定时时间内记录脉冲个数,赋给全局变量,用于计算速度。

按键中断服务程序流程图

 

读取键值,转换为可用数据,并且置位相应标志位,为以后操作做好准备。

然后根据状态在LED上显示相应操作。

3.2.3程序代码

#include

#include

#include

#include

#defineucharunsignedchar

#defineuintunsignedint//DS12887实时时钟时间地址设置

#definesecondXBYTE[0x6000]//秒寄存器地址

#definesec_alarmXBYTE[0x6001]

#defineminuteXBYTE[0x6002]//分寄存器地址

#definemin_alarmXBYTE[0x6003]

#definehourXBYTE[0x6004]/*小时寄存器地址*/

#defineweekXBYTE[0x6006]/*星期寄存器地址*/

#definedateXBYTE[0x6007]/*日期寄存器地址*/

#definemonthXBYTE[0x6008]/*月寄存器地址*/

#defineyearXBYTE[0x6009]/*年寄存器地址*/

#defineregaXBYTE[0x600A]/*A寄存器地址*/

#defineregbXBYTE[0x600B]/*B寄存器地址*/

#defineregcXBYTE[0x600C]/*C寄存器地址*/

#defineregdXBYTE[0x600D]/*D寄存器地址*/

/*RT12864HZ汉字图形点阵液晶地址设置*/

#definew_c_addXBYTE[0x2070]/*写命令字地址*/

#definew_d_addXBYTE[0x2071]/*写数据地址*/

#definer_s_addXBYTE[0x2072]/*读状态字地址*/

#definer_d_addXBYTE[0x2073]/*读数据地址*/

#defineCOMXBYTE[0x2021]/*8279命令口*/

#defineDATXBYTE[0x2020]/*8279数据口*/

#defineL1/*长度系数*/

#defineTI50/*分度数*/

#defineHN30/*孔个数*/

#defineLOW30/*最低速度*/

ucharxdatakey;/*键值*/

uintidatanum=0;/*计数值*/

uintxdataa=1,b=0;

uintidatalen,fa,m,n,o,p,q,r,s,t,COUT,CLO;

uintidatah1,h2,m1,m2,s1,s2;/*时钟参数*/

uintidataprice=1,fate=00,length=0,leng;

uintidatastate=0,clear=1,begin=0,pri,tim,tt=0,cc=0;nn=0;/*几个状态标志位*/

/*设置,清除,开始计价,单价修改,时间修改,两位数监视,六位数监视,数字标志*/

unsignedcharbdatastatus;/*lcd可位寻址片内数据存储器,允许位与字节混合访问*/

sbitbusy=status^7;/*lcd"忙"线的第7位*/

ucharbdatasta_8279;/*8279*/

sbitdu=sta_8279^7;/*8279方式设置命令字*/

unsignedcharrflag;

unsignedcharbdatasta_ds;

sbituip=sta_ds^7;

uchards_h,ds_m,ds_s,ds_t;

unsignedcharbdatads_time;

unsignedcharcodeNO[10]={0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7,0xB8,0xB9};

ucharcodetab[16]={0x3f,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F,

0x71,0x7C,0x39,0x73,0x31,0x71};/*0~F的字型编码*/

ucharxdatal2[16]={0xB5,0xA5,0xBC,0xDB,0xA3,0xBA,0x20,0x20,0x20,0x20,

/*单价:

空空*/

0xA3,0xB0,0xA3,0xB0,0xD4,0xAA};

/*NN元*/

ucharxdatal3[16]={0xBE,0xE0,0xC0,0xEB,0xA3,0xBA,0xA3,0xB0,0xA3,0xB0,

/*距离:

空N*/

0xA3,0xB0,0xA3,0xB0,0x4B,0x4D};

/*NNkm*/

ucharxdatal4[16]={0xBC,0xDB,0xC7,0xAE,0xA3,0xBA,0xA3,0xB0,0xA3,0xB0,

/*价格:

NN*/

0xA3,0xB0,0xA3,0xB0,0xD4,0xAA};

/*NN元*/

ucharxdatal5[16]={0x20,0x20,0xCA,0xE4,0xC8,0xEB,0xC1,0xBD,0xCE,0xBB,

/*空输入两位*/

0xB5,0xA5,0xBC,0xDB,0x20,0x20};

/*单价空*/

ucharxdatal6[16]={0x20,0x20,0x20,0x20,0xA3,0xBA,0xA3,0xB0,0xA3,0xB0,

/*空空:

NN*/

0xD4,0xAA,0xA3,0xAF,0x4B,0x4D};

/*元/km*/

unsignedcharcodehz0[][16]={

0xB5,0xA5,0xC6,0xAC,0xBB,0xFA,0xBF,0xCE,0xB3,0xCC,0xC9,0xE8,0xBC,0xC6,0x20,0x20,//单片机课程设计

0x20,0x20,0x20,0x20,0xD7,0xF7,0xD5,0xDF,0xA1,0xC3,0xBD,0xF0,0xD0,0xC4,0x20,0x20,//作者金鑫

0x20,0x20,0xB3,0xF6,0xD7,0xE2,0xB3,0xB5,0xBC,0xC6,0xBC,0xDB,0xC6,0xF7,0x20,0x20,//出租车计价器

0x20,0x20,0xBB,0xB6,0xD3,0xAD,0xC4,0xFA,0xB5,0xC4,0xCA,0xB9,0xD3,0xC3,0x20,0x20,//欢迎您的使用

};

voidinitial(void);

voiddelay(void);

voidcheck_lcd(void);

voidshow_lcd(uchar*,uchar*,uchar*);

voidlcd_busy(void);//LCD忙状态检测函数

voidcompute(void);

voidchange_pri(void);

voidchange_time(void);

voidclock(void);

voidcheck_ds12887(void);

voide(void);

/*******************************************************************************************

开始界面滚动

*******************************************************************************************/

voidlcd_roll(void)

{

unsignedcharadd;

unsignedchari,j,k;

lcd_busy();

w_c_add=0x30;/*功能设置:

8位数据*/

lcd_busy();

w_c_add=0x0C;/*显示状态:

整体显示,游标位置无效*/

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

{

for(k=0;k<20;k++)

{

delay();

}

lcd_busy();

w_c_add=0x01;/*清除显示:

将DDRAM填满"20H",并且设定DDRAM的地址计数器到"00"*/

lcd_busy();

clock();

lcd_busy();

w_c_add=0x02;/*地址归位:

设定DDRAM的地址计数器到"00",将游标移到开头原点位置*/

add=0x90;/*设置显示坐标,80H对应字符的第一行第一列*/

lcd_busy();

w_c_add=add;/*幸数据*/

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

{

lcd_busy();

w_d_add=hz0[(j)%4][2*i];/*写数据,上半字节*/

w_d_add=hz0[(j)%4][2*i+1];/*写数据,下半字节*/

}

lcd_busy();

add=0x88;/*设置显示坐标,80H对应字符的第一行第一列*/

lcd_busy();

w_c_add=add;/*幸数据*/

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

{

lcd_busy();

w_d_add=hz0[(j+1)%4][2*i];/*写数据,上半字节*/

w_d_add=hz0[(j+1)%4][2*i+1];/*写数据,下半字节*/

}

lcd_busy();

add=0x98;/*设置显示坐标,80H对应字符的第一行第一列*/

lcd_busy();

w_c_add=add;/*幸数据*/

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

{

lcd_busy();

w_d_add=hz0[(j+2)%4][2*i];/*写数据,上半字节*/

w_d_add=hz0[(j+2)%4][2*i+1];/*写数据,下半字节*/

}

}

}

//////////////////////////////////////////////////////////

main()

{

uintinf=0;

initial();

//show_lcd(h7,h8,h9);

lcd_roll();

while

(1)

{

clock();

if(begin==1)

{

if(inf==0)

{

fate=9;

inf=1;

}

if(state==0)

{

if(num>=LOW)

{

COUT=0;

price=a*10+b;

len+=num*L/HN;

if(len/TI>=0)

{

leng=len/TI;

len%=TI;

}

fa=leng*price;

length+=leng;

leng=0;

fate+=fa;

}

else

{

if(COUT>=30)

{

length++;

fate+=(10*a+b);

COUT=0;

}

}

compute();

show_lcd(l2,l3,l4);

}

else

{

if(pri==1)

change_pri();

if(tim==1)

change_time();

}

}

if(clear==1)

{

length=0;

fate=0;

inf=0;

compute();

//show_lcd(h7,h8,h9);

lcd_roll();

if(pri==1)

change_pri();

if(tim==1)

change_time();

}

}

}

voidkeybord(void)interrupt0using1//键盘按键实现功能

{

ucharkeyboard=0;

EX0=0;

COM=0x50;

keyboard=DAT;

keyboard&=0x0f;//保留低四位

switch(keyboard)

{case0x0:

key=0;tt++;nn=1;cc++;break;

case0x1:

key=1;tt++;nn=1;cc++;break;

case0x2:

key=2;tt++;nn=1;cc++;break;

case0x3:

key=3;tt++;nn=1;cc++;break;

case0x4:

key=4;tt++;nn=1;cc++;break;

case0x5:

key=5;tt++;nn=1;cc++;break;

case0x6:

key=6;tt++;nn=1;cc++;break;

case0x7:

key=7;tt++;nn=1;cc++;break;

case0x8:

key=8;tt++;nn=1;cc++;break;

case0x9:

key=9;tt++;nn=1;cc++;break;

case0x0B:

key=11;COUT=0;begin=1;clear=0;nn=0;break;//B开始

case0x0C:

key=12;clear=1;begin=0;nn=0;break;//C清除数据

case0X0D:

key=13;state=1;pri=1;tim=0;nn=0;break;//D重置价格

case0x0E:

key=14;state=1;tim=1;pri=0;nn=0;break;//E修改时间!

!

!

问题

default:

key=15;nn=0;break;//F结束操作

}

keyboard=tab[keyboard];

if(pri==1)

if(nn==0)

COM=0x80+8;

else

COM=0x80+4+tt;

if(tim==1)

if(nn==0)

COM=0x80+8;

else

COM=0x80+1+cc;

DAT=keyboard;

EX0=1;

}

voidint1serve()interrupt2using2

{

unsignedchartemp2;

COUT++;

EX1=0;

rflag=1;

sta_ds=rega;

while(uip);

ds_h=ho

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

当前位置:首页 > 农林牧渔 > 水产渔业

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1