- 1、本文档共31页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第4讲单片机综合实验仪程序设计及调试实验
第4讲 单片机综合实验仪程序设计及调试
1、设计目的
了解单片机综合实验仪各模块程序设计方法。掌握KEIL C51下单片机综合实验仪各模块程序设计和调式及PROTEUS下的系统仿真方法。通过本次课程设计,达到熟练掌握KEIL C51下和PROTEUS下单片机综合实验仪各模块程序设计、调试和仿真的目的。
2、设计内容
(1)由6位同学组成单片机综合实验仪程序设计小组。
(2)从老师提供的网站上,下载本课程设计课件。
(3)根据单片机综合实验仪划分的6个模块,分别由6个同学完成6个模块程序设计、调试和仿真。
(3)在KEIL C51下和PROTEUS下,按本课程设计课件的程序设计要求,每位同学主攻单片机综合实验仪一个模块的程序设计、调试和仿真。
(4)结合上次实验兼顾的单片机综合实验仪其它模块原理图设计和绘制。完成相对应的程序模块设计、调试和仿真。
(5)单片机综合实验仪设计小组6位同学相互协作完成单片机综合实验仪所有程序模块的调试和统调及仿真。
3、使用器材
(1)Proteus仿真软件仿真软件
5.单片机综合实验仪各模块程序设计要求
(1)单片机系统部分
工作灯闪烁(参考书上例5-1,编写设计程序)
程序:运行时,使P3.2接的LED发光二极管闪烁。
提示:给出下述程序,完善main()程序。
#include REGX51.H
unsigned int i;
main()
{
unsigned int i;
###### /*初始化工作灯(灭)*/
while(1)
{
###### /*工作灯闪烁*/
for(i=0;i30000;i++); //延时
}
}
(2)并口接口输入输出部分
打码开关(参考书上例5-2,编写设计程序)
程序要求:将开关的状态反映到发光二极管上。
流水灯(定时查询)(参考书上例7-1,编写设计程序)
程序:采用定时查询方式,使8个管轮流点亮;开关K1的状态改变轮流点亮的顺序。
每个管亮100ms,设晶振为6MHz。(计数时钟周期2us)
分析:利用T1完成100ms的定时。当P0口线输出“0”时,发光二极管亮,
每隔100ms”0”左移一次,采用定时方式1,先计算计数初值:
MC=2μs
100ms/2μs=50000=C350H
[C350H]补=10000H-C350H=3CB0H
提示:给出下述程序,完善main()程序。
}#include regX51.h
void main(void)
{
unsigned char temp;
temp=1;
P0=~temp; /*第一只LED亮*/
###### /*定时器1方式1*/
###### /*启动T/C0 */
for(;;)
{
TH1=0x3c; TL1=0xb0; /*装载计数初值*/
do{}while(!TF1); /*查询等待TF1置位*/
if(P2_0==1) //K1的状态为1,正序流水灯
{
######
###### /*定时时间到,下一只LED亮*/
}
Else //K1的状态为1,反序流水灯
{
if(temp==0x01) temp=0x80;
else temp=1;/*定时时间到,下一只LED亮*/
}
P0=~temp;
TF1=0; /*软件清TF1*/
}
}
流水灯(定时中断)(参考书上例7-1,编写设计程序)
程序:采用定时中断方式,使8个管轮流点亮。
每个管亮100ms,设晶振为6MHz。(计数时钟周期2us)
分析:利用T1完成100ms的定时。当P0口线输出“1”时,发光二极管灭,
每隔100ms”1”左移一次,采用定时方式1,先计算计数初值:
MC=2μs
100ms/2μs=50000=C350H
[C350H]补=10000H-C350H=3CB0H
提示:给出下述程序,完成main()程序。
//②中断方式1
#include reg51.h
Timer1( ) interrupt 3 using 1 /*T1中断服务程序*/
{
P0=(P0==0X80)?0x01:(P01); /*下一只LED亮*/
TH1=0x3c;TL1=0xb0; /*计数初值重载*/
}
void
文档评论(0)