2024年2月4日发(作者:)
void Servive_0() interrupt 2 //
外部中断1{ InitHC138(4); led1 = ~led1;}void main (void){ InitHC138(5); P0 = 0x00; P2 = 0x00; InitHC138(4); P0 = 0xff; P2 = 0x00;
Init_inter0(); while (1) { Init_key(); }}三、 定时器
DelaySMG(100);
//分 DisplaySMG_Bit(3, SMGNoDot_CA[Timer[1] / 16]); DelaySMG(100); DisplaySMG_Bit(4, SMGNoDot_CA[Timer[1] % 16]); DelaySMG(100); DisplaySMG_Bit(5,0xbf); DelaySMG(100);
//秒 DisplaySMG_Bit(6, SMGNoDot_CA[Timer[0] / 16]); DelaySMG(100); DisplaySMG_Bit(7, SMGNoDot_CA[Timer[0] % 16]); DelaySMG(100); //
关闭所有数码管 InitHC138(6); P0 = 0xff; P2 = 0x00; InitHC138(7); P0 = 0xff; P2 = 0x00;}void main(){ InitHC138(4); P0 = 0xff; P2 = 0x00; InitHC138(5); P0 = 0x00; P2 = 0x00;
DS1302_Config(); while(1) { Read_DS1302_Timer(); Display_DS1302(); }}七、超声波#include "stc15f2k60s2.h"#include "intrins.h"#define InitHC138(n) {P2 = P2 & 0x1f | (n << 5);}#define uint unsigned int#define uchar unsigned char#define nop() {_nop_();_nop_();_nop_();_nop_();_nop_(); _nop_();_nop_();_nop_();_nop_();_nop_();}sbit TX = P1^0; //
发送引脚sbit RX = P1^1; //
接收引脚code uchar tab[] = {0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xff};uchar dspbuf[8] = {10,10,10,10,10,10,10,10};uchar dspcom = 0;uint count = 0;bit flag;uint t = 0;void Send_ult(){ uchar i = 16; //
发送8个脉冲 //
起始信号 TX = 0;
{ InitHC138(7, 0xff); InitHC138(6, 0x01 << pos); InitHC138(7, dat);}void SMG_set(u8 d0, u8 d1, u8 d2, u8 d3, u8 d4, u8 d5, u8 d6, u8 d7){ buf[0] = d0; buf[1] = d1; buf[2] = d2; buf[3] = d3; buf[4] = d4; buf[5] = d5; buf[6] = d6; buf[7] = d7;}void Init_Fre(){ TMOD = 0x15; // T1:定时器 T0:计数器 TH0 = TL0 = 0; //
计数清零 TL1 = 0x18; //设置定时初始值 TH1 = 0xFC; //设置定时初始值
TR0 = TR1 = 1; ET1 = 1; EA = 1;}void timer() interrupt 3{ u32 count; TL1 = 0x18; //设置定时初始值 TH1 = 0xFC; //设置定时初始值 if (++count == 1000) { count = 0; TR0 = 0; freq = (u32) (TH0 << 8) | TL0; TL0 = TH0 = 0; TR0 = 1; }}void Timer2Init(void) //1毫秒@11.0592MHz{ AUXR |= 0x04; //定时器时钟1T模式 T2L = 0xCD; //设置定时初始值 T2H = 0xD4; //设置定时初始值 AUXR |= 0x10; //定时器2开始计时
IE2 |= 0x04; EA = 1;}void Ser_T2(void) interrupt 12{ u8 pos; T2L = 0xCD; //设置定时初始值 T2H = 0xD4; //设置定时初始值
Display_SMG(pos, buf[pos]); if(++pos == 8)
void main(){ CloseFucker(); Timer0Init(); while(1) { ; }}
发布者:admin,转转请注明出处:http://www.yc00.com/web/1707000398a1472601.html
评论列表(0条)