/*---------------------------------------------------------------------*/
/* --- STC MCU Limited ------------------------------------------------*/
/* --- STC15F4K60S4 系列 定时器0的16位自动重装载模式举例---------------*/
/* --- Mobile: (86)13922805190 -------------- -------------------------*/
/* --- Fax: 86-755-82905966 -------------------------------------------*/
/* --- Tel: 86-755-82948412 -------------------------------------------*/
/* --- Web: www.STCMCU.com --------------------------------------------*/
/*---------------------------------------------------------------------*/
//假定测试芯片的工作频率为18.432MHz
#include "reg51.h"
#include <intrins.h>
typedef unsigned char BYTE;
typedef unsigned int WORD;
#define uchar unsigned char
#define uint unsigned int
#define ulint unsigned long int
#define NOP _nop_()
//RGB屏幕颜色IO口定义 低电平有效
sbit Pwm_G = P1 ^ 1; //绿灯使能脚
sbit Pwm_R = P1 ^ 0; //红灯使能脚
sbit Pwm_B = P3 ^ 7; //蓝灯使能脚
//RGB屏幕COM口定义
sbit COM1 = P2 ^ 0;
sbit COM2 = P2 ^ 1;
sbit COM3 = P2 ^ 2;
sbit COM4 = P2 ^ 3;
sbit COM5 = P2 ^ 4;
sbit COM6 = P2 ^ 5;
sbit COM7 = P2 ^ 6;
sbit COM8 = P2 ^ 7;
//穿行输入控制端口
//sbit RCLK = P1 ^ 2; //存储寄存器输入时钟
//sbit SER = P1 ^ 3; //串行数据输入
//sbit SCLK = P1 ^ 4; //位移寄存器输入时钟
sbit SHCP=P1^4; //11脚SHCP 位移时钟
sbit STCP=P1^2; //12脚STCP 锁存时钟
sbit DATA=P1^3; //数据输入
#define FOSC 18432000L
#define T1MS (65536-FOSC/1000) //1T模式
//#define T1MS (65536-FOSC/12/1000) //12T模式
sfr AUXR = 0x8e; //Auxiliary register
sbit P07 = P0^7;
/*******************************************************************************************/
//初始化
void Initi_IO()
{
COM1 = 0;
COM2 = 0;
COM3 = 0;
COM4 = 0;
COM5 = 0;
COM6 = 0;
COM7 = 0;
COM8 = 0; //com口初始化
Pwm_R= 1;
Pwm_G= 1;
Pwm_B= 1; //3色初始化
}
/*******************************************************************************************/
//COM口全部打开,即全屏显示
void COM_OPEN()
{
COM1 = 1;
COM2 = 1;
COM3 = 1;
COM4 = 1;
COM5 = 1;
COM6 = 1;
COM7 = 1;
COM8 = 1;
}
/*******************************************************************************************/
//数据串行输入
void serial_input(uchar dat)
{
uint m;
for(m=0;m<8;m++)
{
SHCP=0;
if(dat & 0x80)
DATA=1;
else
DATA=0;
SHCP=1;
NOP;
NOP;
SHCP=0;
NOP;
NOP;
dat=dat<<1;
}
}
/*******************************************************************************************/
//并行输出
void serial_output()
{
STCP=1;
NOP;
NOP;
STCP=0;
}
/*******************************************************************************************/
/* Timer0 interrupt routine */
void tm0_isr() interrupt 1 using 1
{
int i=0 , m=0;
m++;
if(m==1000)
{
i++;
if(i==1)
COM1 = !COM1;
if(i==2)
COM2 = !COM2;
if(i==3)
COM3 = !COM3;
if(i==4)
COM4 = !COM4;
if(i==5)
COM5 = !COM5;
if(i==6)
COM6 = !COM6;
if(i==7)
COM7 = !COM7;
if(i==8)
COM8 = !COM8;
if(i==9)
{
i=0;
m=0;
Initi_IO();
}
}
}
/*******************************************************************************************/
/* main program */
void main()
{
AUXR |= 0x80; //定时器0为1T模式
// AUXR &= 0x7f; //定时器0为12T模式
TMOD = 0x00; //设置定时器为模式0(16位自动重装载)
TL0 = T1MS; //初始化计时值
TH0 = T1MS >> 8;
TR0 = 1; //定时器0开始计时
ET0 = 1; //使能定时器0中断
EA = 1;
Initi_IO();
Pwm_B=0;
Pwm_G=0;
Pwm_R=0;
COM_OPEN();
while(1)
{
serial_input(0x00);
serial_output();
}
}
Timer0_test.rar_STC定时器
版权申诉
94 浏览量
2022-09-24
06:08:08
上传
评论
收藏 1KB RAR 举报
JaniceLu
- 粉丝: 78
- 资源: 1万+
最新资源
- HM2305B-VB一款P-Channel沟道SOT23的MOSFET晶体管参数介绍与应用说明
- 基于52单片机、ADC0832、LCD1602、两个74HC393和一个74HC08的频率测量计 不能用,请私我
- HM2302-VB一款N-Channel沟道SOT23的MOSFET晶体管参数介绍与应用说明
- python实战项目-学生成绩管理系统(基础版)
- 微信小程序源码 实现查公交 滴滴公交 app 源码下载
- HM2302E-VB一款N-Channel沟道SOT23的MOSFET晶体管参数介绍与应用说明
- 基于C#图片相似度比较,感知哈希算法
- VR开发的概要介绍与分析
- 自动驾驶定位系列教程七:点云畸变补偿.pdf
- HM2302D-VB一款N-Channel沟道SOT23的MOSFET晶体管参数介绍与应用说明
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈