嵌入式实验 点阵屏应用 程序代码
时间: 2023-08-26 20:05:32 浏览: 43
以下是一个简单的点阵屏应用程序代码,可以在嵌入式系统上运行,用于显示一些简单的图案或文字:
```c
#include <reg51.h>
// 点阵屏的引脚定义
sbit LSA=P2^2;
sbit LSB=P2^3;
sbit LSC=P2^4;
sbit OE=P2^5;
sbit RCK=P2^6;
sbit SCK=P2^7;
sbit DIO=P3^4;
// 数码管显示的字符数组
unsigned char code disp[]={
0xc0,0xf9,0xa4,0xb0,0x99,
0x92,0x82,0xf8,0x80,0x90,
0xff // 显示空格
};
// 延时函数
void delay(unsigned int t) {
while(t--);
}
// 发送一个字节的数据到点阵屏
void sendbyte(unsigned char dat) {
unsigned char i;
for(i=0; i<8; i++) {
SCK = 0;
DIO = dat >> (7-i);
SCK = 1;
}
}
// 发送一个控制字节到点阵屏
void sendcmd(unsigned char cmd) {
LSA = 0;
LSB = 0;
LSC = 0;
sendbyte(cmd);
}
// 发送一个数据字节到点阵屏
void senddat(unsigned char dat) {
LSA = 1;
LSB = 0;
LSC = 0;
sendbyte(dat);
}
// 清屏
void clear() {
unsigned char i,j;
for(i=0; i<16; i++) {
sendcmd(i*16);
for(j=0; j<16; j++) {
senddat(0);
}
}
}
// 在指定位置显示一个字符
void showchar(unsigned char x, unsigned char y, unsigned char ch) {
unsigned char i;
sendcmd(128+y*16+x);
for(i=0; i<8; i++) {
senddat(disp[ch-'0'+i]);
}
}
// 在指定位置显示一个字符串
void showstr(unsigned char x, unsigned char y, unsigned char *str) {
while(*str) {
showchar(x++, y, *str++);
}
}
// 主函数
void main() {
OE = 0;
RCK = 0;
SCK = 0;
clear();
showstr(0, 0, "Hello, world!");
while(1);
}
```
以上代码中,我们定义了点阵屏的引脚并实现了一些基本的函数,包括发送数据到点阵屏、清屏、在指定位置显示一个字符或字符串等。在主函数中,我们调用了这些函数来显示“Hello, world!”这个字符串。当然,你也可以根据需要修改代码来实现其他的功能,例如显示图案等。