开始 初始化 启动定时器1 开中断 N 判断是否有按键按下 调用一个Y Display()在LED再根据扫描到的键盘号,发送相应的数据给串口。 缟馭篩凉。 图6主程序
数据发送到串行口 当T1=0时,则传送结束 TI=0 瑣钋濺暧惲锟10
7 向串口发送数据子程序putc_to_serialport()
开始 显示个位 显示十分位 显示百分位 显示小数点 结束
图8 LED显示程序Display_Result(int d)
11
图
开始 先将低4位置1选定4行 然后判断该按键发生在哪一是否有按键N 按下 Y KeyNo=16 将列数赋给将高4位置1选定4列 再判断发生在那一行 0—3行分别附加起始值0,4,8,12 返回 图9键盘扫描子程序Keys_Scan()
鎦诗涇艳损楼紲鯗餳類。12
开始 接受数据 对数据进行相关处理 调用Display_Result(m)
图10 主机串口接受中断子程序Serial_INT() interrupt 4
4.3 从机程序设计
该部分的程序包括一个主程序、三个子程序,三个子程序分别为从机串口接收中断函数Serial_INT() interrupt 4、向串口发送数据子程序putc_to_SerialPort(uchar c)和模数转换子程序ADCON。串口发送数据子程序如图7栉缏歐锄棗鈕种鵑瑶锬。 开始 初始化 启动定时器1 开中断 调用Adcon() 结束 。
图11 主程序
13
开始 选定通道号 开始转换 转换结束将得到的数据发送给串口 结束
图12 模数转换子程序ADCON
开始 接收串口数据 判断接受到的数据N 第4位是否为1 Y 选定循环采集方按选定的通道号采集 式 结束 图13 从机串口接收中断函数Serial_INT() interrupt 4
14