找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 5073|回复: 10
打印 上一主题 下一主题
收起左侧

proteus超级终端 多媒体设计

[复制链接]
跳转到指定楼层
楼主
本帖最后由 何必919 于 2013-7-29 13:14 编辑

多媒体设计总体设计
本设计主要实现PC机和单片机之间的数据传输,单片机MCU采用AT89C51RD2,以XP操作系统自带的超级终端软件和单片机进行信息传输,为了更好地人机交互、便于使用,上位机界面使用MFC软件设计。此系统功能:
(1)电压采集并显示;(2)计数并显示;(3)led控制并显示状态;(4)EEPROM掉电保护;(5)音乐播放;(6)图片浏览;(7)超级终端通信,可通过命令控制单片机进行多项操作;(8)MFC上位机控制,实现更友好的人机交互功能,屏蔽超级终端下的指令操作,便于操作;(9)uCos ii移植的应用,能更好的管理任务,提高工作效率和系统升级空间,uCos ii和ucGUI搭配能够快速设计出比较美观的LCD界面。
本设计总体框图如下:


汉字和图片取模  
   下载一个取模软件,字体取模时的选项设置为:点阵格式为阴码,取模方式为列行式,取模走向为逆向,文字大小为宽x=16x16;数字和英文字母大小点阵为:宽x=8x16
   图片取模方法:首先对图片进行处理,因为LCD12864不能显示彩色,而且点阵大小只有128*64,所以必须缩小图片大小和去除彩色;取模方式和字体取模方式类似。
仿真结果
LCD12864实时显示系统计数个数、电压和led状态,如下图:
  图2.2 系统状态
  多媒体模块设计音乐播放
曲谱存贮格式 unsigned charcode MusicName{音高,音长,音高,音长...., 0,0};   末尾:0,0 表示结束(Important)
音高由三位数字组成:
       个位是表示 1~7 这七个音符
       十位是表示音符所在的音区:1-低音,2-中音,3-高音;
       百位表示这个音符是否要升半音: 0-不升,1-升半音。
音长最多由三位数字组成:
       个位表示音符的时值,其对应关系是:
           数值(n):  |0 |1 |2 |3 | 4 | 5 | 6
           几分音符: |1 |2 |4 |8 |16|32 |64      音符=2^n
       十位表示音符的演奏效果(0-2):  0-普通,1-连音,2-顿音
       百位是符点位: 0-无符点,1-有符点
调用演奏子程序的格式
       Play(乐曲名,调号,升降八度,演奏速度);
    乐曲名          : 要播放的乐曲指针,结尾以(0,0)结束;
    调号(0-11)      :   是指乐曲升多少个半音演奏;
    升降八度(1-3)   : 1:降八度, 2:不升不降, 3:升八度;
    演奏速度(1-12000):   值越大速度越快;
    音乐播放采用两个定时器,单片机系统存贮了4首音乐曲谱,由于ROM空间有限,只能存放曲调没有歌词,可由按键选择播放,如下图:



                   图2.3 音乐播放
图片浏览
      ROM里面存贮了多张图片取模后的点阵信息,可通过按键选择播放,
如下图:


图2.4 图片浏览

超级终端通信配置超级终端
波特率9600,数据位8位,无奇偶校验,停止位1位,无数据流如图2,5所示:
图2,5 配置超级终端
2.5.2 超级终端命令
COMMAND CommandList[MAX_COMMAND_NUM]= {
       {"help",Help," help -----Command help"},
       {"set",Set," set <clearor led><num> ----- Change LED or Count"},
       {"display",Display,"display ----- Display LED Count Voltage"},
       {"reboot",Reboot," reboot----- Reboot the MCU"},
};    //指令;指令函数;帮助;
voidRunHyperTerminal()
{
       if(ExecCommandFlag)
       {
              ExecCommand(&SerialBuffer[0]);
              SerialSendStr(&PromptBuffer[0]);
              memset(&SerialBuffer[0],'\0',MAX_SERIAL_BUFFER_SIZE);
              CursorPosion = 0;
              ExecCommandFlag = 0;
       }
}                                                                                         
cmd->>:help
help ----- Command help
set <clear or led><num> -----Change LED or Count
display ----- Display LED Count Voltage
reboot ----- Reboot the MCU
cmd->>:display
The LED Num is :   3
The Count  is :  5
The Voltage  is :  2.70V
cmd->>:setclear
The Count is clear!
cmd->>:setled 1
The LED stat is change!


                  图2.6  超级终端
  MFC上位机设计收发数据函数
下面是数据接收、发送的函数:
//串口数据接收事件
LRESULT CSerialCommunicationDlg::OnCommNotify(WPARAM wp, LPARAM lp)
{
    //得到文本内容
    LPCTSTR pBuf = (LPCTSTR)wp;
    //将文本写入文本框
    CString str;
    GetDlgItemText(IDC_EDIT_READ,str);
    char*pBufChar=(char *)pBuf;
    str += pBufChar;
    SetDlgItemText(IDC_EDIT_READ,str);
    CEdit * output=(CEdit*)GetDlgItem(IDC_EDIT_READ);
    //随时跟踪滚动条的位置
    output->LineScroll(output->GetLineCount());


    returnTRUE;
}
void CSerialCommunicationDlg::OnBnClickedButtonClear()
{
    //TODO: 在此添加控件通知处理程序代码
    //TODO: 在此添加控件通知处理程序代码
    CString str;
    str="setclear";
    //将数据写入串口
    intnLen = (str.GetLength() + 1) * sizeof(TCHAR);
    m_com.WriteData((byte*)(LPCTSTR)str, nLen);

}
配对串口
通过串口(软件配对串口COM1-COM2,如图2.6所示)连接proteus单片机系统;COM1连接proteus,COM2连接超级终端或MFC上位机;


图2.7 配对串口
仿真结果
实现控制单片机系统的led状态、计数复位、显示数据和复位功能,其效果如图2.8所示:

图2.8  MFC界面

总结
本设计通过串口对单片机进行控制,选择LCD12864显示,MFC编写上位机界面,可以远程对单片机进行简单操作;
u  主要设计内容:
Ø  电压采集设计;
Ø  计数设计;
Ø  led控制设计;
Ø  EEPROM掉电保护设计;
Ø  音乐播放设计;
Ø  图片浏览设计;
Ø  超级终端通信设计;
Ø  MFC上位机界面设计;
Ø  uCos ii移植的应用。
电子DIY交流平台 QQ群: 215363597附录: 附件:proteus仿真文件
游客,如果您要查看本帖隐藏内容请回复
  
file:///C:/DOCUME~1/ADMINI~1/LOCALS~1/Temp/msohtmlclip1/01/clip_image015.png
file:///C:/DOCUME~1/ADMINI~1/LOCALS~1/Temp/msohtmlclip1/01/clip_image017.jpg












波特率.jpg (15.81 KB, 下载次数: 265)

波特率.jpg

浏览.jpg (13.24 KB, 下载次数: 275)

浏览.jpg

系统.jpg (18.27 KB, 下载次数: 290)

系统.jpg

音乐播放1.jpg (22.95 KB, 下载次数: 266)

音乐播放1.jpg

音乐播放.jpg (23.53 KB, 下载次数: 262)

音乐播放.jpg
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:32572 发表于 2013-7-29 11:59 | 只看该作者
怎么发附件啊
回复

使用道具 举报

板凳
ID:52922 发表于 2013-8-11 08:00 | 只看该作者
谢谢楼主分享,看看
回复

使用道具 举报

地板
ID:63747 发表于 2014-7-9 21:48 | 只看该作者
很强大,收了,慢慢看
回复

使用道具 举报

5#
ID:65877 发表于 2014-9-6 17:23 | 只看该作者
强人!学习中。
回复

使用道具 举报

6#
ID:64825 发表于 2014-9-11 18:28 | 只看该作者
看看。。。。。
回复

使用道具 举报

7#
ID:66338 发表于 2014-9-19 00:10 | 只看该作者
谢谢楼主的分享!开源精神最可贵
回复

使用道具 举报

8#
ID:66338 发表于 2014-9-19 00:16 | 只看该作者
楼主,东西多多发
回复

使用道具 举报

9#
ID:66491 发表于 2014-9-25 09:53 | 只看该作者
学习了,谢谢LZ分享。
回复

使用道具 举报

10#
ID:58086 发表于 2014-9-25 21:06 | 只看该作者
下来看看~
回复

使用道具 举报

11#
ID:201547 发表于 2017-6-23 21:41 | 只看该作者

谢谢楼主分享,看看
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表