- 1、本文档共25页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
中断以及da、ad实验讲解
中断与AD以及DA转换实验讲解;51单片机中断系统;此表需记住;实验五、外部中断;选作第(3)题:INT0、INT1同时存在,P1为输出口,INT1优先级高于INT0,均为电平触发。
要求:主程序8个发光二极管左、右移动2轮,再闪烁2次,INT0的中断服务程序控制P1口的8个发光二极管闪烁5次,INT1的中断服务程序控制P1口的8个发光二极管左、右移动3轮。
;void?main(){EA=1; //全局中断允许打开EX0=1; //打开外部中断0EX1=1; //打开外部中断1PX1=1; //设外部中断1为高优先中断PX0=0; //设外部中断0为低优先中断IT0=0; //设外部中断0为电平触发IT1=0;// 设外部中断1为电平触发……}
void?I0()interrupt?0//外部中断0中断程序{
if(P3^2==0)//键盘去抖
{delay(10);
if(P3^2==0) {// 具体的功能}
}};实验六、定时器中断;1)用内部定时器/计数器0的定时功能,实现周期为400us的方波输出。
晶振12MHz/11.0592Mhz,定时周期200us
选择何种定时方式?初始值多少?
TMOD=0x01;//定时器0方式1
TH0=(65536-200)/256;//赋初值200us
TL0=(65536-200)%256;
EA=1;ET0=1; TR0=1;
void T0_time()interrupt 1
{ TH0=(65536-200)/256;//重新赋初值200us
TL0=(65536-200)%256;
……}
方式2如何改?;2)用内部定时器/计数器1的定时功能,在P3.0引脚上产生周期为10ms的方波输出,定时器采用查询和中断两种方式实现。
定时器采用查询(TF0和TF1)
中断方式实现:中断服务程序
TMOD=0x10;//定时器1方式1
TH1=(65536-5000)/256;//赋初值5ms
TL1=(65536-5000)%256;
TR1=1;//定时器1开启
while(1)
{ if(TF1==1)//查询是否溢出
{TF1=0;//溢出标志位取回0
led1=~led1;//取反
TH1=(65536-4608)/256;//重新赋初值5ms
TL1=(65536-4608)%256;}
}
;3)用内部定时器/计数器0的方式2,在P3.0引脚上产生矩形波, 高电平为50us,低电平为300us。
方式2的最大定时时间:12Mhz的晶振,256us
定时50us,再加一个软件计数器num
TMOD=0x02;//定时器0方式2
TH0=256-50;//赋初值50us
TL0=256-50;
void T0_time() interrupt 1//定时器0中断程序
{ led1=0;//P3^7为低电平
num++;
if(num==7)//中断6次为300us
{led1=1;//P3^7位高电平
num=0;}
;选作1)用内部定时器/计数器1的计数功能,工作在方式2,实现计数10次产生中断使P1.7所接发光二极管点亮。
技术模式下,计数初始值如何定:256-10
TMOD=0x60;//定时器0方式2
TH1=256-10;
TL1=256-10;
void T0_time() interrupt 3//定时器0中断程序
{ led1=0;//灯亮 delayms(500);//延时 led1=1;//灯灭} 现象如何?
用查询方式可以吗?
;实验七、按键扫描;AD转换时序;实验八、AD转换 电路图(一);实验八、AD转换电路图(二);实验八、AD转换程序----软件模拟时序;实验八、AD转换程序----软件模拟时序;实验八、串口发送显示子程序;实验八、串口发送显示原理;DA转换时序;直通方式;DA转换时序;DA转换时序(续);建议与要求
文档评论(0)