TMOD寄存器有8位,而配置一个定时器只需要4位。
所以,TMOD的高4位用于配置定时器1,低4位用于配置定时器0.
这里TMOD=0X10,当然是配置定时器1咯。
定时器使用中断方式时,需要配置两级开关
第一级是总中断开关:EA=1;
第二级是源中断开关,定时器对应为ET1=1
然后是编写对应的中断服务函数。
如果是AT89***或者STC**单片机,如图依图完整的控制代码没时间弄你可以百度,资源多的是,如果只想知道数码位的控制方法可以说一下,根据你图示,只要在三极管的基极加上低电平就可以给相应的数码位加电,简单代码如下:1.可以分别定义控制端口
sbti WE1=P1^0//这里假定用P1口控制数码位
sbti WE2=P1^1
sbti WE3=P1^2
sbti WE4=P1^3
进行上述定义后,在程序中只要有代码WE1=0则第一位数码就通电了,此后会根据段码数据显示相应的数字。
2.如果I/O口资源充足,也可以用一个完整I/O口来控制,以P1为例,只要将WE1--4引线分别于P1.0--3连接,在程序中只要有代码P1=0xfe,就可以点亮WE1位,同理,代码0xfd0xfb0xf7
可以分别点亮WE2,WE3,WE4位。
由于x^y有可能超出int范围,所以这个最好的方法是每次将取结果的最后三位。
即
#include <stdio.h>int main()
{
int x,y,i,r
scanf("%d%d",&x,&y)
x%=1000
r = x
for(i=1i<yi++)
{
r*=x
r%=1000
}
printf("%d\n",r)
return 0
}