?? sh507.c
字號:
#include <reg52.h>
#include <absacc.h>
#include <stdio.h>
#define uchar unsigned char
#define uint unsigned int
// 定義8253的寄存器地址
#define COM XBYTE[0x6000] // 定義8253的控制字寄存器地址
#define C0 XBYTE[0x0000] // 定義8253的計數器0寄存器地址
#define C0I XBYTE[0x1000]
sbit P1_7=P1^7;
uint BUF810;
uchar h,l,a,b,c,sendflag,FREQ;
//主函數,初始化定時器和片外寄存器
void main(void)
{
EA=1; PT0=1;
ET0=1;
IT0=1;IT1=1;
EX0=1;EX1=1;ET2=1;
T2CON=0x08;
TMOD=0x21; //用定時器0產生2s的中斷信號,為8253計數提供門控。
TH0=-1000/256;
TL0=-1000%256;
// 向8253R中的控制字寄存器中選擇計數器0,并對其幅初值0;
COM=0x30;
C0=0;C0=0;
TR0=1;
sendflag=1;
while(1){}
}
/* 定時計數器0的中斷服務子程序 */
void timer0(void) interrupt 1 using 1
{
TH0=-1000/256; // 定時器T0的高四位賦值
TL0=-1000%256;
FREQ=FREQ+1; // 定時器T0的低四位賦值
if (FREQ==1000) // 1秒判斷
{
FREQ=0;
P1_7=!P1_7; // 信號輸出端口取反
COM=0x00; //計數器0閂鎖操作
l=C0; //分別讀取高、低8位的數據
h=C0;
BUF810=-(h*256+l);
COM=0x30;
C0=0;C0I=0;
}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -