基于单片机的音频播放器及文本浏览器设计 - 图文(7)

2019-04-14 16:11

青岛大学本科生毕业论文(设计)

void VS_sin_test(unsigned char x)

//SPI硬件读/写

void SPI_WriteByte(unsigned char x); unsigned char SPI_ReadByte();

4.2.4 SD卡驱动

由于单片机硬件SPI接口只有一个,而VS1003B和SD卡两个SPI器件只能连接一个,出于速度考虑所以这里SD卡使用模拟SPI接口。

//利用I/O口模拟SPI写时序,发送一个字节 void SD_spi_write(unsigned char x)

//利用I/O口模拟SPI读时序,读取一个字节 unsigned char SD_spi_read() //SPI读一个字节

//SD卡写命令函数,命令字节序列首地址为pcmd unsigned char SD_Write_Cmd(unsigned char *pcmd)

// SD卡复位函数,使用CMD0(命令0) unsigned char SD_Reset()

// SD卡初始化函数,使用CMD1(命令1) unsigned char SD_Init()

//写512 Byte的数据到SD卡的扇区addr中,使用CMD24(命令24) unsigned char SD_Write_Sector(unsigned long addr,unsigned char *buffer)

//从addr扇区读取512 Byte数据到数据缓冲区buffer,使用CMD17(17号命令) unsigned char SD_Read_Sector(unsigned long addr,unsigned char *buffer)[14]

4.2.5 DS1302、DS18B20驱动

26

青岛大学本科生毕业论文(设计)

// ds18b20复位函数 void ds18b20rst()

//读一个字节

unsigned char ds1820rd()

//写一个字节到ds1820 void ds1820wr(uchar wdata)

//读取温度值并转换 read_temp()

//温度值显示 void ds1820disp()

//ds1302初始化 void Init_1302(void)

//ds1302写数据

void write_clock(unsigned char ord, unsigned char dd)

//ds1302逐位读出字节 void clock_out(unsigned char dd)

//ds1302逐位写入字节 unsigned char clock_in(void)

//ds1302读数据,供调用时钟数据

unsigned char read_clock(unsigned char ord)[15]

4.2.6 UART驱动

27

青岛大学本科生毕业论文(设计)

//串口初始化 void UART_Init()

//串口中断函数

void sio_int() interrupt 4 using 3

//串口发送一字节

void UART_Send_Byte(unsigned char mydata)

//回车换行,即单片机的串口发送0d 0a ,在“超级终端”上会有回车换行的效果 void UART_Send_Enter()

//串口发送字符串s

void UART_Send_Str(char *s)

//串口发送数值dat

void UART_Put_Num(unsigned long dat)

4.2.7 其他功能函数

1、Main()函数

Main()函数实现了各个模块的初始化,以及多级菜单的显示 流程图见图4.1:

28

青岛大学本科生毕业论文(设计)

上电复位 液晶初始化 串口初始化 SD卡初始化 FAT32文件系统初始化 时钟芯片、温度传感器初始化 初始化完毕 N 按键检测 Y 显示默认界面

图4.1 主函数设计流程图

具体程序如下: void main() {

UINT32 b,c; uchar a=0,m,n,e=0; UART_Init(); //串口初始化 init();//系统初始化 init_img();//屏幕初始化

display_img(img_intel);//开机画面 FAT32_Device_Init(); //存储设备初始化

pArg=&Init_Arg_SDCARD; //指针指向SD卡文件系统参数集合,FAT32将从这个集合中获取参数

29

青岛大学本科生毕业论文(设计)

Dev_No=SDCARD; //设备号为SDCARD,FAT32依照此设备号选择存储设备驱动 FAT32_Init();

//文件系统初始化

//第一行显示 //第二行显示 //第三行显示 //第四行显示 //延时

b=znFAT_Get_Remain_Cap();//获取剩余容量 display1_mesg(\基于单片机的* \display2_mesg(\文本浏览器及* \display3_mesg(\播放器* \ display4_mesg(\ delay_2s(); lcd_init();//清屏

display1_mesg(\自动化工程学院\display2_mesg(\电子信息科学技术\display3_mesg(\指导老师:章平 \display4_mesg(\学 生:高森 \delay_2s(); lcd_init();//清屏

display1_mesg(\总容量为(mb): \初始化文件系统,显示容量 c=pArg->Total_Size; c=c/1024; c=c/1024; m=sizeof(c); b=b/1024; b=b/1024;

display3_mesg(\剩余容量为(mb):\n=sizeof(b); display44_num(b,n); delay_2s(); Init_1302(); lcm_init();

//时钟芯片初始化

//液晶初始化

//第四行显示剩余容量

//获得的容量单位为byte,因此两次除以1024可以得到的MB单位

//第二行显示总容量

display22_num(c,m);

lcm_clr(); //清屏 Clean_12864_GDRAM(); //清屏 while(1) {

30


基于单片机的音频播放器及文本浏览器设计 - 图文(7).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:测量学读书笔记

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: