程序文件添加完毕后,对其进行编译当前程序、编译修改过的文件并生成应用程序、重新编译所有文件并生成应用程序后,再点击TARGET,则其页面为: 再点击图案上的Output键 25 接下来就是点击上图中的select folder for objects键,得到下图将其产生的HEX文件存储在E盘zh文件夹中。 最后一步就是利用STC-ISP将HEX文件烧录到单片机里。 4.2 主机程序设计 本软件系统有一个主程序,五个子程序,五个子程序分别为向串口发送数据 26 子程序putc_to_serialport()、键盘扫描子程序Keys_Scan()、LED数据显示子程序Display_Result(int d)、延时子程序Delay()、主机串口接受中断子程序Serial_INT() interrupt 4。 (1)主程序 主程序对系统进行初始化,主要是进行定时/计数的初始化,然后调用键盘扫描程序Keys_Scan(),再根据按下的键来调用向串口发送数据子程序putc_to_serialport()将相应的数据发送给串行口。当没有键按下时,则送一个数F给LED显示器。其流程图见图4.1 (2)向串口发送数据子程序putc_to_serialport() 该程序首先将数据发送到串行口,当T1=0时,表明传送结束。其流程图如4.2所示 (3)键盘扫描子程序Keys_Scan() 该程序是先将行选好,然后再选定列就可以确定到具体的哪一个按键。其流程图如图4.3所示 (4)LED显示程序Display_Result(int d) 该子程序用的数码管动态显示方式。先将单片机的P2.7口选通进行位选,然后将位选的值发送给单片机P1口。接着将单片机的P2.6口选通进行段选,然后将要显示的数字的值发送给P0口。然后调用延时,接着将P2.7、P2.6口置0,下面是重复上面的过程,直到要显示的数字全部显示在数码上。其流程图如4.4所示。 (5)主机串口接受中断子程序Serial_INT() interrupt 4。 当RI =1时,接受串口过来的数据,并对该数据进行X*05H/0FFH的处理,接下来用处理过的数据调用LED显示程序Display_Result(int d)。如图4.4所示 27 开始 初始化 启动定时器1 开中断 判断是否有按键按下 Y 再根据扫描到的键盘号,发送相应的数据给串口, N 调用一个Display()在LED上显示F 图4.1主程序 数据发送到串行口 当T1=0时,则传送结束 TI=0 图4.2 向串口发送数据子程序putc_to_serialport() 28