网站大量收购独家精品文档,联系QQ:2885784924

51单片机高级教程.doc

  1. 1、本文档共66页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
51单片机高级教程

51系列单片机高级实验教程 高级实验目录 实验一:数字时钟 ………………………………2 实验二:电子音乐 ……………………………...19 实验三:步进马达控制 ………………………….26 实验四:D/A数模转换 ……………………….…33 实验五:RS232通信串口数据传输 ………….…37 实验六: I2C总线控制实验 …………………….40 实验七: 气压测量系统实验 ……………………..46 实验八: 短距离无线数据传输系统 ……………..50 实验九: GPS全球定位系统实验 ………………...60 =温馨提示 高级实验的实验电路图要自己搭建,程序代码仅供参考 部分程序改下程序I/O就可以在开发板上运行 (实验源代码请看附光盘) 实验一 数字时钟 实验说明: 本实验使用8051的PORT1连接到LCD显示器的数据线,P3_3、P3_4和P3_5则连接到LCD显示器的控制线。程序执行时LCD显示器会显示出数字时钟的时间和日期。8051的PORT2连接到4×4小键盘,允许用户修改时间和日期。 这个电路的主要设计思想是利用8051的P3_3、P3_4和P3_5作为控制线,分别控制LCD的E(引脚6)、R/W(引脚5)、RS(引脚4)。然后将8051的PORT0当作数据总线连接到LCD的数据总线DB0~DB7上。 为了设置时间,我们加入了4×4小键盘,小键盘连接到8051的PORT2,允许用户修改时间和日期。4×4小键盘上的B是功能键,没按下一次后,就可以在正常显示模式和调整时间模式之间切换。当进入调整时间模式时,用户可以直接输入时间和日期,输入之后再按下小键盘上的B键就可以恢复正常的时间显示。 注:有关LCD显示的知识请大家参阅LCD技术文档。 电路图: 程序设计: 这个实验的项目一共包含了4个程序文件,分别为ex3-1.c、keypad.c、lcd.c、和delay100us.c。各文件的作用如下表: 程序文件 说明 ex3-1.c 主程序 Led.c LCM控制函数 keypad.c Gotkey()函数(请参考基础实验2-9) Delay100us.c 时间延迟函数 /***************************文件ex3-1******************************* 标题:实验 3-1 版本:1.0 Target:89S51 程序描述:这个实验说明如何使用8051的Port 1连接到LCD显示器,PORT 3的P3.3,P3.4和P3.5分别连接到LCD显示器的控制线程序执行时让LCD显示器显示出数字时钟PORT 2连接到4ⅹ4的小键盘,可以修改时间4ⅹ4小键盘的按钮B ,可以修改间*/ /* ***************************************************** */ #include REGX51.H #include lcd.h #define TIMER0_COUNT 0xD8F0 /*10000h-((12,000,000/(12*100))*/ /* 数字时钟的工作模式 */ #define SET 11 #define TRUE 1 #define FALSE 0 #define putchar write_LCD_data typedef struct { char hour; char minute; char second; } time; typedef struct { char year; char month; char day; } date; time now={23,59,0},display; date today={04,05,29},tmpday; static unsigned timer0_tick=100,mode=0,operation; char code dayofmonth[]={31,28,31,30,31,30,31,31,30,31,30,31}; c

文档评论(0)

asd522513656 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档