archive: homework4 test1
This commit is contained in:
Binary file not shown.
@@ -0,0 +1,22 @@
|
||||
// homework4.h
|
||||
|
||||
/*
|
||||
* this file defines the pin numbers for the LED and 38 transistors.
|
||||
*/
|
||||
|
||||
#include <REG52.H>
|
||||
|
||||
sbit ADDR0 = P1 ^ 0;
|
||||
sbit ADDR1 = P1 ^ 1;
|
||||
sbit ADDR2 = P1 ^ 2;
|
||||
sbit ADDR3 = P1 ^ 3;
|
||||
sbit ENLED = P1 ^ 4;
|
||||
|
||||
sbit D1 = P2 ^ 7;
|
||||
sbit D2 = P2 ^ 6;
|
||||
sbit D3 = P2 ^ 5;
|
||||
sbit D4 = P2 ^ 4;
|
||||
sbit D5 = P2 ^ 3;
|
||||
sbit D6 = P2 ^ 2;
|
||||
sbit D7 = P2 ^ 1;
|
||||
sbit D8 = P2 ^ 0;
|
||||
@@ -0,0 +1,33 @@
|
||||
// test1.c
|
||||
// 通过定时器实现以0.5Hz的频率闪烁一个小灯
|
||||
|
||||
#include "homework4.h"
|
||||
|
||||
unsigned char cnt = 0; // log timer T0 overflow counts
|
||||
|
||||
void main()
|
||||
{
|
||||
ENLED = 0;
|
||||
ADDR3 = 1;
|
||||
ADDR2 = 1;
|
||||
ADDR1 = 1;
|
||||
ADDR0 = 0;
|
||||
|
||||
TMOD = 0x01; // timer T0 mode 1, 16-bit timer
|
||||
TH0 = 0XB8;
|
||||
TL0 = 0X00;
|
||||
TR0 = 1; // timer T0 run
|
||||
|
||||
while (1) {
|
||||
if (TF0 == 1) { // timer T0 overflow
|
||||
TF0 = 0; // clear timer T0 overflow flag
|
||||
TH0 = 0xB8; // reload timer T0 value
|
||||
TL0 = 0x00;
|
||||
cnt++; // log timer T0 overflow counts
|
||||
if (cnt >= 50) {
|
||||
cnt = 0; // clear log timer T0 overflow counts
|
||||
D1 = ~D1; // toggle LED
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user