函数发生器界面设计Word文件下载.docx
- 文档编号:19264463
- 上传时间:2023-01-04
- 格式:DOCX
- 页数:21
- 大小:221.97KB
函数发生器界面设计Word文件下载.docx
《函数发生器界面设计Word文件下载.docx》由会员分享,可在线阅读,更多相关《函数发生器界面设计Word文件下载.docx(21页珍藏版)》请在冰豆网上搜索。
callwrite_command
clearddram
stm#01h,ar5
turnondisplay
stm#0ch,ar5
setdisplayaddress
stm#80h,ar5;
setdisplayaddress
callwrite_command
调用中文字库代码,显示汉字
stm#0c7h,ar5
mvdkar5,1023h
callwrite_data
stm#0ebh,ar5
callwrite_data;
请
stm#0d1h,ar5
stm#0a1h,ar5
callwrite_data;
选
stm#0d4h,ar5
stm#0f1h,ar5
择stm#0b2h,ar5
stm#0a8h,ar5
波
stm#0d0h,ar5
stm#0ceh,ar5
形
stm#91h,ar5;
stm#0a3h,ar5
stm#0b1h,ar5
1.
stm#93h,ar5;
stm#0d5h,ar5
stm#0fdh,ar5
正
stm#0cfh,ar5
stm#0d2h,ar5
弦
stm#0b2h,ar5
stm#89h,ar5;
2.
stm#8bh,ar5;
callwrite_command
stm#0b7h,ar5
stm#0bdh,ar5
方
波
stm#99h,ar5;
stm#0b3h,ar5
3
stm#9bh,ar5;
stm#0beh,ar5
stm#0e2h,ar5
锯
stm#0ddh,ar5
齿
bfill_chinese_word;
test
ret
2、键盘连接驱动:
从键盘输入数字时要完成下列步骤:
1、按键的识别,即确定是否有按键按下。
首先DSP通过写键盘端口输出00000到键盘的行线,然后通过读键盘端口输入,检测键盘的列线信号。
若没有按键按下,则输入的列线信号为111。
若有按键按下,则输入的信号不为111。
2、行扫描确定按键的位置,行扫描是指依次给每条行线输出0信号,而其余行线输出1信号,并检测每次扫描所对应的列线信号。
每次给行线输出的信号称为行代码Xi,而检测到的列线信号称为列代码Yi。
若某行有按键按下,并扫描到该行时,则从读键盘端口检测到的列线信号为0,否则为1。
在扫描的过程中,只要记下列信号不为全1时的行代码和列代码,就能确定按键的位置。
3、按键防抖,检测到有按键按下后,延时10~20ms,然后再进行行扫描。
4、键码产生,经过行扫描后,就能确定按键的键码。
键码是由行代码和列代码组合而成。
程序流程图如右:
ExternvoidInitC5402(void);
externvoidInitMcBSP0(void);
externvoidms_delay(int);
externvoidsend_0(void);
externvoidsend_1(void);
externvoidsend_2(void);
externvoidsend_end(void);
externvoidINT3_ISR(void);
externvoid_fill_chinese_word(void);
voidsend_byte(unsignedcharout_byte);
voidwrite7279(unsignedintcmd,unsignedintdta);
voidlong_delay(void);
voidshort_delay(void);
interruptvoidkey_int();
unsignedintkey_a;
/******MainFunctionProgram******/
#defineCMD_RESET0xa4
#defineCMD_TEST0xbf
#defineDECODE00x80
#defineDECODE10xc8
#defineCMD_READ0x15
#defineUNDECODE0x90
#defineRTL_CYCLE0xa3
#defineRTR_CYCLE0xa2
#defineRTL_UNCYL0xa1
#defineRTR_UNCYL0xa0
#defineACTCTL0x98
#defineSEGON0xe0
#defineSEGOFF0xc0
#defineBLINKCTL0X88
#defineINPUT0x111
unsignedintbyteout;
chara,b;
voidmain(void)
{unsignedchari;
//unsignedcharj;
InitC5402();
InitMcBSP0();
ms_delay(25);
Write_lcd();
//fill_chinese_word();
asm("
STM#0x6900,ST1"
);
send_byte(CMD_TEST);
//cmd_test=0xbf
long_delay();
send_byte(CMD_RESET);
//cmd_reset=0xa4
for(i=0;
i<
16;
i++)
{
write7279(DECODE0,i);
//(0x80,i)
send_byte(RTL_UNCYL);
//0xa1,左移
long_delay();
}
for(i=16;
i>
0;
i--)
{
write7279(DECODE0+7,i);
send_byte(RTR_UNCYL);
}
while
(1)
//Write_lcd();
voidsend_byte(unsignedcharout_byte)
{
unsignedchari;
send_0();
8;
if(out_byte&
0x80)
{
send_1();
else
send_2();
}
out_byte=out_byte*2;
voidwrite7279(unsignedintcmd,unsignedintdta)
unsignedintcmddata;
NOP"
dta=(dta&
0x00ff);
cmddata=((cmd<
<
8)|dta);
for(i=0;
{if(cmddata&
0x8000)
{send_1();
else
send_2();
cmddata=cmddata*2;
send_end();
voidlong_delay(void)
unsignedchari,j;
0xfff;
for(j=0;
j<
0x50;
j++)
{}
voidshort_delay(void)
0x10;
{for(j=0;
0x100;
interruptvoidkey_int()
INT3_ISR();
key_a=*(unsigned*)0x15;
write7279(DECODE0,key_a);
if(key_a==0xf)
main();
三、程序调式:
调试步骤
⑴.拔码开关S22的设置:
1—OFF,2—ON;
⑵.正确完成计算机、DSP仿真器和实验箱的连接后,系统上点;
⑶.启动CCS.5000,用Project/Open打开”key-7279.out”工程文件;
双击”key-7279.pit”及"
Source"
查看各源程序;
并加载”key-7279.out”,单击“Run”运行程序,然后观察结果。
运行程序后实验箱上LCD的界面为:
四、心得体会:
被分到做基于DSP技术的那个课题组时感觉很无奈,当时老师讲课自己就没怎么听,真的唯独DSP这门,其他像单片机,EDA都还花了不少心思。
刚拿到课题,没有半点思路,不知要从何开始,更不提用什么方法。
找了一些资料,搬出很久没动过的DSP教材,几天下来也还有了点头绪,只是很难写也程序,在老师的指导下将那个用C语言编写的按键控制程序和用汇编语言写的显示程序综合在了一起,虽然要改的不多,我也花了不少的时间,感觉收获还有不小,起码证明了自己的自学能力,呵呵。
通过这次课程设计,把以前没有掌握的课本知识又重新学习了一遍,更重要的是学会了用DSP设计一个简单系统的方法,这对今后的学习工作都有着很大的帮助,有助于系统的理解了编译原理程序构造的一般原理和基本实现方法。
把学过的计算机编译原理以及相关课程的知识强化,能够把课堂上学的知识通过自己设计的程序表示出来,加深了对理论知识的理解和对自己动手能力的提高。
这次课程设计让我学会了如何用软件CCS3.1(CCS5000)进行简单的DSP工程调式,想以前DSP实验的时候,老师讲它的用法怎么也听不明白,看来对于我们学工科的凡事还是得自己动动手来的快。
五、参考文献:
1:
DSP原理及应用邹彦主编电子工业出版社
2:
C语言程序设计蒋清明主编人民邮电出版社
3:
C54xx硬件原理设计
4:
DSP集成开发环境:
CCS及DSP_BIOS的原理
5:
TMS320VC5402Fixed-PointDigitalSignalProcessor
6:
CCS技术
六、附录:
1、带中文字库图形液晶显示模块LCM12864ZK说明书:
设定DDRAM位址:
CODE
RS
RW
DB7
DB6
DB5
DB4
DB3
DB2
DB1
DB0
1
AC6
AC5
AC4
AC3
AC2
AC1
AC0
设定DDRAM地址到位地址计数器(AC)
第一行AC范围为:
80H-87H;
第二行AC范围为:
90H-97H;
第三行AC范围为:
88H-8FH;
第四行AC范围为:
98H-9FH;
2、HD7279A串行接口8位LED数码管及64键键盘智能控制芯片资料:
七、总程序清单:
externvoidInitC5402(void);
externvoid_fill_chinese_word(void);
/********************MainFunctionProgram*********************/
unsignedcharyy1[16][3]={{0x80,0xc7,0xeb},{0x81,0xd1,0xa1},{0x82,0xd4,0xf1},{0x83,0xb2,0xa8},{0x84,0xd0,0xce},{0x90,0xa3,0xb1},{0x92,0xd5,0xfd},{0x93,0xcf,0xd2},{0x94,0xb2,0xa8},{0x88,0xa3,0xb2},{0x8A,0xb7,0xbd},{0x8B,0xb2,0xa8},{0x98,0xa2,0xb3},{0x9A,0xbe,0xe2},{0x9B,0xb3,0xdd},{0x9B,0xb2,0xa8}};
unsignedcharyy2[11][3]={{0x80,0xb5,0xb1},{0x81,0xc7,0xb0},{0x82,0xb2,0xa8},{0x83,0xd0,0xce},{0x85,0xd5,0xfd},{0x86,0xcf,0xd2},{0x87,0xb2,0xa8},{0x90,0xc6,0xb5},{0x91,0xc2,0xca},{0x96,0xa3,0xc8},{0x97,0xa3,0xfa}};
unsignedcharyy3[10][3]={{0x80,0xb5,0xb1},{0x81,0xc7,0xb0},{0x82,0xb2,0xa8},{0x83,0xd0,0xce},{0x85,0xb7,0xbd},{0x87,0xb2,0xa8},{0x90,0xc6,0xb5},{0x91,0xc2,0xca},{0x96,0xa3,0xc8},{0x97,0xa3,0xfa}};
unsignedcharyy4[11][3]={{0x80,0xb5,0xb1},{0x81,0xc7,0xb0},{0x82,0xb2,0xa8},{0x83,0xd0,0xce},{0x85,0xbe,0xe2},{0x86,0xb3,0xdd},{0x87,0xb2,0xa8},{0x90,0xc6,0xb5},{0x91,0xc2,0xca},{0x96,0xa3,0xc8},{0x97,0xa3,0xfa}};
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 函数 发生器 界面设计
![提示](https://static.bdocx.com/images/bang_tan.gif)