使用STC15F204EA单片机,NRF24L01无线模块并OLED调试成功实例,拿来直接可以使用。做遥控器的。还有两个ADC中断转换里面。
单片机源程序如下:
- #include "sys.h"
- #include "oled.h"
- #include "nrf.h"
- u32 xianshij=0;
- extern u32 jishu;
- extern u8 adc6;
- extern u8 adc7;
- void delay_1ms(unsigned int ms)
- {
- unsigned int a;
- while(ms)
- {
- a=1800;
- while(a--);
- ms--;
- }
- return;
- }
- u8 i=0;
- void main()
- {
- OLED_Init();
- OLED_ShowString(30,0, "display"); //显示英文
- //系统设置
- fenpin(); //系统晶振分频
- //shizhong_shuchu(); //p3.5 38.4khz 定时器设置
- adc_init();
- zhongduan();//关闭所有中断
- //显示
-
- //jishu=0;
- //无线
- // init_nrf24l01_io();
- // delay_1ms(500);
- // ifnnrf_rx_mode(); //设置成接收模式
- // delay_1ms(500);
- // IRQ=1;
- // rx_buf[0] = 0;
- while(1)
- {
- OLED_ShowString(10,2,"adc6:");
- OLED_ShowString(50,2,Itoa(adc6,10));
- OLED_ShowString(10,3,"adc7:");
- OLED_ShowString(50,3,Itoa(adc7,10));
- // if(IRQ==0) //接收到数据时
- // {
- // sta=SPI_Read(STATUS);
- // SPI_RW_Reg(WRITE_REG+STATUS,0xff);
- //
- // if(sta&STA_MARK_RX)
- // {
- // SPI_Read_Buf(RD_RX_PLOAD,rx_buf,RX_PLOAD_WIDTH); //读取接收的数据
- // for(i=0;i<11;i++)
- // {
- // if(rx_buf[0]==i) {OLED_ShowString(50,6,Itoa(i,10)); }
- // }
- // }
- //
- // else
- // {
- // ifnnrf_CLERN_ALL();
- // ifnnrf_rx_mode();
- // IRQ=1;
- // while(IRQ==0);
- // }
- // }
- }
- }
复制代码
以上资料51hei提供下载:
stc15l204ea无线+OLED成功.zip
(3.66 MB, 下载次数: 25)
|