




已阅读5页,还剩15页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
院系:姓名:学号:班号:指导教师:日期:2011年月一实习要求11实习设计要求与目的 了解并初步掌握单片机及其开发流程,综合模拟电子技术和数字电子技术,掌握以单片机为核心的电子系统体系。 通过实习掌握必要的单片机开发能力,熟悉开发环境,熟练焊接技巧,培养动手能力,锻炼自主意识。 1.2实习环境开发环境:Keil /wave6000(伟福6000)单片机类型:STC89C52 开发工具:万用表、5V稳压电源、电子元件、电烙铁等。 1.3实习内容 独立焊接并利用89C52的小系统板,使用C语言设计一个可以在单片机中显示特定字符,如姓名学号的程序。将其在LCM1602中显示。 可以利用该板另行扩展功能,如PS/2键盘接口,A/D,D/A转换等。 1.4元器件清单类别序号封装参数电容C1cap0.1uF电容C2cap0.1uF电容C3cap0.1uF极性电容C4ELECTOR10uF极性电容C5ELECTOR10uF极性电容C6ELECTOR10uF电容C7CAP0.1uF电容C8CAP0.1uF电容C9CAP0.1uF电容C10CAP0.1uF电容C11CAP0.1uF电容C15CAP0.1uF电容C16CAP0.1uF极性电容C17ELECTOR10uF极性电容C18ELECTOR10uF电容C21CAP0.1uF二极管D1IN41481N4148二极管D2IN41481N4148六脚蓝色插座JP1POWER6电源插座二脚蓝色插座JP2POWER2输入信号跳线JP3PIN2通道选择跳线跳线JP4PIN2通道选择跳线跳线JP5PIN2通道选择跳线2*17插座JP6HDR2X17_CEN扩展插孔2脚蓝色插座JP8POWER2电压输出信号电阻R2AXIAL-0.410K电阻R4AXIAL-0.410K电阻R15AXIAL-0.410K电阻R18AXIAL-0.410KAD转换U1DIP28ADC0809或非门U2DIP1474LS02通用4运放U3DIP14TL084DA转换U5DIP20DAC0832实时时钟U6DIP24DS12887电容C1CAP1uF电容C2CAP1uF电容C3CAP0.1uF电容C4CAP1uF电容C5CAP1uF电容C6CAP0.1uF极性电容C7CAP10uF电容C8CAP0.1uF电容C9CAP0.1uF电容C10CAP30pF电容C11CAP30pF电容C12CAP0.1uF电容C13CAP0.1uF极性电容C14ELECTOR10uF极性电容C15ELECTOR10uF电容C16CAP0.1uF高亮发光二极管E1ELECTOR电源指示DB9公头插座JP1DB9M串口单排16针插座JP2HDR1X161602插座PS2母头插座JP3PS2PS2键盘插座2脚蓝色插座JP4POWER2电源插座2*17,双排17针插座JP5HDR2X17_CEN扩展插座排阻JP6MHDR1X910k8针单排排针JP7HDR1X8键盘插座4位高亮8段数码管(小封装)JP84LED4位高亮8段数码管(小封装)JP94LED2*5插座JP10JTAGJTAG接口3脚单排排针JP11HDR1X3跳线4脚方形小按钮K1SW1复位开关三极管Q1NPN2N5551电阻R1AXIAL-0.41K电阻R2AXIAL-0.4200电阻R3AXIAL-0.4200电阻R4AXIAL-0.4200电阻R5AXIAL-0.4200电阻R6AXIAL-0.4200电阻R7AXIAL-0.4200电阻R8AXIAL-0.4200电阻R9AXIAL-0.4200电阻R10AXIAL-0.4200电阻R11AXIAL-0.4200电阻R12AXIAL-0.410K电阻R13AXIAL-0.410K电阻R14AXIAL-0.410K电位器R15AXIAL-0.410K电平转换U1DIP16MAX232N数码管译码驱动U2DIP16CD4511MCUU3DIP40STC89C52译码器U4DIP1674LS138看门狗U5DIP8X5045晶振Y1CRYSTAL11.0592MHz二芯片资料2.1 89S52主要特性介绍: STC89C52是一种低功耗、高性能CMOS8位微控制器,具有8K在系统可编程Flash存储器。使用Atmel公司高密度非易失性存储器技术制造,与工业80C51产品指令和引脚完全兼容。在芯片上,拥有灵巧的8位CPU和在系统可编程Flash,使得STC89C52为众多嵌入式控制应用系统提供高灵活超有效的解决方案。 STC89C52具有以下标准功能:8K字节Flash,256字节RAM,32位IO口线,看门狗定时器,2个数据指针,三个16位定时器计数器,一个6向量2级中断结构,全双工串行口,片内晶振及时钟电路。另外,STC89C52可降至0Hz静态逻辑操作,支持2种软件可选择节电模式。空闲模式下,CPU停止工作,允许RAM定时器计数器,串口,中断继续工作。掉电保护方式下,RAM内容被保存,震荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。 2.2 LCD1602应用简介 模块内部自带字符发生存储器(CGROM),字符有:阿拉伯数字、英文字母的大小写、常用的符号、和日文假名等,每一个字符都有一个固定的代码,比如大写的英文字母“A”的代码是(41H),显示时模块把代码41H发给液晶模块,我们就能在液晶上看到字母“A”。 1602液晶模块内部的控制器共有11条控制指令,丰富的指令可以完成液晶的时序控制、工作方式式设置和数据显示等。 该液晶显示器以其微功耗、体积小、显示内容丰富、超薄轻巧的诸多优点,在袖珍式仪表和低功耗应用系统中得到越来越广泛的应用。 三电路、PCB板设计 本次实习采用PCB板已根据实际情况由宋老师帮助设计,从而除去了学生们独立设计PCB板的障碍。使得大家能够更加集中的将精力放在单片机的总体设计部分。其中DBNZ1104和DBNZ104的布局如下:四主要系统单元设计4.1 STC89C52外围电路设计 P3.1口接LED状态显示电路;晶振采用12MHz,接两个30pF的电容,起到稳定振荡频率快速起振的作用。同时晶振和电容安装在离单片机的时钟引脚比较近的文职,以减少寄生电容,更好的保证了振荡器稳定可靠的工作。4.2电源插座、复位电路复位电路采用手动复位,节约成本。其中RST引脚是复位信号输入端,在所示电路中,通电瞬间,C15的充电过程中,RST段出现一定宽度的正脉冲,只要该脉冲保持10ms以上,就能使单片机可靠的上电复位。4.3 LCD接口电路采用的LCM1602液晶模块是标准16针插座,关于LCM1602的详细资料:LCD1602各引脚说明第1脚:VSS为地电源第2脚:VDD接5V正电源第3脚:V0为液晶显示器对比度调整端,接正电源时对比度最弱,接地电源 时对比度最高,对比度过高时会产生“鬼影”,使用时可以通过一 个10K的电位器调整对比度 。第4脚:RS为寄存器选择,高电平选择数据寄存器、低电平选择指令寄存器。 第5脚:RW为读写信号线,高电平时进行读操作,低电平时进行写操作。 当RS和RW共同为低电平时 (00)可以写入指令或者显示地址; 当RS为低电平RW为高电平时(01)可以读入忙信号; 当RS为高电平RW为低电平时(10)可以写入数据。 第6脚:E端为使能端,当E端由高电平跳变成低电平时,液晶模块执行命令。第714脚:D0D7为8位双向数据线。 第1516脚:背光阳极和背光阴极。指令1:清显示 指令码01H, 光标复位到地址00H位置;指令2:光标复位 指令码02H, 光标返回到地址00H位置 ;指令3:光标和显示模式设置 I/D位 光标移动方向,高电平右移,低电平左移; S 位 屏幕上所有文字是否左移或者右移,高电平有效,低电平无效; 指令4:显示开关控制 D 位 控制整体显示的开与关,高电平表示开显示,低电平表示关显示; C 位 控制光标的开与关,高电平表示有光标,低电平表示无光标; B 位 控制光标是否闪烁,高电平闪烁,低电平不闪烁 ;指令5:光标或显示移位 S/C位 高电平时移动显示的文字,低电平时移动光标 指令6:功能命令设置 DL位-高电平时为4位数据总线,低电平时为8位总线; N位低电平时为单行显示,高电平时为双行显示; F位低电平时显示5x7的点阵字符,高电平时为5x10的点阵字符;指令7:字符发生器RAM地址设置指令8:DDRAM地址设置指令9:读忙信号和光标地址 BF位 为忙标志位,高电平表示忙,此时模块不能接收命令或者数据指令10:写数据指令11:读数据4.4 并口通讯电路PC并口是25针,在下载程序到单片机时必须采用合理的ISP下载线,JTAG接口解决了这个问题。五. 购买元器件、焊接过程体会及实习总结5.1一开始宋老师要求我们自己买元器件,我们很反感,感觉多此一举,因为以前的实习都是老师统一发放零件,让我们做实习更简单。可是真的到了华中科技市场,才知道自己还欠缺很多,好多的元器件都不认识,甚至连自己要买什么都不清楚。来来回回跑了三趟,才真的把元器件买齐。看着终于可以写进程序的板子,我们真的感到很开心,也非常感谢老师给我们这次锻炼的机会,如果没有这次经历,直到现在我们还不知道自己差的很远。在焊接过程中,由于没有吃透电路图的设计,对某些原件的焊接顺序等技巧没有合理掌握,造成焊错焊反的结果,这是十分值得警惕注意的,在后来的过程中,由于需要添加别的原件以及通过并口下载线烧录程序,某些之前没有仔细布局好的地方成了很大的障碍。5.2实习了十天的我们学会了很多东西,培养了动手能力也为我们以后的工作打下了良好的基础。通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。在设计的过程中遇到问题,可以说得是困难重重,这毕竟第一次做的,难免会遇到过各种各样的问题,同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固。这次课程设计终于顺利完成了,在设计中遇到了很多专业知识问题,最后在老师的辛勤指导下,终于游逆而解。同时,在老师的身上我们学也到很多实用的知识,在次我们表示感谢!同时,对给过我帮助的所有同学和各位指导老师再次表示忠心的感谢!六源程序6.1 LED#includereg51.hunsigned char Key;unsigned char code value16= 0x0e7,0x0d7,0x0b7,0x077, 0x0eb,0x0db,0x0bb,0x07b, 0x0ed,0x0dd,0x0bd,0x07d, 0x0ee,0x0de,0x0be,0x07e ;void delay() unsigned int t; t=2000; while(t-);void ScanKey() unsigned char P0Buf,scan,j; P0=0x0f; P0Buf=P0; if(P0Buf!=0x0f) P0=0xf0; scan=P0Buf; P0Buf=P0; scan=scan+P0Buf; for(j=0;j16;j+) if(valuej=scan) Key=j; break; void main() Delay(); Key=0x00; while(1) ScanKey(); P1=0x40+Key; 6.2 1602液晶#includereg51.hunsigned char Led8=0,1,2,3,4,5,6,7;void delay() unsigned int t; t=20000; while(t-);void Display() unsigned char i,P1Buf; for(i=0;i=7;i+) P1Buf=i*2; P1Buf=P1Buf4; P1Buf=Ledi+P1Buf; P1=P1Buf; delay(); void main() delay(); while(1) /* P1=0x00; P1=0x21; P1=0x42; P1=0x63; P1=0x84; P1=0xa5; P1=0xc6; */ Display(); 6.4定时器#includereg51.hvoid T0Server() interrupt 1 TL0=0XAF; TH0=0X3C;/重载初值 TR0=1; P10=P10;void main() TMOD=0x01;/定时器0 方式1 TL0=0XAF; TH0=0X3C;/50mS TR0=1;/启动定时 ET0=1;/启动中断 EA=1; while(1);6.3中断#includereg51.hvoid delay() unsigned char t=100; while(t-);void ledon() interrupt 0 EA=0; EX0=0; P10=P10; EX0=1; EA=1;void main() delay(); IT0=1;/边缘 EX0=1;/INT0允许 EA=1;/全局中断允许 while(1);6.5 4*4键盘输入#includereg51.hunsigned char Led8=1,2,3,4,5,6,7,8;unsigned char KeyV=0;unsigned char code Key16= 0x77,0x7b,0x7d,0x7e, 0xb7,0xbb,0xbd,0xbe, 0xd7,0xdb,0xdd,0xde, 0xe7,0xeb,0xed,0xee ;void delay() unsigned char t; t=200; while(t-);void dly() unsigned int q; q=2000; while(q-);void display() unsigned char i,P1Buf; for(i=0;i=7;i+) P1Buf=i*2; P1Buf=P1Buf4; P1Buf=P1Buf+Ledi; P1=P1Buf; delay(); /*0为放开,1为未放开*/unsigned char up() unsigned char P0Buf; P0=0xf0; delay(); P0Buf=P0; return(P0Buf-0xf0);void scan() unsigned char P0Buf,P0Buf2,i; P0=0xf0; P0Buf=P0; if(P0Buf!=0xf0) dly(); P0=0xf0; P0Buf=P0; if(P0Buf!=0xf0) P0=0x0f; P0Buf2=P0; P0Buf=P0Buf+P0Buf2; KeyV=P0Buf; while(up() display(); /*判断按键放开*/ for(i=0;i0;i-) Ledi=Ledi-1; Led0=KeyV; void main() dly(); while(1) scan(); display(); 6.6计算器#include #include #include #define delayNOP(); _nop_();_nop_();_nop_();_nop_();void delay(unsigned char x); /x*0.14MSvoid delay1(int ms);unsigned char kk=0; /输入显示屏位数sbit IRIN = P32; /红外接收器数据线unsigned char cod= ; /符号的数组unsigned char co=0; /第几个符号和数字unsigned char shu= ; /数字的数组unsigned char IRCOM7; /?sbit LCD_RS = P26;sbit LCD_RW = P25;sbit LCD_EN = P27;/*/* */*检查LCD忙状态 */*lcd_busy为1时,忙,等待。lcd-busy为0时,闲,可写指令与数据。 */* */*/bit lcd_busy() bit result; LCD_RS = 0; LCD_RW = 1; LCD_EN = 1; delayNOP(); result = (bit)(P0&0x80); LCD_EN = 0; return(result); /*/* */*写指令数据到LCD */*RS=L,RW=L,E=高脉冲,D0-D7=指令码。 */* */*/void lcd_wcmd(unsigned char cmd) while(lcd_busy(); LCD_RS = 0; LCD_RW = 0; LCD_EN = 0; _nop_(); _nop_(); P0 = cmd; delayNOP(); LCD_EN = 1; delayNOP(); LCD_EN = 0;/*/* */*写显示数据到LCD */*RS=H,RW=L,E=高脉冲,D0-D7=数据。 */* */*/void lcd_wdat(unsigned char dat) while(lcd_busy(); LCD_RS = 1; LCD_RW = 0; LCD_EN = 0; P0 = dat; delayNOP(); LCD_EN = 1; delayNOP(); LCD_EN = 0;/*/* */* LCD初始化设定 */* */*/void lcd_init() delay1(15); lcd_wcmd(0x38); /16*2显示,5*7点阵,8位数据 delay1(5); lcd_wcmd(0x38); delay1(5); lcd_wcmd(0x38); delay1(5); lcd_wcmd(0x0c); /显示开,关光标 delay1(5); lcd_wcmd(0x06); /移动光标 delay1(5); lcd_wcmd(0x01); /清除LCD的显示内容 delay1(5);/*/* */* 设定显示位置 */* */*/void lcd_pos(unsigned char pos) lcd_wcmd(pos | 0x80); /数据指针=80+地址变量/*/main() unsigned char code cdis1 = calculator ; unsigned char code cdis2 = loading. ; unsigned char m; long jj=1000; IRIN=1; /I/O口初始化 shu0=0; delay1(10); /延时 lcd_init(); /初始化LCD /初始化/ while(jj-) lcd_pos(0); /设置显示位置为第一行的第1个字符 m = 0; while(cdis1m != 0) /显示字符 lcd_wdat(cdis1m); m+; lcd_pos(0x40); /设置显示位置为第二行第1个字符 m = 0; while(cdis2m != 0) lcd_wdat(cdis2m); /显示字符 m+; / lcd_wcmd(0x01); /清屏IE = 0x81; /允许总中断中断,使能 INT0 外部中断TCON = 0x01; /触发方式为脉冲负边沿触发 while(1); /end main/*/void jisuan(unsigned char dodo)/计算 dodo为键值 unsigned int v=0; / 运算的数字 unsigned char b;/ 得数的位 unsigned char ans; unsigned char ww=0x40;/输出显示的位 unsigned char ca=0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39; /输出显示的字符 unsigned char dd=0; unsigned char cow; if (dodo=15) co=0;v=0;shu0=0; /*/ if (dodo=10&dodo=0&dodo=9) /数字出现 shuco=shuco*10+dodo; /*/ if (dodo=14) /等号出现 b=0; /计算过程/ cow=co;ans=shu0; /cow为运算符号总数 for(co=0;cocow;co+) if (codco=12) shuco+1=(shuco*shuco+1); for(v=co;vcow;v+) shuv=shuv+1; codv=codv+1; co-=1; cow-=1; /* while(codv=12|codv=13) shuv=shuv+1; v-=1; /连乘的两端都是本次连乘的积 */ ans=shu0; if(codco=13) v=co; shuco+1=(shuco/shuco+1); for(v=co;vcow;v+) shuv=shuv+1; codv=codv+1; co-=1; cow-=1; /* while(codv=13|codv=12) shuv=shuv+1; v-=1; /连除的两端都是本次连除的商 */ ans=shu0; if(codco=10) /最后加 ans=ans+shuco+1; if(codco=11) /最后减 ans=ans-shuco+1; / v=ans; while(v) /判断结果位数 v=v/10; b+ ; while(b) /显示结果 v=ans/pow(10,b-1); ans=(ans-(v*(pow(10,b-1); lcd_pos(ww+); lcd_wdat(cav); b-=1; /*/*/void IR_IN() interrupt 0 using 0 unsigned char j,k,N=0; unsigned char z; /伪键值 unsigned char zz; /真键值 EX0 = 0; delay(15); if (IRIN=1) EX0 =1; return; /确认IR信号出现 while (!IRIN) /等IR变为高电平,跳过9ms的前导低电平信号。 delay(1); for (j=0;j4;j+) /收集四组数据 for (k=0;k=30) EX0=1; return; /0.14ms计数过长自动离开。 /高电平计数完毕 IRCOMj=IRCOMj 1; /数据最高位补“0” if (N=8) IRCOMj = IRCOMj | 0x80; /数据最高位补“1” N=0; /end for k /end for j if (IRCOM2!=IRCOM3) EX0=1; return; IRCOM5=IRCOM2 & 0x0F; /取键码的低四位 IRCOM6=IRCOM2 4 ; /右移4次,高四位变为低四位 if(IRCOM59) IRCOM
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 人教版四年级数学上册第五单元平行四边形和梯形学业质量测评卷(含答案)
- 第六单元提优测试卷(含答案) 五年级数学上册(人教版)
- 农业市场风险预测-洞察及研究
- 2025年高校教师资格证之高等教育心理学考试题库附答案ab卷
- 社区党务笔试题及答案
- 中心厨房安全管理办法
- 警械培训机构管理办法
- 产品品牌评估管理办法
- 专项小组工作管理办法
- 中央外事接待管理办法
- (2025秋新修订)人教版三年级数学上册全册教案(教学设计)
- 一例股骨颈骨折个案护理
- 【经典】高一英语完形填空专题练习及答案共20篇
- MySQL数据库PPT完整全套教学课件
- 顶管施工方案(泥水平衡法)
- 机器视觉课件
- 客舱广播词的基本知识
- 砌筑砂浆试块强度统计、评定记录表
- 重症监护室环境清洁消毒PPT
- 检伤分类-课件
- 金坛区苏科版五年级上册劳动《10木笔筒》课件
评论
0/150
提交评论