• 大小: 1.11MB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2023-08-27
  • 语言: 其他
  • 标签:

资源简介

基于stm32的数字示波器c程序绝对完整版:可实现如下功能: 1、lcd12864实时显示波形 2、仪器具有内触发功能,通过外部中断实现 3、五个按键可选五个档位:10HZ~100KHZ 4、具有存储调出功能,并可用串口传回PC机 5、被测信号基本无失真 句句本人心血,与大家分享

资源截图

代码片段和文件信息

#include “stm32f10x_lib.h“
#include “12864.h“
#include “delay.h“
//#include “front.h“
u8 addr_tab[]={
0x800x810x820x830x840x850x860x87//第一行汉字位置
0x900x910x920x930x940x950x960x97//第二行汉字位置
0x880x890x8a0x8b0x8c0x8d0x8e0x8f//第三行汉字位置
0x980x990x9a0x9b0x9c0x9d0x9e0x9f//第四行汉字位置
};
 u8 a;
void GPIO_12864_Init(void) //12864管脚接口初始化
{
RCC->APB2ENR|=1<<3;//开启B时钟
RCC->APB2ENR|=1<<6;//开启E时钟

GPIOB->CRL&=0XFFFFF000;
GPIOB->CRL|=0X00000333;
GPIOB->ODR|=7<0;//上拉输出

GPIOE->CRH&=0X00000000;
GPIOE->CRH|=0X33333333;

GPIOE->ODR|=0XFF00;//上拉输出
}
void GPIO_12864_Read(void)//设置为输入
{
RCC->APB2ENR|=1<<6;//开启E时钟
GPIOE->CRH&=0X00000000;
GPIOE->CRH|=0X88888888;

GPIOE->ODR|=0XFF00;//上拉输出
}
void GPIO_12864_Write(void)//设置输出
{
RCC->APB2ENR|=1<<6;//开启E时钟
GPIOE->CRH&=0X00000000;
GPIOE->CRH|=0X33333333;

GPIOE->ODR|=0XFF00;//上拉输出
}
void Check_12864_Busy(void)//读忙碌状态
{
u8 flag=0;
GPIO_12864_Read();
RS=0;
RW=1;
while(flag==0)
{
delay_us(5);
CE=1;
delay_us(5);
if(DATAIN_12864&0X80)flag=0;
else flag=1;
delay_us(5);
CE=0;
delay_us(5);
}
GPIO_12864_Write();
}
void Write_12864_Data(u8 data)//写数据
{
Check_12864_Busy();
RS=1;
RW=0;
delay_us(5);
CE=1;
DATAOUT_12864(data);
delay_us(5);
CE=0;
}
u8 Read_12864_Data(void)//读数据
{
u8 data;
Check_12864_Busy();
GPIO_12864_Read();
RS=1;
RW=1;
CE=1;
delay_us(10);
data=DATAIN_12864;
CE=0;
GPIO_12864_Write();
return(data);
}
void Write_12864_Com(u8 commod)//写指令
{
Check_12864_Busy();
RS=0;
RW=0;
delay_us(5);
CE=1;
DATAOUT_12864(commod);
delay_us(5);
CE=0;
}

void LCD_12864_Init(void) //液晶初始化

Write_12864_Com(basic_commod);//30H--基本指令操作 
// delay_ms(1); 
Write_12864_Com(cursor_off);//0x06开显示,关光标,不闪烁。 扩展
// delay_ms(1); 
Write_12864_Com(clear);//清除显示0x01 
// delay_ms(20); 
Write_12864_Com(0x06);//指定在资料写入或读取时,光标的移动方向,DDRAM的地址计数器(AC)加1。 


void Write_12864_String(u8 *str)//写入字符串或者汉字
{
u8 *p;
p=str;
while(*p!=0)
{
Write_12864_Data(*p);
p=++str;
// delay_ms(10);
}
}
/*****指定位置显示汉字*****/
void hanzi_Disp(u8 xu8 yu8 *s)

Write_12864_Com(addr_tab[8*x+y]);  //写地址
while(*s>0)
   { 
Write_12864_Data(*s);    //写数据
s++;     
   }
}
/*****指定位置显示数字,最大为65536*****/
void num_Disp(u8 xu8 yu16 number)
{
u16 i=10000;
Write_12864_Com(addr_tab[8*x+y]);  //写地址
while(number/i==0)
{
i/=10;
}
if(i!=1)
{
while(number/i!=0)
{
Write_12864_Data(number/i+0x30);
number-=(number/i)*i;
i/=10;
if(i==1)break;
}
}
Write_12864_Data(number%10+0x30);
}
/*画图方式为从左到右扫描,从上到下,每写一个字节后行地址加一,每写玩16个字节,即128个点(如果半屏显示8个字节,64个点)列地址加一*/
//点阵取点方式为从左到右,从上到下,高位在前,低为在后
void PHO_DISP(const unsigned char *s) 

u8 COUNT3=0X02COUNT1COUNT2LCD_X=0X80LCD_Y;
 
for (;COUNT3!=0;COUNT3--) 

LCD_Y=0X80; //上半屏
COUNT2=0X20;//32 
for(;COUNT2!=0;COUNT2--) 

COUNT1=0X10;/

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2013-07-21 11:02  复件 12864_2\
     目录           0  2013-07-21 11:02  复件 12864_2\HARDWAER\
     目录           0  2013-07-21 11:02  复件 12864_2\HARDWAER\12864\
     文件        9578  2013-07-15 15:02  复件 12864_2\HARDWAER\12864\12864.c
     文件        1136  2013-07-21 08:47  复件 12864_2\HARDWAER\12864\12864.h
     文件        5335  2013-07-20 21:21  复件 12864_2\HARDWAER\12864\cunchu.h
     文件        5342  2013-07-13 21:28  复件 12864_2\HARDWAER\12864\dingzhi.h
     文件        5436  2011-05-21 14:26  复件 12864_2\HARDWAER\12864\front.h
     文件        5339  2013-07-13 21:21  复件 12864_2\HARDWAER\12864\huashi.h
     目录           0  2013-07-21 11:02  复件 12864_2\HARDWAER\ADC\
     文件        1874  2013-07-21 10:31  复件 12864_2\HARDWAER\ADC\adc.c
     文件         693  2013-07-15 20:24  复件 12864_2\HARDWAER\ADC\adc.h
     目录           0  2013-07-21 11:02  复件 12864_2\HARDWAER\EXTI\
     文件        1993  2013-07-20 21:57  复件 12864_2\HARDWAER\EXTI\exti.c
     文件         178  2013-07-11 21:49  复件 12864_2\HARDWAER\EXTI\exti.h
     目录           0  2013-07-21 11:02  复件 12864_2\HARDWAER\KEY\
     文件         756  2013-07-20 21:50  复件 12864_2\HARDWAER\KEY\key.c
     文件         300  2013-07-20 21:57  复件 12864_2\HARDWAER\KEY\key.h
     目录           0  2013-07-21 11:02  复件 12864_2\HARDWAER\LED\
     文件         276  2013-07-20 09:30  复件 12864_2\HARDWAER\LED\LED.c
     文件         152  2013-07-20 09:37  复件 12864_2\HARDWAER\LED\LED.h
     目录           0  2013-07-21 11:02  复件 12864_2\HARDWAER\PWM\
     文件         489  2011-05-20 21:06  复件 12864_2\HARDWAER\PWM\PWM.c
     文件         125  2011-01-28 17:52  复件 12864_2\HARDWAER\PWM\PWM.h
     目录           0  2013-07-21 11:02  复件 12864_2\HARDWAER\TIME3\
     文件         406  2011-01-28 16:14  复件 12864_2\HARDWAER\TIME3\TIME3.c
     文件          79  2011-01-28 15:34  复件 12864_2\HARDWAER\TIME3\TIME3.h
     目录           0  2013-07-21 11:02  复件 12864_2\HARDWAER\TIMER\
     文件        1318  2013-07-20 16:05  复件 12864_2\HARDWAER\TIMER\timer.c
     文件         599  2012-07-23 19:09  复件 12864_2\HARDWAER\TIMER\timer.h
     目录           0  2013-07-21 11:02  复件 12864_2\SYSTEM\
............此处省略68个文件信息

评论

共有 条评论