-
C51控制并口打印機實例:/* 沈陽新榮達電子 *//* 2004-12-7 */#include <reg52.h>#define uchar unsigned char#define uint unsigned int#define data_8 P0sbit BUSY = P1^2; //打印機 BUSY 接P1.2sbit STB = P1^0; //打印機 STB 接P1.0void print(uchar j) //打印子程序{ uchar i;while(BUSY){}; //BUSY=1,打印機忙,等待BUSY 為0 再發(fā)數(shù)data_8=j;STB=0;i++;i--;STB=1; //給出數(shù)據(jù)鎖存時鐘BUSY=1;}void main(void){BUSY = 1; //忙信號置高STB = 1; //選通信號置高print(0x1b); //打印機初始化命令print(0x38);print(0x04);for(;;){print(0xd0); //發(fā)送漢字內(nèi)碼“新榮達”print(0xc2);print(0xc8);print(0xd9);print(0xb4);print(0xef);print(0x0d); //換行}}
標(biāo)簽:
微型打印機
打印
上傳時間:
2013-11-13
上傳用戶:lwq11
-
微型打印機的C語言源程序:微型打印機的C51源程序#define uchar unsigned char#define uint unsigned int#include <reg52.h>#include <stdio.h>#include <absacc.h>#include <math.h>#include <string.h>#include <ctype.h>#include <stdlib.h>#define PIN XBYTE[0x8000]#define POUT XBYTE[0x9000]sbit PRINTSTB =P1^6;sbit DOG=P1^7;bdata char pin&#118alue;sbit PRINTBUSY=pin&#118alue^7;sbit PRINTSEL =pin&#118alue^6;sbit PRINTERR =pin&#118alue^5;sbit PRINTACK =pin&#118alue^4; void PrintString(uchar *String1,uchar *String2);void initprint(void);void print(uchar a); void initprint(void) //打印機初始化子程序 { pin&#118alue=PIN; if((PRINTSEL==1)&&(PRINTERR==1)) { print(0x1b); print(0x40); print(0x1b); print(0x38); print(0x4); }}void print(uchar a) //打印字符a{ pin&#118alue=PIN; if((PRINTSEL==0)||(PRINTERR==0)) return; for(;;) { DOG=~DOG; pin&#118alue=PIN; if(PRINTBUSY==0) break; } DOG=~DOG; POUT=a; PRINTSTB=1; PRINTSTB=1; PRINTSTB=1; PRINTSTB=1; PRINTSTB=0; PRINTSTB=0; PRINTSTB=0; PRINTSTB=0; PRINTSTB=1;}void PrintString(uchar *String) //打印字符串后回車{ uchar CH; for (;;) { DOG=~DOG; CH=*String; if (CH==0) { print(0x0d); break; } print(CH); String++; } initprint();}
標(biāo)簽:
微型打印機
C語言
源程序
上傳時間:
2013-10-18
上傳用戶:hasan2015
-
1 /**————————————————————2 〖說明〗I2C總線驅(qū)動程序(用兩個普通IO模擬I2C總線)3 包括100Khz(T=10us)的標(biāo)準(zhǔn)模式(慢速模式)選擇,4 和400Khz(T=2.5us)的快速模式選擇,5 默認11.0592Mhz的晶振。6 〖文件〗PCF8563T.C ﹫2001/11/2 77 〖作者〗龍嘯九天 c51@yeah.net http://www.c51bbs.co /8 〖修改〗修改建議請到論壇公布 http://www.c51bbs.co m9 〖版本〗V1.00A Build 080310 —————————————————————*/1112 #ifndef SDA13 #define SDA P0_014 #define SCL P0_115 #endif1617 extern uchar SystemError;1819 #define uchar unsigned char20 #define uint unsigned int21 #define Byte unsigned char22 #define Word unsigned int23 #define bool bit24 #define true 125 #define false 02627 #define SomeNOP(); _nop_();_nop_();_nop_();_nop_();2829 /**--------------------------------------------------------------------------------30 調(diào)用方式:void I2CStart(void) ﹫2001/07/0 431 函數(shù)說明:私有函數(shù),I2C專用32 ---------------------------------------------------------------------------------*/33 void I2CStart(void)34 {35 EA=0;36 SDA=1; SCL=1; SomeNOP();//INI37 SDA=0; SomeNOP(); //START38 SCL=0;39 }4041 /**--------------------------------------------------------------------------------42 調(diào)用方式:void I2CStop(void) ﹫2001/07/0 443 函數(shù)說明:私有函數(shù),I2C專用44 ---------------------------------------------------------------------------------*/45 void I2CStop(void)46 {47 SCL=0; SDA=0; SomeNOP(); //INI48 SCL=1; SomeNOP(); SDA=1; //STOP49 EA=1;50 }5152 /**--------------------------------------------------------------------------------53 調(diào)用方式:bit I2CAck(void) ﹫2001/07/0 454 函數(shù)說明:私有函數(shù),I2C專用,等待從器件接收方的應(yīng)答55 ---------------------------------------------------------------------------------*/56 bool WaitAck(void)57 {58 uchar errtime=255;//因故障接收方無ACK,超時值為255。59 SDA=1;SomeNOP();60 SCL=1;SomeNOP();61 while(SDA) {errtime--; if (!errtime) {I2CStop();SystemError=0x11;return false;}}62 SCL=0;63 return true;
標(biāo)簽:
I2C
總線
驅(qū)動程序
上傳時間:
2014-04-11
上傳用戶:xg262122
-
EEPROM為ATMEL公司的AT24C01A。單片機為ATMEL公司的AT89C51。2. 軟件說明 C語言為Franklin C V3.2。將源程序另存為testi2c.c,用命令C51 testi2c.cL51 TESTI2C.OBJOHS51 TESTI2C編譯,連接,得到TESTI2C.HEX文件,即可由編程器讀入并進行寫片,實驗。3.源程序#include <reg51.h>#include <intrins.h> #define uchar unsigned char#define uint unsigned int#define AddWr 0xa0 /*器件地址選擇及寫標(biāo)志*/#define AddRd 0xa1 /*器件地址選擇及讀標(biāo)志*/#define Hidden 0x0e /*顯示器的消隱碼*/
標(biāo)簽:
C51
I2C
單片機
C語言
上傳時間:
2013-10-09
上傳用戶:hjshhyy
-
#include <reg51.h>#include <main.h>#include <interrupt.h>
cs5460a應(yīng)用電路(含源程序)bit code table_odd_even_bit[16]={0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0};
extern uchar rs485_timeout,pointer_buf485;extern uchar rs485_buf[MAX_485_LEN];extern uchar idata spi_buf[MAX_SPI_LEN];extern uchar pointer_send,send_len; extern uchar count_1s;//extern uint count_2min;extern uint count_10s;extern uchar oper_len,send_offset,chk_sum,send_i;extern bit flag_send_data,flag_level,flag_drdy,flag_data_ok;
標(biāo)簽:
5460a
5460
cs
C程序
上傳時間:
2014-01-24
上傳用戶:heart_2007
-
可預(yù)置的8位計數(shù)器程序的主要部分分析
#include <AT89X51.H> //器件配置文件
#define uchar unsigned char //變量類型的宏定義
#define uint unsigned int
uchar code SEG7[10]={0x03,0x9f,0x25,0x0d,0x99, //0~9的數(shù)碼管段碼
0x49,0x41,0x1f,0x01,0x09}
uchar data cnt[8] //在data區(qū)定義8位長度的數(shù)組,用來存放計數(shù)值
uchar data pre_cnt[8] //在data區(qū)定義8位長度的數(shù)組,用來存放預(yù)置值
sbit drv=P3^4 //定義輸出驅(qū)動端
bit set_flag //定義工作標(biāo)志
bit out_flag //定義輸出標(biāo)志
bit keydown_flag //鍵按下標(biāo)志
標(biāo)簽:
unsigned
include
define
uchar
上傳時間:
2015-04-29
上傳用戶:changeboy
-
/*** *5510單片機測試程序
基本測試成功
2005-8-25
write By CW
*** *** *** *** *** ****/
#include <reg52.h>
#include <absacc.h>
#define uint unsigned int
#define uchar unsigned char
標(biāo)簽:
include
write
5510
2005
上傳時間:
2013-11-25
上傳用戶:q123321
-
學(xué)會對文件的記錄鎖定,及解鎖。#include <stdio.h>
#include <unistd.h>
#include <fcntl.h>
int main()
{
int fd
int i
struct {
char name[20]
uint ID
int age
} myrec
fd =open("name", O_RDWR|O_CREAT, 0755)
if (fd == -1) return -1
printf("Input your name:") scanf("%s", myrec.name)
printf("Inpute your ID :") scanf("%d", &myrec.ID)
printf("Input your age :") scanf("%d", &myrec.age)
lseek(fd, 0,SEEK_END)
lockf(fd, 1, 0)
write(fd, (void *)&myrec, sizeof(myrec))
lockf(fd, 0 ,0)
return 0
}
執(zhí)行命令cc lock.c –o lock.out
Chmod +x lock.out
./lock.out
標(biāo)簽:
記錄
上傳時間:
2016-01-04
上傳用戶:亞亞娟娟123
-
名稱:read2543
功能:TLC2543驅(qū)動模塊
輸入?yún)?shù):port通道號
輸出參數(shù):ad轉(zhuǎn)換值
*************************************/
uint read2543(uchar port)
{
uint ad=0,i
CLOCK=0
_CS=0
port<<=4
for(i=0 i<12 i++)
{
if(D_OUT) ad|=0x01
D_IN=(bit)(port&0x80)
CLOCK=1
delay(3)
CLOCK=0
delay(3)
port<<=1
ad<<=1
}
_CS=1
ad>>=1
return(ad)
}
標(biāo)簽:
2543
read
port
TLC
上傳時間:
2016-01-21
上傳用戶:R50974
-
S6B0724液晶顯示驅(qū)動程序
void LCD_BUSY(void)
void write_LCD_data(uchar lcd_data)
void write_LCD_command(uchar command)
void clear_lcd(void)
void LCDClearLine(uchar line)
void prints(uchar line,uchar * temp)
void printf(ulong int x)
void change_code(uint * x)
void Sendlcd(uchar x,uchar y,uchar dat)
void Sendhz(uchar x,uchar y,uchar dat)
void display_HZ(void)
void display_date(void)
void LCD_initial(void)
void prints_id(uchar line,uint id)
//void print_lcd(uchar *sss)
標(biāo)簽:
void
write_LCD_command
write_LCD_data
LCD_BUSY
上傳時間:
2016-03-17
上傳用戶:獨孤求源