- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第六章 单片机应用系统设计实例;6.1 8051单片机实现计算器功能;二 方案论证与设计;三 硬件电路设计;四 软件设计;主程序流程图;主程序:
void main()
{ inint();
while(1){ if(key)pkey();}
}; case seven: modify_LED(7);break;
case eight: modify_LED(8);break;
case nine: modify_LED(9);break;
case clear: key_ptr=3;modify_LED(17);op1=op2=0;break;
case add: key_ptr=3;modify_LED(10);break;
case sub: key_ptr=3;modify_LED(11);break;
case mux: key_ptr=3;modify_LED(12);break;
case div: key_ptr=3;modify_LED(13);break;
case equ: key_ptr=3;modify_LED(14);break;
default:break;
}
key=0;
}
void modify_LED(uchar x)
{ if(key_ptr==3){LED[0]=LED[1]=LED[2]=space;}
else {LED[0]=LED[1]; LED[1]=LED[2];LED[2]=LED[3];}
; LED[3]=x;key_ptr--;
if(x=9x=0) op1=op1*10+x;
else if(x=10x=13)
{ LED[0]=LED[1]=LED[2]=LED[3]=space;
key_ptr=3; op2=op1;op1=0;
switch(x)
{ case 10: op3=+;break;
case 11: op3=-;break;
case 12: op3=*;break;
case 13: op3=/;break;
default:break;
}
}
else if(x==14)
{switch(op3)
{case +: op2=op1+op2;break;; case -: op2=op2-op1;break;
case *: op2=op1*op2;break;
case /: op2=op2/op1;break;
default:break;
}
result_pr();
}
key_ptr=0x03;
};定时中断子程序:
void timer0() interrupt TF0_VECTOR //中断检测键盘键值
{ TH0=(65536-2500)8;
TL0=(65536-2500)0xff;
if((key_port0xf0)!=0xf0) //有键按下
{if(key_port==xkey)
{ ckey++; //去抖动
if(ckey10)
{key=xkey;
ckey=0;}}
else
{xkey= key_port;
ckey=0;}}
wx_port=0xff;
dm_port=dm[LED[wx_ptr]]; //更新段码;wx_port^=(1wx_ptr); //更新位选
wx_ptr++;wx_ptr=3; //指向下一位
};6.2 简易波形发生器设计;一 硬件设计;简易波形发生器原理图;在上原理图中:
P1口作为LCD1602的数据输入总线;
P2.2~2.4作为LCD1602的读/写,使能控制线;
P2.0~2.1作为DAC0832的控制线;
P0口作为DAC0832的数据输入总线;
4个按键分别控制波形选择,频率+,频率-,
在DAC0832的输出端外接TL082集成运算放大
器,控制输出波形的幅值。;DAC0832是8分辨率的D/A转换集成芯片,由8位输入锁存器,8位DAC寄存器,8位D/A转换电路及转换控制电路构成。其引脚功能如下:;Rfb:反馈信号输入线,改变
Rfb端外接
文档评论(0)