- --
初始化 N 有键按下
Y
再次重新扫描 延时 N 确认有键按下
Y
键盘扫描处理
结束 图3-1 软件设计流程图
根据key值做相应处理 根据不同的扫描值赋予key
3.1延时程序设计
因程序设计中很多都要用到延时程序所以延时程序用delay()函数来实现,
- . -word资料-
- --
其程序如下:
void Delay_xMs(unsigned int x) {
unsigned int i,j;
for(i=0;i for(j=0;j<3;j++); } } 3.2定时器初始化及其中断函数 //定时器1的初始化 void Time1_Init() { TMOD=TMOD|0x10; EA=1; ET1=1; TH1=0xD8; TL1=0xEF; } //定时器中断函数 void Time1_Int() interrupt 3 { TH1=0xD8; TL1=0xEF; Count++; } 3.3示例音乐播放程序 while(!eg_music) - . //定时器1,方式1 //外部中断1 -word资料- - -- { P0=0xc6; //C表示播放示例音乐 Time1_Init(); } Play_Song(0); // 调用示例音乐函数 TR0=0; 3.4单独按键中断处理函数 void init_interrupt(void ) interrupt 1 { TR0=0; TH0=table[key]/256; TL0=table[key]%6; speak=~speak; TR0=1; } 4 实验结果与分析 4.1 Proteus软件简介 Proteus ISIS是英国Labcenter公司开发的电路分析与实物仿真软件。它运行于Windows操作系统上,可以仿真、分析各种模拟器件和集成电路,该软件的特点是: ①实现了单片机仿真和数字电路仿真相结合。具有模拟电路仿真、数字电路仿真、单片机及其外围电路组成的系统的仿真、RS232动态仿真、I2C调试器、SPI调试器、键盘和LCD系统仿真的功能;有各种虚拟仪器,如示波器、逻辑分析仪、信号发生器等。 ②支持主流单片机系统的仿真。目前支持的单片机类型有:68000系列、8051系列、AVR系列、PIC12系列、PIC16系列、PIC18系列、Z80系列、HC11系列 - . -word资料- - -- 以及各种外围芯片。 ③提供软件调试功能。在硬件仿真系统中具有全速、单步、设置断点等调试功能,同时可以观察各个变量、寄存器等的当前状态,因此在该软件仿真系统中,也必须具有这些功能;同时支持第三方的软件编译和调试环境,如Keil C51 uVision2等软件。 ④具有强大的原理图绘制功能。总之,该软件是一款集单片机和电路分析于一身的仿真软件,功能极其强大。 单击屏幕左下方的“开始”→“程序”→“Proteus 7.7 Professional” →“ISIS 7.1 Professional”,如图4-1所示。 图4-1 Proteus启动时的屏幕 Proteus ISIS的工作界面是一种标准的Windows界面,如图4-2所示。包括:标题栏、主菜单、标准工具栏、绘图工具栏、状态栏、对象选择按钮、预览对象方位控制按钮、仿真进程控制按钮、预览窗口、对象选择器窗口、图形编辑窗口。 图4-2 Proteus ISIS的工作界面 运行Proteus程序后,进入软件的主界面。通过左侧工具栏中的P(从库中选择元件命令)命令,在Pick Devices 左侧窗口中选择所需元件的关键字,然后放置元件并调整方向和位置以及参数设置,进行连线。最后载入hex文件后可以进行模拟仿真,可以全速运行也可以单步调试运行。 - . -word资料- - -- 图4-3 Proteus运行按键 4.2仿真调试 在Proteus中添加单片机AT89C51,2个100Ω电阻,,2个30pF电容,2个10μF电解电容,1个共阳极数码管,1个共阳极晶振,10个按钮开关和1个扬声器即可得到仿真原理图。 按下按钮开关“1”,扬声器发出do声,并且数码管显示“1”。如图4-5示。 图4-5 按下按键1的仿真图 按下按钮开关“EG”,扬声器播放示例曲目,并且数码管显示“C”。如图5-6示。 - . -word资料-
基于51单片机的电子琴设计 - 图文



