东北大学信息学院级电子信息工程专业.docx
- 文档编号:11681366
- 上传时间:2023-03-30
- 格式:DOCX
- 页数:30
- 大小:143.92KB
东北大学信息学院级电子信息工程专业.docx
《东北大学信息学院级电子信息工程专业.docx》由会员分享,可在线阅读,更多相关《东北大学信息学院级电子信息工程专业.docx(30页珍藏版)》请在冰豆网上搜索。
东北大学信息学院级电子信息工程专业
东北大学信息学院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
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 东北大学 信息 学院 电子信息工程 专业