求助:单片机C语言程序问题

这是一个电压表的程序中间和最后两个定时器程序的作用分别是什么?voidt1(void)interrupt3using0是什么意思?程序如下:#include<reg52.... 这是一个电压表的程序 中间和最后两个定时器程序的作用分别是什么? void t1(void) interrupt 3 using 0是什么意思? 程序如下: #include<reg52.h> unsigned char code dispbitcode[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; unsigned char dispbuf[4]; unsigned int i; unsigned int j; unsigned int getdata; unsigned int temp; unsigned int temp1; unsigned char count; unsigned char d; sbit ST=P3^0; sbit OE=P3^1; sbit EOC=P3^2; sbit CLK=P3^3; sbit P34=P3^4; sbit P35=P3^5; sbit P36=P3^6; sbit P20=P2^0; sbit P21=P2^1; sbit P22=P2^2; sbit P23=P2^3; sbit P17=P1^7; //sbit s3=P2^7; //位定义,控制模拟开关 sbit s2=P2^6; sbit s1=P2^5; #define _v10 {s1=1;s2=0;} #define _v20 {s1=0;s2=1;} unsigned char m; void TimeInitial(); void Delay(unsigned int i); void TimeInitial() { TMOD=0x10; TH1=(65536-200)/256; TL1=(65536-200)%256; EA=1; ET1=1; TR1=1; } void Delay(unsigned int i) { unsigned int j; for(;i>0;i--) { for(j=0;j<125;j++) {;} } } void Display() { P1=dispbitcode[dispbuf[3]]; P20=0; P21=1; P22=1; P23=1; Delay(10); P1=0x00; P1=dispbitcode[dispbuf[2]]; P17=1; P20=1; P21=0; P22=1; P23=1; Delay(10); P1=0x00; P1=dispbitcode[dispbuf[1]]; P20=1; P21=1; P22=0; P23=1; Delay(10); P1=0x00; P1=dispbitcode[dispbuf[0]]; P20=1; P21=1; P22=1; P23=0; Delay(10); P1=0x00; } void main() { TimeInitial(); P34=0; P35=0; P36=0; _v20; m=4; while(1) { ST=0; OE=0; ST=1; ST=0; while(EOC==0); OE=1; getdata=P0; OE=0; if ( s1==0&&s2==1 && getdata<128) { _v10; m=2; } else if( s1==1&&s2==0&& getdata>254) { _v20; m=4; } temp=(getdata*1.0/255)*500*m; dispbuf[0]=temp%10; dispbuf[1]=temp/10%10; dispbuf[2]=temp/100%10; dispbuf[3]=temp/1000; Display(); } } void t1(void) interrupt 3 using 0 { TH1=(65536-200)/256; TL1=(65536-200)%256; CLK=~CLK; } 展开
 我来答
崇胜居绮艳
2019-01-24 · TA获得超过3818个赞
知道大有可为答主
回答量:3174
采纳率:31%
帮助的人:168万
展开全部
第一个是在主程序中设置的定时计数器中断相关参数设置,TMOD=0x10:设置定时计数器的工作方式为方式1(16为计数器),也就是计数范围为(0-65536)。TH1=(65536-200)/256;:TL1=(65536-200)%256;设置计数器的初值为:200.
EA=1;开总中断,
ET1=1;开定时计数器1;TR1=1;定时计数器启动。第二个是中断服务程序,TH1=(65536-200)/256;
TL1=(65536-200)%256;这两行是从新装入初值。
CLK=~CLK;CLK变量取反。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式