超市收银机

2026/1/27 6:22:59

? 键盘输入流程

图3.2 键盘输入流程

软件设计如下(PS/2键盘子程序): void __irq IRQ_Eint0 (void) { n++; keybuffer[j]>>=1;

if(IO0PIN&DATA)keybuffer[j]|=0x8000; //读数据,为1则最高位置1. if(n==11) //接收起始位,八位数据,奇校验位,停止位, { n=0; keybuffer[j]>>=6; keybuffer[j]&=0x00ff;

num++;

if(keybuffer[(j+41)B]==0xf0&&keybuffer[(j+13)]!=0xe0) {keyflag=1;keyvalue=keybuffer[j];}

else if(keybuffer[(j+14)]==0xf0&&keybuffer[(j+13)]==0xe0) {keyflag=-1;keyvalue=keybuffer[j];} j++; if(j==42)j=0; }

if(keyflag==1)

{ keyflag=0;

keyprocess1(keyvalue); keyvalue=0; } if(keyflag==-1); { keyflag=0;

keyprocess2(keyvalue);

- 17 -

?

keyvalue=0; }

*/ */

EXTINT = 0x01; /* 清除EINT0中断标志 VICVectAddr = 0; /* 向量中断结束

SD卡读写程序流程

SD卡用作存储功能,对它的主要操作就是读写功能,我们在研究这部分功能的时候还

加上擦除功能,使SD卡的应用更加的广泛和完善。对SD卡的操作如下图:

图3.3 SD卡读写程序流程

SD卡存储函数main()程序如下: #include %uint8 buffer[512]; uint8 ret;

int main (void)

{int i;

ret = SD_Initialize(); //1. 初始化SD卡, 即启动卡

for (i = 0; i < 512; i++) buffer[i] = 0xAA;

ret = SD_WriteBlock(100, buffer); // 2. 写SD卡的第100扇区

for (i = 0; i < 512; i++)

buffer[i] = 0;

ret = SD_ReadBlock(100, buffer); // 3. 读SD卡的第100扇区

ret = SD_EraseBlock(100, 20); //4.擦除100各扇区中的20个 return 0;

}

- 18 -

?

打印程序流程 程序略。

图 3.4 打印机部分程序设计流程 ?

测温程序流程

温度传感器我们采用的是DS18B20,可达12位的数字值,分辨率为0.0625?C。DS18B20测温程序流程如下图:

19

图3.5 DS18B20程序设计方案

DS18B20测温程序(部分):

/*************************************************************************/ //DS18B20初始化程序,成功返回1否则返回0.

/*************************************************************************/ uint32 DS18B20init(void)

{ IO0DIR|=DQ; IO0CLR=DQ; delay(6000); IO0DIR=IO0DIR&(~DQ);

20


超市收银机.doc 将本文的Word文档下载到电脑
搜索更多关于: 超市收银机 的文档
相关推荐
相关阅读
× 游客快捷下载通道(下载后可以自由复制和排版)

下载本文档需要支付 10

支付方式:

开通VIP包月会员 特价:29元/月

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:xuecool-com QQ:370150219