- 1、本文档共17页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
江汉大学物理与信息工程学院
课程设计报告
课题名称:键控跑马灯、蜂鸣器
按键值检测、键控数码管
温度传感器、数码管
专业: 09 测控
班级: B0907202121
学号: 2009072021XX
学生姓名: xx
同组人员: XX XX XX XX
指导老师: XXX
2010年12月12日
摘要·································3
设计要求·····························3
系统硬件设计·························3
实验源程序···························4
系统硬件电路设计·····················15
实验总结·····························16
参考文献·····························16
摘要:
单片机就是微控制器,是面向应用对象设计、突出控制功能的芯片。单片机接上晶振、复位电路和相应的接口电路,装载软件后就可以构成单片机应用系统用。本设计应用单片机强大的控制功能实现流水灯的控制、数码管显示数字、多点测温等,采用NT-51-A单片机,该单片机采用的是MCU51内核,具有很好的兼容性。
设计要求:
上电时,LED等全熄灭,S1键闭合时,LED1~LED8被依次点亮后全熄灭,然后等待S1再次闭合,重复上述过程;若中间S2键闭合时,LED立即全部熄灭,回到起始状态。
S1键按下时,启动跑马灯;S2键按下时,停止;S3键按下时,从左到右循环流动;S4键按下时,从右到左循环流动。
S1键按下时,数码管显示值1,蜂鸣器响1声;S2键按下时,数码管显示值2,蜂鸣器响2声;S3键按下时,数码管显示值3,蜂鸣器响3声;S4键按下时,数码管显示值4,蜂鸣器响4声。
系统硬件设计:
1、器件选型:USB供电、MAX232串口通信、DS18B20温度传感器、红外遥控接收模块、1602字符液晶模块、12864带字库液晶模块、跑马灯、四位一体数码管、独立按键、蜂鸣器
实物图
2、STC单片机MAX232与PC机通信/编程电路图
实验源程序:
键控跑马灯:
/*******************************************
功能描述:S17键按下时,启动跑马灯;
S18键按下时,停止;
S19键按下时,从左向右循环流动;
S20键按下时,从右向左循环流动;
连线方式:D0~D7接P0口,K17=P2^0,K18=P2^1;短接JP2,键盘模块接地;
*******************************************/
#includereg52.h
#includeintrins.h
#define uchar unsigned char
#define uint unsigned int
sbit Key1=P2^0; //S1键
sbit Key2=P2^1; //S2键
sbit Key3=P2^2; //S3键
sbit Key4=P2^3; //S4键
uchar Data=0xfe; //流水灯初值
uchar Start,UpDown;
/*******************************************
延时程序
*******************************************/
void delay(uchar x)
{
uchar y;
for(;x0;x--)
for(y=114;y0;y--);
}
/*******************************************
独立键盘扫描程序
*******************************************/
uchar Key()
{
if(Key1==0)
{
delay(10);
if(Key1==1)
return(0);
else
Data=0xfe; //每次启动跑马灯后从固定位置开始流动
UpDown=0; //清除左右移动标志,消除按下S2再按S1
return(1); //后立即开始流动,和按下S3、S4后再启
} //动时立即开始循环的现象
if(Key2==0)
{
delay(10);
if(Key2==1)
return(0);
else
return(2);
文档评论(0)