/******************pfc161+tm1651*******************/
/******************qq:774145445********************/
/******************快手:共同学习stm8***************/
/******************20210523************************/
// _______ ______
// dio-|1 pb7 \_/ pb010|-clk
// |2 vdd gnd 9|
// cs-||-|3 pa7 pa0 8|-hong
// tk8-|4 pa6 pa4 7|-lv
// tk9-|5_pa5_______pa3_6|-lan
#include "extern.h"
/**************************************************/
tm1651_clk bit pb.0; //tm1651时钟输入
tm1651_dio bit pb.7; //tm1651数据输入输出
void tm1651_xiesram(); //tm1651写sram数据
void tm1651_xie(); //tm1651写数据
void tm1651_yanshi(); //tm1651延时
byte tm1651_a1;
/**************************************************/
/**************************************************/
/**************************************************/
/**************************************************/
void FPPA0 (void)
{
.ADJUST_IC SYSCLK=IHRC/4 // SYSCLK=IHRC/4
while (1)
{
tm1651_xiesram();
}
}
/*
void Interrupt (void)
{
pushaf;
if (Intrq.T16)
{ // T16 Trig
// User can add code
Intrq.T16 = 0;
//...
}
popaf;
}
*/
/**************************************************/
void tm1651_xiesram() //tm1651写sram数据
{
tm1651_a1 =0b; tm1651_xie(); //设置数据
tm1651_a1 =0b; tm1651_xie(); //设置地址
tm1651_a1 =0b; tm1651_xie(); //显示数据
tm1651_a1 =0b; tm1651_xie(); //显示数据
tm1651_a1 =0b; tm1651_xie(); //显示数据
tm1651_a1 =0b; tm1651_xie(); //显示数据
tm1651_a1 =0b; tm1651_xie(); //控制显示
}
/**************************************************/
void tm1651_xie() //tm1651写数据
{
$ tm1651_clk out; $ tm1651_dio out;
tm1651_clk =1; tm1651_dio =1; tm1651_yanshi();
tm1651_dio =0; tm1651_yanshi(); //star
tm1651_clk =0; if(tm1651_a1.0) {tm1651_dio =1;} else{tm1651_dio =0;}//先发低
tm1651_clk =1; tm1651_yanshi();
tm1651_clk =0; if(tm1651_a1.1) {tm1651_dio =1;} else{tm1651_dio =0;}
tm1651_clk =1; tm1651_yanshi();
tm1651_clk =0; if(tm1651_a1.2) {tm1651_dio =1;} else{tm1651_dio =0;}
tm1651_clk =1; tm1651_yanshi();
tm1651_clk =0; if(tm1651_a1.3) {tm1651_dio =1;} else{tm1651_dio =0;}
tm1651_clk =1; tm1651_yanshi();
tm1651_clk =0; if(tm1651_a1.4) {tm1651_dio =1;} else{tm1651_dio =0;}
tm1651_clk =1; tm1651_yanshi();
tm1651_clk =0; if(tm1651_a1.5) {tm1651_dio =1;} else{tm1651_dio =0;}
tm1651_clk =1; tm1651_yanshi();
tm1651_clk =0; if(tm1651_a1.6) {tm1651_dio =1;} else{tm1651_dio =0;}
tm1651_clk =1; tm1651_yanshi();
tm1651_clk =0; if(tm1651_a1.7) {tm1651_dio =1;} else{tm1651_dio =0;}
tm1651_clk =1; tm1651_yanshi();
$ tm1651_clk out; $ tm1651_dio in,pull;
tm1651_clk =0; tm1651_yanshi(); //第九脉冲
tm1651_clk =1; tm1651_yanshi();
while(tm1651_dio==0){} //ack
}
/**************************************************/
void tm1651_yanshi() //tm1651延时
{
.delay 1000;
}
/**************************************************/
/**************************************************/
|