基于51单片机的三角波输出系统设计(共21页).doc

上传人:飞****2 文档编号:17381490 上传时间:2022-05-23 格式:DOC 页数:21 大小:402KB
返回 下载 相关 举报
基于51单片机的三角波输出系统设计(共21页).doc_第1页
第1页 / 共21页
基于51单片机的三角波输出系统设计(共21页).doc_第2页
第2页 / 共21页
点击查看更多>>
资源描述

《基于51单片机的三角波输出系统设计(共21页).doc》由会员分享,可在线阅读,更多相关《基于51单片机的三角波输出系统设计(共21页).doc(21页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、精选优质文档-倾情为你奉上目 录1 前言单片机(SCM)是单片机微型计算机(Single Chip Microcomputer)的简称.它是把组成微型计算机的各个功能部件:中央处理器CPU、随机存取存储器RAM、只读存储器ROM、I/O接口电路、定时/计数以及串行通信接口等部件集成在一块芯片中,构成一个完整的微型计算机。单片机具有体积小、可靠性高、功能强大、方便灵活等优点而得到广泛应用,主要涉及智能化仪器仪表、自动化装置、家用电器、医用设备、计算机网络和通信等领域。 在教学、实验和生产的许多实验场合,常常需要临时的频率可方便调节的信号发生器。但是市场上的函数发生器相对较贵,因为它们一般都是利用

2、专用数字合成DSS芯片,虽然能产生任意波形并达到很高的频率,但是成本较高。而如果用分立元件组成函数发生器,通常只能产生低频信号,而且工作不稳定,不易调试。利用51系列单片机制作一个简易的函数发生器,具有成本低、理论能产生任意波形,达到较高的频率,且易于设计和调试的优点。基于性价比的考虑,决定采用STC的89C51单片机来设计函数发生器,使它能够产生幅度,频率在一定范围内可调的三角波。2 三角波输出系统设计方案系统由89C51单片机通过扫描键盘,按照幅度键(S1S3)不同的键值来调用不同子程序实现多种幅度的产生,按照频率键(S5S7)的不同的键值来改变延时实现多种频率的产生。由单片机产生的10位

3、串行数字信号通过P0口输入到TLC5615进行D/A转换,输出的模拟波形输出到示波器显示。如图1所示。图1 三角波发生器原理框图波形的产生采用定点法,即将一个周期的三角波等间距的分为若干个点,计算出各点的对应的三角波函数值,并将其转化为10位串行输入D/A的数据格式,得到一个三角波函数表。通过程序将该表存于单片机的程序存储器中,可以制作多个表,从而产生多个幅度值,通过按键的控制,调用不同的子程序,也就调用了不同的函数表。当通过按键确定调用某个子程序时,利用延时程序来产生延时,延时时间到,查表得到该点对应的输出值,然后通过D/A转换得到该点的对应电压值。如此,周而复始的查表输出,就得到所要的三角

4、波。由于一个周期三角波的点数固定,改变延时程序的延时时间,就可以改变相邻两点的时间间隔,从而改变三角波的频率。3 三角波输出系统硬件电路设计3.1 三角波输出系统总电路设计 按照上述方案设计的硬件电路如图2所示,它主要包括单片机最小系统,一片D/A转换芯片和键盘扩展。图2 系统硬件电路图3.2 三角波输出系统单元电路设计3.2.1 单片机最小系统选用STC89C51单片机,它可以降低成本,提升性能,内部FLASH擦除次数为100,000次以上,STC89C51系列单片机出厂时就已完全加密,无法解密,程序可以通过专门的软件写入,一边校验一边写。时钟电路的晶振频率为11.0592MHz。3.2.2

5、 波形输出电路波形有一片D/A转换器TLC5615输出。TLC5615是8位封装的10位电压输出的D/A转换器,输出电压为基准电压的两倍,5V单电源工作,3线串行接口,建立时间为12.5微秒,器件具有上电复位功能,以确保可重复启动。TLC5615的内部结构主要由10位移位寄存器、10位D/A寄存器、D/A转换权电阻、基准缓冲器、控制逻辑和两倍程放大器等电路组成。TLC5615的引脚如图3所示。各引脚功能介绍如下:DIN:串行数据输入脚。 OUT:模拟信号输出脚。 SCLK:串行时钟输入脚。:片选端,低电平有效。DOUT:菊花链的串行数据输出端。 AGND:模拟地。 REFIN:基准输入端,一般

6、接2V到(Vcc)V。 图3 TLC5615的引脚图Vcc:电源端,一般接5V TLC5615与89C51的接口电路如图4所示。TLC5615通过固定增益为2的运放缓冲电阻网络,把10位数字数据转换为模拟电压。上电时,内部电路把D/A寄存器复位为0。其输出具有与基准输入相同的极性,表达式为图4 TLC5616与89C51的接口电路TLC5615的工作时序如图5所示。图5 TLC5615的典型工作时序TLC5615最大的串行时钟速率不超过14MHz,10位DAC的建立时间为12.5微秒,通常更新速率限制在80kHz,以内,TLC5615的16位移位寄存器在SCLK的上升沿从DIN引脚输入数据,高

7、位在前,低位在后。16位移位寄存器中的中间10位数据在上升沿的作用下打入10位D/A寄存器供给D/A转换,16位数据的高4位和低2位不会被转换,因此待转换的数据输入格式应为:表1 TLC5615数据输入格式输入序号12345678910111213141516输入数据XXXXXX由于SPI和89C51的接口传送的是字节形式的数据,需用两个字节传送待转换的数据,因此,要把数据输入到D/A转换器需要两个写周期。由公式可知,TLC5615的输出电压范围为02,见表2所示,为该片D/A转换器的参考电压。表2 输入数据量与输出电压的关系输 入 码模拟输出电压 11111111112(1023/1024)

8、 10000000002(512/1024) 0000000000203.2.3 键盘扩展电路输出波形幅度、频率的设定由键盘控制。利用单片机的P2口扩展一个44键盘。键盘的4根行线接到单片机的P2.0到P2.3口线,4根列线接P2.4到P2.7口线。其中,S1S3定义为幅度控制键,可以产生三种不同幅度的三角波。S5S7定义为频率控制键,可以产生三种不同频率的三角波。如图6所示。图6 键盘示意图键码表如表3所示。表3 键盘键码表77B7D77BBBDB4 三角波输出系统程序设计程序采用汇编语言书写,采用模块化结构,不仅使用方便,而且阅读、修改简单。程序包括初始化、波形产生、键盘管理三个模块。程序

9、运行时,通过调用键盘扫描程序,扫描到的键值赋到寄存器R4。输出不同幅度波形的判断程序TRANS通过判断当前的R4值来决定输出波形的幅度。频率的选择则是通过判断R4的值来调用不同的延时程序来决定的。4.1 初始化模块初始化模块主要用于I/O口的定义,便于程序的编写。这部分的程序如下:DIN BIT P0.7SCLK BIT P0.6CS5615 BIT P0.54.2 波形产生模块采用定点法产生波形,将所要输出的波形按一个周期分成64个点,因为D/A转换器的输入数据格式是16位的,所以一个点占2个字节,即高8位和低8位各一个字节。通过计算,做成一个表存于单片机存储器中。这个系统一共有三个表,第一

10、个表的Code的范围是01023,因此它的输出幅度为02,第二个表的Code的范围是0511,因此它的输出幅度为0,第三个表的Code的范围是0255,因此它的输出幅度为00.5。频率可以通过调用不同的延时程序来改变,三个不同的延时程序可以产生三种不同的频率,延时时间一到,查表输出下一个点的数据,如此循环即可。程序流程图如图7所示。图7 三角波产生程序流程图其程序清单如下:PR:MOV R7,#00H ;查表指针初始化SETB CS5615 CLR SCLK ;准备操作TLC5615CLR CS5615 ;选中TLC5615MOV R0,#00H ;数据指针初始化MOV A,R0 ;装入高8位

11、数据MOV R1,#08HMOV DPTR,#TRITABMOVC A,A+DPTRLOOPH:NOPNOPRLC A ;最高位移向TLC5615 MOV DIN,CSETB SCLK ;产生上升沿,移入一位数据NOPNOPCLR SCLKDJNZ R1,LOOPHINC R0MOV A,R0 ;装入低8位数据MOV R1,#08HMOVC A,A+DPTRLOOPL:NOP ;延时NOPRLC A ;最高位移向TLC5615MOV DIN,CSETB SCLK ;产生上升沿,移入一位数据NOPNOPCLR SCLKDJNZ R1,LOOPLSETB CS5615 ;结束移位操作,将转换数据中

12、间10位送入寄存器进行D/A转换INC R7 ;查表指针加一LCALL DELAY ;延时CLR CS5615INC R0 ;数据指针加一MOV A,R0 ;准备取下一个点MOV R1,#08HMOV DPTR,#TRITABMOVC A,A+DPTRCJNE R7,#64,LOOPH ;64个点取完?否则接着取下一个点AJMP PR4.3 键盘管理模块按照前面硬件电路设计,首先对键盘进行“全盘扫描”,判断是否有键按下。若有键按下则对键盘进行“逐行扫描”,进行键译码,并将该键的键码读出来,然后按各命令键转到相应的程序进行处理,可以将键盘管理分成三部分:键盘扫描部分键盘的全盘扫描部分主要是判断是

13、否有键按下。把每个键都分成水平和垂直的两端接入,扫描码从水平的输入,代表那一行所接收到的扫描码是同一个位,而读入扫描码的则是垂直,扫描的动作是先输入扫描码,再去读取输入的值,经过比对之后就可知道是哪个键被按下。比如说扫描码送入,后面的1110是代表此时扫描P2.0行,而前面的1111是让读取的4行接脚先设为VDD,若此时P2.0行的第三列按键被按下,那读取的结果就会变成(注意1111变成1101),其中P2.5会由1变成0,这是因为这个按键被按下之后,会被水平的扫描码电位拉到0,此即为扫描原理。由于这种按键是机械式的开关,当按键被按下时,键会震动一小段时间才稳定,为了避免让8051误判为多次输

14、入同一按键,我们必须在侦测到有按键被按下,就Delay一小段时间,使键盘到达稳定状态,再去判读所按下的键的值,就可以让键盘的输入稳定。程序流程图如图8所示。图8 键盘扫描程序流程图程序清单如下:TEST: MOV P2,#0F0H ;P2.0-P2.3输出0,P2.4-P2.7输出1,作为输入位 MOV A,P2 ;读键盘,检测有无键按下 ANL A,#0F0H ;屏蔽P2.0-P2.3,检测P2.4-P2.7是否全为1 CJNE A,#0F0H,HAVE ;P2.4-P2.7不全为1,有键按下 SJMP TEST ;P2.0-P2.3全为1,无键按下,重新检测键盘HAVE: MOV A,#0

15、FEH ;有键按下,逐行扫描键盘,置扫描处置NEXT: MOV B,A ;扫描码暂存于B MOV P2,A ;输出扫描码READ: MOV A,P2 ;读键盘 ANL A,#0F0H ;屏蔽P2.0-P2.3,检测P2.4-P2.7是否全为1 CJNE A,#0F0H,YES ;P2.4-P2.7不全为1,该行有键按下 MOV A,B ;被扫描行无键按下,准备查下一行 RL A ;置下一行扫描码 CJNE A,0EFH,NEXT ;未扫到最后一行循环 YES:MOV R7,#80 ;消除抖动(延时) D2:MOV R6,#248 ;延时时间(248*2112)*4020000*1us=20ms

16、 DJNZ R6,$ NOP DJNZ R7,D2 RERD:MOV A,P2 ;再读键盘 ANL A,#0F0H ;屏蔽P2.0-P2.3,保留P2.4-P2.7 MOV R2,A ;暂存列码 MOV A,B ANL A,#0FH ;取行扫描码 ORL A,R2 ;行码、列码合并为键编码 MOV R4,A ;键编码存于R4按键处理部分由上面键盘逐行扫描得到按键的键值后,要进行相应的处理:即通过判断R4的值转到不同的子程序,调用不同的延时程序,由于只选用了16个键盘中的6个,所以当按下其余的键时,程序会产生默认幅度值和频率值的波形。当按下S1键时,它的键值为77H,程序会跳转到PR0,PR0调

17、用的是第一个表,也就是产生第一种幅,。当按下S2键时,它的键值为B7H,程序会跳转到PR1,PR1调用的是第二个表,也就是产生第二种幅度,当按下S3键时,它的键值为D7H,程序会跳转到PR2,PR2调用的是第三个表,也就是产生第三种幅度,在这三种情况下,频率都是默认的。当按下S5键是,它的键值为7BH,DELAY会跳转执行第一个延时t0_50Hz,当按下S6键时,它的键值为BBH,DELAY会跳转执行第二个延时t0_10Hz,当按下S7键时,它的键值为DBH,DELAY会跳转执行第三个延时t0_1Hz,这样就可以改变三角波的频率了,而在这三种情况下,幅度是默认的。程序清单如下:TRANS:CJ

18、NE R4,#77H,S1 ;R4 是读入的键位值 AJMP PR0 ;转到子程序PR0,第一种幅度S1: CJNE R4,#0B7H,S2 AJMP PR1 ;转到子程序PR1,第二种幅度S2: CJNE R4,#0D7H,S3S3: AJMP PR2 ;转到子程序PR2,第三种幅度 DELAY: CJNE R4,#7BH,KEY1 ;R4 是读入的键位值 AJMP t0_50Hz ;跳转到t0_50Hz,第一种频率KEY1: CJNE R4,#0BBH,KEY2 AJMP t0_10Hz ;跳转到t0_10Hz,第二种频率KEY2: CJNE R4,#0DBH,KEY3KEY3: AJMP

19、 t0_1Hz ;跳转到t0_1Hz,第三种频率t0_50Hz: t0_10Hz: t0_1Hz: 4.4 三角波输出系统总程序为了更好地反映各个软件子模块间的内在联系,表达各个子模块的功能,画出程序总流程图如图9所示。图9 系统总程序流程图根据流程图将各个子程序模块连接起来,加入适当的跳转语句,可得系统总程序如下所示:专心-专注-专业DIN BIT P0.7SCLK BIT P0.6CS5615 BIT P0.5ORG 0000H KEY: LCALL TESTTRANS:CJNE R4,#77H,S1 AJMP PRS1: CJNE R4,#0B7H,S2 AJMP PR1S2: CJNE

20、 R4,#0D7H,S3S3: AJMP PR2PR0:MOV R7,#00HSETB CS5615CLR SCLKCLR CS5615MOV R0,#00HMOV A,R0MOV R1,#08HMOV DPTR,#TRITABMOVC A,A+DPTRLOOPH:NOPNOPRLC AMOV DIN,CSETB SCLKNOPNOPCLR SCLKDJNZ R1,LOOPHINC R0MOV A,R0MOV R1,#08HMOVC A,A+DPTRLOOPL:NOPNOPRLC A MOV DIN,CSETB SCLKNOPNOPCLR SCLKDJNZ R1,LOOPLSETB CS561

21、5INC R7LCALL DELAYCLR CS5615INC R0MOV A,R0MOV R1,#08HMOV DPTR,#TRITABMOVC A,A+DPTRCJNE R7,#64,LOOPHAJMP PR0PR1:MOV R7,#00HSETB CS5615CLR SCLKCLR CS5615MOV R0,#00HMOV A,R0MOV R1,#08HMOV DPTR,#TRITAB1MOVC A,A+DPTRLOOPH11:NOPNOPRLC AMOV DIN,CSETB SCLKNOPNOPCLR SCLKDJNZ R1,LOOPH11INC R0MOV A,R0MOV A,R0M

22、OV R1,#08HMOVC A,A+DPTRLOOPL11:NOP NOP RLC A MOV DIN,CSETB SCLKNOPNOPCLR SCLKDJNZ R1,LOOPL11SETB CS5615INC R7LCALL DELAYCLR CS5615INC R0MOV A,R0MOV R1,#08HMOV DPTR,#TRITAB1MOVC A,A+DPTRCJNE R7,#64,LOOPH11AJMP PR1PR2:MOV R7,#00HSETB CS5615CLR SCLKCLR CS5615MOV R0,#00HMOV A,R0MOV R1,#08HMOV DPTR,#TRIT

23、AB2MOVC A,A+DPTRLOOPH3:NOPNOPRLC AMOV DIN,CSETB SCLKNOPNOPCLR SCLKDJNZ R1,LOOPH3INC R0MOV A,R0MOV A,R0MOV R1,#08HMOVC A,A+DPTRLOOPL3:NOPNOPRLC A MOV DIN,CSETB SCLKNOPNOPCLR SCLKDJNZ R1,LOOPL3SETB CS5615INC R7LCALL DELAYCLR CS5615INC R0MOV A,R0MOV R1,#08HMOV DPTR,#TRITAB2MOVC A,A+DPTRCJNE R7,#64,LOOP

24、H3AJMP PR2DELAY: CJNE R4,#7BH,KEY1 AJMP t0_50Hz KEY1: CJNE R4,#0BBH,KEY2 AJMP t0_10HzKEY2: CJNE R4,#0DBH,KEY3KEY3: AJMP t0_1Hzt0_50Hz: MOV R6,#60 DJNZ R6,$ RETt0_10Hz:MOV R5,#3 D0:MOV R6,#248 DJNZ R6,$ NOP DJNZ R5,D0 RETt0_1Hz:MOV R5,#30 D1:MOV R6,#248 DJNZ R6,$ NOP DJNZ R5,D1 RETTEST: MOV P2,#0F0H

25、MOV A,P2 ANL A,#0F0H CJNE A,#0F0H,HAVE SJMP TESTHAVE: MOV A,#0FEHNEXT: MOV B,A MOV P2,AREAD: MOV A,P2 ANL A,#0F0H CJNE A,#0F0H,YES MOV A,B RL A CJNE A,0EFH,NEXT YES:MOV R7,#80 D2:MOV R6,#248 DJNZ R6,$ NOP DJNZ R7,D2 RERD:MOV A,P2 ANL A,#0F0H MOV R2,A MOV A,B ANL A,#0FH ORL A,R2MOV R4,A RETTRITAB:DB0

26、FFH,80H,0FFH,00H,0FEH,80H,0FEH,00H,0FDH,80H,0FDH,00H,0FCH,80H,0FCH,00HDB 0FBH,80H,0FBH,00H,0FAH,80H,0FAH,00H,0F9H,80H,0F9H,00H,0F8H,80H,0F8H,00HDB 0F7H,80H,0F7H,00H,0F6H,80H,0F6H,00H,0F5H,80H,0F5H,00H,0F4H,80H,0F4H,00HDB 0F3H,80H,0F3H,00H,0F2H,80H,0F2H,00H,0F1H,80H,0F1H,00H,0F0H,80H,0F0H,00HDB 0F0H,

27、80H,0F1H,00H,0F1H,80H,0F2H,00H,0F2H,80H,0F3H,00H,0F3H,80H,0F4H,00HDB 0F4H,80H,0F5H,00H,0F5H,80H,0F6H,00H,0F6H,80H,0F7H,00H,0F7H,80H,0F8H,00HDB 0F8H,80H,0F9H,00H,0F9H,80H,0FAH,00H,0FAH,80H,0FBH,00H,0FBH,80H,0FCH,00HDB 0FCH,80H,0FDH,00H,0FDH,80H,0FEH,00H,0FEH,80H,0FFH,00H,0FFH,80H,0FFH,0F0H;第一种幅度TRITA

28、B1:DB 0F7H,0C0H,0F7H,80H,0F7H,40H,0F7H,00H,0F6H,0C0H,0F6H,80H,0F6H,40H,0F6H,00HDB 0F5H,0C0H,0F5H,80H,0F5H,40H,0F5H,00H,0F4H,0C0H,0F4H,80H,0F4H,40H,0F4H,00HDB 0F3H,0C0H,0F3H,80H,0F3H,40H,0F3H,00H,0F2H,0C0H,0F2H,80H,0F2H,40H,0F2H,00H DB 0F1H,0C0H,0F1H,80H,0F1H,40H,0F1H,00H,0F0H,0C0H,0F0H,80H,0F0H,40H,

29、0F0H,00HDB 0F0H,40H,0F0H,80H,0F0H,0C0H,0F1H,00H,0F1H,40H,0F1H,80H,0F1H,0C0H,0F2H,00HDB 0F2H,40H,0F2H,80H,0F2H,0C0H,0F3H,00H,0F3H,40H,0F3H,80H,0F3H,0C0H,0F4H,00HDB 0F4H,40H,0F4H,80H,0F4H,0C0H,0F5H,00H,0F5H,40H,0F5H,80H,0F5H,0C0H,0F6H,00HDB 0F6H,40H,0F6H,80H,0F6H,0C0H,0F7H,00H,0F7H,40H,0F7H,80H,0F7H,0

30、C0H,0F7H,0F0H;第二种幅度TRITAB2:DB 0F3H,0E0H,0F3H,0C0H,0F3H,0A0H,0F3H,80H,0F3H,60H,0F3H,40H,0F3H,20H,0F3H,00HDB 0F2H,0E0H,0F2H,0C0H,0F2H,0A0H,0F2H,80H,0F2H,60H,0F2H,40H,0F2H,20H,0F2H,00HDB 0F1H,0E0H,0F1H,0C0H,0F1H,0A0H,0F1H,80H,0F1H,60H,0F1H,40H,0F1H,20H,0F1H,00HDB 0F0H,0E0H,0F0H,0C0H,0F0H,0A0H,0F0H,80H,

31、0F0H,60H,0F0H,40H,0F0H,20H,0F0H,00HDB 0F0H,20H,0F0H,40H,0F0H,60H,0F0H,80H,0F0H,0A0H,0F0H,0C0H,0F0H,0E0H,0F1H,00HDB 0F1H,20H,0F1H,40H,0F1H,60H,0F1H,80H,0F1H,0A0H,0F1H,0C0H,0F1H,0E0H,0F2H,00HDB 0F2H,20H,0F2H,40H,0F2H,60H,0F2H,80H,0F2H,0A0H,0F2H,0C0H,0F2H,0E0H,0F3H,00HDB 0F3H,20H,0F3H,40H,0F3H,60H,0F3H

32、,80H,0F3H,0A0H,0F3H,0C0H,0F3H,0E0H,0F3H,0F0H;第三种幅度END5 系统调试首先,将源程序进行编译,将汇编程序提示出错的地方改正之后,再进行汇编,提示汇编成功,已生成hex.文件。然后,通过计算机的串口将程序烧写到单片机中,进行调试。上电后,将TLC5615的模拟信号输出脚接到示波器上,观察波形。在调试时,发现键盘不起作用,频率和幅度不可调,检查程序也没发现错误,在经过了好多次的测试之后,终于发现原来键盘编码与书上的有不同,而我的程序中的键码表是按照书上的设的。在改正了之后,按键就可以控制幅度和频率了。还有在调试时,发现波形很奇怪,如左图所示。而正确的

33、波形应该如右图所示。 图10 错误形式的三角波 图11 正确形式的三角波 在仔细检查了程序之后,终于发现问题的所在,原来延时程序所用的寄存器和主程序中用来控制跳转的寄存器有重叠,因此在调用了延时程序之后,寄存器的值就永远是零了,程序就一直在循环,取标指针一直在增加,而没有清零,只有等到它溢出之后,才会被重新置零。因为我所设的表是64个点,也就是128字节,所以第二个周期的64个点是取自第二个表的,幅度也就减小了一半。将延时程序的重复的那个寄存器换了之后,再测试,就正确了。用万用表测得系统的基准电压约为2.1V,在选择了第三种幅度(最大幅度等于2倍基准电压的1/4)和频率为50Hz的波形后,用示

34、波器观察波形,测得幅度为0.98V,频率为46Hz。计算得幅度误差为频率误差为幅度误差的原因主要是硬件因素,单片机的本身的因素和示波器的测量准确度都可能产生幅度误差。频率误差除了硬件因素外,程序本身的延时的计算误差是主要原因,单片机的晶振频率为11.0592MHz,为了便于计算,取的是12MHz。还有,虽然我也把程序执行的时间都计算进去了,但是难免也存在误差。因此,存在误差也是意料之中的。6 心得体会单片机课程设计是单片机教学中的重要环节,可以将我们课堂所学的理论知识付诸实践,起到理论联系实际的作用。很庆幸,在课程设计的整个过程中我没有实行“拿来主义”,在“挫折”和“悲观”时查找有关资料,汲取

35、精华,才有了最后的结果。同时要感谢同学帮助,是他们的及时点拨让我茅塞顿开,最后出色的完成了任务!做了三周的课程设计,有很多的感受。不光只有关于学习的,更多是关于做人的。我发现,如果自己有了兴趣,就动手去做,困难在你的勇气和毅力下是抬不了头的。可能以前我对单片机不是很喜欢,甚至有些厌恶,因为那些程序真的看得很令人发昏,但是,当我真的想去把它专研的很透的时候,我发现,原来我很痴迷单片机。就拿按键不灵这件事来说吧,在把程序检查了好几遍之后,还没有解决的时候,我真的很想放弃,另外用一套程序算了,可是,心中有一个疙瘩,卡在那里。在测试了几十次之后,我终于发现了问题的所在,真的是很激动啊。从做这个系统开始

36、,我就没有一丝的放弃的念头。出于对知识的渴望,出于对新技术的好奇,出于对一切未知的求知。我完成了这次课程设计,不过这只是我学习路上的驿站,未来几年,单片机技术的发展会是怎么样,我们谁都不知道,但肯定会是日新月异,因此,我必须时刻充实我的知识,这只是一个起点。嵌入式技术现在很火,一些智能机器人、智能自动装置内部都离不开单片机的身影,其实,这些只是它的外壳,我们要学的是它的思想,然后创新。古语说的好:学无止境啊!参考文献1 蒋廷彪. 单片机原理及应用(MCS51). 重庆:重庆大学出版社,20032 李群芳. 单片微型计算机与接口技术(第2版). 北京:电子工业出版社,20053 刘文涛单片机应用开发实例北京:清华大学出版社,20054 周航慈. 单片机程序设计基础. 北京:北京航空航天大学出版社,2000 5 李华贵 串行10位数/模转换器TLC5615及其在单片机中的应用. 国外电子元器件,1999年第5期6 万 江SPI总线在51单片机系统中的实现电子制作,2007年第1期7 钱 宏单片机在多种波形发生器中的应用现代电子技术,2003年第3期

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 教案示例

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁