导航:首页 > 编程语言 > c51语言程序设计习题

c51语言程序设计习题

发布时间:2023-07-18 08:41:51

⑴ 单片机原理与应用及c51程序设计 第二版 课后习题答案 杨加国 谢维成编著

指导教师签字
学生签字
2009年3月15日

题目来源
指导教师推荐□v 自选□ 其它□

题目类别 基础研究□ 应用研究□v 其它□

一、调研资料的准备
时钟模块主要是用于对时、分、秒、年、月、日和星期的计时。该模块采用的芯片为DS12C887 时钟芯片。此芯片集成度高,其外围的电路设计非常的简单,且其性能非常好,计时的准确性高。
DS12C887为双列直插式封装。其具体与单片机的连接如下所述:AD0~AD7双向地址/数据复用线与单片机的P0口相联,用于向单片机交换数据;AS 地址选通输入脚与单片机的 ALE 相联用于对地址锁存,实现地址数据的复用;CS 片选线与单片机的 P2.6 相联,用于选通时钟芯片;DS 数据选通读输入引脚与单片机的读选通引脚相联,用于实现对芯片数据的读控制;R/W 读/写输入与单片机的写选通引脚相联,用于实现对时钟芯片的写控制;MOT 直接接地,选用 INTEL 时序。IRQ引脚与 8051 的 INT1 相连,用于为时间的采集提供时间基准。
二、选题依据
当前,在世界范围内,一个以微电子技术,计算机和通信技术为先导的,以信息技术和信息产业为中心的信息革命方兴未艾。为使我国尽快实现经济信息化,赶上发达国家水平,必须加速发展我国的信息技术和信息产业。而计算机技术怎样与实际应用更有效的结合并有效的发挥其作用是科学界最热门的话题,也是当今计算机应用中空前活跃的领域。
三、选题目的
本次实验的完成证明了单片机的储存功能, 从另一个角度上,我们可以看到这种功能的发展前景。当前,时髦的储存器比比皆是,我们的这个小小的设计也许在这些MP3,MD3面前算不了什么, 但是如果我们能在这个领域发展到微型芯片的程度,我们也许可以领导一代储存器的新潮流。
四、选题要求
五、进度安排
第一阶段 2008年12月---2009年2月 资料准备阶段
大量阅读与该课题有关的资料及相关的论文,酝酿课题实施方案及相关措施
第二阶段 2009年3月---2009年4月中旬 初稿写作
根据开题报告及指导教师对课题内容、完成形式的要求得到相应的资料及结果。及时听取导师的意见,完善方案措施;继续开展研究;争取有一定的成果并完成初稿接受检查。
第三阶段 2009年4月中旬
根据导师对初稿的评定结果进行改进,以利于论文的继续进行。
第四阶段 2009年4月下旬---2009年6月定稿
完成毕业论文的写作并交导师评阅,根据导师提出的要求进行必要修改,进一步完善论文的攥写
六、完成毕业论文所需条件
在指导教师的帮助下,通过仔细查阅书籍、期刊,进一步在互联网上搜索学习与选题有关的专业知识,完成对相关知识的掌握。并适当进行调研及相关实验等。
七、主要参考文献
《单片机原理与接口技术》,余锡存主编,西安电子科技大学出版社,2001.7.
《MCS-51单片机原理与应用》,蔡美琴主编,高等教育出版社,1992.8.
《单片机原理与应用技术》,张友德、谢伟毅主编,机械工业出版社,2004.3.
单片机原理接口与应用》,黄遵熹主编,西北工业大学出版社,2002.5.
《单片机原理与应用》,刘华东主编,电子工业出版社,2003.8.
刘文涛.MCS-51单片机培训教程(C51版).北京:电子工业出版社,2005.
《51系列单片机及C51程序设计》,王建校、杨建国主编,科学出版社,2002.4.
《单片机原理与应用》,朱月秀、濮阳槟、骆经备主编,科学出版社,2004.3.
《新编单片机原理与应用》,潘永雄主编,西安电子科技大学出版社,2003.2.
《单片机原理与应用》,孙俊逸主编,清华大学出版社,2006.2.
《单片机原理与应用》,李全利主编,清华大学出版社,2006.2.
《单片机原理及其接口技术》第二版,胡汉才主编,清华大学出版社,2004.2.
夏继强. 单片机实验与实践教程. 北京:北京航空航天大学出版社, 2001.
杨将新,李华军,刘东骏.单片机程序设计及应用.北京:电子工业出版社,2006.
谢维成,杨加国.单片机原理与应用及C51程序设计.北京:清华大学出版社,2006.

评委评语及其建议:
选题依据充分,意义、目的明确,调研资料准备丰富,进度安排合理;完成任务所需条件具备,可以进行论文的写作。

评委签字:
系(院、部)部盖章:
2009 年 3月10-16 日

⑵ C51单片机程序设计题,要求用C语言做,模拟交通灯控制单片机电路,答案要详细具体。

晚上随手写,也未调试,权当看看

程序有不严谨地方还得调试修改

#include<REGX51.H>

#defineSTATUS_1S 1

#defineSTATUS_2S 2

#defineSTATUS_3S 3

#defineSTATUS_4S 4

#defineSTATUS_5S 5

#defineSTATUS_15S 15

#defineSTATUS_28S 28

#defineSTATUS_29S 29

#defineSTATUS_30S 30

unsignedcharflag,status,status_temp=1,status_temp_;

sbitK1 = P0^0;

sbitK2 = P0^1;

sbit冲余RLED = P0^2;

sbitYLED = P0^3;

sbitGLED = P0^4;

voidInit(void)

{

ET0=1;

TR0=1;

RLED=0; //亮

YLED=0;

GLED=0;

while(status_temp)

{

switch(status)

{

caseSTATUS_1S: //1S

{

RLED=1; //灭,闪一次

YLED=1;

GLED=1;

} break;

caseSTATUS_2S: //1S

{

RLED=0; //亮,歼判备闪一次

YLED=0;

GLED=0;

} break;

caseSTATUS_3S: //1S

{

RLED=1; //灭

YLED=1;

GLED=1;

status_temp=0;

} break;

}

}

status_temp=1;

ET0=0;

TR0=0;

}

voidInit_Timer0(void)

{

TMOD=0x01;

// ET0=1;

// TR0=1;

EA=1;

TH0=0X3C;

TL0=0XB0; //未计算,偷楼上的

}

voidM_Start(void)

{

TH0=0X3C;

TL0=0XB0;

ET0=1;

TR0=1;

RLED=0; //红亮

while(status_temp)

{

switch(status)

{

caseSTATUS_1S:

{

if(status_temp_==1)

{

YLED=0;

}

} break;

caseSTATUS_2S:

{

if(status_temp_==1)

{

YLED=1;

}

} break;

caseSTATUS_3S:

{

if(status_temp_==1)

{

YLED=0;

status_temp_=0;

}

} break;

caseSTATUS_15S: //15S灭,绿亮

{

RLED=1;

GLED=0;

} break;

caseSTATUS_28S:

{

GLED=1;

} break;

caseSTATUS_29S:

{

GLED=0;

} break;

caseSTATUS_30S:

{

GLED=1;

status=0;

status_temp_=1;

} break;

}

}

ET0=0;

TR0=0;

status=0;

status_temp=1;

YLED=1;

}

voidM_End(void)

{

TH0=0X3C;

TL0=0XB0;

ET0=1;

TR0=1;

RLED=0; //亮1次

YLED=0;

GLED=0;

while(status_temp)

{

switch(status)

{

case氏毁STATUS_1S: //1S

{

RLED=1; //灭一次

YLED=1;

GLED=1;

} break;

caseSTATUS_2S: //1S

{

RLED=0; //亮二次

YLED=0;

GLED=0;

} break;

caseSTATUS_3S: //1S

{

RLED=1; ////灭二次

YLED=1;

GLED=1;

} break;

caseSTATUS_4S: //1S

{

RLED=0; ////亮三次

YLED=0;

GLED=0;

} break;

caseSTATUS_5S: //1S

{

RLED=1; ////灭三次

YLED=1;

GLED=1;

status_temp=0;

} break;

}

}

status_temp=1;

ET0=0;

TR0=0;

}

main()

{

Init();//单片机初始化

Init_Timer0();//定时器初始化

while(1)

{

if(K1==0)

M_Start();//模拟开始

if(K2==0)

M_End();//模拟结束

}

}

voidinterrupt_time0()interrupt1 //核对头文件,一致就好

{

TH0=0X3C;

TL0=0XB0;

flag++;

if(flag==20)

{

status++;

flag=0;

}

}

阅读全文

与c51语言程序设计习题相关的资料

热点内容
如何创造电脑编程语言 浏览:56
昂达平板电脑图形密码忘记怎么办 浏览:92
组织文件内容是什么 浏览:183
0基础如何学习智能编程 浏览:366
java程序员全攻略下载 浏览:715
网络逆向教程 浏览:135
iso文件如何重装系统 浏览:750
ghost镜像文件路径如何恢复 浏览:832
搭建网站需要多少钱啊 浏览:599
编程猫怎么设置背景亮度 浏览:177
qq文件破损 浏览:414
javapoi配置 浏览:608
编程怎么写数据图案同步 浏览:308
海康监控录像回放丢数据怎么回事 浏览:155
in后缀是什么文件 浏览:142
linuxusb抓包工具 浏览:808
类似美团的app还有什么 浏览:974
asp显示数据库 浏览:142
delphi逆向教程 浏览:63
数据库怎么把表名称和字段导出 浏览:910

友情链接